Overriding Packaging does not work correctly for WTP-Project ------------------------------------------------------------
Key: MECLIPSE-663 URL: http://jira.codehaus.org/browse/MECLIPSE-663 Project: Maven 2.x Eclipse Plugin Issue Type: Bug Components: WTP support Affects Versions: 2.8 Environment: All Reporter: Benjamin Gniza I found out that overriding the packaging - type (MECLIPSE-331) does not work correct if you want to have a wtp project: {code:xml} <project.....> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-webapp2</artifactId> <packaging>jar</packaging> .... <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-eclipse-plugin</artifactId> <configuration> <packaging>war</packaging> <source>${jdk.version}</source> <target>${jdk.version}</target> <wtpversion>1.5</wtpversion> </configuration> </plugin> .... {code} This configuration leads to a Nullpointer Exception: {noformat} java.lang.NullPointerException at org.codehaus.plexus.util.xml.PrettyPrintXMLWriter.escapeXml(PrettyPrintXMLWriter.java:151) at org.codehaus.plexus.util.xml.PrettyPrintXMLWriter.escapeXmlAttribute(PrettyPrintXMLWriter.java:166) at org.codehaus.plexus.util.xml.PrettyPrintXMLWriter.addAttribute(PrettyPrintXMLWriter.java:190) at org.apache.maven.plugin.eclipse.writers.wtp.EclipseWtpComponent15Writer.writeContextRoot(EclipseWtpComponent15Writer.java:68) at org.apache.maven.plugin.eclipse.writers.wtp.EclipseWtpComponentWriter.writeModuleTypeComponent(EclipseWtpComponentWriter.java:149) at org.apache.maven.plugin.eclipse.writers.wtp.EclipseWtpComponentWriter.write(EclipseWtpComponentWriter.java:106) at org.apache.maven.plugin.eclipse.EclipsePlugin.writeConfiguration(EclipsePlugin.java:1110) at org.apache.maven.plugin.ide.AbstractIdeSupportMojo.execute(AbstractIdeSupportMojo.java:511) at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:483) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:678) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:553) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:523) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:371) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:332) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:181) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:356) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:137) at org.apache.maven.cli.MavenCli.main(MavenCli.java:362) at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:592) at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315) at org.codehaus.classworlds.Launcher.launch(Launcher.java:255) at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430) at org.codehaus.classworlds.Launcher.main(Launcher.java:375) {noformat} The cause for that NullpointerException is that _config.getContextName()_ in *EclipseWtpComponent15Writer.java:68* is null. I found out that you are referring to *project.getPackaging()* or *config.getProject().getPackaging()* instead of *config.getPackaging()* in many places: * EclipseManifestWriter * EclipsePlugin (in this class the method _collectWarContextRootsFromReactorEarConfiguration_ should set the missing context name, but the method refers to *project.getPackaging()* which is still *jar* ** here a _reactorProject.getPackaging()_ can also be fond, I don't know if this is correct. * RadManifestWriter * MyEclipseMetadataWriter * MyEclipseStrutsDataWriter * EclipseWtpApplicationXMLWriter * MyEclipsePlugin * AbstractWtpResourceWriter After replacing all references to project.getPackaging() to config.getPackaging() the NullpointerException has gone and the plugin works as expected. I did only test the combination of project-packaging=jar and eclipse-packaging=war for Eclipse. I did not test MyEclipse, RAD and so on.. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira