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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]