You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by fg...@apache.org on 2006/09/17 16:13:55 UTC
svn commit: r447069 - in /maven/plugins/trunk/maven-eclipse-plugin/src:
main/java/org/apache/maven/plugin/eclipse/
main/resources/org/apache/maven/plugin/eclipse/
test/java/org/apache/maven/plugin/eclipse/
test/resources/projects/project-23/ test/resou...
Author: fgiust
Date: Sun Sep 17 07:13:54 2006
New Revision: 447069
URL: http://svn.apache.org/viewvc?view=rev&rev=447069
Log:
MECLIPSE-159 Generate additional "generic" eclipse configuration files
Added:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseConfigFile.java (with props)
maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/
maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/
maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.checkstyle
maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.classpath
maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.project
maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/pom.xml (with props)
Modified:
maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
maven/plugins/trunk/maven-eclipse-plugin/src/main/resources/org/apache/maven/plugin/eclipse/messages.properties
maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/AbstractEclipsePluginTestCase.java
maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java
Added: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseConfigFile.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseConfigFile.java?view=auto&rev=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseConfigFile.java (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseConfigFile.java Sun Sep 17 07:13:54 2006
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2001-2005 The Apache Software Foundation.
+ *
+ * Licensed 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.plugin.eclipse;
+
+/**
+ * Represents a generic configuration file, with a name and a content.
+ * @author Fabrizio Giustina
+ * @version $Id$
+ */
+public class EclipseConfigFile
+{
+ /**
+ * The name of the file.
+ */
+ private String name;
+
+ /**
+ * The file content.
+ */
+ private String content;
+
+ /**
+ * Getter for <code>content</code>.
+ * @return Returns the content.
+ */
+ public String getContent()
+ {
+ return this.content;
+ }
+
+ /**
+ * Setter for <code>content</code>.
+ * @param content The content to set.
+ */
+ public void setContent( String content )
+ {
+ this.content = content;
+ }
+
+ /**
+ * Getter for <code>name</code>.
+ * @return Returns the name.
+ */
+ public String getName()
+ {
+ return this.name;
+ }
+
+ /**
+ * Setter for <code>name</code>.
+ * @param name The name to set.
+ */
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+}
Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseConfigFile.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseConfigFile.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipseConfigFile.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java?view=diff&rev=447069&r1=447068&r2=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/java/org/apache/maven/plugin/eclipse/EclipsePlugin.java Sun Sep 17 07:13:54 2006
@@ -17,6 +17,7 @@
*/
import java.io.File;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
@@ -40,6 +41,7 @@
import org.apache.maven.plugin.ide.IdeDependency;
import org.apache.maven.plugin.ide.IdeUtils;
import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.FileUtils;
import org.codehaus.plexus.util.StringUtils;
/**
@@ -236,6 +238,30 @@
private File manifest;
/**
+ * Allow to configure additional generic configuration files for eclipse that will be written out to disk when
+ * running eclipse:eclipse. FOr each file you can specify the name and the text content.
+ *
+ * <pre>
+ * <additionalConfig>
+ * <file>
+ * <name>.checkstyle</name>
+ * <content>
+ * <![CDATA[<fileset-config file-format-version="1.2.0" simple-config="true">
+ * <fileset name="all" enabled="true" check-config-name="acme corporate style" local="false">
+ * <file-match-pattern match-pattern="." include-pattern="true"/>
+ * </fileset>
+ * <filter name="NonSrcDirs" enabled="true"/>
+ * </fileset-config>]]>
+ * </content>
+ * </file>
+ * </additionalConfig>
+ * </pre>
+ *
+ * @parameter
+ */
+ private EclipseConfigFile[] additionalConfig;
+
+ /**
* Parsed wtp version.
*/
private float wtpVersionFloat;
@@ -582,6 +608,31 @@
{
this.getLog().info( "The Maven Eclipse plugin runs in 'pde'-mode." );
new EclipseOSGiManifestWriter().init( getLog(), config ).write();
+ }
+
+ if ( additionalConfig != null )
+ {
+ for ( int j = 0; j < additionalConfig.length; j++ )
+ {
+ EclipseConfigFile file = additionalConfig[j];
+ File projectRelativeFile = new File( this.eclipseProjectDir, file.getName() );
+ if ( projectRelativeFile.isDirectory() )
+ {
+ // just ignore?
+ getLog().warn( Messages.getString( "EclipsePlugin.foundadir", //$NON-NLS-1$
+ projectRelativeFile.getAbsolutePath() ) );
+ }
+
+ try
+ {
+ FileUtils.fileWrite( projectRelativeFile.getAbsolutePath(), file.getContent() );
+ }
+ catch ( IOException e )
+ {
+ throw new MojoExecutionException( Messages.getString( "EclipsePlugin.cantwritetofile", //$NON-NLS-1$
+ projectRelativeFile.getAbsolutePath() ) );
+ }
+ }
}
getLog().info( Messages.getString( "EclipsePlugin.wrote", new Object[] { //$NON-NLS-1$
Modified: maven/plugins/trunk/maven-eclipse-plugin/src/main/resources/org/apache/maven/plugin/eclipse/messages.properties
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/main/resources/org/apache/maven/plugin/eclipse/messages.properties?view=diff&rev=447069&r1=447068&r2=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/main/resources/org/apache/maven/plugin/eclipse/messages.properties (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/main/resources/org/apache/maven/plugin/eclipse/messages.properties Sun Sep 17 07:13:54 2006
@@ -19,6 +19,7 @@
EclipsePlugin.missingjrecontainer=You did specify a list of classpath containers without the base org.eclipse.jdt.launching.JRE_CONTAINER.\n If you specify custom classpath containers you should also add org.eclipse.jdt.launching.JRE_CONTAINER to the list
EclipsePlugin.deprecatedpar=Plugin parameter "{0}" is deprecated, please use "{1}"
EclipsePlugin.cantcopyartifact=Can''t copy artifact "{0}".
+EclipsePlugin.foundadir={0} is a directory, ignoring.
EclipseSettingsWriter.wrotesettings=Wrote settings to {0}
EclipseSettingsWriter.cannotcreatesettings=Cannot create settings file
Modified: maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/AbstractEclipsePluginTestCase.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/AbstractEclipsePluginTestCase.java?view=diff&rev=447069&r1=447068&r2=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/AbstractEclipsePluginTestCase.java (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/AbstractEclipsePluginTestCase.java Sun Sep 17 07:13:54 2006
@@ -17,6 +17,7 @@
import java.io.BufferedReader;
import java.io.File;
+import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
@@ -130,8 +131,12 @@
"org.apache.maven.plugins:maven-eclipse-plugin:eclipse" } ), eventMonitor, new ConsoleDownloadMonitor(),
properties, basedir );
- assertFileEquals( localRepositoryDir.getCanonicalPath(), new File( basedir, "project" ),
- new File( projectOutputDir, ".project" ) );
+ File projectExpectedFile = new File( basedir, "project" );
+ if ( projectExpectedFile.exists() )
+ {
+ assertFileEquals( localRepositoryDir.getCanonicalPath(), projectExpectedFile, new File( projectOutputDir,
+ ".project" ) );
+ }
File classpathExpectedFile = new File( basedir, "classpath" );
if ( classpathExpectedFile.exists() )
@@ -168,6 +173,40 @@
new File( projectOutputDir, ".settings/org.eclipse.wst.common.component" ) );
}
+ compareDirectoryContent( basedir, projectOutputDir, "" );
+ compareDirectoryContent( basedir, projectOutputDir, ".settings/" );
+
+ }
+
+ /**
+ * @param basedir
+ * @param projectOutputDir
+ * @throws IOException
+ */
+ private void compareDirectoryContent( File basedir, File projectOutputDir, String additionalDir )
+ throws IOException
+ {
+ File expectedConfigDir = new File( basedir, "expected/" + additionalDir );
+
+ if ( expectedConfigDir.isDirectory() )
+ {
+ File[] files = expectedConfigDir.listFiles( new FileFilter()
+ {
+ public boolean accept( File file )
+ {
+ return !file.isDirectory();
+ }
+ } );
+
+ for ( int j = 0; j < files.length; j++ )
+ {
+ File file = files[j];
+
+ assertFileEquals( localRepositoryDir.getCanonicalPath(), file,
+ new File( projectOutputDir, additionalDir + file.getName() ) );
+
+ }
+ }
}
protected void assertFileEquals( String mavenRepo, File expectedFile, File actualFile )
Modified: maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java?view=diff&rev=447069&r1=447068&r2=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java (original)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/test/java/org/apache/maven/plugin/eclipse/EclipsePluginTest.java Sun Sep 17 07:13:54 2006
@@ -213,4 +213,14 @@
testProject( "project-22" );
}
+ /**
+ * Additional config files using "additionalConfig" property.
+ * @throws Exception any exception thrown during test
+ */
+ public void testProject23()
+ throws Exception
+ {
+ testProject( "project-23" );
+ }
+
}
Added: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.checkstyle
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.checkstyle?view=auto&rev=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.checkstyle (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.checkstyle Sun Sep 17 07:13:54 2006
@@ -0,0 +1,6 @@
+<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="acme corporate style" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+ <filter name="NonSrcDirs" enabled="true"/>
+</fileset-config>
\ No newline at end of file
Added: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.classpath
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.classpath?view=auto&rev=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.classpath (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.classpath Sun Sep 17 07:13:54 2006
@@ -0,0 +1,5 @@
+<classpath>
+ <classpathentry kind="output" path="target/classes"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+</classpath>
\ No newline at end of file
Added: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.project
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.project?view=auto&rev=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.project (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/expected/.project Sun Sep 17 07:13:54 2006
@@ -0,0 +1,23 @@
+<projectDescription>
+ <name>maven-eclipse-plugin-test-project-23</name>
+ <comment/>
+ <projects/>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments/>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments/>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments/>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ </natures>
+</projectDescription>
\ No newline at end of file
Added: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/pom.xml
URL: http://svn.apache.org/viewvc/maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/pom.xml?view=auto&rev=447069
==============================================================================
--- maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/pom.xml (added)
+++ maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/pom.xml Sun Sep 17 07:13:54 2006
@@ -0,0 +1,32 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>eclipse</groupId>
+ <artifactId>maven-eclipse-plugin-test-project-23</artifactId>
+ <packaging>eclipse-plugin</packaging>
+ <version>23</version>
+ <name>maven-eclipse-plugin-test-project-23</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-eclipse-plugin</artifactId>
+ <configuration>
+ <additionalConfig>
+ <file>
+ <name>.checkstyle</name>
+ <content>
+ <![CDATA[<fileset-config file-format-version="1.2.0" simple-config="true">
+ <fileset name="all" enabled="true" check-config-name="acme corporate style" local="false">
+ <file-match-pattern match-pattern="." include-pattern="true"/>
+ </fileset>
+ <filter name="NonSrcDirs" enabled="true"/>
+</fileset-config>]]>
+ </content>
+ </file>
+ </additionalConfig>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/pom.xml
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/plugins/trunk/maven-eclipse-plugin/src/test/resources/projects/project-23/pom.xml
------------------------------------------------------------------------------
svn:mime-type = text/xml