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/08/11 17:31:25 UTC
svn commit: r564941 - in /incubator/nmaven/trunk:
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-core/src/main/java/org/apache...
Author: sisbell
Date: Sat Aug 11 10:31:23 2007
New Revision: 564941
URL: http://svn.apache.org/viewvc?view=rev&rev=564941
Log:
Deploy functionality with attached artifacts (exe.config).
Modified:
incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java
incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java
incubator/nmaven/trunk/components/dotnet-core/src/main/java/org/apache/maven/dotnet/PathUtil.java
incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/RepositoryConverter.java
incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImpl.java
incubator/nmaven/trunk/components/dotnet-repository/src/test/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImplTest.java
incubator/nmaven/trunk/plugins/maven-deploy-plugin/src/main/java/org/apache/maven/dotnet/plugins/DeployMojo.java
incubator/nmaven/trunk/plugins/maven-repository-plugin/src/main/java/org/apache/maven/dotnet/plugin/repository/RepositoryConverterForArtifactMojo.java
Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java?view=diff&rev=564941&r1=564940&r2=564941
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/ApplicationConfig.java Sat Aug 11 10:31:23 2007
@@ -16,10 +16,10 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.maven.dotnet.artifact;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.dotnet.PathUtil;
import java.io.File;
@@ -32,18 +32,26 @@
{
/**
+ * Returns the Maven repository path of the exe.config file.
+ *
+ * @param localRepository the local maven repository
+ * @return the Maven repository path of the exe.config file
+ */
+ File getRepositoryPath( File localRepository );
+
+ /**
* Returns the source path of the (original) *.exe.config file
*
* @return the source path of the (original) *.exe.config file
*/
- String getConfigSourcePath();
+ File getConfigSourcePath();
/**
* Returns the target path of the (copied) *.exe.config file
*
* @return the target path of the (copied) *.exe.config file
*/
- String getConfigDestinationPath();
+ File getConfigBuildPath();
/**
* Factory class for generating default executable configs.
@@ -61,29 +69,41 @@
* Creates the the application config for the specified artifact. By default, the config source path for the
* exe.config is located within the project's src/main/config directory. Neither parameter value may be null.
*
- * @param artifact the executable artifact to which the exe.config file is associated
- * @param projectBaseDirectory the base directory of the build (which contains the pom.xml file)
+ * @param artifact the executable artifact to which the exe.config file is associated
+ * @param projectBaseDirectory the base directory of the build (which contains the pom.xml file)
* @param projectBuildDirectory the target directory of the build
* @return the application config for the specified artifact
*/
public static ApplicationConfig createDefaultApplicationConfig( final Artifact artifact,
final File projectBaseDirectory,
- final File projectBuildDirectory)
+ final File projectBuildDirectory )
{
return new ApplicationConfig()
{
- public String getConfigSourcePath()
+ public File getRepositoryPath( File localRepository )
+ {
+ File basedir = PathUtil.getMavenLocalRepositoryFileFor( artifact, localRepository ).getParentFile();
+ StringBuffer buffer = new StringBuffer();
+ buffer.append( artifact.getArtifactId() ).append( "-" ).append( artifact.getVersion() );
+ if ( artifact.getClassifier() != null )
+ {
+ buffer.append( "-" ).append( artifact.getClassifier() );
+ }
+ buffer.append( ".exe.config" );
+
+ return new File( basedir, buffer.toString() );
+ }
+
+ public File getConfigSourcePath()
{
- return new File(
- projectBaseDirectory + "/src/main/config/" + artifact.getArtifactId() + ".exe.config" )
- .getAbsolutePath();
+ return new File( projectBaseDirectory,
+ "/src/main/config/" + artifact.getArtifactId() + ".exe.config" );
}
- public String getConfigDestinationPath()
+ public File getConfigBuildPath()
{
- return projectBuildDirectory + File.separator + artifact.getArtifactId() +
- ".exe.config";
+ return new File( projectBuildDirectory, artifact.getArtifactId() + ".exe.config" );
}
};
}
Modified: incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java?view=diff&rev=564941&r1=564940&r2=564941
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java (original)
+++ incubator/nmaven/trunk/components/dotnet-artifact/src/main/java/org/apache/maven/dotnet/artifact/impl/ArtifactInstallerImpl.java Sat Aug 11 10:31:23 2007
@@ -308,7 +308,7 @@
throws ArtifactInstallationException
{
ApplicationConfig applicationConfig = artifactContext.getApplicationConfigFor( artifact );
- File configExeFile = new File( applicationConfig.getConfigDestinationPath() );
+ File configExeFile = applicationConfig.getConfigBuildPath();
if ( configExeFile.exists() )
{
try
Modified: incubator/nmaven/trunk/components/dotnet-core/src/main/java/org/apache/maven/dotnet/PathUtil.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-core/src/main/java/org/apache/maven/dotnet/PathUtil.java?view=diff&rev=564941&r1=564940&r2=564941
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-core/src/main/java/org/apache/maven/dotnet/PathUtil.java (original)
+++ incubator/nmaven/trunk/components/dotnet-core/src/main/java/org/apache/maven/dotnet/PathUtil.java Sat Aug 11 10:31:23 2007
@@ -19,6 +19,7 @@
package org.apache.maven.dotnet;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.repository.layout.DefaultRepositoryLayout;
import java.io.File;
import java.util.logging.Logger;
@@ -65,6 +66,29 @@
//String processArchitecture = ( artifact.getType().equals( "gac_generic" ) );
return new File( gacRepository, "\\" + artifact.getType() + "\\" + artifact.getArtifactId() + "\\" + version +
"__" + artifact.getClassifier() + "\\" + artifact.getArtifactId() + ".dll" );
+ }
+
+ /**
+ * Returns the path of the artifact within the local repository using the default repository layout.
+ *
+ * @param artifact the artifact to find the path of. This value should not be null.
+ * @param localRepository the local repository. This value should not be null.
+ * @return the path of the artifact within the local maven repository or null if either of the specified
+ * parameters is null
+ */
+ public static File getMavenLocalRepositoryFileFor( Artifact artifact, File localRepository )
+ {
+ if ( artifact == null )
+ {
+ logger.warning( "NMAVEN-040-007: Artifact is null - Cannot get repository file." );
+ return null;
+ }
+ if ( localRepository == null )
+ {
+ logger.warning( "NMAVEN-040-008: Local Repository is null - Cannot get repository file." );
+ return null;
+ }
+ return new File( localRepository, new DefaultRepositoryLayout().pathOf( artifact ) );
}
/**
Modified: incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/RepositoryConverter.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/RepositoryConverter.java?view=diff&rev=564941&r1=564940&r2=564941
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/RepositoryConverter.java (original)
+++ incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/RepositoryConverter.java Sat Aug 11 10:31:23 2007
@@ -20,6 +20,7 @@
import org.openrdf.repository.Repository;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.dotnet.artifact.ApplicationConfig;
import java.io.File;
import java.io.IOException;
@@ -45,6 +46,7 @@
void convertRepositoryFormat( Repository repository, File mavenRepository )
throws IOException;
- void convertRepositoryFormatFor( Artifact artifact, Repository repository, File mavenRepository)
+ void convertRepositoryFormatFor( Artifact artifact, ApplicationConfig applicationConfig, Repository repository,
+ File mavenRepository )
throws IOException;
}
Modified: incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImpl.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImpl.java?view=diff&rev=564941&r1=564940&r2=564941
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImpl.java (original)
+++ incubator/nmaven/trunk/components/dotnet-repository/src/main/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImpl.java Sat Aug 11 10:31:23 2007
@@ -24,6 +24,7 @@
import org.apache.maven.dotnet.dao.ProjectFactory;
import org.apache.maven.dotnet.registry.DataAccessObjectRegistry;
import org.apache.maven.dotnet.ArtifactType;
+import org.apache.maven.dotnet.artifact.ApplicationConfig;
import org.apache.maven.model.Model;
import org.apache.maven.model.io.xpp3.MavenXpp3Writer;
import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout;
@@ -117,21 +118,24 @@
continue;
}
}
+
if ( !artifact.getType().equals( "exe.config" ) )//This is attached
{
- handler = new DefaultArtifactHandler( "pom" );
- artifact.setArtifactHandler( handler );
+ ArtifactHandler pomhandler = new DefaultArtifactHandler( "pom" );
+ artifact.setArtifactHandler( pomhandler );
File pomFile = new File( mavenRepository, pathOfPom( artifact ) );
FileWriter fileWriter = new FileWriter( pomFile );
new MavenXpp3Writer().write( fileWriter, model );
IOUtil.close( fileWriter );
}
+ artifact.setArtifactHandler( handler );
}
dao.closeConnection();
}
- public void convertRepositoryFormatFor( Artifact artifact, Repository repository, File mavenRepository )
+ public void convertRepositoryFormatFor( Artifact artifact, ApplicationConfig applicationConfig,
+ Repository repository, File mavenRepository )
throws IOException
{
ProjectDao dao = (ProjectDao) daoRegistry.find( "dao:project" );
@@ -163,6 +167,15 @@
}
}
+ if ( applicationConfig != null )
+ {
+ File destPath = applicationConfig.getConfigBuildPath();
+ if ( destPath.exists() )
+ {
+ FileUtils.copyFile( destPath, applicationConfig.getRepositoryPath( mavenRepository ) );
+ }
+ }
+
if ( !artifact.getType().equals( "exe.config" ) )//This is attached
{
ArtifactHandler pomhandler = new DefaultArtifactHandler( "pom" );
@@ -173,7 +186,7 @@
new MavenXpp3Writer().write( fileWriter, model );
IOUtil.close( fileWriter );
}
-
+
artifact.setArtifactHandler( handler );
dao.closeConnection();
Modified: incubator/nmaven/trunk/components/dotnet-repository/src/test/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImplTest.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/components/dotnet-repository/src/test/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImplTest.java?view=diff&rev=564941&r1=564940&r2=564941
==============================================================================
--- incubator/nmaven/trunk/components/dotnet-repository/src/test/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImplTest.java (original)
+++ incubator/nmaven/trunk/components/dotnet-repository/src/test/java/org/apache/maven/dotnet/repository/impl/RepositoryConverterImplTest.java Sat Aug 11 10:31:23 2007
@@ -74,7 +74,7 @@
artifact.setFile( artifactFile );
try
{
- repositoryConverter.convertRepositoryFormatFor( artifact, repository, testRepo );
+ repositoryConverter.convertRepositoryFormatFor( artifact, null, repository, testRepo );
}
catch ( IOException e )
{
Modified: incubator/nmaven/trunk/plugins/maven-deploy-plugin/src/main/java/org/apache/maven/dotnet/plugins/DeployMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-deploy-plugin/src/main/java/org/apache/maven/dotnet/plugins/DeployMojo.java?view=diff&rev=564941&r1=564940&r2=564941
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-deploy-plugin/src/main/java/org/apache/maven/dotnet/plugins/DeployMojo.java (original)
+++ incubator/nmaven/trunk/plugins/maven-deploy-plugin/src/main/java/org/apache/maven/dotnet/plugins/DeployMojo.java Sat Aug 11 10:31:23 2007
@@ -3,16 +3,18 @@
import org.apache.maven.artifact.deployer.ArtifactDeployer;
import org.apache.maven.artifact.deployer.ArtifactDeploymentException;
import org.apache.maven.artifact.repository.ArtifactRepository;
-import org.apache.maven.artifact.metadata.ArtifactMetadata;
import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.factory.ArtifactFactory;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.artifact.ProjectArtifactMetadata;
-import org.apache.maven.dotnet.artifact.ArtifactContext;
+import org.apache.maven.dotnet.artifact.ApplicationConfig;
import java.io.File;
+import java.util.Set;
+import java.util.HashSet;
/**
* Deploy's dlls
@@ -55,21 +57,43 @@
/**
* @component
*/
- private ArtifactContext artifactContext;
+ private ArtifactFactory artifactFactory;
public void execute()
throws MojoExecutionException, MojoFailureException
{
- Artifact artifact = project.getArtifact();
+ Artifact projectArtifact = project.getArtifact();
+ deployArtifacts.add( projectArtifact );
if ( ! "pom".equals( packaging ) )
{
- artifact.addMetadata( new ProjectArtifactMetadata( artifact, project.getFile() ) );
+ projectArtifact.addMetadata( new ProjectArtifactMetadata( projectArtifact, project.getFile() ) );
}
-
+
+ ApplicationConfig config = ApplicationConfig.Factory.createDefaultApplicationConfig( project.getArtifact(),
+ project.getBasedir(),
+ new File(
+ project.getBuild().getDirectory() ) );
+ File exePath = config.getRepositoryPath( new File( localRepo.getBasedir() ) );
+ if ( exePath.exists() )
+ {
+ Artifact attachedArtifact = artifactFactory.createArtifact( projectArtifact.getGroupId(),
+ projectArtifact.getArtifactId(),
+ project.getVersion(), packaging, "exe.config" );
+ try
+ {
+ artifactDeployer.deploy( exePath, attachedArtifact,
+ project.getDistributionManagementArtifactRepository(), localRepo );
+ }
+ catch ( ArtifactDeploymentException e )
+ {
+ throw new MojoExecutionException( "NMAVEN-DEPLOY: Deploy Failed", e );
+ }
+ }
+
try
{
- artifactDeployer.deploy( project.getArtifact().getFile(), artifact,
+ artifactDeployer.deploy( project.getArtifact().getFile(), projectArtifact,
project.getDistributionManagementArtifactRepository(), localRepo );
}
catch ( ArtifactDeploymentException e )
Modified: incubator/nmaven/trunk/plugins/maven-repository-plugin/src/main/java/org/apache/maven/dotnet/plugin/repository/RepositoryConverterForArtifactMojo.java
URL: http://svn.apache.org/viewvc/incubator/nmaven/trunk/plugins/maven-repository-plugin/src/main/java/org/apache/maven/dotnet/plugin/repository/RepositoryConverterForArtifactMojo.java?view=diff&rev=564941&r1=564940&r2=564941
==============================================================================
--- incubator/nmaven/trunk/plugins/maven-repository-plugin/src/main/java/org/apache/maven/dotnet/plugin/repository/RepositoryConverterForArtifactMojo.java (original)
+++ incubator/nmaven/trunk/plugins/maven-repository-plugin/src/main/java/org/apache/maven/dotnet/plugin/repository/RepositoryConverterForArtifactMojo.java Sat Aug 11 10:31:23 2007
@@ -23,7 +23,7 @@
import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.project.MavenProject;
import org.apache.maven.dotnet.repository.RepositoryConverter;
-import org.apache.maven.dotnet.artifact.ArtifactContext;
+import org.apache.maven.dotnet.artifact.ApplicationConfig;
import org.openrdf.repository.sail.SailRepository;
import org.openrdf.repository.RepositoryException;
import org.openrdf.sail.memory.MemoryStore;
@@ -56,6 +56,7 @@
*/
private RepositoryConverter repositoryConverter;
+
public void execute()
throws MojoExecutionException, MojoFailureException
{
@@ -70,9 +71,14 @@
throw new MojoExecutionException( e.getMessage() );
}
+ ApplicationConfig config = ApplicationConfig.Factory.createDefaultApplicationConfig( project.getArtifact(),
+ project.getBasedir(),
+ new File(
+ project.getBuild().getDirectory() ) );
try
{
- repositoryConverter.convertRepositoryFormatFor( project.getArtifact(), rdfRepository, localRepository );
+ repositoryConverter.convertRepositoryFormatFor( project.getArtifact(), config, rdfRepository,
+ localRepository );
}
catch ( IOException e )
{