You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by fe...@apache.org on 2009/10/09 14:20:30 UTC
svn commit: r823525 - in /directory/studio-plugin/trunk/src:
main/java/org/apache/directory/studio/maven/plugins/ site/apt/examples/
Author: felixk
Date: Fri Oct 9 12:20:29 2009
New Revision: 823525
URL: http://svn.apache.org/viewvc?rev=823525&view=rev
Log:
Fix for DIRSTUDIO-540 (Patch to copy source bundles along with bundles during ):
Applied patch with some small modifications, thanks to Hasan for the Patch.
Update documentation.
Modified:
directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java
directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioCopyEclipseDependencyMojo.java
directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioReplaceFileInJarMojo.java
directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioUnpackPrefixedMojo.java
directory/studio-plugin/trunk/src/site/apt/examples/copy-eclipse-artifact.apt
Modified: directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java
URL: http://svn.apache.org/viewvc/directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java?rev=823525&r1=823524&r2=823525&view=diff
==============================================================================
--- directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java (original)
+++ directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/AbstractStudioMojo.java Fri Oct 9 12:20:29 2009
@@ -374,14 +374,16 @@
*
* @throws MojoExecutionException
*/
- protected void completeArtifactItems( List<ArtifactItem> artifactItems ) throws MojoExecutionException
+ protected void completeArtifactItems( List<ArtifactItem> artifactItems, boolean relaxed )
+ throws MojoExecutionException
{
- try
+ List<String> warnings = new ArrayList<String>();
+ // Get and complete artifacts
+ for ( Iterator<ArtifactItem> artifactItem = artifactItems.iterator(); artifactItem.hasNext(); )
{
- // Get and complete artifacts
- for ( Iterator<ArtifactItem> artifactItem = artifactItems.iterator(); artifactItem.hasNext(); )
+ ArtifactItem item = artifactItem.next();
+ try
{
- ArtifactItem item = artifactItem.next();
// make sure we have a version.
if ( StringUtils.isEmpty( item.getVersion() ) )
{
@@ -389,10 +391,30 @@
}
item.setArtifact( this.getArtifact( item ) );
}
+ catch ( Exception e )
+ {
+ if ( relaxed )
+ {
+ warnings.add( "Following source artifact is not available in the local repository '"
+ + item.getGroupId() + ":" + item.getArtifactId() + ":" + item.getType() + ":"
+ + item.getClassifier() + ":" + item.getVersion() + "'" );
+ }
+ else
+ {
+ throw new MojoExecutionException(
+ "Following source artifact is not available in the local repository '" + item.getGroupId()
+ + ":" + item.getArtifactId() + ":" + item.getType() + ":" + item.getClassifier() + ":"
+ + item.getVersion() + "'", e );
+ }
+ }
}
- catch ( Exception e )
+
+ if ( relaxed && !warnings.isEmpty() )
{
- throw new MojoExecutionException( "", e );
+ for ( String warn : warnings )
+ {
+ getLog().warn( warn );
+ }
}
}
Modified: directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioCopyEclipseDependencyMojo.java
URL: http://svn.apache.org/viewvc/directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioCopyEclipseDependencyMojo.java?rev=823525&r1=823524&r2=823525&view=diff
==============================================================================
--- directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioCopyEclipseDependencyMojo.java (original)
+++ directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioCopyEclipseDependencyMojo.java Fri Oct 9 12:20:29 2009
@@ -24,11 +24,13 @@
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import org.apache.commons.io.FileUtils;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.shared.osgi.DefaultMaven2OsgiConverter;
import org.apache.maven.shared.osgi.Maven2OsgiConverter;
+import org.codehaus.plexus.util.StringUtils;
/**
@@ -48,6 +50,26 @@
public class StudioCopyEclipseDependencyMojo extends AbstractStudioMojo
{
+ private static final String SOURCE = "source";
+
+ private static final String SOURCES = "sources";
+
+ /**
+ * Whether to include the sources for the artifacts
+ *
+ * @parameter default-value="false"
+ * @since 1.0.3
+ */
+ protected boolean includeSources;
+
+ /**
+ * Whether not to bail out if a source artifact for the dependency is not found
+ *
+ * @parameter default-value="true"
+ * @since 1.0.3
+ */
+ protected boolean relaxed;
+
/**
* Collection of ArtifactItems to work on. (ArtifactItem contains groupId,
* artifactId, version, type, classifier, location, destFile, markerFile and
@@ -81,8 +103,16 @@
public void execute() throws MojoExecutionException
{
- final Maven2OsgiConverter maven2OsgiConverter = new DefaultMaven2OsgiConverter();
- completeArtifactItems( artifactItems );
+ Maven2OsgiConverter maven2OsgiConverter = new DefaultMaven2OsgiConverter();
+ executeForMainArtifacts( maven2OsgiConverter );
+ if ( includeSources )
+ executeForSourceArtifacts( maven2OsgiConverter );
+ }
+
+
+ private void executeForMainArtifacts( Maven2OsgiConverter maven2OsgiConverter ) throws MojoExecutionException
+ {
+ completeArtifactItems( artifactItems, false );
if ( !destinationDirectory.exists() && !destinationDirectory.mkdirs() )
{
@@ -108,6 +138,58 @@
}
+ private void executeForSourceArtifacts( Maven2OsgiConverter maven2OsgiConverter ) throws MojoExecutionException
+ {
+ List<ArtifactItem> sourceArtifactItems = getCopyArtifactList();
+ completeArtifactItems( sourceArtifactItems, relaxed );
+
+ for ( Iterator<ArtifactItem> sourceItem = sourceArtifactItems.iterator(); sourceItem.hasNext(); )
+ {
+ ArtifactItem item = sourceItem.next();
+
+ if ( item.getArtifact() != null
+ && maven2OsgiConverter.getBundleSymbolicName( item.getArtifact() ).endsWith( SOURCE ) )
+ {
+ final File destFile = new File( destinationDirectory.getAbsoluteFile() + File.separator
+ + maven2OsgiConverter.getBundleFileName( item.getArtifact() ) );
+ getLog().info(
+ "Copying source artifact " + item.getArtifactId() + " to\n "
+ + destFile.getAbsolutePath() );
+ try
+ {
+ FileUtils.copyFile( item.getArtifact().getFile(), destFile );
+ }
+ catch ( IOException ioe )
+ {
+ throw new MojoExecutionException( "Can't copy file.", ioe );
+ }
+ }
+ }
+ }
+
+
+ private List<ArtifactItem> getCopyArtifactList()
+ {
+ List<ArtifactItem> sourceArtifactItems = new ArrayList<ArtifactItem>();
+ for ( Iterator<ArtifactItem> i = artifactItems.iterator(); i.hasNext(); )
+ {
+ ArtifactItem artifactItem = ( ArtifactItem ) i.next();
+ if ( StringUtils.isEmpty( artifactItem.getClassifier() ) || !SOURCES.equals( artifactItem.getClassifier() ) )
+ {
+ ArtifactItem sourceItem = new ArtifactItem();
+ sourceItem.setGroupId( artifactItem.getGroupId() );
+ sourceItem.setArtifactId( artifactItem.getArtifactId() );
+ sourceItem.setType( artifactItem.getType() );
+ sourceItem.setClassifier( SOURCES );
+ sourceItem.setVersion( artifactItem.getVersion() );
+ sourceArtifactItems.add( sourceItem );
+ }
+ }
+
+ return sourceArtifactItems;
+ }
+
+
/**
* @param artifactItems
* the artifactItems to set
Modified: directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioReplaceFileInJarMojo.java
URL: http://svn.apache.org/viewvc/directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioReplaceFileInJarMojo.java?rev=823525&r1=823524&r2=823525&view=diff
==============================================================================
--- directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioReplaceFileInJarMojo.java (original)
+++ directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioReplaceFileInJarMojo.java Fri Oct 9 12:20:29 2009
@@ -108,7 +108,7 @@
{
final Maven2OsgiConverter maven2OsgiConverter = new DefaultMaven2OsgiConverter();
- completeArtifactItems( artifactItems );
+ completeArtifactItems( artifactItems, false );
// Add file to packed file
for ( Iterator<ArtifactItem> artifactItem = artifactItems.iterator(); artifactItem.hasNext(); )
Modified: directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioUnpackPrefixedMojo.java
URL: http://svn.apache.org/viewvc/directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioUnpackPrefixedMojo.java?rev=823525&r1=823524&r2=823525&view=diff
==============================================================================
--- directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioUnpackPrefixedMojo.java (original)
+++ directory/studio-plugin/trunk/src/main/java/org/apache/directory/studio/maven/plugins/StudioUnpackPrefixedMojo.java Fri Oct 9 12:20:29 2009
@@ -79,7 +79,7 @@
public void execute() throws MojoExecutionException
{
final Maven2OsgiConverter maven2OsgiConverter = new DefaultMaven2OsgiConverter();
- completeArtifactItems( artifactItems );
+ completeArtifactItems( artifactItems, false );
for ( Iterator<ArtifactItem> artifactItem = artifactItems.iterator(); artifactItem.hasNext(); )
{
ArtifactItem item = artifactItem.next();
Modified: directory/studio-plugin/trunk/src/site/apt/examples/copy-eclipse-artifact.apt
URL: http://svn.apache.org/viewvc/directory/studio-plugin/trunk/src/site/apt/examples/copy-eclipse-artifact.apt?rev=823525&r1=823524&r2=823525&view=diff
==============================================================================
--- directory/studio-plugin/trunk/src/site/apt/examples/copy-eclipse-artifact.apt (original)
+++ directory/studio-plugin/trunk/src/site/apt/examples/copy-eclipse-artifact.apt Fri Oct 9 12:20:29 2009
@@ -44,6 +44,8 @@
</goals>
<configuration>
<destinationDirectory>${studio-dir}/plugins</destinationDirectory>
+ <includeSources>false</includeSources>
+ <relaxed>true</relaxed>
<artifactItems>
<artifactItem>
<groupId>org.apache.directory.studio</groupId>