Blob Blame History Raw
From 9bfc58f2c4f0e039ea7f776ae859976cd85fbbaf Mon Sep 17 00:00:00 2001
From: Mikolaj Izdebski <mizdebsk@redhat.com>
Date: Thu, 19 Dec 2013 14:41:05 +0100
Subject: [PATCH 2/4] Remove integration with for Apache Ivy

[backport-feature-remove-ivy-support]
---
 xmvn-core/pom.xml                                  |   4 -
 .../maven/model/impl/IvyModelReader.java           | 160 ---------------------
 .../maven/installer/BasicIvyInstallerTest.java     |  80 -----------
 .../maven/installer/IvyInstallerExclusionTest.java |  87 -----------
 xmvn-parent/pom.xml                                |   6 -
 5 files changed, 337 deletions(-)
 delete mode 100644 xmvn-core/src/main/java/org/fedoraproject/maven/model/impl/IvyModelReader.java
 delete mode 100644 xmvn-core/src/test/java/org/fedoraproject/maven/installer/BasicIvyInstallerTest.java
 delete mode 100644 xmvn-core/src/test/java/org/fedoraproject/maven/installer/IvyInstallerExclusionTest.java

diff --git a/xmvn-core/pom.xml b/xmvn-core/pom.xml
index f7b9db3..79238cd 100644
--- a/xmvn-core/pom.xml
+++ b/xmvn-core/pom.xml
@@ -57,10 +57,6 @@
       <groupId>org.codehaus.plexus</groupId>
       <artifactId>plexus-utils</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.apache.ivy</groupId>
-      <artifactId>ivy</artifactId>
-    </dependency>
   </dependencies>
   <build>
     <plugins>
