|
View:
New views
2 Messages
—
Rating Filter:
Alert me
|
|
|
[Fwd: Problem Eclipse-Plugin v2.5.1 while create MyEclipse EJB project]-- DCO GmbH Stockholmer Alle 30c 44269 Dortmund Fon: +(49) 231 477766-60 Fax: +(49) 231 477766-80 Geschäftsführer: Uwe Falkenberg, Walter Dilba Eingetragen Amtsgericht Dortmund HRB 21208 USt.-ID: DE 256 202 508 Hello, we evaluating MyEclipse (v6.5) as our new development tool. Actual we found a problem while creating a EJB project. If we try it some required parameters in .mymetadata are missing. Please add this to the next version of MyEclipseMetadataWriter.write() at line 103 to generate right code: if ( Constants.PROJECT_PACKAGING_EJB.equalsIgnoreCase( packaging ) ) { writer.addAttribute( MYECLIPSE_METADATA_PROJECT_J2EE_SPEC, getJeeVersion() ); // TODO : use maven final name writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ARCHIVE, config.getEclipseProjectName() + ".jar" ); } Best regards Marcus Padberg P.S. Attached our POM and a modified MyEclipseMetadataWriter which works fine. -- DCO GmbH Stockholmer Alle 30c 44269 Dortmund Fon: +(49) 231 477766-60 Fax: +(49) 231 477766-80 Geschäftsführer: Uwe Falkenberg, Walter Dilba Eingetragen Amtsgericht Dortmund HRB 21208 USt.-ID: DE 256 202 508 <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>de.dco</groupId> <artifactId>cactus-project-ejb</artifactId> <packaging>ejb</packaging> <name>cactus-project-ejb</name> <parent> <groupId>de.dco</groupId> <artifactId>cactus-project</artifactId> <version>1.0-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- only to detect right jee version using classpathcontainer for jee import --> <dependency> <groupId>org.apache.openejb</groupId> <artifactId>javaee-api</artifactId> <version>5.0-1</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ejb-plugin</artifactId> <configuration> <ejbVersion>3.0</ejbVersion> <generateClient>true</generateClient> <archive> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <configuration> <projectnatures> <projectnature>com.genuitec.eclipse.j2eedt.core.ejbnature</projectnature> <projectnature>org.eclipse.dali.core.persistenceNature</projectnature> <projectnature>org.eclipse.jdt.core.javanature</projectnature> </projectnatures> <buildcommands> <buildcommand>org.eclipse.jdt.core.javabuilder</buildcommand> <buildcommand>com.genuitec.eclipse.j2eedt.core.DeploymentDescriptorValidator</buildcommand> <buildcommand>org.eclipse.dali.core.persistenceBuilder</buildcommand> <buildcommand>org.eclipse.wst.validation.validationbuilder</buildcommand> </buildcommands> <classpathContainers> <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer> <classpathContainer>melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER</classpathContainer> </classpathContainers> </configuration> </plugin> </plugins> </build> </project> package org.apache.maven.plugin.eclipse.writers.myeclipse; import java.io.File; import java.io.FileWriter; import java.io.IOException; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.eclipse.Constants; import org.apache.maven.plugin.eclipse.Messages; import org.apache.maven.plugin.eclipse.writers.AbstractEclipseWriter; import org.apache.maven.plugin.ide.IdeUtils; import org.apache.maven.plugin.ide.JeeDescriptor; import org.apache.maven.plugin.ide.JeeUtils; import org.codehaus.plexus.util.IOUtil; import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter; import org.codehaus.plexus.util.xml.XMLWriter; /** * MyEclipse .mymetadata configuration file writer * * @author Olivier Jacob */ public class MyEclipseMetadataWriter extends AbstractEclipseWriter { private static final String MYECLIPSE_MYMETADATA_FILENAME = ".mymetadata"; private static final String MYECLIPSE_METADATA_PROJECT = "project-module"; private static final String MYECLIPSE_METADATA_PROJECT_TYPE = "type"; private static final String MYECLIPSE_METADATA_PROJECT_NAME = "name"; private static final String MYECLIPSE_METADATA_PROJECT_ID = "id"; private static final String MYECLIPSE_METADATA_PROJECT_CONTEXT_ROOT = "context-root"; private static final String MYECLIPSE_METADATA_PROJECT_J2EE_SPEC = "j2ee-spec"; private static final String MYECLIPSE_METADATA_PROJECT_ARCHIVE = "archive"; private static final String MYECLIPSE_METADATA_PROJECT_TYPE_WAR = "WEB"; private static final String MYECLIPSE_METADATA_PROJECT_TYPE_EAR = "EAR"; private static final String MYECLIPSE_METADATA_PROJECT_TYPE_EJB = "EJB"; private static final String MYECLIPSE_METADATA_PROJECT_ATTRIBUTES = "attributes"; private static final String MYECLIPSE_METADATA_PROJECT_ATTRIBUTE = "attribute"; /** * Writer entry point * * @throws MojoExecutionException */ public void write() throws MojoExecutionException { String packaging = config.getProject().getPackaging(); if ( !Constants.PROJECT_PACKAGING_EAR.equalsIgnoreCase( packaging ) && !Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packaging ) && !Constants.PROJECT_PACKAGING_EJB.equalsIgnoreCase( packaging ) ) { return; } FileWriter w; try { w = new FileWriter( new File( config.getEclipseProjectDirectory(), MYECLIPSE_MYMETADATA_FILENAME ) ); } catch ( IOException ex ) { throw new MojoExecutionException( Messages.getString( "EclipsePlugin.erroropeningfile" ), ex ); //$NON-NLS-1$ } XMLWriter writer = new PrettyPrintXMLWriter( w, "UTF-8", null ); writer.startElement( MYECLIPSE_METADATA_PROJECT ); writer.addAttribute( MYECLIPSE_METADATA_PROJECT_TYPE, getMyEclipseProjectType( packaging ) ); writer.addAttribute( MYECLIPSE_METADATA_PROJECT_NAME, config.getEclipseProjectName() ); writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ID, config.getEclipseProjectName() ); if ( Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packaging ) ) { // Find web application context root from maven-war-plugin configuration. // ArtifactId is used as the default value String warContextRoot = IdeUtils.getPluginSetting( config.getProject(), JeeUtils.ARTIFACT_MAVEN_WAR_PLUGIN, "warContextRoot",//$NON-NLS-1$ "/" + config.getProject().getArtifactId() ); writer.addAttribute( MYECLIPSE_METADATA_PROJECT_CONTEXT_ROOT, warContextRoot ); writer.addAttribute( MYECLIPSE_METADATA_PROJECT_J2EE_SPEC, getJeeVersion() ); // TODO : use maven final name writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ARCHIVE, config.getEclipseProjectName() + ".war" ); } if ( Constants.PROJECT_PACKAGING_EJB.equalsIgnoreCase( packaging ) ) { writer.addAttribute( MYECLIPSE_METADATA_PROJECT_J2EE_SPEC, getJeeVersion() ); // TODO : use maven final name writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ARCHIVE, config.getEclipseProjectName() + ".jar" ); } if ( Constants.PROJECT_PACKAGING_EAR.equalsIgnoreCase( packaging ) ) { // TODO : use maven final name writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ARCHIVE, config.getEclipseProjectName() + ".ear" ); } writer.startElement( MYECLIPSE_METADATA_PROJECT_ATTRIBUTES ); if ( Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packaging ) ) { writer.startElement( MYECLIPSE_METADATA_PROJECT_ATTRIBUTE ); writer.addAttribute( "name", "webrootdir" ); // TODO : retrieve this from project configuration writer.addAttribute( "value", "src/main/webapp" ); writer.endElement(); } // Close <attributes> writer.endElement(); // Close <project-module> writer.endElement(); IOUtil.close( w ); } /** * @param packaging maven project packaging * @return MyEclipse project type (EAR, WAR, EJB) */ private String getMyEclipseProjectType( String packaging ) { if ( Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packaging ) ) { return MYECLIPSE_METADATA_PROJECT_TYPE_WAR; } if ( Constants.PROJECT_PACKAGING_EAR.equalsIgnoreCase( packaging ) ) { return MYECLIPSE_METADATA_PROJECT_TYPE_EAR; } if ( Constants.PROJECT_PACKAGING_EJB.equalsIgnoreCase( packaging ) ) { return MYECLIPSE_METADATA_PROJECT_TYPE_EJB; } // Should never be reached return null; } /** * Find JEE version from the project dependencies : find version from 'j2ee.jar' artifact or from 'servlet-api' * * @return the JEE version for the project (1.2, 1.3, 1.4, 1.5) * @see org.apache.maven.plugin.ide.JeeUtils#resolveJeeVersion(org.apache.maven.project.MavenProject) */ private String getJeeVersion() { String jeeVersion = JeeUtils.getJeeDescriptorFromServletVersion( JeeUtils.resolveServletVersion( config.getProject() ) ).getJeeVersion(); if ( jeeVersion == null ) { return JeeDescriptor.JEE_1_4; } return jeeVersion; } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@... For additional commands, e-mail: dev-help@... |
|
|
Re: [Fwd: Problem Eclipse-Plugin v2.5.1 while create MyEclipse EJB project]Please open an issue here
http://jira.codehaus.org/browse/MECLIPSE Without it we'll certainly forgot your patch. It will help if you deliver also an integration test with a maven project and what you expect in eclipse config files. Arnaud On Mon, Nov 24, 2008 at 12:11 PM, Marcus Padberg <marcus.padberg@... > wrote: > > -- > DCO GmbH > Stockholmer Alle 30c > 44269 Dortmund > > Fon: +(49) 231 477766-60 > Fax: +(49) 231 477766-80 > > Geschäftsführer: Uwe Falkenberg, Walter Dilba > Eingetragen Amtsgericht Dortmund HRB 21208 > USt.-ID: DE 256 202 508 > > > Hello, > > we evaluating MyEclipse (v6.5) as our new development tool. Actual we found > a problem while creating a EJB project. If we try it some required > parameters in .mymetadata are missing. Please add this to the next version > of MyEclipseMetadataWriter.write() at line 103 to generate right code: > > if ( Constants.PROJECT_PACKAGING_EJB.equalsIgnoreCase( packaging ) ) > { > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_J2EE_SPEC, > getJeeVersion() ); > // TODO : use maven final name > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ARCHIVE, > config.getEclipseProjectName() + ".jar" ); > } > > Best regards > Marcus Padberg > > P.S. > Attached our POM and a modified MyEclipseMetadataWriter which works fine. > > -- > DCO GmbH > Stockholmer Alle 30c > 44269 Dortmund > > Fon: +(49) 231 477766-60 > Fax: +(49) 231 477766-80 > > Geschäftsführer: Uwe Falkenberg, Walter Dilba > Eingetragen Amtsgericht Dortmund HRB 21208 > USt.-ID: DE 256 202 508 > > > package org.apache.maven.plugin.eclipse.writers.myeclipse; > > import java.io.File; > import java.io.FileWriter; > import java.io.IOException; > > import org.apache.maven.plugin.MojoExecutionException; > import org.apache.maven.plugin.eclipse.Constants; > import org.apache.maven.plugin.eclipse.Messages; > import org.apache.maven.plugin.eclipse.writers.AbstractEclipseWriter; > import org.apache.maven.plugin.ide.IdeUtils; > import org.apache.maven.plugin.ide.JeeDescriptor; > import org.apache.maven.plugin.ide.JeeUtils; > import org.codehaus.plexus.util.IOUtil; > import org.codehaus.plexus.util.xml.PrettyPrintXMLWriter; > import org.codehaus.plexus.util.xml.XMLWriter; > > /** > * MyEclipse .mymetadata configuration file writer > * > * @author Olivier Jacob > */ > public class MyEclipseMetadataWriter > extends AbstractEclipseWriter > { > > private static final String MYECLIPSE_MYMETADATA_FILENAME = > ".mymetadata"; > > private static final String MYECLIPSE_METADATA_PROJECT = > "project-module"; > > private static final String MYECLIPSE_METADATA_PROJECT_TYPE = "type"; > > private static final String MYECLIPSE_METADATA_PROJECT_NAME = "name"; > > private static final String MYECLIPSE_METADATA_PROJECT_ID = "id"; > > private static final String MYECLIPSE_METADATA_PROJECT_CONTEXT_ROOT = > "context-root"; > > private static final String MYECLIPSE_METADATA_PROJECT_J2EE_SPEC = > "j2ee-spec"; > > private static final String MYECLIPSE_METADATA_PROJECT_ARCHIVE = > "archive"; > > private static final String MYECLIPSE_METADATA_PROJECT_TYPE_WAR = "WEB"; > > private static final String MYECLIPSE_METADATA_PROJECT_TYPE_EAR = "EAR"; > > private static final String MYECLIPSE_METADATA_PROJECT_TYPE_EJB = "EJB"; > > private static final String MYECLIPSE_METADATA_PROJECT_ATTRIBUTES = > "attributes"; > > private static final String MYECLIPSE_METADATA_PROJECT_ATTRIBUTE = > "attribute"; > > /** > * Writer entry point > * > * @throws MojoExecutionException > */ > public void write() > throws MojoExecutionException > { > String packaging = config.getProject().getPackaging(); > > if ( !Constants.PROJECT_PACKAGING_EAR.equalsIgnoreCase( packaging ) > && > !Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packaging ) > && > !Constants.PROJECT_PACKAGING_EJB.equalsIgnoreCase( packaging ) ) > { > return; > } > > FileWriter w; > > try > { > w = new FileWriter( new File( > config.getEclipseProjectDirectory(), MYECLIPSE_MYMETADATA_FILENAME ) ); > } > catch ( IOException ex ) > { > throw new MojoExecutionException( Messages.getString( > "EclipsePlugin.erroropeningfile" ), ex ); //$NON-NLS-1$ > } > > XMLWriter writer = new PrettyPrintXMLWriter( w, "UTF-8", null ); > > writer.startElement( MYECLIPSE_METADATA_PROJECT ); > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_TYPE, > getMyEclipseProjectType( packaging ) ); > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_NAME, > config.getEclipseProjectName() ); > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ID, > config.getEclipseProjectName() ); > > if ( Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packaging ) ) > { > // Find web application context root from maven-war-plugin > configuration. > // ArtifactId is used as the default value > String warContextRoot = > IdeUtils.getPluginSetting( config.getProject(), > JeeUtils.ARTIFACT_MAVEN_WAR_PLUGIN, "warContextRoot",//$NON-NLS-1$ > "/" + > config.getProject().getArtifactId() ); > > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_CONTEXT_ROOT, > warContextRoot ); > > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_J2EE_SPEC, > getJeeVersion() ); > // TODO : use maven final name > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ARCHIVE, > config.getEclipseProjectName() + ".war" ); > } > > if ( Constants.PROJECT_PACKAGING_EJB.equalsIgnoreCase( packaging ) ) > { > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_J2EE_SPEC, > getJeeVersion() ); > // TODO : use maven final name > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ARCHIVE, > config.getEclipseProjectName() + ".jar" ); > } > > if ( Constants.PROJECT_PACKAGING_EAR.equalsIgnoreCase( packaging ) ) > { > // TODO : use maven final name > writer.addAttribute( MYECLIPSE_METADATA_PROJECT_ARCHIVE, > config.getEclipseProjectName() + ".ear" ); > } > > writer.startElement( MYECLIPSE_METADATA_PROJECT_ATTRIBUTES ); > if ( Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packaging ) ) > { > writer.startElement( MYECLIPSE_METADATA_PROJECT_ATTRIBUTE ); > writer.addAttribute( "name", "webrootdir" ); > // TODO : retrieve this from project configuration > writer.addAttribute( "value", "src/main/webapp" ); > writer.endElement(); > } > // Close <attributes> > writer.endElement(); > > // Close <project-module> > writer.endElement(); > > IOUtil.close( w ); > } > > /** > * @param packaging maven project packaging > * @return MyEclipse project type (EAR, WAR, EJB) > */ > private String getMyEclipseProjectType( String packaging ) > { > if ( Constants.PROJECT_PACKAGING_WAR.equalsIgnoreCase( packaging ) ) > { > return MYECLIPSE_METADATA_PROJECT_TYPE_WAR; > } > if ( Constants.PROJECT_PACKAGING_EAR.equalsIgnoreCase( packaging ) ) > { > return MYECLIPSE_METADATA_PROJECT_TYPE_EAR; > } > if ( Constants.PROJECT_PACKAGING_EJB.equalsIgnoreCase( packaging ) ) > { > return MYECLIPSE_METADATA_PROJECT_TYPE_EJB; > } > // Should never be reached > return null; > } > > /** > * Find JEE version from the project dependencies : find version from > 'j2ee.jar' artifact or from 'servlet-api' > * > * @return the JEE version for the project (1.2, 1.3, 1.4, 1.5) > * @see > org.apache.maven.plugin.ide.JeeUtils#resolveJeeVersion(org.apache.maven.project.MavenProject) > */ > private String getJeeVersion() > { > String jeeVersion = > JeeUtils.getJeeDescriptorFromServletVersion( > JeeUtils.resolveServletVersion( config.getProject() ) ).getJeeVersion(); > > if ( jeeVersion == null ) > { > return JeeDescriptor.JEE_1_4; > } > > return jeeVersion; > } > } > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscribe@... > For additional commands, e-mail: dev-help@... > -- .......................................................... Arnaud HERITIER 12 guidelines to boost your productivity with a Java software factory - http://tinyurl.com/56s9tw .......................................................... OCTO Technology - aheritier AT octo DOT com www.octo.com | blog.octo.com .......................................................... ASF - aheritier AT apache DOT org www.apache.org | maven.apache.org ........................................................... |
| Free Forum Powered by Nabble | Forum Help |