From c33869db14f79d582dd66d02dece2d0ca1366288 Mon Sep 17 00:00:00 2001 From: Martin Stockhammer Date: Tue, 4 Feb 2020 21:31:49 +0100 Subject: Cleanup of dependencies for maven-model --- .../archiva-maven/archiva-maven-model/pom.xml | 20 ++++++ .../org/apache/archiva/maven2/model/TreeEntry.java | 7 +-- .../org/apache/archiva/maven2/model/ModelTest.java | 72 ++++++++++++++++++++++ 3 files changed, 94 insertions(+), 5 deletions(-) create mode 100644 archiva-modules/archiva-maven/archiva-maven-model/src/test/java/org/apache/archiva/maven2/model/ModelTest.java (limited to 'archiva-modules/archiva-maven/archiva-maven-model') diff --git a/archiva-modules/archiva-maven/archiva-maven-model/pom.xml b/archiva-modules/archiva-maven/archiva-maven-model/pom.xml index 2e8d16e1e..882edcee9 100644 --- a/archiva-modules/archiva-maven/archiva-maven-model/pom.xml +++ b/archiva-modules/archiva-maven/archiva-maven-model/pom.xml @@ -34,10 +34,30 @@ + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.version} + test + + + com.fasterxml.jackson.module + jackson-module-jaxb-annotations + ${jackson.version} + test + + + org.json + json + 20190722 + + diff --git a/archiva-modules/archiva-maven/archiva-maven-model/src/main/java/org/apache/archiva/maven2/model/TreeEntry.java b/archiva-modules/archiva-maven/archiva-maven-model/src/main/java/org/apache/archiva/maven2/model/TreeEntry.java index 7a0db88e7..23a3acf5c 100644 --- a/archiva-modules/archiva-maven/archiva-maven-model/src/main/java/org/apache/archiva/maven2/model/TreeEntry.java +++ b/archiva-modules/archiva-maven/archiva-maven-model/src/main/java/org/apache/archiva/maven2/model/TreeEntry.java @@ -19,9 +19,8 @@ package org.apache.archiva.maven2.model; */ -import com.fasterxml.jackson.annotation.JsonIgnore; - import javax.xml.bind.annotation.XmlRootElement; +import javax.xml.bind.annotation.XmlTransient; import java.io.Serializable; import java.util.ArrayList; import java.util.List; @@ -38,7 +37,6 @@ public class TreeEntry private Artifact artifact; - @JsonIgnore private TreeEntry parent; public TreeEntry() @@ -72,13 +70,12 @@ public class TreeEntry this.childs = childs; } - @JsonIgnore + @XmlTransient public TreeEntry getParent() { return parent; } - @JsonIgnore public void setParent( TreeEntry parent ) { this.parent = parent; diff --git a/archiva-modules/archiva-maven/archiva-maven-model/src/test/java/org/apache/archiva/maven2/model/ModelTest.java b/archiva-modules/archiva-maven/archiva-maven-model/src/test/java/org/apache/archiva/maven2/model/ModelTest.java new file mode 100644 index 000000000..75c4cc273 --- /dev/null +++ b/archiva-modules/archiva-maven/archiva-maven-model/src/test/java/org/apache/archiva/maven2/model/ModelTest.java @@ -0,0 +1,72 @@ +package org.apache.archiva.maven2.model; +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule; +import org.json.JSONObject; +import org.junit.jupiter.api.Test; + +import javax.xml.bind.JAXBException; +import java.io.IOException; +import java.io.StringWriter; +import java.util.Arrays; + +import static org.junit.jupiter.api.Assertions.*; + + +public class ModelTest +{ + @Test + void testTreeEntry() throws JAXBException, IOException + { + TreeEntry parent = new TreeEntry( ); + TreeEntry entry = new TreeEntry( ); + entry.setParent( parent ); + Artifact artifact1 = new Artifact( ); + artifact1.setGroupId( "test.group" ); + artifact1.setArtifactId( "artifact1" ); + artifact1.setVersion( "1.0" ); + entry.setArtifact( artifact1 ); + + TreeEntry child1 = new TreeEntry( ); + TreeEntry child2 = new TreeEntry( ); + child1.setParent( entry ); + child2.setParent( entry ); + Artifact artifact2 = new Artifact( ); + artifact2.setGroupId( "test.group" ); + artifact2.setArtifactId( "artifact1" ); + artifact2.setVersion( "1.1" ); + child1.setArtifact( artifact2 ); + child2.setArtifact( artifact2 ); + entry.setChilds( Arrays.asList( child1, child2) ); + + ObjectMapper objectMapper = new ObjectMapper( ); + objectMapper.registerModule( new JaxbAnnotationModule( ) ); + StringWriter sw = new StringWriter( ); + objectMapper.writeValue( sw, entry ); + + JSONObject js = new JSONObject( sw.toString() ); + assertFalse( js.has( "parent" ) ); + assertTrue( js.has( "childs" ) ); + assertEquals(2, js.getJSONArray( "childs" ).length()); + assertTrue( js.has( "artifact" ) ); + + } +} -- cgit v1.2.3