From 4eb07f4a1ce3d23627e7e90ea3b9573edd7037ab Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Thu, 26 May 2011 20:55:31 +0000 Subject: [PATCH] don't use directly exception class from plexus bridge git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1128082 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/maven/archiva/cli/ArchivaCli.java | 76 ++++++++++--------- .../artifact/LegacyToDefaultConverter.java | 7 +- .../DefaultLegacyRepositoryConverter.java | 4 +- .../LegacyConverterArtifactConsumer.java | 4 +- .../common/plexusbridge/PlexusSisuBridge.java | 60 ++++++++++++--- .../PlexusSisuBridgeException.java | 32 ++++++++ .../maven2/DefaultDependencyTreeBuilder.java | 4 +- .../maven2/Maven2RepositoryStorage.java | 6 +- 8 files changed, 135 insertions(+), 58 deletions(-) create mode 100644 archiva-modules/archiva-base/archiva-plexus-bridge/src/main/java/org/apache/archiva/common/plexusbridge/PlexusSisuBridgeException.java diff --git a/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java b/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java index cc4d1a156..52ed03113 100644 --- a/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java +++ b/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ArchivaCli.java @@ -19,21 +19,10 @@ package org.apache.maven.archiva.cli; * under the License. */ -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Properties; - import com.sampullara.cli.Args; import com.sampullara.cli.Argument; +import org.apache.archiva.common.plexusbridge.PlexusSisuBridge; +import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException; import org.apache.archiva.repository.scanner.RepositoryScanStatistics; import org.apache.archiva.repository.scanner.RepositoryScanner; import org.apache.archiva.repository.scanner.RepositoryScannerException; @@ -47,8 +36,20 @@ import org.apache.maven.archiva.consumers.RepositoryContentConsumer; import org.apache.maven.archiva.converter.RepositoryConversionException; import org.apache.maven.archiva.converter.legacy.LegacyRepositoryConverter; import org.apache.maven.artifact.manager.WagonManager; -import org.codehaus.plexus.spring.PlexusClassPathXmlApplicationContext; -import org.codehaus.plexus.spring.PlexusToSpringUtils; +import org.springframework.context.support.ClassPathXmlApplicationContext; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; +import java.util.Map; +import java.util.Properties; /** * ArchivaCli @@ -67,7 +68,7 @@ public class ArchivaCli public static final String TARGET_REPO_PATH = "targetRepositoryPath"; public static final String BLACKLISTED_PATTERNS = "blacklistPatterns"; - + public static final String POM_PROPERTIES = "/META-INF/maven/org.apache.archiva/archiva-cli/pom.properties"; private static String getVersion() @@ -91,12 +92,12 @@ public class ArchivaCli } } - private PlexusClassPathXmlApplicationContext applicationContext; + private ClassPathXmlApplicationContext applicationContext; public ArchivaCli() { - applicationContext = new PlexusClassPathXmlApplicationContext( - new String[]{"classpath*:/META-INF/spring-context.xml", "classpath*:/META-INF/plexus/components.xml"} ); + applicationContext = + new ClassPathXmlApplicationContext( new String[]{ "classpath*:/META-INF/spring-context.xml" } ); } public static void main( String[] args ) @@ -155,12 +156,12 @@ public class ArchivaCli } private void doScan( String path, String[] consumers ) - throws ConsumerException, MalformedURLException + throws ConsumerException, MalformedURLException, PlexusSisuBridgeException { // hack around poorly configurable project builder by pointing all repositories back at this location to be self // contained - WagonManager wagonManager = (WagonManager) applicationContext.getBean( - PlexusToSpringUtils.buildSpringId( WagonManager.class.getName() ) ); + PlexusSisuBridge plexusSisuBridge = applicationContext.getBean( PlexusSisuBridge.class ); + WagonManager wagonManager = plexusSisuBridge.lookup( WagonManager.class ); wagonManager.addMirror( "internal", "*", new File( path ).toURL().toExternalForm() ); ManagedRepositoryConfiguration repo = new ManagedRepositoryConfiguration(); @@ -193,12 +194,14 @@ public class ArchivaCli } private Object lookup( Class clazz ) + throws PlexusSisuBridgeException { - return applicationContext.getBean( PlexusToSpringUtils.buildSpringId( clazz.getName(), null ) ); + PlexusSisuBridge plexusSisuBridge = applicationContext.getBean( PlexusSisuBridge.class ); + return plexusSisuBridge.lookup( clazz ); } private List getConsumerList( String[] consumers ) - throws ConsumerException + throws ConsumerException, PlexusSisuBridgeException { List consumerList = new ArrayList(); @@ -220,6 +223,7 @@ public class ArchivaCli } private void dumpAvailableConsumers() + throws PlexusSisuBridgeException { Map availableConsumers = getConsumers(); @@ -234,14 +238,16 @@ public class ArchivaCli } } - @SuppressWarnings("unchecked") + @SuppressWarnings( "unchecked" ) private Map getConsumers() + throws PlexusSisuBridgeException { - return PlexusToSpringUtils.lookupMap( "knownRepositoryContentConsumer", applicationContext ); + PlexusSisuBridge plexusSisuBridge = applicationContext.getBean( PlexusSisuBridge.class ); + return plexusSisuBridge.lookupMap( KnownRepositoryContentConsumer.class ); } private void doConversion( String properties ) - throws FileNotFoundException, IOException, RepositoryConversionException + throws FileNotFoundException, IOException, RepositoryConversionException, PlexusSisuBridgeException { LegacyRepositoryConverter legacyRepositoryConverter = (LegacyRepositoryConverter) lookup( LegacyRepositoryConverter.class ); @@ -280,30 +286,30 @@ public class ArchivaCli private static class Commands { - @Argument(description = "Display help information", value = "help", alias = "h") + @Argument( description = "Display help information", value = "help", alias = "h" ) private boolean help; - @Argument(description = "Display version information", value = "version", alias = "v") + @Argument( description = "Display version information", value = "version", alias = "v" ) private boolean version; - @Argument(description = "List available consumers", value = "listconsumers", alias = "l") + @Argument( description = "List available consumers", value = "listconsumers", alias = "l" ) private boolean listConsumers; - @Argument(description = "The consumers to use (comma delimited)", value = "consumers", alias = "u") + @Argument( description = "The consumers to use (comma delimited)", value = "consumers", alias = "u" ) private String consumers = "count-artifacts"; - @Argument(description = "Scan the specified repository", value = "scan", alias = "s") + @Argument( description = "Scan the specified repository", value = "scan", alias = "s" ) private boolean scan; @Argument( description = "Convert a legacy Maven 1.x repository to a Maven 2.x repository using a properties file to describe the conversion", - value = "convert", alias = "c") + value = "convert", alias = "c" ) private boolean convert; - @Argument(description = "The properties file for the conversion", value = "properties") + @Argument( description = "The properties file for the conversion", value = "properties" ) private String properties = "conversion.properties"; - @Argument(description = "The repository to scan", value = "repository") + @Argument( description = "The repository to scan", value = "repository" ) private String repository; } } diff --git a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java b/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java index b1976c375..4a8ddef56 100644 --- a/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java +++ b/archiva-modules/archiva-base/archiva-artifact-converter/src/main/java/org/apache/maven/archiva/converter/artifact/LegacyToDefaultConverter.java @@ -20,6 +20,7 @@ package org.apache.maven.archiva.converter.artifact; */ import org.apache.archiva.common.plexusbridge.PlexusSisuBridge; +import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.maven.archiva.transaction.FileTransaction; @@ -42,11 +43,8 @@ import org.apache.maven.model.Relocation; import org.apache.maven.model.converter.ModelConverter; import org.apache.maven.model.converter.PomTranslationException; import org.apache.maven.model.io.xpp3.MavenXpp3Writer; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.codehaus.plexus.digest.Digester; import org.codehaus.plexus.digest.DigesterException; -import org.codehaus.plexus.digest.Md5Digester; -import org.codehaus.plexus.digest.Sha1Digester; import org.codehaus.plexus.util.xml.pull.XmlPullParserException; import org.springframework.stereotype.Service; @@ -59,7 +57,6 @@ import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.util.ArrayList; -import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -115,7 +112,7 @@ public class LegacyToDefaultConverter @PostConstruct public void initialize() - throws ComponentLookupException + throws PlexusSisuBridgeException { this.digesters = plexusSisuBridge.lookupList( Digester.class ); translator = plexusSisuBridge.lookup( ModelConverter.class ); diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java index 402bb70cc..46e9821d5 100644 --- a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java +++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/DefaultLegacyRepositoryConverter.java @@ -20,6 +20,7 @@ package org.apache.maven.archiva.converter.legacy; */ import org.apache.archiva.common.plexusbridge.PlexusSisuBridge; +import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException; import org.apache.archiva.repository.scanner.RepositoryScanner; import org.apache.archiva.repository.scanner.RepositoryScannerException; import org.apache.maven.archiva.common.utils.PathUtil; @@ -30,7 +31,6 @@ import org.apache.maven.archiva.converter.RepositoryConversionException; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.repository.ArtifactRepositoryFactory; import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.springframework.stereotype.Service; import javax.inject.Inject; @@ -77,7 +77,7 @@ public class DefaultLegacyRepositoryConverter @Inject public DefaultLegacyRepositoryConverter( PlexusSisuBridge plexusSisuBridge ) - throws ComponentLookupException + throws PlexusSisuBridgeException { artifactRepositoryFactory = plexusSisuBridge.lookup( ArtifactRepositoryFactory.class ); defaultLayout = plexusSisuBridge.lookup( ArtifactRepositoryLayout.class, "default" ); diff --git a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java index 5a9c41812..f2bcd9812 100644 --- a/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java +++ b/archiva-modules/archiva-base/archiva-converter/src/main/java/org/apache/maven/archiva/converter/legacy/LegacyConverterArtifactConsumer.java @@ -20,6 +20,7 @@ package org.apache.maven.archiva.converter.legacy; */ import org.apache.archiva.common.plexusbridge.PlexusSisuBridge; +import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; import org.apache.maven.archiva.consumers.ConsumerException; @@ -33,7 +34,6 @@ import org.apache.maven.archiva.repository.layout.LayoutException; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.factory.ArtifactFactory; import org.apache.maven.artifact.repository.ArtifactRepository; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Scope; @@ -83,7 +83,7 @@ public class LegacyConverterArtifactConsumer @Inject public LegacyConverterArtifactConsumer( PlexusSisuBridge plexusSisuBridge ) - throws ComponentLookupException + throws PlexusSisuBridgeException { includes = new ArrayList(); includes.add( "**/*.jar" ); diff --git a/archiva-modules/archiva-base/archiva-plexus-bridge/src/main/java/org/apache/archiva/common/plexusbridge/PlexusSisuBridge.java b/archiva-modules/archiva-base/archiva-plexus-bridge/src/main/java/org/apache/archiva/common/plexusbridge/PlexusSisuBridge.java index 56c6ecf2c..5de3cc7de 100644 --- a/archiva-modules/archiva-base/archiva-plexus-bridge/src/main/java/org/apache/archiva/common/plexusbridge/PlexusSisuBridge.java +++ b/archiva-modules/archiva-base/archiva-plexus-bridge/src/main/java/org/apache/archiva/common/plexusbridge/PlexusSisuBridge.java @@ -31,6 +31,7 @@ import org.springframework.stereotype.Service; import javax.annotation.PostConstruct; import java.net.URL; import java.util.List; +import java.util.Map; /** * Simple component which will initiate the plexus shim component @@ -39,7 +40,7 @@ import java.util.List; * * @author Olivier Lamy */ -@Service("plexusSisuBridge") +@Service( "plexusSisuBridge" ) public class PlexusSisuBridge { @@ -55,7 +56,7 @@ public class PlexusSisuBridge @PostConstruct public void initialize() - throws PlexusContainerException + throws PlexusSisuBridgeException { DefaultContainerConfiguration conf = new DefaultContainerConfiguration(); @@ -72,24 +73,65 @@ public class PlexusSisuBridge conf.setClassWorld( classWorld ); - plexusContainer = new DefaultPlexusContainer( conf ); + try + { + plexusContainer = new DefaultPlexusContainer( conf ); + } + catch ( PlexusContainerException e ) + { + throw new PlexusSisuBridgeException( e.getMessage(), e ); + } } public T lookup( Class clazz ) - throws ComponentLookupException + throws PlexusSisuBridgeException { - return plexusContainer.lookup( clazz ); + try + { + return plexusContainer.lookup( clazz ); + } + catch ( ComponentLookupException e ) + { + throw new PlexusSisuBridgeException( e.getMessage(), e ); + } } public T lookup( Class clazz, String hint ) - throws ComponentLookupException + throws PlexusSisuBridgeException { - return plexusContainer.lookup( clazz, hint ); + try + { + return plexusContainer.lookup( clazz, hint ); + } + catch ( ComponentLookupException e ) + { + throw new PlexusSisuBridgeException( e.getMessage(), e ); + } } public List lookupList( Class clazz ) - throws ComponentLookupException + throws PlexusSisuBridgeException { - return plexusContainer.lookupList( clazz ); + try + { + return plexusContainer.lookupList( clazz ); + } + catch ( ComponentLookupException e ) + { + throw new PlexusSisuBridgeException( e.getMessage(), e ); + } + } + + public Map lookupMap( Class clazz ) + throws PlexusSisuBridgeException + { + try + { + return plexusContainer.lookupMap( clazz ); + } + catch ( ComponentLookupException e ) + { + throw new PlexusSisuBridgeException( e.getMessage(), e ); + } } } diff --git a/archiva-modules/archiva-base/archiva-plexus-bridge/src/main/java/org/apache/archiva/common/plexusbridge/PlexusSisuBridgeException.java b/archiva-modules/archiva-base/archiva-plexus-bridge/src/main/java/org/apache/archiva/common/plexusbridge/PlexusSisuBridgeException.java new file mode 100644 index 000000000..7b67fdf6a --- /dev/null +++ b/archiva-modules/archiva-base/archiva-plexus-bridge/src/main/java/org/apache/archiva/common/plexusbridge/PlexusSisuBridgeException.java @@ -0,0 +1,32 @@ +package org.apache.archiva.common.plexusbridge; + +/* + * 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. + */ + +/** + * @author Olivier Lamy + */ +public class PlexusSisuBridgeException + extends Exception +{ + public PlexusSisuBridgeException( String message, Throwable throwable ) + { + super( message, throwable ); + } +} diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/DefaultDependencyTreeBuilder.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/DefaultDependencyTreeBuilder.java index 12db707ea..758442715 100644 --- a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/DefaultDependencyTreeBuilder.java +++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/dependency/tree/maven2/DefaultDependencyTreeBuilder.java @@ -20,6 +20,7 @@ package org.apache.archiva.dependency.tree.maven2; */ import org.apache.archiva.common.plexusbridge.PlexusSisuBridge; +import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException; import org.apache.archiva.metadata.repository.MetadataResolutionException; import org.apache.archiva.metadata.repository.MetadataResolver; import org.apache.archiva.metadata.repository.RepositorySession; @@ -65,7 +66,6 @@ import org.apache.maven.shared.dependency.tree.traversal.BuildingDependencyNodeV import org.apache.maven.shared.dependency.tree.traversal.CollectingDependencyNodeVisitor; import org.apache.maven.shared.dependency.tree.traversal.DependencyNodeVisitor; import org.apache.maven.shared.dependency.tree.traversal.FilteringDependencyNodeVisitor; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -139,7 +139,7 @@ public class DefaultDependencyTreeBuilder @PostConstruct public void initialize() - throws ComponentLookupException + throws PlexusSisuBridgeException { factory = plexusSisuBridge.lookup( ArtifactFactory.class ); collector = plexusSisuBridge.lookup( ArtifactCollector.class ); diff --git a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java index e58ff70c3..2cd5cc426 100644 --- a/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java +++ b/archiva-modules/plugins/maven2-repository/src/main/java/org/apache/archiva/metadata/repository/storage/maven2/Maven2RepositoryStorage.java @@ -22,6 +22,7 @@ package org.apache.archiva.metadata.repository.storage.maven2; import org.apache.archiva.checksum.ChecksumAlgorithm; import org.apache.archiva.checksum.ChecksummedFile; import org.apache.archiva.common.plexusbridge.PlexusSisuBridge; +import org.apache.archiva.common.plexusbridge.PlexusSisuBridgeException; import org.apache.archiva.metadata.model.ArtifactMetadata; import org.apache.archiva.metadata.model.ProjectMetadata; import org.apache.archiva.metadata.model.ProjectVersionMetadata; @@ -46,7 +47,6 @@ import org.apache.maven.model.building.DefaultModelBuildingRequest; import org.apache.maven.model.building.ModelBuilder; import org.apache.maven.model.building.ModelBuildingException; import org.apache.maven.model.building.ModelBuildingRequest; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; @@ -75,7 +75,7 @@ import java.util.List; *

* plexus.component role="org.apache.archiva.metadata.repository.storage.RepositoryStorage" role-hint="maven2" */ -@Service("repositoryStorage#maven2") +@Service( "repositoryStorage#maven2" ) public class Maven2RepositoryStorage implements RepositoryStorage { @@ -107,7 +107,7 @@ public class Maven2RepositoryStorage @PostConstruct public void initialize() - throws ComponentLookupException + throws PlexusSisuBridgeException { builder = plexusSisuBridge.lookup( ModelBuilder.class ); } -- 2.39.5