@@ -40,11 +40,28 @@ | |||
<groupId>org.apache.maven.wagon</groupId> | |||
<artifactId>wagon-provider-api</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.springframework</groupId> | |||
<artifactId>spring-context</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>org.springframework</groupId> | |||
<artifactId>spring-beans</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>javax.inject</groupId> | |||
<artifactId>javax.inject</artifactId> | |||
</dependency> | |||
<!-- | |||
<dependency> | |||
<groupId>org.apache.maven.wagon</groupId> | |||
<artifactId>wagon-file</artifactId> | |||
<scope>test</scope> | |||
</dependency> | |||
--> | |||
<dependency> | |||
<groupId>org.apache.commons</groupId> | |||
<artifactId>commons-lang3</artifactId> |
@@ -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> |
@@ -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; |
@@ -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" ) ); | |||
} | |||
} |
@@ -95,6 +95,11 @@ | |||
<artifactId>cxf-rt-frontend-jaxrs</artifactId> | |||
</dependency> | |||
<dependency> | |||
<groupId>com.fasterxml.jackson.core</groupId> | |||
<artifactId>jackson-annotations</artifactId> | |||
</dependency> | |||
</dependencies> | |||
<build> |
@@ -34,6 +34,10 @@ archiva-modules | |||
archiva-scheduler-repository-api | |||
archiva-scheduler-repository | |||
archiva-scheduler-indexer | |||
metadata | |||
metadata-statistics-api | |||
metadata-repository-api | |||
metadata-model | |||