Author: brett Date: Tue Jul 8 13:18:55 2014 New Revision: 1608767 URL: http://svn.apache.org/r1608767 Log: [NPANDAY-505] probe for tlbimp
Refactor, moving resolvers into dotnet-executable to allow that to be used without a circular dependency. Added: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/ArtifactResolvingContributor.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/ArtifactResolvingContributor.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayArtifactResolver.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayArtifactResolver.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayDependencyResolution.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionCache.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionCache.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionListener.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionListener.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/OrArtifactFilter.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/OrArtifactFilter.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/GacResolver.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/GacResolver.java incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java (contents, props changed) - copied, changed from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/npanday/ incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/npanday/executable-plugins.xml (with props) Removed: incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/ArtifactResolvingContributor.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayArtifactResolver.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionCache.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionListener.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/OrArtifactFilter.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/GacResolver.java incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java incubator/npanday/trunk/components/dotnet-core/src/main/resources/META-INF/plexus/components.xml Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/plexus/components.xml Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/ArtifactResolvingContributor.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/ArtifactResolvingContributor.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/ArtifactResolvingContributor.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/ArtifactResolvingContributor.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/ArtifactResolvingContributor.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== (empty) Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/ArtifactResolvingContributor.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== --- incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java (original) +++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java Tue Jul 8 13:18:55 2014 @@ -22,7 +22,6 @@ package npanday.resolver; import com.google.common.base.Predicate; import com.google.common.collect.Lists; import com.google.common.collect.Sets; -import npanday.resolver.resolvers.GacResolver; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.metadata.ArtifactMetadataSource; import org.apache.maven.artifact.repository.ArtifactRepository; @@ -31,19 +30,10 @@ import org.apache.maven.artifact.resolve import org.apache.maven.artifact.resolver.ArtifactResolutionResult; import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.artifact.resolver.DebugResolutionListener; -import org.apache.maven.artifact.resolver.ResolutionListener; import org.apache.maven.artifact.resolver.WarningResolutionListener; -import org.apache.maven.artifact.resolver.filter.AndArtifactFilter; import org.apache.maven.artifact.resolver.filter.ArtifactFilter; -import org.codehaus.plexus.PlexusConstants; -import org.codehaus.plexus.PlexusContainer; -import org.codehaus.plexus.component.repository.exception.ComponentLookupException; -import org.codehaus.plexus.context.Context; -import org.codehaus.plexus.context.ContextException; import org.codehaus.plexus.logging.AbstractLogEnabled; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Contextualizable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; import java.util.ArrayList; import java.util.Collections; @@ -61,14 +51,12 @@ import javax.annotation.Nullable; */ public class DefaultNPandayArtifactResolver extends AbstractLogEnabled - implements NPandayArtifactResolver, Contextualizable, Initializable + implements NPandayArtifactResolver, Initializable { - private ArtifactResolvingContributor[] contributors; + private List<ArtifactResolvingContributor> contributors; ArtifactResolver original; - private PlexusContainer container; - private Set<Artifact> customResolveCache = Sets.newHashSet(); private Set<Artifact> customDependenciesCache = Sets.newHashSet(); @@ -134,12 +122,7 @@ public class DefaultNPandayArtifactResol return listeners; } - public void contextualize( Context context ) throws ContextException - { - container = (PlexusContainer) context.get( PlexusConstants.PLEXUS_KEY ); - } - - public void runArtifactContributors(Artifact artifact, ArtifactRepository localRepository, + public void runArtifactContributors(Artifact artifact, ArtifactRepository localRepository, List remoteRepositories) throws ArtifactNotFoundException { if(!artifact.isResolved()) { @@ -228,26 +211,12 @@ public class DefaultNPandayArtifactResol customDependenciesCache.addAll(resolvedArtifacts); } - public void initialize() throws InitializationException - { - try - { - List list = container.lookupList( - ArtifactResolvingContributor.role - ); - - contributors = (ArtifactResolvingContributor[]) list.toArray( new ArtifactResolvingContributor[0] ); - - if (contributors.length == 0) { - getLogger().warn( "NPANDAY-147-005: could not find any custom artifact resolving contributors!" ); - } - else{ - getLogger().debug( "NPANDAY-147-004: resolved " + contributors.length + " contributors: " + list ); - } + public void initialize() { + if (contributors.size() == 0) { + getLogger().warn( "NPANDAY-147-005: could not find any custom artifact resolving contributors!" ); } - catch ( ComponentLookupException e ) - { - getLogger().error( "NPANDAY-147-003: could not resolve contributors" ); + else{ + getLogger().debug( "NPANDAY-147-004: resolved " + contributors.size() + " contributors: " + contributors ); } } Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/DefaultNPandayArtifactResolver.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayArtifactResolver.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayArtifactResolver.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayArtifactResolver.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayArtifactResolver.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayArtifactResolver.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== (empty) Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayArtifactResolver.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayDependencyResolution.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayDependencyResolution.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayDependencyResolution.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== --- incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayDependencyResolution.java (original) +++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayDependencyResolution.java Tue Jul 8 13:18:55 2014 @@ -42,12 +42,18 @@ import java.util.Set; * resolver logic for GAC, e.g. * * @author <a href="mailto:m...@lcorneliussen.de>Lars Corneliussen, Faktum Software</a> + * @plexus.component role="npanday.resolver.NPandayDependencyResolution" */ public class NPandayDependencyResolution extends AbstractLogEnabled { + /** @plexus.requirement */ private NPandayArtifactResolver artifactResolver; + + /** @plexus.requirement */ private ArtifactFactory artifactFactory; + + /** @plexus.requirement */ private ArtifactMetadataSource metaDataSource; public Set<Artifact> require(MavenProject project, ArtifactRepository localRepository, String scope) throws Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayDependencyResolution.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionCache.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionCache.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionCache.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionCache.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionCache.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== --- incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionCache.java (original) +++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionCache.java Tue Jul 8 13:18:55 2014 @@ -32,6 +32,7 @@ import java.util.Hashtable; * Resolving the artifact file once pr. artifact id is enough. * * @author <a href="mailto:m...@lcorneliussen.de>Lars Corneliussen, Faktum Software</a> + * @plexus.component role="npanday.resolver.NPandayResolutionCache" */ public class NPandayResolutionCache extends AbstractLogEnabled Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionCache.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionListener.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionListener.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionListener.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionListener.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/NPandayResolutionListener.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== (empty) Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/NPandayResolutionListener.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== (empty) Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetAssemblyArtifactFilter.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== (empty) Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetExecutableArtifactFilter.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== (empty) Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetLibraryArtifactFilter.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== (empty) Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/DotnetSymbolsArtifactFilter.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/OrArtifactFilter.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/OrArtifactFilter.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/OrArtifactFilter.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/OrArtifactFilter.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/filter/OrArtifactFilter.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== (empty) Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/filter/OrArtifactFilter.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== --- incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java (original) +++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java Tue Jul 8 13:18:55 2014 @@ -20,6 +20,10 @@ package npanday.resolver.resolvers; import npanday.ArtifactTypeHelper; +import npanday.executable.ExecutableRequirement; +import npanday.executable.ExecutionResult; +import npanday.executable.NetExecutable; +import npanday.executable.NetExecutableFactory; import npanday.resolver.ArtifactResolvingContributor; import npanday.resolver.NPandayResolutionCache; import org.apache.maven.artifact.Artifact; @@ -27,11 +31,6 @@ import org.apache.maven.artifact.reposit import org.apache.maven.artifact.resolver.filter.ArtifactFilter; import org.codehaus.plexus.logging.AbstractLogEnabled; import org.codehaus.plexus.util.Os; -import org.codehaus.plexus.util.cli.CommandLineException; -import org.codehaus.plexus.util.cli.CommandLineUtils; -import org.codehaus.plexus.util.cli.Commandline; -import org.codehaus.plexus.util.cli.DefaultConsumer; -import org.codehaus.plexus.util.cli.StreamConsumer; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -46,13 +45,18 @@ import java.util.Set; /** * @author <a href="mailto:m...@lcorneliussen.de>Lars Corneliussen, Faktum Software</a> + * @plexus.component role="npanday.resolver.ArtifactResolvingContributor" role-hint="com" */ public class ComReferenceResolver extends AbstractLogEnabled implements ArtifactResolvingContributor { + /** @plexus.requirement */ NPandayResolutionCache cache; + /** @plexus.requirement */ + protected NetExecutableFactory netExecutableFactory; + public void contribute(Artifact artifact, ArtifactRepository localRepository, List remoteRepositories, Set<Artifact> additionalDependenciesCollector, ArtifactFilter filter) { @@ -73,7 +77,7 @@ public class ComReferenceResolver } String tokenId = artifact.getClassifier(); - String interopPath = null; + String interopPath; try { interopPath = generateInteropDll( artifact.getArtifactId(), tokenId ); @@ -83,6 +87,7 @@ public class ComReferenceResolver getLogger().error( "NPANDAY-150-002: Error creating interop dll for " + artifact.getId() ); + return; } File f = new File( interopPath ); @@ -130,7 +135,10 @@ public class ComReferenceResolver try { - execute( "tlbimp", params ); + final NetExecutable executable = netExecutableFactory.getExecutable( + new ExecutableRequirement( "MICROSOFT", null, null, "TLBIMP" ), params, null + ); + executable.execute(); } catch ( Exception e ) { @@ -277,13 +285,13 @@ public class ComReferenceResolver parameters.add( registryPath ); parameters.add( "/ve" ); - StreamConsumer outConsumer = new StreamConsumerImpl(); - StreamConsumer errorConsumer = new StreamConsumerImpl(); - + ExecutionResult res; try { - // TODO: investigate why outConsumer ignores newline - execute( "reg", parameters, outConsumer, errorConsumer ); + final NetExecutable executable = netExecutableFactory.getExecutable( + new ExecutableRequirement( "MICROSOFT", null, null, "REG" ), parameters, null + ); + res = executable.execute(); } catch ( Exception e ) { @@ -291,8 +299,7 @@ public class ComReferenceResolver + "] ActiveX component in your system, you need to install this component first to continue." ); } - // parse outConsumer - String out = outConsumer.toString(); + String out = res.getStandardOut(); String tokens[] = out.split( "\n" ); @@ -312,74 +319,4 @@ public class ComReferenceResolver return null; } - - // can't use dotnet-executable due to cyclic dependency. - private void execute( String executable, List<String> commands ) - throws Exception - { - execute( executable, commands, null, null ); - } - - private void execute( String executable, List<String> commands, StreamConsumer systemOut, StreamConsumer systemError ) - throws Exception - { - int result = 0; - Commandline commandline = new Commandline(); - commandline.setExecutable( executable ); - commandline.addArguments( commands.toArray( new String[commands.size()] ) ); - try - { - result = CommandLineUtils.executeCommandLine( commandline, systemOut, systemError ); - - System.out.println( "NPANDAY-040-000: Executed command: Commandline = " + commandline + ", Result = " - + result ); - - if ( result != 0 ) - { - throw new Exception( "NPANDAY-040-001: Could not execute: Command = " + commandline.toString() - + ", Result = " + result ); - } - } - catch ( CommandLineException e ) - { - throw new Exception( "NPANDAY-040-002: Could not execute: Command = " + commandline.toString(), e); - } - } - - /** - * TODO: refactor this to another class and all methods concerning com_reference StreamConsumer instance that - * buffers the entire output - */ - class StreamConsumerImpl - implements StreamConsumer - { - - private DefaultConsumer consumer; - - private StringBuffer sb = new StringBuffer(); - - public StreamConsumerImpl() - { - consumer = new DefaultConsumer(); - } - - public void consumeLine( String line ) - { - sb.append( line ); - if ( getLogger() != null ) - { - consumer.consumeLine( line ); - } - } - - /** - * Returns the stream - * - * @return the stream - */ - public String toString() - { - return sb.toString(); - } - } } Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/ComReferenceResolver.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/GacResolver.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/GacResolver.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/GacResolver.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/GacResolver.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/GacResolver.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== --- incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/GacResolver.java (original) +++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/GacResolver.java Tue Jul 8 13:18:55 2014 @@ -34,10 +34,12 @@ import java.util.Set; /** * @author <a href="mailto:m...@lcorneliussen.de>Lars Corneliussen, Faktum Software</a> + * @plexus.component role="npanday.resolver.ArtifactResolvingContributor" role-hint="gac" */ public class GacResolver implements ArtifactResolvingContributor { + /** @plexus.requirement */ NPandayResolutionCache cache; public void tryResolve(Artifact artifact, Set<Artifact> additionalDependenciesCollector, ArtifactFilter filter) throws Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/GacResolver.java ------------------------------------------------------------------------------ svn:eol-style = native Copied: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java (from r1608678, incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java) URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java?p2=incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java&p1=incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java&r1=1608678&r2=1608767&rev=1608767&view=diff ============================================================================== --- incubator/npanday/trunk/components/dotnet-core/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java (original) +++ incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java Tue Jul 8 13:18:55 2014 @@ -19,12 +19,17 @@ import npanday.resolver.ArtifactResolvin /** * PDB assemblies contributor class. + * @plexus.component role="npanday.resolver.ArtifactResolvingContributor" role-hint="pdb" */ public class PdbAssemblyResolver extends AbstractLogEnabled implements ArtifactResolvingContributor { + /** @plexus.requirement */ ArtifactResolver mavenResolver; + + /** @plexus.requirement */ ArtifactFactory artifactFactory; + /** @plexus.requirement */ NPandayResolutionCache cache; /** Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/java/npanday/resolver/resolvers/PdbAssemblyResolver.java ------------------------------------------------------------------------------ svn:eol-style = native Added: incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/npanday/executable-plugins.xml URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/npanday/executable-plugins.xml?rev=1608767&view=auto ============================================================================== --- incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/npanday/executable-plugins.xml (added) +++ incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/npanday/executable-plugins.xml Tue Jul 8 13:18:55 2014 @@ -0,0 +1,73 @@ +<!-- + ~ 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. + --> +<executablePlugins> + + <executablePlugin> + <identifier>TLBIMP</identifier> + <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass> + <vendor>MICROSOFT</vendor> + <executable>tlbimp</executable> + <profile>TLBIMP</profile> + <frameworkVersions> + <frameworkVersion>4.5.1</frameworkVersion> + <frameworkVersion>4.5</frameworkVersion> + <frameworkVersion>4.0</frameworkVersion> + <frameworkVersion>3.5</frameworkVersion> + <frameworkVersion>3.0</frameworkVersion> + <frameworkVersion>2.0.50727</frameworkVersion> + <frameworkVersion>1.1.4322</frameworkVersion> + </frameworkVersions> + <platforms> + <platform> + <operatingSystem>Windows</operatingSystem> + </platform> + </platforms> + <probingPaths> + <!-- TODO: this should be broken up as XSD is, just means for now you always get newest available tools version, but will target right framework --> + <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0\12.0@SDK40ToolsPath}</probingPath> + <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0\11.0@SDK40ToolsPath}</probingPath> + <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\11.0@SDK40ToolsPath}</probingPath> + <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0@SDK40ToolsPath}</probingPath> + <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows@CurrentInstallFolder}\bin</probingPath> + <probingPath>${HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0@SDK35ToolsPath}</probingPath> + </probingPaths> + </executablePlugin> + <executablePlugin> + <identifier>REG</identifier> + <pluginClass>npanday.executable.impl.DefaultNetExecutable</pluginClass> + <vendor>MICROSOFT</vendor> + <executable>reg</executable> + <profile>REG</profile> + <frameworkVersions> + <frameworkVersion>4.5.1</frameworkVersion> + <frameworkVersion>4.5</frameworkVersion> + <frameworkVersion>4.0</frameworkVersion> + <frameworkVersion>3.5</frameworkVersion> + <frameworkVersion>3.0</frameworkVersion> + <frameworkVersion>2.0.50727</frameworkVersion> + <frameworkVersion>1.1.4322</frameworkVersion> + </frameworkVersions> + <platforms> + <platform> + <operatingSystem>Windows</operatingSystem> + </platform> + </platforms> + </executablePlugin> + +</executablePlugins> Propchange: incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/npanday/executable-plugins.xml ------------------------------------------------------------------------------ svn:eol-style = native Modified: incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/plexus/components.xml URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/plexus/components.xml?rev=1608767&r1=1608766&r2=1608767&view=diff ============================================================================== --- incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/plexus/components.xml (original) +++ incubator/npanday/trunk/components/dotnet-executable/src/main/resources/META-INF/plexus/components.xml Tue Jul 8 13:18:55 2014 @@ -19,5 +19,18 @@ <component-set> <components> <!-- created through annotations --> + <component> + <role>npanday.resolver.NPandayArtifactResolver</role> + <implementation>npanday.resolver.DefaultNPandayArtifactResolver</implementation> + <requirements> + <requirement> + <role>org.apache.maven.artifact.resolver.ArtifactResolver</role> + </requirement> + <requirement> + <role>npanday.resolver.ArtifactResolvingContributor</role> + <field-name>contributors</field-name> + </requirement> + </requirements> + </component> </components> </component-set>