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/09 04:26:57 UTC
cvs commit: maven-components/maven-plugins/maven-idea-plugin/src/main/resources/META-INF/maven plugin.xml
jvanzyl 2004/05/08 19:26:57
Modified: maven-plugins/maven-idea-plugin/src/main/resources/META-INF/maven
plugin.xml
Added: maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea
IdeaPlugin.java IdeaReader.java IdeaWriter.java
maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/model
IdeaModule.java IdeaProject.java IdeaWorkspace.java
Removed: maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin
IdeaPlugin.java IdeaWriter.java
Log:
o correcting the generation of the module library entries
o starting a small model for the IDEA files and will use those in order
to read and write IDEA files.
I will hopefully be moving this out and adding it to the Mevenide
project.
Revision Changes Path
1.1 maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaPlugin.java
Index: IdeaPlugin.java
===================================================================
package org.apache.maven.plugin.idea;
import org.apache.maven.project.MavenProject;
import org.apache.maven.plugin.AbstractPlugin;
import org.apache.maven.plugin.PluginExecutionRequest;
import org.apache.maven.plugin.PluginExecutionResponse;
public class IdeaPlugin
extends AbstractPlugin
{
protected IdeaWriter ideaWriter;
public IdeaPlugin()
{
ideaWriter = new IdeaWriter();
}
// ----------------------------------------------------------------------
// 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 ...
// ----------------------------------------------------------------------
public void execute( PluginExecutionRequest request, PluginExecutionResponse response )
throws Exception
{
MavenProject project = (MavenProject) request.getParameter( "project" );
ideaWriter.write( project );
}
}
1.1 maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaReader.java
Index: IdeaReader.java
===================================================================
package org.apache.maven.plugin.idea;
import org.apache.maven.plugin.idea.model.IdeaProject;
import org.apache.maven.plugin.idea.model.IdeaWorkspace;
import org.apache.maven.plugin.idea.model.IdeaModule;
import java.io.File;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id: IdeaReader.java,v 1.1 2004/05/09 02:26:57 jvanzyl Exp $
*/
public class IdeaReader
{
// ----------------------------------------------------------------------
// IDEA project
// ----------------------------------------------------------------------
protected IdeaProject readIdeaProject( File basedir )
throws Exception
{
IdeaProject ideaProject = new IdeaProject();
return ideaProject;
}
// ----------------------------------------------------------------------
// IDEA workspace
// ----------------------------------------------------------------------
protected IdeaWorkspace readIdeaWorkSpace( File basedir )
throws Exception
{
IdeaWorkspace ideaWorkspace = new IdeaWorkspace();
return ideaWorkspace;
}
// ----------------------------------------------------------------------
// IDEA module
// ----------------------------------------------------------------------
protected IdeaModule readIdeaModule( File basedir )
throws Exception
{
IdeaModule ideaModule = new IdeaModule();
return ideaModule;
}
}
1.1 maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/IdeaWriter.java
Index: IdeaWriter.java
===================================================================
package org.apache.maven.plugin.idea;
import org.apache.maven.artifact.MavenArtifact;
import org.apache.maven.project.MavenProject;
import org.apache.maven.xdoc.render.XMLWriter;
import org.apache.maven.xdoc.render.DefaultXMLWriter;
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
// ----------------------------------------------------------------------
List artifacts = project.getArtifacts();
for ( int i = 0; i < artifacts.size(); i++ )
{
writeModuleLibraryEntry( writer, ( (MavenArtifact) artifacts.get( i ) ) );
}
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.endElement();
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
w.flush();
w.close();
}
// ----------------------------------------------------------------------
// Module library
// ----------------------------------------------------------------------
protected void writeModuleLibraryEntry( XMLWriter writer, MavenArtifact artifact )
throws Exception
{
writer.startElement( "orderEntry" );
writer.addAttribute( "type", "module-library" );
writer.startElement( "library" );
writer.startElement( "CLASSES" );
writer.startElement( "root" );
writer.addAttribute( "url", "jar://" + artifact.getPath() + "!/" );
writer.endElement();
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "JAVADOC" );
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.startElement( "SOURCES" );
writer.endElement();
// ----------------------------------------------------------------------
//
// ----------------------------------------------------------------------
writer.endElement();
writer.endElement();
}
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 )
{
}
}
}
}
1.1 maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/model/IdeaModule.java
Index: IdeaModule.java
===================================================================
package org.apache.maven.plugin.idea.model;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id: IdeaModule.java,v 1.1 2004/05/09 02:26:57 jvanzyl Exp $
*/
public class IdeaModule
{
}
1.1 maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/model/IdeaProject.java
Index: IdeaProject.java
===================================================================
package org.apache.maven.plugin.idea.model;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id: IdeaProject.java,v 1.1 2004/05/09 02:26:57 jvanzyl Exp $
*/
public class IdeaProject
{
}
1.1 maven-components/maven-plugins/maven-idea-plugin/src/main/java/org/apache/maven/plugin/idea/model/IdeaWorkspace.java
Index: IdeaWorkspace.java
===================================================================
package org.apache.maven.plugin.idea.model;
/**
* @author <a href="mailto:jason@maven.org">Jason van Zyl</a>
* @version $Id: IdeaWorkspace.java,v 1.1 2004/05/09 02:26:57 jvanzyl Exp $
*/
public class IdeaWorkspace
{
}
1.2 +1 -1 maven-components/maven-plugins/maven-idea-plugin/src/main/resources/META-INF/maven/plugin.xml
Index: plugin.xml
===================================================================
RCS file: /home/cvs/maven-components/maven-plugins/maven-idea-plugin/src/main/resources/META-INF/maven/plugin.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- plugin.xml 5 May 2004 16:52:38 -0000 1.1
+++ plugin.xml 9 May 2004 02:26:57 -0000 1.2
@@ -1,6 +1,6 @@
<plugin>
<id>idea</id>
- <implementation>org.apache.maven.plugin.IdeaPlugin</implementation>
+ <implementation>org.apache.maven.plugin.idea.IdeaPlugin</implementation>
<instantiation-strategy>singleton</instantiation-strategy>
<mode>integrated</mode>
<goals>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org