diff options
author | Martin Stockhammer <martin_s@apache.org> | 2020-02-04 21:31:49 +0100 |
---|---|---|
committer | Martin Stockhammer <martin_s@apache.org> | 2020-02-04 21:31:49 +0100 |
commit | c33869db14f79d582dd66d02dece2d0ca1366288 (patch) | |
tree | 77254304ad439f8793a7cf7c9b45da5065a7406a /archiva-modules/archiva-maven/archiva-maven-model | |
parent | e9a28313a20eb86a3ff5c90d3d4e7133998dbb40 (diff) | |
download | archiva-c33869db14f79d582dd66d02dece2d0ca1366288.tar.gz archiva-c33869db14f79d582dd66d02dece2d0ca1366288.zip |
Cleanup of dependencies for maven-model
Diffstat (limited to 'archiva-modules/archiva-maven/archiva-maven-model')
3 files changed, 94 insertions, 5 deletions
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 @@ </properties> <dependencies> + + <dependency> + <groupId>com.fasterxml.jackson.core</groupId> + <artifactId>jackson-databind</artifactId> + <version>${jackson.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>com.fasterxml.jackson.module</groupId> + <artifactId>jackson-module-jaxb-annotations</artifactId> + <version>${jackson.version}</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20190722</version> + </dependency> + <!-- <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> </dependency> + --> </dependencies> </project> 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" ) ); + + } +} |