You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by jv...@apache.org on 2004/05/06 02:19:41 UTC
cvs commit: maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin IdeaWriter.java IdeaPlugin.java
jvanzyl 2004/05/05 17:19:41
Modified: maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin
IdeaPlugin.java
Added: maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin
IdeaWriter.java
Log:
Revision Changes Path
1.5 +21 -242 maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/IdeaPlugin.java
Index: IdeaPlugin.java
===================================================================
RCS file: /home/cvs/maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/IdeaPlugin.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- IdeaPlugin.java 5 May 2004 22:56:58 -0000 1.4
+++ IdeaPlugin.java 6 May 2004 00:19:41 -0000 1.5
@@ -1,261 +1,40 @@
package org.apache.maven.plugin;
-import org.apache.maven.artifact.MavenArtifact;
import org.apache.maven.project.MavenProject;
-import org.apache.maven.xdoc.render.DefaultXMLWriter;
-import org.apache.maven.xdoc.render.XMLWriter;
-import org.codehaus.plexus.util.InterpolationFilterReader;
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Writer;
-import java.util.HashMap;
-import java.util.Map;
public class IdeaPlugin
extends AbstractPlugin
{
- public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
- throws Exception
- {
- MavenProject project = (MavenProject) request.getParameter( "project" );
-
- File basedir = project.getFile().getParentFile();
-
- Map map = new HashMap();
+ protected IdeaWriter ideaWriter;
- map.put( "project.artifactId", project.getArtifactId() );
-
- writeIdeaModule( basedir, project, map );
-
- writeIdeaWorkSpace( basedir, project, map );
-
- writeIdeaProject( basedir, project, map );
- }
-
- // ----------------------------------------------------------------------
- // IDEA project
- // ----------------------------------------------------------------------
-
- private void writeIdeaProject( File basedir, MavenProject project, Map map )
- throws Exception
- {
- copy( IdeaPlugin.class.getResourceAsStream( "/plugin-resources/default/idea.ipr" ),
- new FileWriter( new File( basedir, project.getArtifactId() + ".ipr" ) ),
- map );
- }
-
- // ----------------------------------------------------------------------
- // IDEA workspace
- // ----------------------------------------------------------------------
-
- private void writeIdeaWorkSpace( File basedir, MavenProject project, Map map )
- throws Exception
+ public IdeaPlugin()
{
- copy( IdeaPlugin.class.getResourceAsStream( "/plugin-resources/default/idea.iws" ),
- new FileWriter( new File( basedir, project.getArtifactId() + ".iws" ) ),
- map );
+ ideaWriter = new IdeaWriter();
}
// ----------------------------------------------------------------------
- // IDEA module
+ // Now even in the context of a reactor, different things may be required:
+ //
+ // o you may actually want to generate complete ipr/iws/iml files for each
+ // project that is picked up by the reactor.
+ //
+ // o you may want to generate the ipr/iws files for the top-level project and
+ // only create iml files for each of the nested projects.
+ //
+ // Or the ipr/iws/iml files could be generated for each regardless but aggregated
+ // in a top-level project. This probably won't cause any harm as it will allow each
+ // project to be open individually or by the aggregated project with the child iml
+ // files. Most probably wouldn't use both modes but this is more akin to what might
+ // happen with a report vis-a-vis aggregation at the top-level.
+ //
+ // Here we go ...
// ----------------------------------------------------------------------
- private void writeIdeaModule( File basedir, MavenProject project, Map map )
- throws Exception
- {
- FileWriter w = new FileWriter( new File( basedir, project.getArtifactId() + ".iml" ) );
-
- XMLWriter writer = new DefaultXMLWriter( w );
-
- writer.startElement( "module" );
-
- writer.addAttribute( "version", "4" );
-
- writer.addAttribute( "relativePaths", "false" );
-
- writer.startElement( "component" );
-
- writer.addAttribute( "name", "ModuleRootManager" );
-
- writer.endElement();
-
- writer.startElement( "component" );
-
- writer.addAttribute( "name", "NewModuleRootManager" );
-
- writer.startElement( "exclude-output" );
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.startElement( "content" );
-
- writer.addAttribute( "url", "file://$MODULE_DIR$" );
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.startElement( "sourceFolder" );
-
- writer.addAttribute( "url", "file://$MODULE_DIR$/" + project.getModel().getBuild().getSourceDirectory() );
-
- writer.addAttribute( "isTestSource", "false" );
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.startElement( "sourceFolder" );
-
- writer.addAttribute( "url", "file://$MODULE_DIR$/" + project.getModel().getBuild().getUnitTestSourceDirectory() );
-
- writer.addAttribute( "isTestSource", "true" );
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.startElement( "orderEntry" );
-
- writer.addAttribute( "type", "jdk" );
-
- String javaVersion = System.getProperty( "java.version" );
-
- writer.addAttribute( "jdkName", "java version " " + javaVersion + """ );
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.startElement( "orderEntry" );
-
- writer.addAttribute( "type", "sourceFolder" );
-
- writer.addAttribute( "forTests", "false" );
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- // Dependencies
- // ----------------------------------------------------------------------
-
- writer.startElement( "orderEntry" );
-
- writer.addAttribute( "type", "module-library" );
-
- writer.startElement( "library" );
-
- writer.startElement( "CLASSES" );
-
- for ( int i = 0; i < project.getArtifacts().size(); i++ )
- {
- writer.startElement( "root" );
-
- writer.addAttribute( "url", "jar://" + ((MavenArtifact)project.getArtifacts().get(i)).getPath() + "!/" );
-
- writer.endElement();
- }
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.startElement( "JAVADOC" );
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.startElement( "SOURCES" );
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
-
- writer.endElement();
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- writer.endElement();
-
- writer.endElement();
-
- // ----------------------------------------------------------------------
- //
- // ----------------------------------------------------------------------
-
- w.flush();
-
- w.close();
- }
-
- private void copy( InputStream is, Writer writer, Map map )
+ public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
throws Exception
{
- InterpolationFilterReader reader = new InterpolationFilterReader( new InputStreamReader( is ), map, "@", "@" );
-
- char[] buffer = new char[1024];
-
- int n;
-
- while ( -1 != ( n = reader.read( buffer ) ) )
- {
- writer.write( buffer, 0, n );
- }
-
- if ( is != null )
- {
- try
- {
- is.close();
- }
- catch ( Exception e )
- {
- }
- }
-
- if ( writer != null )
- {
-
- try
- {
- writer.flush();
+ MavenProject project = (MavenProject) request.getParameter( "project" );
- writer.close();
- }
- catch ( Exception e )
- {
- }
- }
+ ideaWriter.write( project );
}
}
1.1 maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/IdeaWriter.java
Index: IdeaWriter.java
===================================================================
package org.apache.maven.plugin;
import org.apache.maven.artifact.MavenArtifact;
import org.apache.maven.project.MavenProject;
import org.apache.maven.xdoc.render.DefaultXMLWriter;
import org.apache.maven.xdoc.render.XMLWriter;
import org.codehaus.plexus.util.InterpolationFilterReader;
import java.io.File;
import java.io.FileWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Writer;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
public class IdeaWriter
{
public void write( MavenProject project )
throws Exception
{
File basedir = project.getFile().getParentFile();
Map map = new HashMap();
map.put( "project.artifactId", project.getArtifactId() );
writeIdeaProject( basedir, project, map );
writeIdeaWorkSpace( basedir, project, map );
writeIdeaModule( basedir, project, map );
}
public void write( List projects )
throws Exception
{
}
// ----------------------------------------------------------------------
// IDEA project
// ----------------------------------------------------------------------
protected void writeIdeaProject( File basedir, MavenProject project, Map map )
throws Exception
{
copy( IdeaWriter.class.getResourceAsStream( "/plugin-resources/default/idea.ipr" ),
new FileWriter( new File( basedir, project.getArtifactId() + ".ipr" ) ),
map );
}
// ----------------------------------------------------------------------
// IDEA workspace
// ----------------------------------------------------------------------
protected void writeIdeaWorkSpace( File basedir, MavenProject project, Map map )
throws Exception
{
copy( IdeaWriter.class.getResourceAsStream( "/plugin-resources/default/idea.iws" ),
new FileWriter( new File( basedir, project.getArtifactId() + ".iws" ) ),
map );
}
// ----------------------------------------------------------------------
// IDEA module
// ----------------------------------------------------------------------
protected void writeIdeaModule( File basedir, MavenProject project, Map map )
throws Exception
{
FileWriter w = new FileWriter( new File( basedir, project.getArtifactId() + ".iml" ) );
XMLWriter writer = new DefaultXMLWriter( w );
writer.startElement( "module" );
writer.addAttribute( "version", "4" );
writer.addAttribute( "relativePaths", "false" );
writer.startElement( "component" );
writer.addAttribute( "name", "ModuleRootManager" );
writer.endElement();
writer.startElement( "component" );
writer.addAttribute( "name", "NewModuleRootManager" );
writer.startElement( "exclude-output" );
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "content" );
writer.addAttribute( "url", "file://$MODULE_DIR$" );
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "sourceFolder" );
writer.addAttribute( "url", "file://$MODULE_DIR$/" + project.getModel().getBuild().getSourceDirectory() );
writer.addAttribute( "isTestSource", "false" );
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "sourceFolder" );
writer.addAttribute( "url", "file://$MODULE_DIR$/" + project.getModel().getBuild().getUnitTestSourceDirectory() );
writer.addAttribute( "isTestSource", "true" );
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "orderEntry" );
writer.addAttribute( "type", "jdk" );
String javaVersion = System.getProperty( "java.version" );
writer.addAttribute( "jdkName", "java version " " + javaVersion + """ );
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "orderEntry" );
writer.addAttribute( "type", "sourceFolder" );
writer.addAttribute( "forTests", "false" );
writer.endElement();
// ----------------------------------------------------------------------
// Dependencies
// ----------------------------------------------------------------------
writer.startElement( "orderEntry" );
writer.addAttribute( "type", "module-library" );
writer.startElement( "library" );
writer.startElement( "CLASSES" );
for ( int i = 0; i < project.getArtifacts().size(); i++ )
{
writer.startElement( "root" );
writer.addAttribute( "url", "jar://" + ((MavenArtifact)project.getArtifacts().get(i)).getPath() + "!/" );
writer.endElement();
}
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "JAVADOC" );
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "SOURCES" );
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.endElement();
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.endElement();
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
w.flush();
w.close();
}
private void copy( InputStream is, Writer writer, Map map )
throws Exception
{
InterpolationFilterReader reader = new InterpolationFilterReader( new InputStreamReader( is ), map, "@", "@" );
char[] buffer = new char[1024];
int n;
while ( -1 != ( n = reader.read( buffer ) ) )
{
writer.write( buffer, 0, n );
}
if ( is != null )
{
try
{
is.close();
}
catch ( Exception e )
{
}
}
if ( writer != null )
{
try
{
writer.flush();
writer.close();
}
catch ( Exception e )
{
}
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org