You are viewing a plain text version of this content. The canonical link for it is here.
Posted to nmaven-commits@incubator.apache.org by si...@apache.org on 2007/02/28 19:45:26 UTC
svn commit: r512930 - in /incubator/nmaven/branches/SI_IDE: ./
components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/
components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/
components/dotnet-artifact/src/mai...
Author: sisbell
Date: Wed Feb 28 11:45:25 2007
New Revision: 512930
URL: http://svn.apache.org/viewvc?view=rev&rev=512930
Log:
Added profile support for .NET dependencies (from the net-dependencies.xml file). This allows the maven plugins to have different sets of .NET dependencies, so we can target different build environments for NMaven.
Added:
incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependenciesRepository.java (with props)
incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java (with props)
incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java (with props)
Removed:
incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepository.java
Modified:
incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java
incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml
incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml
incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/registry-config.xml
incubator/nmaven/branches/SI_IDE/components/dotnet-model/netdependency/netdependency.mdo
incubator/nmaven/branches/SI_IDE/maven-dotnet.iml
incubator/nmaven/branches/SI_IDE/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java
Added: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependenciesRepository.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependenciesRepository.java?view=auto&rev=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependenciesRepository.java (added)
+++ incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependenciesRepository.java Wed Feb 28 11:45:25 2007
@@ -0,0 +1,68 @@
+/*
+ * 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.
+ */
+package org.apache.maven.dotnet.artifact;
+
+import org.apache.maven.dotnet.registry.Repository;
+import org.apache.maven.dotnet.registry.RepositoryRegistry;
+import org.apache.maven.model.Dependency;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.util.Hashtable;
+import java.util.List;
+
+/**
+ * Provides methods for loading and reading the net dependency config file.
+ *
+ * @author Shane Isbell
+ */
+public interface NetDependenciesRepository
+ extends Repository
+{
+ /**
+ * @see org.apache.maven.dotnet.registry.Repository#load(java.io.InputStream, java.util.Hashtable)
+ */
+ void load( InputStream inputStream, Hashtable properties )
+ throws IOException;
+
+ /**
+ * @see org.apache.maven.dotnet.registry.Repository#setRepositoryRegistry(org.apache.maven.dotnet.registry.RepositoryRegistry)
+ */
+ void setRepositoryRegistry( RepositoryRegistry repositoryRegistry );
+
+ /**
+ * Returns a list of .NET dependencies as given within the net dependencies config file. This dependency list
+ * is external to the pom file dependencies. This separation is necessary since some Java Maven plugins
+ * - which themselves are necessary for building .NET applications - may have .NET executable dependencies that
+ * have not been built yet and can't be resolved.
+ *
+ * @return a list of .NET dependencies as given within the net dependencies config file
+ */
+ List<Dependency> getDependencies();
+
+ /**
+ * Returns a list of .NET dependencies as given within the net dependencies config file that matches ALL of the
+ * specified match policies.
+ *
+ * @param matchPolicies the policies to match against the dependencies
+ * @return a list of .NET dependencies as given within the net dependencies config file that matches ALL of the
+ * specified match policies
+ */
+ List<Dependency> getDependenciesFor( List<NetDependencyMatchPolicy> matchPolicies );
+}
Propchange: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependenciesRepository.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java?view=auto&rev=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java (added)
+++ incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java Wed Feb 28 11:45:25 2007
@@ -0,0 +1,32 @@
+/*
+ * 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.
+ */
+package org.apache.maven.dotnet.artifact;
+
+import org.apache.maven.dotnet.model.netdependency.NetDependency;
+
+public interface NetDependencyMatchPolicy
+{
+ /**
+ * Return true if the policy matches the specified net dependency, otherwise returns false.
+ *
+ * @param netDependency the net dependency to match
+ * @return true if the policy matches the specified net dependency, otherwise returns false
+ */
+ boolean match( NetDependency netDependency );
+}
Propchange: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/NetDependencyMatchPolicy.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java?view=diff&rev=512930&r1=512929&r2=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java (original)
+++ incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactContextImpl.java Wed Feb 28 11:45:25 2007
@@ -111,8 +111,8 @@
*/
public List<Artifact> getArtifactsFor( String groupId, String artifactId, String version, String type )
{
- NetDependenciesRepository repository =
- (NetDependenciesRepository) repositoryRegistry.find( "net-dependencies" );
+ NetDependenciesRepositoryImpl repository =
+ (NetDependenciesRepositoryImpl) repositoryRegistry.find( "net-dependencies" );
if ( repository == null )
{
logger.warn(
Added: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java?view=auto&rev=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java (added)
+++ incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java Wed Feb 28 11:45:25 2007
@@ -0,0 +1,214 @@
+/*
+ * 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.
+ */
+package org.apache.maven.dotnet.artifact.impl;
+
+import org.apache.maven.dotnet.registry.Repository;
+import org.apache.maven.dotnet.registry.RepositoryRegistry;
+import org.apache.maven.dotnet.model.netdependency.NetDependency;
+import org.apache.maven.dotnet.model.netdependency.NetDependencyModel;
+import org.apache.maven.dotnet.model.netdependency.io.xpp3.NetDependencyXpp3Reader;
+import org.apache.maven.dotnet.artifact.NetDependenciesRepository;
+import org.apache.maven.dotnet.artifact.NetDependencyMatchPolicy;
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+import org.apache.maven.model.Dependency;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.versioning.VersionRange;
+import org.apache.maven.artifact.factory.ArtifactFactory;
+
+import java.util.List;
+import java.util.Hashtable;
+import java.util.ArrayList;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.InputStreamReader;
+
+
+/**
+ * Provides methods for loading and reading the net dependency config file.
+ *
+ * @author Shane Isbell
+ */
+public class NetDependenciesRepositoryImpl
+ implements NetDependenciesRepository
+{
+
+ /**
+ * List of net dependencies. These dependencies are intended to be executed directly from the local Maven repository,
+ * not to be compiled against.
+ */
+ private List<NetDependency> netDependencies;
+
+ /**
+ * The artifact factory, used for creating artifacts.
+ */
+ private ArtifactFactory artifactFactory;
+
+ /**
+ * Constructor. This method is intended to be invoked by the <code>RepositoryRegistry<code>, not by the
+ * application developer.
+ */
+ public NetDependenciesRepositoryImpl()
+ {
+ }
+
+ /**
+ * @see Repository#load(java.io.InputStream, java.util.Hashtable)
+ */
+ public void load( InputStream inputStream, Hashtable properties )
+ throws IOException
+ {
+ NetDependencyXpp3Reader xpp3Reader = new NetDependencyXpp3Reader();
+ Reader reader = new InputStreamReader( inputStream );
+ NetDependencyModel model;
+ try
+ {
+ model = xpp3Reader.read( reader );
+ }
+ catch ( XmlPullParserException e )
+ {
+ e.printStackTrace();
+ throw new IOException( "NMAVEN-062-000: Could not read plugins-compiler.xml" );
+ }
+ netDependencies = model.getNetDependencies();
+ }
+
+
+ /**
+ * @see Repository#setRepositoryRegistry(org.apache.maven.dotnet.registry.RepositoryRegistry)
+ */
+ public void setRepositoryRegistry( RepositoryRegistry repositoryRegistry )
+ {
+ }
+
+ /**
+ * Returns a list of .NET dependencies as given within the net dependencies config file. This dependency list
+ * is external to the pom file dependencies. This separation is necessary since some Java Maven plugins
+ * - which themselves are necessary for building .NET applications - may have .NET executable dependencies that
+ * have not been built yet and can't be resolved.
+ *
+ * @return a list of .NET dependencies as given within the net dependencies config file
+ */
+ public List<Dependency> getDependencies()
+ {
+ return getDependenciesFor(null);
+ }
+
+ /**
+ * @see NetDependenciesRepository#getDependenciesFor(java.util.List<org.apache.maven.dotnet.artifact.NetDependencyMatchPolicy>)
+ */
+ public List<Dependency> getDependenciesFor( List<NetDependencyMatchPolicy> matchPolicies )
+ {
+ if(matchPolicies == null) matchPolicies = new ArrayList<NetDependencyMatchPolicy>();
+
+ List<Dependency> dependencies = new ArrayList<Dependency>();
+ for ( NetDependency netDependency : netDependencies )
+ {
+ if(isMatch(netDependency, matchPolicies)) dependencies.add( netDependencyToDependency( netDependency ) );
+ }
+ return dependencies;
+ }
+
+ /**
+ * Intializes this repository.
+ *
+ * @param artifactFactory the artifact factory
+ */
+ void init( ArtifactFactory artifactFactory )
+ {
+ this.artifactFactory = artifactFactory;
+ }
+
+
+ /**
+ * Return true is the specified net dependency matches ALL of the specified match policies, otherwise returns false.
+ *
+ * @param netDependency the net dependency to match
+ * @param matchPolicies the match policies to use in matching the net dependency
+ * @return true is the specified net dependency matches ALL of the specified match policies, otherwise returns false
+ */
+ private boolean isMatch(NetDependency netDependency, List<NetDependencyMatchPolicy> matchPolicies)
+ {
+ for(NetDependencyMatchPolicy matchPolicy : matchPolicies)
+ {
+ if(!matchPolicy.match( netDependency)) return false;
+ }
+ return true;
+ }
+ /**
+ * Returns a list of artifacts that match the specified parameters. If the version or type parameters are null,
+ * then the returned list will include all versions and types.
+ *
+ * @param groupId the group ID of the artifact to match. This value should not be null.
+ * @param artifactId the artifact ID of the artifact to match. This value should not be null.
+ * @param version the version if the artifact to match.
+ * @param type the type of artifact to match
+ * @return a list of artifacts that match the specified parameters
+ */
+ List<Artifact> getArtifactsFor( String groupId, String artifactId, String version, String type )
+ {
+ List<Artifact> artifacts = new ArrayList<Artifact>();
+ for ( NetDependency netDependency : netDependencies )
+ {
+ if ( netDependency.getGroupId().equals( groupId ) && netDependency.getArtifactId().equals( artifactId ) &&
+ ( version == null || netDependency.getVersion().equals( version ) ) &&
+ ( type == null || netDependency.getType().equals( type ) ) )
+ {
+ artifacts.add( netDependencyToArtifact( netDependency ) );
+ }
+
+ }
+ return artifacts;
+ }
+
+ /**
+ * Copies the information from a <code>NetDependency</code> object to a <code>Dependency</code> object. This method
+ * is for converting from an NMaven specific model to a Maven model that can be used within the general Maven
+ * framework. Note that all artifacts automatically have a runtime scope since <code>NetDependencies</code> are
+ * always executables that are intended to be executed directly from the local Maven repository.
+ *
+ * @param netDependency the net dependency, which is the source to copy information from.
+ * @return dependency
+ */
+ private Dependency netDependencyToDependency( NetDependency netDependency )
+ {
+ Dependency dependency = new Dependency();
+ dependency.setArtifactId( netDependency.getArtifactId() );
+ dependency.setGroupId( netDependency.getGroupId() );
+ dependency.setType( netDependency.getType() );
+ dependency.setScope( Artifact.SCOPE_RUNTIME );
+ dependency.setVersion( netDependency.getVersion() );
+ return dependency;
+ }
+
+ /**
+ * Creates an artifact based on the information from a <code>NetDepencency</code> object. Note that all artifacts
+ * automatically have a runtime scope since <code>NetDependencies</code> are always executables that
+ * are intended to be executed directly from the local Maven repository.
+ *
+ * @param dependency the net dependency, which is the source to copy information from.
+ * @return artifact
+ */
+ private Artifact netDependencyToArtifact( NetDependency dependency )
+ {
+ return artifactFactory.createDependencyArtifact( dependency.getGroupId(), dependency.getArtifactId(),
+ VersionRange.createFromVersion( dependency.getVersion() ),
+ dependency.getType(), null, Artifact.SCOPE_RUNTIME, null );
+ }
+}
Propchange: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/NetDependenciesRepositoryImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml?view=diff&rev=512930&r1=512929&r2=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml (original)
+++ incubator/nmaven/branches/SI_IDE/components/dotnet-artifact/src/main/resources/META-INF/nmaven/artifact-registry.xml Wed Feb 28 11:45:25 2007
@@ -4,7 +4,7 @@
<repositories>
<repository>
<repository-name>net-dependencies</repository-name>
- <repository-class>org.apache.maven.dotnet.artifact.impl.NetDependenciesRepository</repository-class>
+ <repository-class>org.apache.maven.dotnet.artifact.impl.NetDependenciesRepositoryImpl</repository-class>
<repository-config>/META-INF/nmaven/net-dependencies.xml</repository-config>
</repository>
</repositories>
Modified: incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml?view=diff&rev=512930&r1=512929&r2=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml (original)
+++ incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/net-dependencies.xml Wed Feb 28 11:45:25 2007
@@ -1,14 +1,21 @@
<netDependencies>
- <netDependency>
- <groupId>NMaven.Plugin</groupId>
- <artifactId>NMaven.Plugin.Resx</artifactId>
- <versionId>0.14</versionId>
- <type>exe</type>
- </netDependency>
- <netDependency>
- <groupId>NMaven.Plugin</groupId>
- <artifactId>NMaven.Plugin.Settings</artifactId>
- <versionId>0.14</versionId>
- <type>exe</type>
- </netDependency>
+ <netDependency>
+ <groupId>NMaven.Plugin</groupId>
+ <artifactId>NMaven.Plugin.Resx</artifactId>
+ <version>0.14</version>
+ <type>exe</type>
+ </netDependency>
+ <netDependency>
+ <groupId>NMaven.Plugin</groupId>
+ <artifactId>NMaven.Plugin.Settings</artifactId>
+ <version>0.14</version>
+ <type>exe</type>
+ </netDependency>
+ <netDependency>
+ <groupId>NMaven.Plugin</groupId>
+ <artifactId>NMaven.Plugin.Solution</artifactId>
+ <version>0.14</version>
+ <type>exe</type>
+ <profile>withIde</profile>
+ </netDependency>
</netDependencies>
Modified: incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/registry-config.xml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/registry-config.xml?view=diff&rev=512930&r1=512929&r2=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/registry-config.xml (original)
+++ incubator/nmaven/branches/SI_IDE/components/dotnet-core/src/main/resources/META-INF/nmaven/registry-config.xml Wed Feb 28 11:45:25 2007
@@ -37,7 +37,7 @@
</repository>
<repository>
<repository-name>net-dependencies</repository-name>
- <repository-class>org.apache.maven.dotnet.artifact.impl.NetDependenciesRepository</repository-class>
+ <repository-class>org.apache.maven.dotnet.artifact.impl.NetDependenciesRepositoryImpl</repository-class>
<repository-config>/META-INF/nmaven/net-dependencies.xml</repository-config>
</repository>
</repositories>
Modified: incubator/nmaven/branches/SI_IDE/components/dotnet-model/netdependency/netdependency.mdo
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/components/dotnet-model/netdependency/netdependency.mdo?view=diff&rev=512930&r1=512929&r2=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/components/dotnet-model/netdependency/netdependency.mdo (original)
+++ incubator/nmaven/branches/SI_IDE/components/dotnet-model/netdependency/netdependency.mdo Wed Feb 28 11:45:25 2007
@@ -33,7 +33,7 @@
<description></description>
</field>
<field>
- <name>versionId</name>
+ <name>version</name>
<version>1.0.0</version>
<type>String</type>
<description>
@@ -47,6 +47,12 @@
</field>
<field>
<name>type</name>
+ <version>1.0.0</version>
+ <type>String</type>
+ <description></description>
+ </field>
+ <field>
+ <name>profile</name>
<version>1.0.0</version>
<type>String</type>
<description></description>
Modified: incubator/nmaven/branches/SI_IDE/maven-dotnet.iml
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/maven-dotnet.iml?view=diff&rev=512930&r1=512929&r2=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/maven-dotnet.iml (original)
+++ incubator/nmaven/branches/SI_IDE/maven-dotnet.iml Wed Feb 28 11:45:25 2007
@@ -20,9 +20,11 @@
<sourceFolder url="file://$MODULE_DIR$/components/dotnet-vendor/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/plugins/maven-compile-plugin/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/plugins/maven-install-plugin/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/plugins/maven-link-plugin/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/plugins/maven-resgen-plugin/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/plugins/maven-resolver-plugin/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/plugins/maven-settings-plugin/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/plugins/maven-solution-plugin/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/plugins/maven-test-plugin/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/plugins/maven-vstudio-plugin/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/plugins/maven-webapp-plugin/src/main/java" isTestSource="false" />
Modified: incubator/nmaven/branches/SI_IDE/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/branches/SI_IDE/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java?view=diff&rev=512930&r1=512929&r2=512930
==============================================================================
--- incubator/nmaven/branches/SI_IDE/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java (original)
+++ incubator/nmaven/branches/SI_IDE/plugins/maven-resolver-plugin/src/main/java/org/apache/maven/dotnet/plugin/resolver/NetDependencyResolverMojo.java Wed Feb 28 11:45:25 2007
@@ -34,7 +34,9 @@
import java.util.ArrayList;
import org.apache.maven.dotnet.artifact.AssemblyResolver;
-import org.apache.maven.dotnet.artifact.impl.NetDependenciesRepository;
+import org.apache.maven.dotnet.artifact.NetDependenciesRepository;
+import org.apache.maven.dotnet.artifact.NetDependencyMatchPolicy;
+import org.apache.maven.dotnet.model.netdependency.NetDependency;
/**
* @author Shane Isbell
@@ -94,6 +96,8 @@
return;
}
+ String profile = System.getProperty( "Profile" );
+
RepositoryRegistry repositoryRegistry;
try
{
@@ -123,7 +127,9 @@
NetDependenciesRepository repository =
(NetDependenciesRepository) repositoryRegistry.find( "net-dependencies" );
- dependencies.addAll( repository.getDependencies() );
+ List<NetDependencyMatchPolicy> matchPolicies = new ArrayList<NetDependencyMatchPolicy>();
+ matchPolicies.add( new ProfileMatchPolicy( profile ) );
+ dependencies.addAll( repository.getDependenciesFor( matchPolicies ) );
getLog().info( "NMAVEN-1600-001: Found net dependencies: Number = " + dependencies.size() );
try
@@ -139,6 +145,33 @@
{
throw new MojoExecutionException( "NMAVEN-1600-003: Unable to resolve assemblies", e );
}
+ }
+
+ private class ProfileMatchPolicy
+ implements NetDependencyMatchPolicy
+ {
+ private String profile;
+
+ public ProfileMatchPolicy( String profile )
+ {
+ this.profile = profile;
+ }
+
+ public boolean match( NetDependency netDependency )
+ {
+ //If no profile is specified in net-dependencies.xml, it matches
+ if ( netDependency.getProfile() == null || netDependency.getProfile().trim().equals( "" ) )
+ {
+ return true;
+ }
+
+ if ( profile == null )
+ {
+ return false;
+ }
+
+ return profile.equals( netDependency.getProfile() );
+ }
}
}