diff --git a/xmvn-core/src/main/java/org/fedoraproject/maven/model/impl/IvyModelReader.java b/xmvn-core/src/main/java/org/fedoraproject/maven/model/impl/IvyModelReader.java
deleted file mode 100644
index 1bd7aea..0000000
--- a/xmvn-core/src/main/java/org/fedoraproject/maven/model/impl/IvyModelReader.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*-
- * Copyright (c) 2013 Red Hat, Inc.
- *
- * Licensed 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.
- */
-package org.fedoraproject.maven.model.impl;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.nio.file.Path;
-import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import org.apache.ivy.core.module.descriptor.Artifact;
-import org.apache.ivy.core.module.descriptor.DependencyArtifactDescriptor;
-import org.apache.ivy.core.module.descriptor.DependencyDescriptor;
-import org.apache.ivy.core.module.descriptor.ExcludeRule;
-import org.apache.ivy.core.module.descriptor.ModuleDescriptor;
-import org.apache.ivy.core.module.id.ModuleId;
-import org.apache.ivy.core.module.id.ModuleRevisionId;
-import org.apache.ivy.core.settings.IvySettings;
-import org.apache.ivy.plugins.parser.xml.XmlModuleDescriptorParser;
-import org.apache.maven.model.Dependency;
-import org.apache.maven.model.Exclusion;
-import org.apache.maven.model.Model;
-import org.codehaus.plexus.component.annotations.Component;
-import org.codehaus.plexus.util.StringUtils;
-import org.fedoraproject.maven.model.ModelFormatException;
-import org.fedoraproject.maven.model.ModelReader;
-
-/**
- * <strong>WARNING</strong>: This class is part of internal implementation of XMvn and it is marked as public only for
- * technical reasons. This class is not part of XMvn API. Client code using XMvn should <strong>not</strong> reference
- * it directly.
- * 
- * @author Mikolaj Izdebski
- */
-@Component( role = ModelReader.class, hint = "ivy", instantiationStrategy = "singleton" )
-public class IvyModelReader
-    implements ModelReader
-{
-    private static final List<String> MAVEN_SCOPES = Arrays.asList( "compile", "runtime", "provided", "test", "system" );
-
-    private ModuleDescriptor readModule( Path modulePath )
-        throws IOException, ParseException
-    {
-        try
-        {
-            XmlModuleDescriptorParser parser = XmlModuleDescriptorParser.getInstance();
-            IvySettings settings = new IvySettings();
-            return parser.parseDescriptor( settings, modulePath.toUri().toURL(), false );
-        }
-        catch ( MalformedURLException e )
-        {
-            throw new RuntimeException( e );
-        }
-    }
-
-    private String nullify( String value, String defaultValue )
-    {
-        if ( StringUtils.isEmpty( value ) || value.equals( defaultValue ) )
-            return null;
-
-        return value;
-    }
-
-    private Model getModuleModel( ModuleDescriptor module )
-    {
-        Model model = new Model();
-        model.setModelVersion( "4.0.0" );
-
-        ModuleRevisionId moduleRevision = module.getModuleRevisionId();
-        model.setGroupId( moduleRevision.getOrganisation() );
-        model.setArtifactId( moduleRevision.getName() );
-        model.setVersion( moduleRevision.getRevision() );
-
-        model.setPackaging( "pom" );
-        for ( Artifact artifact : module.getAllArtifacts() )
-            if ( artifact.getName().equals( moduleRevision.getName() ) && artifact.getAttribute( "classifier" ) == null )
-                model.setPackaging( artifact.getType() );
-
-        for ( DependencyDescriptor dependencyModule : module.getDependencies() )
-        {
-            Set<String> scopes = new HashSet<>( MAVEN_SCOPES );
-            scopes.retainAll( Arrays.asList( dependencyModule.getModuleConfigurations() ) );
-            String scope = scopes.isEmpty() ? null : scopes.iterator().next();
-
-            Map<String, String> map = new LinkedHashMap<>();
-            for ( DependencyArtifactDescriptor dependencyArtifact : dependencyModule.getAllDependencyArtifacts() )
-            {
-                String classifier = dependencyArtifact.getExtraAttribute( "classifier" );
-                String type = dependencyArtifact.getType();
-                map.put( classifier, type );
-            }
-            if ( map.isEmpty() )
-                map = Collections.singletonMap( null, null );
-
-            List<Exclusion> exclusions = new ArrayList<>();
-            for ( ExcludeRule rule : dependencyModule.getAllExcludeRules() )
-            {
-                Exclusion exclusion = new Exclusion();
-                exclusions.add( exclusion );
-
-                ModuleId exclusedModule = rule.getId().getModuleId();
-                exclusion.setGroupId( exclusedModule.getOrganisation() );
-                exclusion.setArtifactId( exclusedModule.getName() );
-            }
-
-            for ( Entry<String, String> entry : map.entrySet() )
-            {
-                Dependency dependency = new Dependency();
-                model.addDependency( dependency );
-
-                ModuleRevisionId dependencyRevision = dependencyModule.getDependencyRevisionId();
-                dependency.setGroupId( dependencyRevision.getOrganisation() );
-                dependency.setArtifactId( dependencyRevision.getName() );
-                dependency.setVersion( nullify( dependencyRevision.getRevision(), "SYSTEM" ) );
-                dependency.setType( nullify( entry.getValue(), "jar" ) );
-                dependency.setClassifier( nullify( entry.getKey(), "" ) );
-                dependency.setScope( nullify( scope, "compile" ) );
-                dependency.setExclusions( new ArrayList<>( exclusions ) );
-            }
-        }
-
-        return model;
-    }
-
-    @Override
-    public Model readModel( Path modelPath )
-        throws IOException, ModelFormatException
-    {
-        try
-        {
-            ModuleDescriptor module = readModule( modelPath );
-            return getModuleModel( module );
-        }
-        catch ( ParseException e )
-        {
-            throw new ModelFormatException( "Unable to parse Ivy module", e );
-        }
-    }
-}
diff --git a/xmvn-core/src/test/java/org/fedoraproject/maven/installer/BasicIvyInstallerTest.java b/xmvn-core/src/test/java/org/fedoraproject/maven/installer/BasicIvyInstallerTest.java
deleted file mode 100644
index cfbe2b2..0000000
--- a/xmvn-core/src/test/java/org/fedoraproject/maven/installer/BasicIvyInstallerTest.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*-
- * Copyright (c) 2013 Red Hat, Inc.
- *
- * Licensed 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.
- */
-package org.fedoraproject.maven.installer;
-
-import static org.custommonkey.xmlunit.XMLUnit.setIgnoreWhitespace;
-
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import org.fedoraproject.maven.utils.ArtifactUtils;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
-
-/**
- * @author Mikolaj Izdebski
- */
-public class BasicIvyInstallerTest
-    extends AbstractInstallerTest
-{
-    /**
-     * Test installation of Ivy modules.
-     * 
-     * @throws Exception
-     */
-    public void testComponentLookup()
-        throws Exception
-    {
-        Path artifactPath = Paths.get( "src/test/resources/jar/empty.jar" );
-        Path modelPath = Paths.get( "src/test/resources/ivy/simple.ivy" );
-
-        Artifact artifact = new DefaultArtifact( "org.apache", "hello-ivy", "jar", "1.2.3" );
-        artifact = artifact.setFile( artifactPath.toFile() );
-        artifact = ArtifactUtils.setRawModelPath( artifact, modelPath );
-        artifact = ArtifactUtils.setEffectiveModelPath( artifact, modelPath );
-
-        request.addArtifact( artifact );
-
-        logger.info( "Added arrifact " + artifact );
-        logger.info( "  POM path: " + modelPath.toAbsolutePath() );
-        logger.info( "  JAR path: " + artifactPath.toAbsolutePath() );
-
-        performInstallation();
-
-        setIgnoreWhitespace( true );
-
-        assertTrue( Files.isRegularFile( installRoot.resolve( "repo/jar/hello-ivy.jar" ) ) );
-        assertXmlEqual( "ivy/simple.ivy", "repo/raw-pom/JPP-hello-ivy.pom" );
-        assertXmlEqual( "ivy/simple.pom", "repo/effective-pom/JPP-hello-ivy.pom" );
-
-        StringBuilder depmap = new StringBuilder();
-        depmap.append( "<dependencyMap>" );
-        depmap.append( "  <dependency>" );
-        depmap.append( "    <maven>" );
-        depmap.append( "      <groupId>org.apache</groupId>" );
-        depmap.append( "      <artifactId>hello-ivy</artifactId>" );
-        depmap.append( "      <version>1.2.3</version>" );
-        depmap.append( "    </maven>" );
-        depmap.append( "    <jpp>" );
-        depmap.append( "      <groupId>JPP</groupId>" );
-        depmap.append( "      <artifactId>hello-ivy</artifactId>" );
-        depmap.append( "    </jpp>" );
-        depmap.append( "  </dependency>" );
-        depmap.append( "</dependencyMap>" );
-        assertXmlEqual( depmap, "depmaps/package.xml" );
-    }
-}
diff --git a/xmvn-core/src/test/java/org/fedoraproject/maven/installer/IvyInstallerExclusionTest.java b/xmvn-core/src/test/java/org/fedoraproject/maven/installer/IvyInstallerExclusionTest.java
deleted file mode 100644
index ce7ccc8..0000000
--- a/xmvn-core/src/test/java/org/fedoraproject/maven/installer/IvyInstallerExclusionTest.java
+++ /dev/null
@@ -1,87 +0,0 @@
-/*-
- * Copyright (c) 2013 Red Hat, Inc.
- *
- * Licensed 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.
- */
-package org.fedoraproject.maven.installer;
-
-import static org.custommonkey.xmlunit.XMLUnit.setIgnoreWhitespace;
-
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-
-import org.fedoraproject.maven.utils.ArtifactUtils;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
-
-/**
- * @author Mikolaj Izdebski
- */
-public class IvyInstallerExclusionTest
-    extends AbstractInstallerTest
-{
-    /**
-     * Test installation of Ivy modules.
-     * 
-     * @throws Exception
-     */
-    public void testComponentLookup()
-        throws Exception
-    {
-        Path artifactPath = Paths.get( "src/test/resources/jar/empty.jar" );
-        Path modelPath = Paths.get( "src/test/resources/ivy/dependency-exclusion.ivy" );
-
-        Artifact artifact = new DefaultArtifact( "org.apache", "hello-ivy", "jar", "1.2.3" );
-        artifact = artifact.setFile( artifactPath.toFile() );
-        artifact = ArtifactUtils.setRawModelPath( artifact, modelPath );
-        artifact = ArtifactUtils.setEffectiveModelPath( artifact, modelPath );
-
-        request.addArtifact( artifact );
-
-        logger.info( "Added arrifact " + artifact );
-        logger.info( "  POM path: " + modelPath.toAbsolutePath() );
-        logger.info( "  JAR path: " + artifactPath.toAbsolutePath() );
-
-        performInstallation();
-
-        setIgnoreWhitespace( true );
-
-        assertTrue( Files.isRegularFile( installRoot.resolve( "repo/jar/hello-ivy.jar" ) ) );
-        assertXmlEqual( "ivy/dependency-exclusion.ivy", "repo/raw-pom/JPP-hello-ivy.pom" );
-        assertXmlEqual( "ivy/dependency-exclusion.pom", "repo/effective-pom/JPP-hello-ivy.pom" );
-
-        StringBuilder depmap = new StringBuilder();
-        depmap.append( "<dependencyMap>" );
-        depmap.append( "  <dependency>" );
-        depmap.append( "    <maven>" );
-        depmap.append( "      <groupId>org.apache</groupId>" );
-        depmap.append( "      <artifactId>hello-ivy</artifactId>" );
-        depmap.append( "      <version>1.2.3</version>" );
-        depmap.append( "    </maven>" );
-        depmap.append( "    <jpp>" );
-        depmap.append( "      <groupId>JPP</groupId>" );
-        depmap.append( "      <artifactId>hello-ivy</artifactId>" );
-        depmap.append( "    </jpp>" );
-        depmap.append( "  </dependency>" );
-        depmap.append( "  <autoRequires>" );
-        depmap.append( "    <namespace>UNKNOWN</namespace>" );
-        depmap.append( "    <groupId>junit</groupId>" );
-        depmap.append( "    <artifactId>junit</artifactId>" );
-        depmap.append( "    <version>UNKNOWN</version>" );
-        depmap.append( "  </autoRequires>" );
-
-        depmap.append( "</dependencyMap>" );
-        assertXmlEqual( depmap, "depmaps/package.xml" );
-    }
-}
diff --git a/xmvn-parent/pom.xml b/xmvn-parent/pom.xml
index 9b3030b..bfa4da6 100644
--- a/xmvn-parent/pom.xml
+++ b/xmvn-parent/pom.xml
@@ -75,7 +75,6 @@
     <project.build.sourceEncoding>US-ASCII</project.build.sourceEncoding>
 
     <aetherVersion>1.13.1</aetherVersion>
-    <ivyVersion>2.3.0</ivyVersion>
     <jcommanderVersion>1.32</jcommanderVersion>
     <mavenInvokerVersion>2.1.1</mavenInvokerVersion>
     <mavenVersion>3.0.5</mavenVersion>
@@ -195,11 +194,6 @@
         <artifactId>maven-invoker</artifactId>
         <version>${mavenInvokerVersion}</version>
       </dependency>
-      <dependency>
-	<groupId>org.apache.ivy</groupId>
-	<artifactId>ivy</artifactId>
-	<version>${ivyVersion}</version>
-      </dependency>
     </dependencies>
   </dependencyManagement>
   <dependencies>
-- 
1.8.4.2