Details

    • Type: New Feature New Feature
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.9.7
    • Labels:
      None
    • Number of attachments :
      2

      Description

      Currently the m2eclipse plugin can not cope with EAR projects. When given one, it actually attempts to set the project up as a java project. Given that WAR files generally live in EAR files, it would be natural to expect that an EAR project is supported.

      Additionally, for similar reasons, EJB projects should also be supported.

      1. MNGECLIPSE-688-preview-21082008.patch
        167 kB
        Fred Bricon

        Issue Links

          Activity

          Hide
          Eugene Kuleshov added a comment -

          Just to clarify. Majority of the web application developers don't build ears and directly deploy wars to web servers like Tomcat or Jetty.

          Show
          Eugene Kuleshov added a comment - Just to clarify. Majority of the web application developers don't build ears and directly deploy wars to web servers like Tomcat or Jetty.
          Hide
          Chris Graham added a comment -

          I think a more rounded point of view would be to say:

          Maven suports, JAR, WAR, EJB and EAR (and a plethera of others), so should m2eclipse.

          WTP supports it, so should m2eclipse.

          Whether the majority of web developers only do JAR and WAR files, is irrelevant, if your stated aim is to provide full and complete maven integration into eclipse.

          Show
          Chris Graham added a comment - I think a more rounded point of view would be to say: Maven suports, JAR, WAR, EJB and EAR (and a plethera of others), so should m2eclipse. WTP supports it, so should m2eclipse. Whether the majority of web developers only do JAR and WAR files, is irrelevant, if your stated aim is to provide full and complete maven integration into eclipse.
          Hide
          Eugene Kuleshov added a comment -

          Absolutely, it will be supported eventually. It is just a matter of priorities. If someone is interested implementing this we would certainly help and give pointers where to start. Thanks.

          Show
          Eugene Kuleshov added a comment - Absolutely, it will be supported eventually. It is just a matter of priorities. If someone is interested implementing this we would certainly help and give pointers where to start. Thanks.
          Hide
          Christophe Vigouroux added a comment -

          Hi, we're moving to maven2 for our build process in Eclipse IDE because we moved our software from "basic" web applications to enterprise applications. Eclipse + WTP was ok for WAR applications (no need of a m2 plugin), but we needed some lot of extras to build our ear than the classical ear projects in Eclipse provides. So, EAR support by m2eclipse should be quite an important improvement for us, as we must use a custom ant task to deploy our EAR to the application server. Indeed, we're out of luck, having to use Jonas and Easybeans, there's even no maven plugin, nor Cargo support for them... We hoped to use the Jonas WTP Adapter for that reason.

          By the way, I understand that you have priorities and limited resources. Thanks for all the good job already done !

          Show
          Christophe Vigouroux added a comment - Hi, we're moving to maven2 for our build process in Eclipse IDE because we moved our software from "basic" web applications to enterprise applications. Eclipse + WTP was ok for WAR applications (no need of a m2 plugin), but we needed some lot of extras to build our ear than the classical ear projects in Eclipse provides. So, EAR support by m2eclipse should be quite an important improvement for us, as we must use a custom ant task to deploy our EAR to the application server. Indeed, we're out of luck, having to use Jonas and Easybeans, there's even no maven plugin, nor Cargo support for them... We hoped to use the Jonas WTP Adapter for that reason. By the way, I understand that you have priorities and limited resources. Thanks for all the good job already done !
          Hide
          Fred Bricon added a comment - - edited

          Hi,

          I would like to contribute on this issue. I started to look at the org.maven.ide.eclipse.wtp plugin, figured out a few things, but will need some help on the biggest part.

          My thoughts so far :

          WTPProjectConfigurator should be abstracted so we would have 3 sub classes

          • WebProjectConfigurator (the actual web project support)
          • EjbProjectConfigurator (should be pretty easy) :
            • determine the Ejb facet version from maven-ejb-plugin
            • add EJB Facet,
            • reuse most of the dependency configuration from the WTP/WebProjectConfigurator
          • EarProjectConfigurator :
            • determine the Ear facet version from maven-ear-plugin
            • add EAR Facet
            • Handle dependencies, that's the biggest issue

          Theses 3 configurators can be declared in plugin.xml :

             <extension
                   point="org.maven.ide.eclipse.projectConfigurators">
                <configurator
                      class="org.maven.ide.eclipse.wtp.WebProjectConfigurator"
                      id="org.maven.ide.eclipse.configuration.web.configurator"
                      name="WEB"
                      priority="100">
                </configurator>
                <configurator
                      class="org.maven.ide.eclipse.wtp.EjbProjectConfigurator"
                      id="org.maven.ide.eclipse.configuration.ejb.configurator"
                      name="EJB"
                      priority="101">
                </configurator>
                <configurator
                      class="org.maven.ide.eclipse.wtp.EarProjectConfigurator"
                      id="org.maven.ide.eclipse.configuration.ear.configurator"
                      name="EAR"
                      priority="102">
                </configurator>
             </extension>
          

          Concerning the dependency handling in the ear configurator :

          • AFAICT, WTP Ear projects don't support Libraries in the Java EE Modules dependencies, so I don't think we can directly reuse the web project mechanism (org.eclipse.jst.component.dependency)
          • One solution could be to reuse the M2_REPO variable to add dependencies to the Java EE Modules.
          • Ear projects shouldn't have the Java Nature in the first place, can we remove it? if so, will we be able to access the project dependencies ?

          Eugene, any hints will be appreciated.

          Regards.

          Fred Bricon.
          (GMT +1)

          Show
          Fred Bricon added a comment - - edited Hi, I would like to contribute on this issue. I started to look at the org.maven.ide.eclipse.wtp plugin, figured out a few things, but will need some help on the biggest part. My thoughts so far : WTPProjectConfigurator should be abstracted so we would have 3 sub classes WebProjectConfigurator (the actual web project support) EjbProjectConfigurator (should be pretty easy) : determine the Ejb facet version from maven-ejb-plugin add EJB Facet, reuse most of the dependency configuration from the WTP/WebProjectConfigurator EarProjectConfigurator : determine the Ear facet version from maven-ear-plugin add EAR Facet Handle dependencies, that's the biggest issue Theses 3 configurators can be declared in plugin.xml : <extension point= "org.maven.ide.eclipse.projectConfigurators" > <configurator class= "org.maven.ide.eclipse.wtp.WebProjectConfigurator" id= "org.maven.ide.eclipse.configuration.web.configurator" name= "WEB" priority= "100" > </configurator> <configurator class= "org.maven.ide.eclipse.wtp.EjbProjectConfigurator" id= "org.maven.ide.eclipse.configuration.ejb.configurator" name= "EJB" priority= "101" > </configurator> <configurator class= "org.maven.ide.eclipse.wtp.EarProjectConfigurator" id= "org.maven.ide.eclipse.configuration.ear.configurator" name= "EAR" priority= "102" > </configurator> </extension> Concerning the dependency handling in the ear configurator : AFAICT, WTP Ear projects don't support Libraries in the Java EE Modules dependencies, so I don't think we can directly reuse the web project mechanism (org.eclipse.jst.component.dependency) One solution could be to reuse the M2_REPO variable to add dependencies to the Java EE Modules. Ear projects shouldn't have the Java Nature in the first place, can we remove it? if so, will we be able to access the project dependencies ? Eugene, any hints will be appreciated. Regards. Fred Bricon. (GMT +1)
          Hide
          Igor Fedorenko added a comment -

          Hello, Fred,

          Although I am not Eugene, I will try to answer your questions anyway

          Re. separate configurator for each project type. I agree that it is a good idea to keep WAR, EAR and EJB related code in separate classes. My original thinking was to have single WTP project configurator that would determinate project type and delegate to implementation classes, but I guess three separate configurators would work too. I do not think order of WAR/EJB/EAR project configurators is important (if you decide to have separate configurators), because only one of the three can be applied to any individual project.

          Re. EAR module dependency management. I had to manipulate J2EE Module Dependencies for Dynamic Web Projects in some cases too. Have a look at WTPProjectConfigurator #mavenProjectChanged and #setModuleDependencies methods. #mavenProjectChanged is a callback method that gets invoked on every project dependency change. #setModuleDependencies implements actual manipulation of virtual module references. I believe you should be able to reuse most of this code for EAR and EIB projects too. It does make sense to use M2_REPO classpath variable to reference JARs from maven local repository.

          Re EAR and JDT nature. Project configurator API does not assume JDT project nature and you can get all information about project dependencies from ProjectConfigurationRequest or MavenProjectChangedEvent objects passed to AbstractProjectConfigurator methods (let me know if need more details). It should be possible to remove Java nature from EAR projects. There may be some code in m2e that assumes Java nature, but we plan to eventually remove JDT-specific code from m2e core plugin into separate configurator.

          Let me know if you need more information.


          Regards,
          Igor

          Show
          Igor Fedorenko added a comment - Hello, Fred, Although I am not Eugene, I will try to answer your questions anyway Re. separate configurator for each project type. I agree that it is a good idea to keep WAR, EAR and EJB related code in separate classes. My original thinking was to have single WTP project configurator that would determinate project type and delegate to implementation classes, but I guess three separate configurators would work too. I do not think order of WAR/EJB/EAR project configurators is important (if you decide to have separate configurators), because only one of the three can be applied to any individual project. Re. EAR module dependency management. I had to manipulate J2EE Module Dependencies for Dynamic Web Projects in some cases too. Have a look at WTPProjectConfigurator #mavenProjectChanged and #setModuleDependencies methods. #mavenProjectChanged is a callback method that gets invoked on every project dependency change. #setModuleDependencies implements actual manipulation of virtual module references. I believe you should be able to reuse most of this code for EAR and EIB projects too. It does make sense to use M2_REPO classpath variable to reference JARs from maven local repository. Re EAR and JDT nature. Project configurator API does not assume JDT project nature and you can get all information about project dependencies from ProjectConfigurationRequest or MavenProjectChangedEvent objects passed to AbstractProjectConfigurator methods (let me know if need more details). It should be possible to remove Java nature from EAR projects. There may be some code in m2e that assumes Java nature, but we plan to eventually remove JDT-specific code from m2e core plugin into separate configurator. Let me know if you need more information. – Regards, Igor
          Hide
          Eugene Kuleshov added a comment -

          (In reply to comment #6)
          > Re. separate configurator for each project type. I agree that it is a good idea
          > to keep WAR, EAR and EJB related code in separate classes. My original thinking
          > was to have single WTP project configurator that would determinate project type
          > and delegate to implementation classes, but I guess three separate configurators
          > would work too.

          It is probably a matter of personal preferences, but I think single configurator is a slightly better idea and may also perform better if configurators would need to parse or interpret the same configuration data. Another reason for this is that we may need to introduce configurator selection UI and it would be better to have less entries there. Basically the idea is to have one configurator per tool, and not per project type.

          BTW, it may make sense to copy those notes to the wiki. Thanks Igor.

          Show
          Eugene Kuleshov added a comment - (In reply to comment #6) > Re. separate configurator for each project type. I agree that it is a good idea > to keep WAR, EAR and EJB related code in separate classes. My original thinking > was to have single WTP project configurator that would determinate project type > and delegate to implementation classes, but I guess three separate configurators > would work too. It is probably a matter of personal preferences, but I think single configurator is a slightly better idea and may also perform better if configurators would need to parse or interpret the same configuration data. Another reason for this is that we may need to introduce configurator selection UI and it would be better to have less entries there. Basically the idea is to have one configurator per tool, and not per project type. BTW, it may make sense to copy those notes to the wiki. Thanks Igor.
          Hide
          Fred Bricon added a comment -

          thanks for your feedback.

          Well, I was not very pleased with the idea of adding 3 configurator to
          the plugin.xml. Actually, I expected to find an extension point
          similar to org.maven.ide.eclipse.classpathConfiguratorFactories, so I
          could return the project configurator according to the project type.
          As Igor said, my point was to keep specific code in separate classes.
          I have no problem keeping one configurator wich delegates specific
          project configuration to an implementation of
          IProjectConfiguratorDelegate (or whatever name you prefer).

          I started to play with the EJB configuration, it looks good for now.
          But I don't know what to do concerning ejbclient support. Any idea?

          Next, I'll try to figure out how to create JEE module dependencies for
          EARs using M2_REPO.

          regards.

          Fred Bricon

          Show
          Fred Bricon added a comment - thanks for your feedback. Well, I was not very pleased with the idea of adding 3 configurator to the plugin.xml. Actually, I expected to find an extension point similar to org.maven.ide.eclipse.classpathConfiguratorFactories, so I could return the project configurator according to the project type. As Igor said, my point was to keep specific code in separate classes. I have no problem keeping one configurator wich delegates specific project configuration to an implementation of IProjectConfiguratorDelegate (or whatever name you prefer). I started to play with the EJB configuration, it looks good for now. But I don't know what to do concerning ejbclient support. Any idea? Next, I'll try to figure out how to create JEE module dependencies for EARs using M2_REPO. regards. Fred Bricon
          Hide
          Igor Fedorenko added a comment -

          EAR projects should not have Java nature and classpath container

          Show
          Igor Fedorenko added a comment - EAR projects should not have Java nature and classpath container
          Hide
          M. Hansen added a comment -

          Yes, it would be really nice to have support for EAR files as well. At our company we package every application as an EAR file. We also package our WAR files as skinny wars so I would be nice if the plugin could handle that as well.

          Show
          M. Hansen added a comment - Yes, it would be really nice to have support for EAR files as well. At our company we package every application as an EAR file. We also package our WAR files as skinny wars so I would be nice if the plugin could handle that as well.
          Hide
          Chris Graham added a comment -

          EAR files make life (in terms of deployments etc) so much easier. No separate messing around with context root settings etc that can not be specified inside a WAR file.

          We do a mixture of fat and skinny wars (actually, in some cases a partial, where there are some jars specifically left in the WEB-INF\lib dir and others taken out - the common ones such as Log4J etc).

          Yes, tomcat has a lot to answer for.

          Whilst we're thinking outside the tomcat box, make sure when you're designing your solution to cater for things such as RAR, SAR and SIP files as well. And I've probably forgotten a few at that.

          Show
          Chris Graham added a comment - EAR files make life (in terms of deployments etc) so much easier. No separate messing around with context root settings etc that can not be specified inside a WAR file. We do a mixture of fat and skinny wars (actually, in some cases a partial, where there are some jars specifically left in the WEB-INF\lib dir and others taken out - the common ones such as Log4J etc). Yes, tomcat has a lot to answer for. Whilst we're thinking outside the tomcat box, make sure when you're designing your solution to cater for things such as RAR, SAR and SIP files as well. And I've probably forgotten a few at that.
          Hide
          Eugene Kuleshov added a comment -

          Guys, please create separate jira issue for skinny wars and attach sample test project that we could use for testing.

          We could also use test project for plain ear and ejb artifacts. Will appreciate if someone would create those and attach here. Thanks.

          Show
          Eugene Kuleshov added a comment - Guys, please create separate jira issue for skinny wars and attach sample test project that we could use for testing. We could also use test project for plain ear and ejb artifacts. Will appreciate if someone would create those and attach here. Thanks.
          Hide
          Fred Bricon added a comment -

          Hi,

          well, adding EAR support is actually a bit more complex than I thought compared to plain web integration
          We need to analyze maven-ear-plugin config to build a list of EarModules. The simplest way I found to mimic the ear plugin way of doing things was to use a modified version of its classes (ripping off everything XMLwriter related, killing singletons). I'm almost done w/ that part.
          I also left aside everything jboss related, as a start.

          The following step is to port WTP (org.eclipse.jst.j2ee.ui)'s AddModulestoEARPropertiesPage actions to our m2 plugin. There's quite some work to do here. There's a bit of changes between WTP 2.0.2 and 3.0. I'm working on the 2.0.2 code base, but it lacks supports for ear bundle dir configuration and I don't know how to handle the 2 versions (First time I'm doing eclipse plugin dev).

          Concerning SAR, HAR and other JBoss related formats, plain WTP doesn't support these project facets (JBoss Tools probably does), so I'll leave them aside.

          I hope to be able to produce a working draft for basic EAR support (ear, ejb, wars) in the next days (weeks?). Unfortunately my day job doesn't allow me to work on the subject. And my spare time's limited.

          Regards.

          Fred Bricon

          Show
          Fred Bricon added a comment - Hi, well, adding EAR support is actually a bit more complex than I thought compared to plain web integration We need to analyze maven-ear-plugin config to build a list of EarModules. The simplest way I found to mimic the ear plugin way of doing things was to use a modified version of its classes (ripping off everything XMLwriter related, killing singletons). I'm almost done w/ that part. I also left aside everything jboss related, as a start. The following step is to port WTP (org.eclipse.jst.j2ee.ui)'s AddModulestoEARPropertiesPage actions to our m2 plugin. There's quite some work to do here. There's a bit of changes between WTP 2.0.2 and 3.0. I'm working on the 2.0.2 code base, but it lacks supports for ear bundle dir configuration and I don't know how to handle the 2 versions (First time I'm doing eclipse plugin dev). Concerning SAR, HAR and other JBoss related formats, plain WTP doesn't support these project facets (JBoss Tools probably does), so I'll leave them aside. I hope to be able to produce a working draft for basic EAR support (ear, ejb, wars) in the next days (weeks?). Unfortunately my day job doesn't allow me to work on the subject. And my spare time's limited. Regards. Fred Bricon
          Hide
          Eugene Kuleshov added a comment -

          Great stuff, Fred! Thanks for the update.

          Show
          Eugene Kuleshov added a comment - Great stuff, Fred! Thanks for the update.
          Hide
          Mike R. Haller added a comment -

          Regarding Eugenes first comment, i want to note that it's not true that most developers only use WARs.
          In the OS community, most of them are WARs, as there is not much need for integration.
          However, in a commercial environment, there are a lot of integration projects going on and they need EARs & co.
          There are tendencies to move from complex packagings to the more lightweight WARs of course.

          Guys, you are doing a great job! m2eclipse has saved us a lot of time and it's a great tool to work with. Even current v0.9 has reached features and stability from which some other projects could take a leaf of m2eclipse's book. Thanks!

          Show
          Mike R. Haller added a comment - Regarding Eugenes first comment, i want to note that it's not true that most developers only use WARs. In the OS community, most of them are WARs, as there is not much need for integration. However, in a commercial environment, there are a lot of integration projects going on and they need EARs & co. There are tendencies to move from complex packagings to the more lightweight WARs of course. Guys, you are doing a great job! m2eclipse has saved us a lot of time and it's a great tool to work with. Even current v0.9 has reached features and stability from which some other projects could take a leaf of m2eclipse's book. Thanks!
          Hide
          Fred Bricon added a comment -

          As per Eugene request only, here is a first patch of my work in progress.
          It's is halfway coded, testing is incomplete/broken, it lacks documentation, so It's pretty much useless as is except
          for review purposes only.

          The code is based on Eclipse 3.3.2 + WTP 2.0.2. What's done so far :

          org.maven.ide.eclipse :

          • added EJB support in MavenArtifactComponent
          • defined EAR directories in MavenProjectWizardArtifactPage

          org.maven.ide.eclipse.wtp

          • updated Manifest.mf
          • refactored WTPProjectConfigurator to use specific project type delegates
          • added limited EJB support
          • added modified maven-ear-plugin classes
          • currently working on ear integration

          org.maven.ide.eclipse.wtp.tests

          • updated Manifest.mf
          • (barely) added a few tests cases & projects

          What can you do so far? pretty much nothing :
          You can create / import basic ejb projects (ejb-client unsupported). Open JEE perspective to see what's created.
          When creating ear projects, dependent projects are not properly referenced
          artifact dependencies seem to be correctly added as references though.
          removing dependencies is not coded.
          I don't have time to count the number of missing features. Good luck Eugene

          regards,

          Fred Bricon

          Show
          Fred Bricon added a comment - As per Eugene request only, here is a first patch of my work in progress. It's is halfway coded, testing is incomplete/broken, it lacks documentation, so It's pretty much useless as is except for review purposes only. The code is based on Eclipse 3.3.2 + WTP 2.0.2. What's done so far : org.maven.ide.eclipse : added EJB support in MavenArtifactComponent defined EAR directories in MavenProjectWizardArtifactPage org.maven.ide.eclipse.wtp updated Manifest.mf refactored WTPProjectConfigurator to use specific project type delegates added limited EJB support added modified maven-ear-plugin classes currently working on ear integration org.maven.ide.eclipse.wtp.tests updated Manifest.mf (barely) added a few tests cases & projects What can you do so far? pretty much nothing : You can create / import basic ejb projects (ejb-client unsupported). Open JEE perspective to see what's created. When creating ear projects, dependent projects are not properly referenced artifact dependencies seem to be correctly added as references though. removing dependencies is not coded. I don't have time to count the number of missing features. Good luck Eugene regards, Fred Bricon
          Hide
          Fred Bricon added a comment - - edited

          Here's a more complete head's up of what's been done so far, and what's left to be done :

          The WTPProjectConfigurator has been reworked to use a delegate pattern : Depending on a project type, it uses the corresponding IProjectConfiguratorDelegate.
          So far only war, ejb and ear are supported so we have 3 implementations:

          • WarProjectConfiguratorDelegate
          • EjbProjectConfiguratorDelegate
          • EatProjectConfiguratorDelegate

          When the project is configured, WTPProjectConfigurator calls :

          • IProjectConfiguratorDelegate.configure() : installs the corresponding WTP Facets (Dynamic Web Project, EJB, EAR)
          • IProjectConfiguratorDelegate.setModuleDependencies() : loops on every dependent artifact and configure them as component dependencies the WTP way.

          When a maven project has changed in the workspace, IProjectConfiguratorDelegate.setModuleDependencies() is called to update the component dependencies.

          Each IProjectConfiguratorDelegate relies on a XXXPluginConfiguration to extract informations from the corresponding maven plugin in pom.xml :

          • WarPluginConfiguration for maven-war-plugin
          • EjbPluginConfiguration for maven-ejb-plugin
          • EarPluginConfiguration for maven-ear-plugin

          EJB support :
          ----------------
          EjbProjectConfiguratorDelegate pretty much adds the EJB Facet version and configures the content directory and that's it.
          The ejbVersion tag is read from ejb mojo. If it's not configured ,the default EJB Facet version is 2.1 (same as maven).
          The content directory is the first resources directory configured in pom.xml (src\main\resources by default)

          setModuleDependencies is not implemented (yet), as it pretty much works as a regular java project. I didn't delve too much into that part, so there might be some additional work there.
          Ejb Clients are not supported. WTP creates an application client project whereas it's just a matter of saying generateClient=true for maven-ejb-plugin. I haven't started to think how to handle this.

          For EJB projects prior to 3.0, an empty ejb-jar.xml is automatically created in the content directory.

          EAR Support :
          ------------------
          As I already said, to add EAR support, we need to do follow the steps of org.eclipse.jst.j2ee.ui.AddModulestoEARPropertiesPage.
          Parts of WTP's code was reused in EarProjectConfiguratorDelegate

          In EarProjectConfiguratorDelegate.configure(), we :

          • Add EAR facet version, read from the version tag in ear mojo
          • set the content directory (same as EJB)
          • should update the bundle lib directory (API exists in WTP 3.0.0, currently not implemented here)

          What should be done in EarProjectConfiguratorDelegate.setModules()

          • get the earmodules configured in maven-ear-plugin : calls EarPluginConfiguration.getEarModules() (an earmodule is an artifact dependency of the ear project)
          • configure each earmodule that is a workspace dependency (by calling the configure() method of its IProjectConfiguratorDelegate if it has not already been configured)
          • each non project earmodule is referenced using the M2_REPO variable
          • remove the deleted referenced components : For each deployement directory, delete the existing WTP referenced components that are missing from the current pom dependencies (still not implemented)
          • configure earmodules per deployment directory : For each deployement directory declared in pom.xml, create a referenced component per earmodule, get its URI and call AddComponentToEnterpriseApplicationDataModelProvider
            Something that might be a problem : WTP 3.0.0 lets you define one lib directory, whereas maven-ear-plugin lets you set a different lib directory for each module if it pleases you.
            My implementation tries to comply with maven config (loops on each deployement dir), but I haven't tried it with WTP 3.0.0. It might produce strange behaviour in the J2EE Module Dependencies page of the ear project.
          • generate the deployment descriptor : automatically done for ear projects <= 2.4. For some reason doesn't work for 5.0 ears. We need to find the WTP API responsible for DD generation.

          As for now, I don't know how to set alt-dds and security roles using the wtp api.

          In order to read the earmodules from maven-ear-plugin, I didn't want to reinvent the wheel, so I reused a large part of maven-ear-plugin base code, which is under ASF Licence.
          If Eclipse IP folks are not ok with that, well I can just format my brains, forget what I saw and you guys find a better idea.

          So basically, EarPluginConfiguration.getEarModules() is a port of or.apache.maven.plugins.ear.AbstractEarMojo
          Configuration of the custom earmodules (defined in maven-ear-plugin > configuration > modules) is not implemented yet.

          As Eugene cleverly noted, the problem with that approach is we might get out of synch w/ maven-ear-plugin evolutions.
          But I think we'll have the same problem with every ProjectConfigurator implementation that reverse engineers maven plugins.

          Jboss stuff is still not supported. That means no custom file types, nor jboss configurations.
          My opinion is that it should be implemented by Jboss IDE folks, if we provide the right extension points. The discussion is open
          My current implementation might not be as open as needed but I have zero eclipse plugin developement experience.

          So far :
          --------
          In WTP 2.0.2 and 3.0.0, you can't change the JEE facet version, so if you create an ejb project from scratch with the maven wizard, it'll be a 2.1 JEE version.
          To have an ejb 3.0, you would have to :

          • logically delete the project in eclipse (do not delete content)
          • manually remove the wtp config files
          • import the project again
            ouch!

          I successfully deployed an ear w/ 2 skinny wars and 1 ejb 2.1 on jboss \o/.
          For the wars config, optional dependencies are not handled correctly so I declared them as provided,
          then I had to manually configure the war projects manifests (via the j2ee modules dependencies page). We should take a look at automatic Manifest configuration.

          I got a strange behavior with xdoclet when generating the ejb, it's not happy with the standard maven directory config,
          so it didn't generate the jboss deployment descriptor, but that's another issue. I had to create and copy it from another non maven project.

          I can't get ears 5.0 to work as they 're missing the application.xml. I bet that's everybody most wanted feature

          I'm currently having issues synch'ing with SVN tonight, but you can take a look at http://svn.sonatype.org/m2eclipse/branches/ear-support/
          Development's been stalling a bit on my side, I'm sorry for that but spare time is really an issue. I don't think there's more than a few days work left.
          Hopefully Eugene involvment'll speed things up.

          I'm sure I forgot some things. As always, I'm open to questions/comments/insults.

          Regards,

          Fred Bricon

          Show
          Fred Bricon added a comment - - edited Here's a more complete head's up of what's been done so far, and what's left to be done : The WTPProjectConfigurator has been reworked to use a delegate pattern : Depending on a project type, it uses the corresponding IProjectConfiguratorDelegate. So far only war, ejb and ear are supported so we have 3 implementations: WarProjectConfiguratorDelegate EjbProjectConfiguratorDelegate EatProjectConfiguratorDelegate When the project is configured, WTPProjectConfigurator calls : IProjectConfiguratorDelegate.configure() : installs the corresponding WTP Facets (Dynamic Web Project, EJB, EAR) IProjectConfiguratorDelegate.setModuleDependencies() : loops on every dependent artifact and configure them as component dependencies the WTP way. When a maven project has changed in the workspace, IProjectConfiguratorDelegate.setModuleDependencies() is called to update the component dependencies. Each IProjectConfiguratorDelegate relies on a XXXPluginConfiguration to extract informations from the corresponding maven plugin in pom.xml : WarPluginConfiguration for maven-war-plugin EjbPluginConfiguration for maven-ejb-plugin EarPluginConfiguration for maven-ear-plugin EJB support : ---------------- EjbProjectConfiguratorDelegate pretty much adds the EJB Facet version and configures the content directory and that's it. The ejbVersion tag is read from ejb mojo. If it's not configured ,the default EJB Facet version is 2.1 (same as maven). The content directory is the first resources directory configured in pom.xml (src\main\resources by default) setModuleDependencies is not implemented (yet), as it pretty much works as a regular java project. I didn't delve too much into that part, so there might be some additional work there. Ejb Clients are not supported. WTP creates an application client project whereas it's just a matter of saying generateClient=true for maven-ejb-plugin. I haven't started to think how to handle this. For EJB projects prior to 3.0, an empty ejb-jar.xml is automatically created in the content directory. EAR Support : ------------------ As I already said, to add EAR support, we need to do follow the steps of org.eclipse.jst.j2ee.ui.AddModulestoEARPropertiesPage. Parts of WTP's code was reused in EarProjectConfiguratorDelegate In EarProjectConfiguratorDelegate.configure(), we : Add EAR facet version, read from the version tag in ear mojo set the content directory (same as EJB) should update the bundle lib directory (API exists in WTP 3.0.0, currently not implemented here) What should be done in EarProjectConfiguratorDelegate.setModules() get the earmodules configured in maven-ear-plugin : calls EarPluginConfiguration.getEarModules() (an earmodule is an artifact dependency of the ear project) configure each earmodule that is a workspace dependency (by calling the configure() method of its IProjectConfiguratorDelegate if it has not already been configured) each non project earmodule is referenced using the M2_REPO variable remove the deleted referenced components : For each deployement directory, delete the existing WTP referenced components that are missing from the current pom dependencies (still not implemented) configure earmodules per deployment directory : For each deployement directory declared in pom.xml, create a referenced component per earmodule, get its URI and call AddComponentToEnterpriseApplicationDataModelProvider Something that might be a problem : WTP 3.0.0 lets you define one lib directory, whereas maven-ear-plugin lets you set a different lib directory for each module if it pleases you. My implementation tries to comply with maven config (loops on each deployement dir), but I haven't tried it with WTP 3.0.0. It might produce strange behaviour in the J2EE Module Dependencies page of the ear project. generate the deployment descriptor : automatically done for ear projects <= 2.4. For some reason doesn't work for 5.0 ears. We need to find the WTP API responsible for DD generation. As for now, I don't know how to set alt-dds and security roles using the wtp api. In order to read the earmodules from maven-ear-plugin, I didn't want to reinvent the wheel, so I reused a large part of maven-ear-plugin base code, which is under ASF Licence. If Eclipse IP folks are not ok with that, well I can just format my brains, forget what I saw and you guys find a better idea. So basically, EarPluginConfiguration.getEarModules() is a port of or.apache.maven.plugins.ear.AbstractEarMojo Configuration of the custom earmodules (defined in maven-ear-plugin > configuration > modules) is not implemented yet. As Eugene cleverly noted, the problem with that approach is we might get out of synch w/ maven-ear-plugin evolutions. But I think we'll have the same problem with every ProjectConfigurator implementation that reverse engineers maven plugins. Jboss stuff is still not supported. That means no custom file types, nor jboss configurations. My opinion is that it should be implemented by Jboss IDE folks, if we provide the right extension points. The discussion is open My current implementation might not be as open as needed but I have zero eclipse plugin developement experience. So far : -------- In WTP 2.0.2 and 3.0.0, you can't change the JEE facet version, so if you create an ejb project from scratch with the maven wizard, it'll be a 2.1 JEE version. To have an ejb 3.0, you would have to : logically delete the project in eclipse (do not delete content) manually remove the wtp config files import the project again ouch! I successfully deployed an ear w/ 2 skinny wars and 1 ejb 2.1 on jboss \o/. For the wars config, optional dependencies are not handled correctly so I declared them as provided, then I had to manually configure the war projects manifests (via the j2ee modules dependencies page). We should take a look at automatic Manifest configuration. I got a strange behavior with xdoclet when generating the ejb, it's not happy with the standard maven directory config, so it didn't generate the jboss deployment descriptor, but that's another issue. I had to create and copy it from another non maven project. I can't get ears 5.0 to work as they 're missing the application.xml. I bet that's everybody most wanted feature I'm currently having issues synch'ing with SVN tonight, but you can take a look at http://svn.sonatype.org/m2eclipse/branches/ear-support/ Development's been stalling a bit on my side, I'm sorry for that but spare time is really an issue. I don't think there's more than a few days work left. Hopefully Eugene involvment'll speed things up. I'm sure I forgot some things. As always, I'm open to questions/comments/insults. Regards, Fred Bricon
          Hide
          Igor Fedorenko added a comment -

          Make sure m2e properly deals with provided scope. See sample project attached to MNGECLIPSE-714

          Show
          Igor Fedorenko added a comment - Make sure m2e properly deals with provided scope. See sample project attached to MNGECLIPSE-714
          Hide
          Eugene Kuleshov added a comment -

          I would like to ask everyone who is watching or voted on this issue to comment here and answer few questions that would help us to prioritize features we want to support in this integration:

          • what Eclipse and WTP version you are using?
          • what application server you are deploying to?
          • are you using maven-ejb-plugin [1]? what version?
            • do you need to generate/support ejb client?
            • what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml
          • are you using maven-ear-plugin [2]? what version?
            • what configuration option you are using in maven-ear-plugin? show snippets of pom.xml
            • what configuration modules [3] you are using?
            • are you using any other customization?

          Thank you in advance.

          [1] http://maven.apache.org/plugins/maven-ejb-plugin/
          [2] http://maven.apache.org/plugins/maven-ear-plugin/
          [3] http://maven.apache.org/plugins/maven-ear-plugin/modules.html

          Show
          Eugene Kuleshov added a comment - I would like to ask everyone who is watching or voted on this issue to comment here and answer few questions that would help us to prioritize features we want to support in this integration: what Eclipse and WTP version you are using? what application server you are deploying to? are you using maven-ejb-plugin [1] ? what version? do you need to generate/support ejb client? what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml are you using maven-ear-plugin [2] ? what version? what configuration option you are using in maven-ear-plugin? show snippets of pom.xml what configuration modules [3] you are using? are you using any other customization? Thank you in advance. [1] http://maven.apache.org/plugins/maven-ejb-plugin/ [2] http://maven.apache.org/plugins/maven-ear-plugin/ [3] http://maven.apache.org/plugins/maven-ear-plugin/modules.html
          Hide
          Eugene Kuleshov added a comment - - edited

          From the mailing list (Syvalta):

          • what Eclipse and WTP version you are using?
            Eclipse 3.4, WTP 3.0.1 (usually latest released, but sometimes also
            milestones if they work better than the latest release).
          • what application server you are deploying to?
            Glassfish v2ur2 (usually latest released), Weblogic 10.3 / 10 MP1.
          • are you using maven-ejb-plugin [1]? what version?
            No.
          • are you using maven-ear-plugin [2]? what version?
            Yes, 2.3.1 (again, usually latest released).
            • what configuration option you are using in maven-ear-plugin? show snippets of pom.xml
                 <earSourceDirectory>application</earSourceDirectory>
                 <!-- eclipse creates own application.xml, so exclude it -->
                 <earSourceExcludes>META-INF/application.xml</earSourceExcludes>
                 <defaultLibBundleDir>lib</defaultLibBundleDir>
                 <archive>
                   <manifestEntries>
                     <Implementation-Title>${pom.name}</Implementation-Title>
                     <Implementation-Version>${pom.version}</Implementation-Version>
                   </manifestEntries>
                 </archive>
              

              Additionally, I would like to control the version of the ear facet in eclipse, but ear-plugin doesn't support that currently.

            • what configuration modules [3] you are using?
              Only webModules currently (to set contextRoot).
          • are you using any other customization?
            No.
          Show
          Eugene Kuleshov added a comment - - edited From the mailing list (Syvalta): what Eclipse and WTP version you are using? Eclipse 3.4, WTP 3.0.1 (usually latest released, but sometimes also milestones if they work better than the latest release). what application server you are deploying to? Glassfish v2ur2 (usually latest released), Weblogic 10.3 / 10 MP1. are you using maven-ejb-plugin [1] ? what version? No. are you using maven-ear-plugin [2] ? what version? Yes, 2.3.1 (again, usually latest released). what configuration option you are using in maven-ear-plugin? show snippets of pom.xml <earSourceDirectory>application</earSourceDirectory> <!-- eclipse creates own application.xml, so exclude it --> <earSourceExcludes>META-INF/application.xml</earSourceExcludes> <defaultLibBundleDir>lib</defaultLibBundleDir> <archive> <manifestEntries> <Implementation-Title>${pom.name}</Implementation-Title> <Implementation-Version>${pom.version}</Implementation-Version> </manifestEntries> </archive> Additionally, I would like to control the version of the ear facet in eclipse, but ear-plugin doesn't support that currently. what configuration modules [3] you are using? Only webModules currently (to set contextRoot). are you using any other customization? No.
          Hide
          Eugene Kuleshov added a comment -

          From the mailing list (Felipe Kamakura):

          • what Eclipse and WTP version you are using?
            In our company we currently use Eclipse 3.3.2 and WTP 2.0.3. But we have
            plans to upgrade do Ganymede and WTP 3.
          • what application server you are deploying to?
            Weblogic 10g
          • are you using maven-ejb-plugin [1]? what version?
            Yes. Version 2.1.
            • do you need to generate/support ejb client?
              Not automatically. We create an extra module for ejb-client.
            • what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml
              <plugin>
                <artifactId>maven-ejb-plugin</artifactId>
                <configuration>
                  <archive>
                    <addMavenDescriptor>false</addMavenDescriptor>
                    <index>true</index>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                        <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                    </manifest>
                  </archive>
                  <ejbVersion>3.0</ejbVersion>
                </configuration>
              </plugin>
              
          • are you using maven-ear-plugin [2]? what version?
            Yes. Version 2.3.1.
            • what configuration option you are using in maven-ear-plugin? show snippets of pom.xml
              <plugin>
                  <artifactId>maven-ear-plugin</artifactId>
                  <configuration>
                    <generateApplicationXml>true</generateApplicationXml>
                    <defaultLibBundleDir>lib</defaultLibBundleDir>
                    <encoding>UTF-8</encoding>
                    <archive>
                      <addMavenDescriptor>false</addMavenDescriptor>
                      <index>true</index>
                      <manifest>
                          <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                          <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                      </manifest>
                    </archive>
                    <version>5</version>
                  </configuration>
              </plugin>
              
            • what configuration modules [3] you are using?
              ejbModule and warModule.
            • are you using any other customization?
              No.
          Show
          Eugene Kuleshov added a comment - From the mailing list (Felipe Kamakura): what Eclipse and WTP version you are using? In our company we currently use Eclipse 3.3.2 and WTP 2.0.3. But we have plans to upgrade do Ganymede and WTP 3. what application server you are deploying to? Weblogic 10g are you using maven-ejb-plugin [1] ? what version? Yes. Version 2.1. do you need to generate/support ejb client? Not automatically. We create an extra module for ejb-client. what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml <plugin> <artifactId>maven-ejb-plugin</artifactId> <configuration> <archive> <addMavenDescriptor> false </addMavenDescriptor> <index> true </index> <manifest> <addClasspath> true </addClasspath> <addDefaultSpecificationEntries> true </addDefaultSpecificationEntries> <addDefaultImplementationEntries> true </addDefaultImplementationEntries> </manifest> </archive> <ejbVersion>3.0</ejbVersion> </configuration> </plugin> are you using maven-ear-plugin [2] ? what version? Yes. Version 2.3.1. what configuration option you are using in maven-ear-plugin? show snippets of pom.xml <plugin> <artifactId>maven-ear-plugin</artifactId> <configuration> <generateApplicationXml> true </generateApplicationXml> <defaultLibBundleDir>lib</defaultLibBundleDir> <encoding>UTF-8</encoding> <archive> <addMavenDescriptor> false </addMavenDescriptor> <index> true </index> <manifest> <addDefaultSpecificationEntries> true </addDefaultSpecificationEntries> <addDefaultImplementationEntries> true </addDefaultImplementationEntries> </manifest> </archive> <version>5</version> </configuration> </plugin> what configuration modules [3] you are using? ejbModule and warModule. are you using any other customization? No.
          Hide
          Tim Reilly added a comment -

          > what Eclipse and WTP version you are using?
          RAD 7 (can't use RAD 7.5 until its GA and it gets planned for roll-out throughout the corp)
          Our config info is here: http://jira.codehaus.org/browse/MNGECLIPSE-653

          > what application server you are deploying to?
          Websphere 6.0, 6.1 and Websphere Portal 6.0

          > are you using maven-ejb-plugin [1]? what version?
          Yes, but in combination with a home grown ejb-deploy plugin which does the ibm rmic, descriptors, etc

          > do you need to generate/support ejb client?
          Yes. We do this with our custom plugin. We're considering using the codehaus websphere plugin. We use the command line but our plugin and the codehaus websphere plugin are essentially the same just different impls.

          > what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml
          Keep in mind our websphere-ejbdelploy plugin does the rmic and descriptor stuff.
          <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ejb-plugin</artifactId>
          <version>2.1</version>
          <configuration>
          <archive>
          <index>false</index>
          <manifest>
          <addClasspath>true</addClasspath>
          <classpathPrefix>lib</classpathPrefix>
          </manifest>
          </archive>
          </configuration>
          </plugin>

          > are you using maven-ear-plugin [2]? what version?
          Yes for everything except portlet projects. Websphere likes ears.
          2.3.1-SNAPSHOT

          > what configuration option you are using in maven-ear-plugin? show snippets of pom.xml

          <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ear-plugin</artifactId>
          <version>2.3.1-SNAPSHOT</version>
          <configuration>
          <earSourceDirectory>
          $

          {project.build.outputDirectory}
          </earSourceDirectory>
          <applicationXml>
          ${project.build.outputDirectory}

          /META-INF/application.xml
          </applicationXml>
          <defaultLibBundleDir>lib</defaultLibBundleDir>
          <generateApplicationXml>
          false
          </generateApplicationXml>
          <archive>
          <index>false</index>
          <manifest>
          <addClasspath>false</addClasspath>
          </manifest>
          <manifestEntries>
          <groupId>$

          {project.groupId}

          </groupId>
          <artifactId>$

          {project.artifactId}

          </artifactId>
          <version>$

          {project.version}</version>
          <Implementation-Version>${project.version}

          </Implementation-Version>
          <environment>$

          {environment}

          </environment>
          </manifestEntries>
          </archive>
          </configuration>
          </plugin>

          > what configuration modules [3] you are using?
          jarModule
          ejbModule
          ejbClientModule
          webModule

          > are you using any other customization?
          Yes. We forked the war plugin due to: http://jira.codehaus.org/browse/MNG-3269
          We also use our websphere-plugin:jsp-compile goal, and quite a few other things like we use /WebContent as a resource directory and don't have webapp directories.
          Hope that helps.

          Show
          Tim Reilly added a comment - > what Eclipse and WTP version you are using? RAD 7 (can't use RAD 7.5 until its GA and it gets planned for roll-out throughout the corp) Our config info is here: http://jira.codehaus.org/browse/MNGECLIPSE-653 > what application server you are deploying to? Websphere 6.0, 6.1 and Websphere Portal 6.0 > are you using maven-ejb-plugin [1] ? what version? Yes, but in combination with a home grown ejb-deploy plugin which does the ibm rmic, descriptors, etc > do you need to generate/support ejb client? Yes. We do this with our custom plugin. We're considering using the codehaus websphere plugin. We use the command line but our plugin and the codehaus websphere plugin are essentially the same just different impls. > what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml Keep in mind our websphere-ejbdelploy plugin does the rmic and descriptor stuff. <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ejb-plugin</artifactId> <version>2.1</version> <configuration> <archive> <index>false</index> <manifest> <addClasspath>true</addClasspath> <classpathPrefix>lib</classpathPrefix> </manifest> </archive> </configuration> </plugin> > are you using maven-ear-plugin [2] ? what version? Yes for everything except portlet projects. Websphere likes ears. 2.3.1-SNAPSHOT > what configuration option you are using in maven-ear-plugin? show snippets of pom.xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>2.3.1-SNAPSHOT</version> <configuration> <earSourceDirectory> $ {project.build.outputDirectory} </earSourceDirectory> <applicationXml> ${project.build.outputDirectory} /META-INF/application.xml </applicationXml> <defaultLibBundleDir>lib</defaultLibBundleDir> <generateApplicationXml> false </generateApplicationXml> <archive> <index>false</index> <manifest> <addClasspath>false</addClasspath> </manifest> <manifestEntries> <groupId>$ {project.groupId} </groupId> <artifactId>$ {project.artifactId} </artifactId> <version>$ {project.version}</version> <Implementation-Version>${project.version} </Implementation-Version> <environment>$ {environment} </environment> </manifestEntries> </archive> </configuration> </plugin> > what configuration modules [3] you are using? jarModule ejbModule ejbClientModule webModule > are you using any other customization? Yes. We forked the war plugin due to: http://jira.codehaus.org/browse/MNG-3269 We also use our websphere-plugin:jsp-compile goal, and quite a few other things like we use /WebContent as a resource directory and don't have webapp directories. Hope that helps.
          Hide
          christian-Luc Houze added a comment -

          what Eclipse and WTP version you are using?
          ==> Europa Winter Edition. Upgrade to Ganymede is planned

          what application server you are deploying to?
          ==> JOnAS 4.8.6 and up

          are you using maven-ejb-plugin [1]? what version?
          ==> yes: 2.1

          do you need to generate/support ejb client?
          ==> yes

          what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml
          <plugin>
          <artifactId>maven-ejb-plugin</artifactId>
          <configuration>
          <archive>
          <manifest>
          <addClasspath>true</addClasspath>
          </manifest>
          </archive>
          <generateClient>true</generateClient>
          <clientExcludes>
          <clientExclude>
          **/ejb/*Bean.class
          </clientExclude>
          </clientExcludes>
          </configuration>
          </plugin>

          are you using maven-ear-plugin [2]? what version?
          ==> yes: 2.3.1
          what configuration option you are using in maven-ear-plugin? show snippets of pom.xml
          <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ear-plugin</artifactId>
          <configuration>
          <archive>
          <manifest>
          <addClasspath>true</addClasspath>
          </manifest>
          </archive>
          <modules>
          <webModule>
          <groupId>ch.ge.cti.formation</groupId>
          <artifactId>CtiFormationWebApp</artifactId>
          <contextRoot>ctiformation</contextRoot>
          </webModule>
          </modules>
          </configuration>
          </plugin>

          what configuration modules [3] you are using?
          ==> jar, ejb, war

          are you using any other customization?
          ==> we have written our own maven plugins for ejb generation, and stubs/skeletons generation

          Thanks for all,

          Christian-Luc

          Show
          christian-Luc Houze added a comment - what Eclipse and WTP version you are using? ==> Europa Winter Edition. Upgrade to Ganymede is planned what application server you are deploying to? ==> JOnAS 4.8.6 and up are you using maven-ejb-plugin [1] ? what version? ==> yes: 2.1 do you need to generate/support ejb client? ==> yes what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml <plugin> <artifactId>maven-ejb-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> <generateClient>true</generateClient> <clientExcludes> <clientExclude> **/ejb/*Bean.class </clientExclude> </clientExcludes> </configuration> </plugin> are you using maven-ear-plugin [2] ? what version? ==> yes: 2.3.1 what configuration option you are using in maven-ear-plugin? show snippets of pom.xml <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <configuration> <archive> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> <modules> <webModule> <groupId>ch.ge.cti.formation</groupId> <artifactId>CtiFormationWebApp</artifactId> <contextRoot>ctiformation</contextRoot> </webModule> </modules> </configuration> </plugin> what configuration modules [3] you are using? ==> jar, ejb, war are you using any other customization? ==> we have written our own maven plugins for ejb generation, and stubs/skeletons generation Thanks for all, Christian-Luc
          Hide
          Chris Graham added a comment - - edited
          • what Eclipse and WTP version you are using?

          RSA V7 (Eclipse 3.2.2 and WTP 1.5.5 (when 7.0.0.7 is applied)).
          Soon to move to 7.5 when available (eclipse 3.4)

          HOWEVER I will also be needing to support IBM's Process Server, and to do that, you need WID (WebSphere Integration Developer), which the last version I was was 6.0.2 which is eclipse 3.0 (3.1?) based (don't know what version of WTP)

          My point here is that being at the newest level is not always necessary, particularly in the corporate world. Corporates will tend to stick with something that works. (if it does the job...) So, saying 'just upgrade to the latest 3.4...' is not always a realistic or practical solution.

          • what application server you are deploying to?

          WebSphere Application Network Deployment V5.1, 6.0 and 6.1.
          6.1 will have the various feature packs available.
          WebSphere Process Server 6.0.2.
          Weblogic (don't know what version)
          Probably SunOne soon too.

          • are you using maven-ejb-plugin [1]? what version?

          Yes.

           
          <maven-jar-plugin.version>2.2</maven-jar-plugin.version>
          <maven-ejb-plugin.version>2.1</maven-ejb-plugin.version>
          <maven-war-plugin.version>2.1-alpha-1</maven-war-plugin.version>
          <maven-ear-plugin.version>2.3.1</maven-ear-plugin.version>
          

          o do you need to generate/support ejb client?

          No, but if I do, I'd get RSA to do it.

          o what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml

           
                  <plugins>
                      <plugin>
                          <artifactId>maven-ejb-plugin</artifactId>
                          <configuration>
                              <archive>
                                  <manifest>
                                      <addClasspath>true</addClasspath>
                                  </manifest>
                              </archive>
                          </configuration>
                      </plugin>
          
                      <plugin>
                          <artifactId>maven-eclipse-plugin</artifactId>
                          <configuration>
                              <wtpversion>1.5</wtpversion>
          
                              <additionalBuildcommands>
                                  <buildcommand>org.eclipse.wst.validation.validationbuilder</buildcommand>
                                  <buildcommand>org.eclipse.wst.common.project.facet.core.builder</buildcommand>
                              </additionalBuildcommands>
          
                              <additionalProjectnatures>
                                  <projectnature>org.eclipse.wst.common.project.facet.core.nature</projectnature>
                                  <projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>
                              </additionalProjectnatures>
          
                              <classpathContainers>
                                  <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/WebSphere v6.1 JRE</classpathContainer>
                                  <!--
                                  <classpathContainer>org.eclipse.jst.server.core.container/com.ibm.ws.ast.st.runtime.runtimeTarget.v61/was.base.v61</classpathContainer>
                                  -->
                                  <classpathContainer>org.eclipse.jst.j2ee.internal.module.container</classpathContainer>
                              </classpathContainers>
          
                              <additionalProjectFacets>
                                  <com.ibm.websphere.extended.ejb>6.1</com.ibm.websphere.extended.ejb>
                              </additionalProjectFacets>
          
                          </configuration>
                      </plugin>
                  </plugins>
          
          • are you using maven-ear-plugin [2]? what version?
            o what configuration option you are using in maven-ear-plugin? show snippets of pom.xml

          To the person who commented about facets and ears, that is an eclipse thing, not an ear configuration thing (eclipse configures ears, not the other way around), so I've included the eclipse setup as well.

          This is how I produce a EAR V1.3 for WAS 5.1: (Just change it to 1.4 for WAS 6.1)

          Also, rather an exluding the eclipse one, I get maven to generate one (generateApplicationXml = true) which generates it in the target dirs, and then tell it to use the generated one not the eclipse supplied one (applicationXml = $project.build.directory/application.xml).

               <properties>
                  <ear.specification.version>1.3</ear.specification.version>
              </properties>
          
                      <plugin>
                          <artifactId>maven-ear-plugin</artifactId>
                          <configuration>
                              <version>${ear.specification.version}</version>
                              <generateApplicationXml>true</generateApplicationXml>
                              <applicationXml>${project.build.directory}/application.xml</applicationXml>
                              <!--
                              <defaultJavaBundleDir>lib/</defaultJavaBundleDir>
                              -->
                              <modules>
                                  <webModule>
                                      <groupId>au.com.warpspeed.firedragon</groupId>
                                      <artifactId>FireDragonWeb</artifactId>
                                      <contextRoot>firedragon</contextRoot>
                                  </webModule>
                              </modules>
                          </configuration>
                      </plugin>
          
                      <plugin>
                          <artifactId>maven-eclipse-plugin</artifactId>
                          <configuration>
                              <wtpversion>1.5</wtpversion>
          
                              <additionalBuildcommands>
                                  <buildcommand>org.eclipse.wst.validation.validationbuilder</buildcommand>
                                  <buildcommand>org.eclipse.wst.common.project.facet.core.builder</buildcommand>
                              </additionalBuildcommands>
          
                              <additionalProjectnatures>
                                  <projectnature>org.eclipse.wst.common.project.facet.core.nature</projectnature>
                                  <projectnature>org.eclipse.wst.common.modulecore.ModuleCoreNature</projectnature>
                              </additionalProjectnatures>
          
                              <additionalProjectFacets>
                                  <com.ibm.websphere.extended.ear>6.1</com.ibm.websphere.extended.ear>
                                  <com.ibm.websphere.coexistence.ear>6.1</com.ibm.websphere.coexistence.ear>
                              </additionalProjectFacets>
          
                          </configuration>
                      </plugin>
          

          o what configuration modules [3] you are using?

          jar, ejb, war mostly.

          o are you using any other customization?

          Yes, to upload the generated artifact to our servers for deployment (ie not a local server and NOT a maven repo upload), we include:

           
                      <plugin>
                          <groupId>com.atlassian.maven.plugins</groupId>
                          <artifactId>maven-upload-plugin</artifactId>
                          <version>1.1</version>
                          <executions>
                              <execution>
                                  <id>upload-ear</id>
                                  <phase>package</phase>
                                  <goals>
                                      <goal>upload</goal>
                                  </goals>
                                  <configuration>
                                      <resourceSrc>${project.build.directory}/${project.build.finalName}.ear</resourceSrc>
                                      <resourceDest />
                                      <serverId>inet3</serverId>
                                      <url>sftp://inet3.warpspeed.com.au/was51/firedragon/ears</url>
                                  </configuration>
                              </execution>
                          </executions>
                      </plugin>
          

          This will sftp the generated ear file to the right place on the remote server.

          -Chris

          Show
          Chris Graham added a comment - - edited what Eclipse and WTP version you are using? RSA V7 (Eclipse 3.2.2 and WTP 1.5.5 (when 7.0.0.7 is applied)). Soon to move to 7.5 when available (eclipse 3.4) HOWEVER I will also be needing to support IBM's Process Server, and to do that, you need WID (WebSphere Integration Developer), which the last version I was was 6.0.2 which is eclipse 3.0 (3.1?) based (don't know what version of WTP) My point here is that being at the newest level is not always necessary, particularly in the corporate world. Corporates will tend to stick with something that works. (if it does the job...) So, saying 'just upgrade to the latest 3.4...' is not always a realistic or practical solution. what application server you are deploying to? WebSphere Application Network Deployment V5.1, 6.0 and 6.1. 6.1 will have the various feature packs available. WebSphere Process Server 6.0.2. Weblogic (don't know what version) Probably SunOne soon too. are you using maven-ejb-plugin [1] ? what version? Yes. <maven-jar-plugin.version> 2.2 </maven-jar-plugin.version> <maven-ejb-plugin.version> 2.1 </maven-ejb-plugin.version> <maven-war-plugin.version> 2.1-alpha-1 </maven-war-plugin.version> <maven-ear-plugin.version> 2.3.1 </maven-ear-plugin.version> o do you need to generate/support ejb client? No, but if I do, I'd get RSA to do it. o what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml <plugins> <plugin> <artifactId> maven-ejb-plugin </artifactId> <configuration> <archive> <manifest> <addClasspath> true </addClasspath> </manifest> </archive> </configuration> </plugin> <plugin> <artifactId> maven-eclipse-plugin </artifactId> <configuration> <wtpversion> 1.5 </wtpversion> <additionalBuildcommands> <buildcommand> org.eclipse.wst.validation.validationbuilder </buildcommand> <buildcommand> org.eclipse.wst.common.project.facet.core.builder </buildcommand> </additionalBuildcommands> <additionalProjectnatures> <projectnature> org.eclipse.wst.common.project.facet.core.nature </projectnature> <projectnature> org.eclipse.wst.common.modulecore.ModuleCoreNature </projectnature> </additionalProjectnatures> <classpathContainers> <classpathContainer> org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/WebSphere v6.1 JRE </classpathContainer> <!-- <classpathContainer> org.eclipse.jst.server.core.container/com.ibm.ws.ast.st.runtime.runtimeTarget.v61/was.base.v61 </classpathContainer> --> <classpathContainer> org.eclipse.jst.j2ee.internal.module.container </classpathContainer> </classpathContainers> <additionalProjectFacets> <com.ibm.websphere.extended.ejb> 6.1 </com.ibm.websphere.extended.ejb> </additionalProjectFacets> </configuration> </plugin> </plugins> are you using maven-ear-plugin [2] ? what version? o what configuration option you are using in maven-ear-plugin? show snippets of pom.xml To the person who commented about facets and ears, that is an eclipse thing, not an ear configuration thing (eclipse configures ears, not the other way around), so I've included the eclipse setup as well. This is how I produce a EAR V1.3 for WAS 5.1: (Just change it to 1.4 for WAS 6.1) Also, rather an exluding the eclipse one, I get maven to generate one (generateApplicationXml = true) which generates it in the target dirs, and then tell it to use the generated one not the eclipse supplied one (applicationXml = $project.build.directory/application.xml). <properties> <ear.specification.version> 1.3 </ear.specification.version> </properties> <plugin> <artifactId> maven-ear-plugin </artifactId> <configuration> <version> ${ear.specification.version} </version> <generateApplicationXml> true </generateApplicationXml> <applicationXml> ${project.build.directory}/application.xml </applicationXml> <!-- <defaultJavaBundleDir> lib/ </defaultJavaBundleDir> --> <modules> <webModule> <groupId> au.com.warpspeed.firedragon </groupId> <artifactId> FireDragonWeb </artifactId> <contextRoot> firedragon </contextRoot> </webModule> </modules> </configuration> </plugin> <plugin> <artifactId> maven-eclipse-plugin </artifactId> <configuration> <wtpversion> 1.5 </wtpversion> <additionalBuildcommands> <buildcommand> org.eclipse.wst.validation.validationbuilder </buildcommand> <buildcommand> org.eclipse.wst.common.project.facet.core.builder </buildcommand> </additionalBuildcommands> <additionalProjectnatures> <projectnature> org.eclipse.wst.common.project.facet.core.nature </projectnature> <projectnature> org.eclipse.wst.common.modulecore.ModuleCoreNature </projectnature> </additionalProjectnatures> <additionalProjectFacets> <com.ibm.websphere.extended.ear> 6.1 </com.ibm.websphere.extended.ear> <com.ibm.websphere.coexistence.ear> 6.1 </com.ibm.websphere.coexistence.ear> </additionalProjectFacets> </configuration> </plugin> o what configuration modules [3] you are using? jar, ejb, war mostly. o are you using any other customization? Yes, to upload the generated artifact to our servers for deployment (ie not a local server and NOT a maven repo upload), we include: <plugin> <groupId>com.atlassian.maven.plugins</groupId> <artifactId>maven-upload-plugin</artifactId> <version>1.1</version> <executions> <execution> <id>upload-ear</id> <phase> package </phase> <goals> <goal>upload</goal> </goals> <configuration> <resourceSrc>${project.build.directory}/${project.build.finalName}.ear</resourceSrc> <resourceDest /> <serverId>inet3</serverId> <url>sftp: //inet3.warpspeed.com.au/was51/firedragon/ears</url> </configuration> </execution> </executions> </plugin> This will sftp the generated ear file to the right place on the remote server. -Chris
          Hide
          Yann Albou added a comment -
          • what Eclipse and WTP version you are using?
            --> Eclipse Ganymede 3.4.0 with WTP 3.0.1
          • what application server you are deploying to?
            --> WebLogic Server 9.2 and WebLogic Server 10.3
          • are you using maven-ejb-plugin [1]? what version?
            --> Yes, maven-ejb-plugin 2.1
            o do you need to generate/support ejb client?
            --> No
            o what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml
            <plugin>
            	<artifactId>maven-ejb-plugin</artifactId>
            	<configuration>
            		<generateClient>false</generateClient>
            		<archive>
            			<manifest>
            				<addClasspath>true</addClasspath>
            			</manifest>
            		</archive>
            	</configuration>
            </plugin>
            
          • are you using maven-ear-plugin [2]? what version?
            --> Yes, maven-ear-plugin 2.3.1
            o what configuration option you are using in maven-ear-plugin? show snippets of pom.xml
            <plugin>
            	<artifactId>maven-ear-plugin</artifactId>
            	<configuration>
            		<archive>
            			<manifestEntries>
            				<Weblogic-Application-Version>${project.version}</Weblogic-Application-Version>
            			</manifestEntries>
            		</archive>
            		<earSourceDirectory>${basedir}/target/classes</earSourceDirectory>
            	</configuration>
            </plugin>
            

            o what configuration modules [3] you are using?
            --> WebModule, EjbModule, JarModule
            o are you using any other customization?
            --> No

          Yann.

          Show
          Yann Albou added a comment - what Eclipse and WTP version you are using? --> Eclipse Ganymede 3.4.0 with WTP 3.0.1 what application server you are deploying to? --> WebLogic Server 9.2 and WebLogic Server 10.3 are you using maven-ejb-plugin [1] ? what version? --> Yes, maven-ejb-plugin 2.1 o do you need to generate/support ejb client? --> No o what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml <plugin> <artifactId> maven-ejb-plugin </artifactId> <configuration> <generateClient> false </generateClient> <archive> <manifest> <addClasspath> true </addClasspath> </manifest> </archive> </configuration> </plugin> are you using maven-ear-plugin [2] ? what version? --> Yes, maven-ear-plugin 2.3.1 o what configuration option you are using in maven-ear-plugin? show snippets of pom.xml <plugin> <artifactId> maven-ear-plugin </artifactId> <configuration> <archive> <manifestEntries> <Weblogic-Application-Version> ${project.version} </Weblogic-Application-Version> </manifestEntries> </archive> <earSourceDirectory> ${basedir}/target/classes </earSourceDirectory> </configuration> </plugin> o what configuration modules [3] you are using? --> WebModule, EjbModule, JarModule o are you using any other customization? --> No Yann.
          Hide
          Fred Bricon added a comment - - edited

          Today's heads up :

          So far, the only working/supported maven-ear-plugin customizations are : defaultLibBundleDir, version, earSourceDirectory.

          In WTP, when creating Java EE projects, facets are added to the projects. So far, these can not be changed, neither removed, ever
          (see my previous posts) .
          If you need to create a project with another java ee version, you'll have to either :

          • first create a project with wtp wizard, then mavenize it
          • first create a simple maven project in eclipse, add maven-ear-plugin (setting <version> accordingly)
            or maven-ejb-plugin (setting <ejbVersion>), add the corresponding packaging (ear or ejb),
            save your pom.xml then left click on your project, maven > update maven configuration.

          Prior to Java EE 5.0, application.xml will be generated in src/main/application and ejb-jar.xml will be generated in the project resource directory

          ejb 3.0 requires java 5 at least, so make sure your maven project configures or inherits maven-compiler-plugin accordingly.

          ear 5.0 and ejb 3.0 seem to work. application.xml and ejb-jar.xml are not required according to Java EE 5 spec, so they're not generated.
          JBoss AS 4.2.2, for example, complains if application.xml is missing, so you will have to manually generate it :
          left click on project > Java EE tools > generate deployement descriptor. (same procedure apply for ejb-jar.xml generation)

          When generated this way, there might be a bogus entry in application xml, that needs to be manually deleted.

          If you open the Java EE perspective, you'll see a deployment descriptor entry at project root. On WTP 2.0.2, it's not visible for ear 5.0 and ejb 3.0 projects,
          but it works for WTP 3.0.x though.

          A few words on dependency management :
          Add your projects as ear dependencies : you'll see them appear in the deployment descriptor as modules,
          while transitive dependencies will appear as utility jars.
          Local repository artifacts will be referenced in the your_ear/.settings/org.eclipse.wst.common.component via the M2_REPO variable
          provided dependencies are not included in the ear, neither are optional dependencies.
          If you change your ejb dependencies for exemple, you might have to left-click on your ear project : maven > update dependencies

          Manifest customization is not supported so far. That means you'll have to manually mess with the manifest.mf of your projects (via properties > j2ee module dependencies)

          When deploying your ear, at the root of the ear file, you might notice a WEB-INF/lib directory with the dependencies of your wars.
          This is a WTP bug, which doesn't handle web libraries deployment correctly (https://bugs.eclipse.org/bugs/show_bug.cgi?id=247090)

          Another thing I noticed : XDoclet doesn't like nested ejb 2.1 modules. It won't generate the ejb stubs.

          Eugene, for some reason WTPProjectConfiguratorTest.testMNGECLIPSE688_Jee1 fails when trying to create the first project facet, would you please take a look at it?

          regards,

          Fred Bricon

          Show
          Fred Bricon added a comment - - edited Today's heads up : So far, the only working/supported maven-ear-plugin customizations are : defaultLibBundleDir, version, earSourceDirectory. In WTP, when creating Java EE projects, facets are added to the projects. So far, these can not be changed, neither removed, ever (see my previous posts) . If you need to create a project with another java ee version, you'll have to either : first create a project with wtp wizard, then mavenize it first create a simple maven project in eclipse, add maven-ear-plugin (setting <version> accordingly) or maven-ejb-plugin (setting <ejbVersion>), add the corresponding packaging (ear or ejb), save your pom.xml then left click on your project, maven > update maven configuration. Prior to Java EE 5.0, application.xml will be generated in src/main/application and ejb-jar.xml will be generated in the project resource directory ejb 3.0 requires java 5 at least, so make sure your maven project configures or inherits maven-compiler-plugin accordingly. ear 5.0 and ejb 3.0 seem to work. application.xml and ejb-jar.xml are not required according to Java EE 5 spec, so they're not generated. JBoss AS 4.2.2, for example, complains if application.xml is missing, so you will have to manually generate it : left click on project > Java EE tools > generate deployement descriptor. (same procedure apply for ejb-jar.xml generation) When generated this way, there might be a bogus entry in application xml, that needs to be manually deleted. If you open the Java EE perspective, you'll see a deployment descriptor entry at project root. On WTP 2.0.2, it's not visible for ear 5.0 and ejb 3.0 projects, but it works for WTP 3.0.x though. A few words on dependency management : Add your projects as ear dependencies : you'll see them appear in the deployment descriptor as modules, while transitive dependencies will appear as utility jars. Local repository artifacts will be referenced in the your_ear/.settings/org.eclipse.wst.common.component via the M2_REPO variable provided dependencies are not included in the ear, neither are optional dependencies. If you change your ejb dependencies for exemple, you might have to left-click on your ear project : maven > update dependencies Manifest customization is not supported so far. That means you'll have to manually mess with the manifest.mf of your projects (via properties > j2ee module dependencies) When deploying your ear, at the root of the ear file, you might notice a WEB-INF/lib directory with the dependencies of your wars. This is a WTP bug, which doesn't handle web libraries deployment correctly ( https://bugs.eclipse.org/bugs/show_bug.cgi?id=247090 ) Another thing I noticed : XDoclet doesn't like nested ejb 2.1 modules. It won't generate the ejb stubs. Eugene, for some reason WTPProjectConfiguratorTest.testMNGECLIPSE688_Jee1 fails when trying to create the first project facet, would you please take a look at it? regards, Fred Bricon
          Hide
          Fred Bricon added a comment -

          This is a Mavenized version of seam booking, designed to demonstrate m2eclipse EAR support.

          Due to a bug in WTP ( https://bugs.eclipse.org/bugs/show_bug.cgi?id=248206), in order to deploy this application,
          you'll need JBoss Tools IDE 2.1.2.GA (http://www.jboss.org/tools/download/index.html).
          It's only compatible with Eclipse Europa. For Ganymede support, you can try JBoss Tools IDE 3.0.0 Alpha 1 (Wich I haven't tested)

          You'll need to build m2eclipse from trunk (as long as MNGECLIPSE-688 is not resolved)

          Integration Tests won't work, due to https://jira.jboss.org/jira/browse/JBSEAM-2371.
          If you want to package the project via mvn CLI, type :
          mvn package -Dmaven.test.skip

          To get it working in Eclipse WTP / Jboss Tools :

          • launch eclipse
          • Import the projects
          • left click on jboss-seam-booking-ear
          • In Java EE > Generate Deployment Descriptor Stub : it will create jboss-seam-booking-ear\src\application\META-INF\application.xml
          • add the following to application.xml
            <module>
            <ejb>jboss-seam-2.0.2.SP1.jar</ejb>
            </module>
          • create a new JBoss server. Use JBoss, a division of Red Hat > JBoss 4.2 AS server
          • choose your settings accordingly, then add jboss-seam-booking-ear to the server
          • back in eclipse project explorer, left click on datasources\jboss-seam-booking-ds.xml > deploy to server
          • start your server. On one occasion, jboss-seam-2.0.2.SP1.jar was not deployed correctly.
            After stopping the server, cleaning up $ {JBOSS_HOME}\server\default\tmp and ${JBOSS_HOME}

            \server\default\work and restarting eclipse, it deployed correctly.

          • In your browser, go to http://localhost:8080/seam-booking/
          • enjoy the ride \o/

          regards,

          Fred Bricon.

          Show
          Fred Bricon added a comment - This is a Mavenized version of seam booking, designed to demonstrate m2eclipse EAR support. Due to a bug in WTP ( https://bugs.eclipse.org/bugs/show_bug.cgi?id=248206 ), in order to deploy this application, you'll need JBoss Tools IDE 2.1.2.GA ( http://www.jboss.org/tools/download/index.html ). It's only compatible with Eclipse Europa. For Ganymede support, you can try JBoss Tools IDE 3.0.0 Alpha 1 (Wich I haven't tested) You'll need to build m2eclipse from trunk (as long as MNGECLIPSE-688 is not resolved) Integration Tests won't work, due to https://jira.jboss.org/jira/browse/JBSEAM-2371 . If you want to package the project via mvn CLI, type : mvn package -Dmaven.test.skip To get it working in Eclipse WTP / Jboss Tools : launch eclipse Import the projects left click on jboss-seam-booking-ear In Java EE > Generate Deployment Descriptor Stub : it will create jboss-seam-booking-ear\src\application\META-INF\application.xml add the following to application.xml <module> <ejb>jboss-seam-2.0.2.SP1.jar</ejb> </module> create a new JBoss server. Use JBoss, a division of Red Hat > JBoss 4.2 AS server choose your settings accordingly, then add jboss-seam-booking-ear to the server back in eclipse project explorer, left click on datasources\jboss-seam-booking-ds.xml > deploy to server start your server. On one occasion, jboss-seam-2.0.2.SP1.jar was not deployed correctly. After stopping the server, cleaning up $ {JBOSS_HOME}\server\default\tmp and ${JBOSS_HOME} \server\default\work and restarting eclipse, it deployed correctly. In your browser, go to http://localhost:8080/seam-booking/ enjoy the ride \o/ regards, Fred Bricon.
          Hide
          Ulli Adrion added a comment -
          • what Eclipse and WTP version you are using?
            --> Eclipse ganymede 3.4, WTP 3.0.1
          • what application server you are deploying to?
            --> JBoss 4.2
          • are you using maven-ejb-plugin [1]? what version?
            --> yes, Maven org.apache.maven.plugin.ejb-plugin 2.1
            o do you need to generate/support ejb client?
            --> yes
            o what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml:

          <plugin>
          <artifactId>maven-ejb-plugin</artifactId>
          <inherited>true</inherited>
          <configuration>
          <ejbVersion>3.0</ejbVersion>
          <generateClient>false</generateClient>
          <sourceDirectory>ejbModule</sourceDirectory>
          <archive>
          <manifest>
          <addClasspath>true</addClasspath>
          </manifest>
          </archive>
          </configuration>
          </plugin>

          • are you using maven-ear-plugin [2]? what version?
            --> yes, org.apache.maven.plugins.maven-ear-plugin 2.3.1
            o what configuration option you are using in maven-ear-plugin? show snippets of pom.xml:

          <plugin>
          <artifactId>maven-ear-plugin</artifactId>
          <inherited>true</inherited>

          <configuration>
          <generateApplicationXml>true</generateApplicationXml>
          <archive>
          <manifest>
          <addClasspath>true</addClasspath>
          </manifest>
          </archive>
          </configuration>
          </plugin>

          o what configuration modules [3] you are using?
          <modules>
          <jarModule>
          ...
          </jarModule>
          <ejbModule>
          ...
          </ejbModule>
          <webModule>
          ...
          </webModule>
          </modules>

          o are you using any other customization?
          --> no

          Show
          Ulli Adrion added a comment - what Eclipse and WTP version you are using? --> Eclipse ganymede 3.4, WTP 3.0.1 what application server you are deploying to? --> JBoss 4.2 are you using maven-ejb-plugin [1] ? what version? --> yes, Maven org.apache.maven.plugin.ejb-plugin 2.1 o do you need to generate/support ejb client? --> yes o what configuration option you are using in maven-ejb-plugin? show snippets of pom.xml: <plugin> <artifactId>maven-ejb-plugin</artifactId> <inherited>true</inherited> <configuration> <ejbVersion>3.0</ejbVersion> <generateClient>false</generateClient> <sourceDirectory>ejbModule</sourceDirectory> <archive> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> </configuration> </plugin> are you using maven-ear-plugin [2] ? what version? --> yes, org.apache.maven.plugins.maven-ear-plugin 2.3.1 o what configuration option you are using in maven-ear-plugin? show snippets of pom.xml: <plugin> <artifactId>maven-ear-plugin</artifactId> <inherited>true</inherited> <configuration> <generateApplicationXml>true</generateApplicationXml> <archive> <manifest> <addClasspath>true</addClasspath> </manifest> </archive> </configuration> </plugin> o what configuration modules [3] you are using? <modules> <jarModule> ... </jarModule> <ejbModule> ... </ejbModule> <webModule> ... </webModule> </modules> o are you using any other customization? --> no
          Hide
          Eugene Kuleshov added a comment -

          I just published dev build 0.9.7.20081001-2217 that includes Fred's contribution and few other fixes. It can be installed from the dev update site at http://m2eclipse.sonatype.org/update-dev/

          I am going to clos this issue, because main functionality is implemented. Please submit bug reports and enhancement requests into a separate issues. Thanks.

          Show
          Eugene Kuleshov added a comment - I just published dev build 0.9.7.20081001-2217 that includes Fred's contribution and few other fixes. It can be installed from the dev update site at http://m2eclipse.sonatype.org/update-dev/ I am going to clos this issue, because main functionality is implemented. Please submit bug reports and enhancement requests into a separate issues. Thanks.
          Hide
          murray waters added a comment -

          Fred,

          I'm following your instructions to get the jboss seam example working, with the intention of having the ear support working on RAD7.5 with websphere 6.1. I'm starting with your example, then migrating it over to RAD.

          Anyway when you say "Import the projects", what sort of import do you mean? Import as a maven project? Import as a filesystem? At what level do you do the import.

          Show
          murray waters added a comment - Fred, I'm following your instructions to get the jboss seam example working, with the intention of having the ear support working on RAD7.5 with websphere 6.1. I'm starting with your example, then migrating it over to RAD. Anyway when you say "Import the projects", what sort of import do you mean? Import as a maven project? Import as a filesystem? At what level do you do the import.
          Hide
          murray waters added a comment -

          Its worth noting that as per MNGECLIPSE-965 , to use freds example you should edit jboss-seam-booking-parent/pom.xml to add the following
          <repositories>
          <repository>
          <id>jboss</id>
          <name>Jboss Repository</name>
          <url>http://repository.jboss.com/maven2/</url>
          </repository>
          </repositories>

          Show
          murray waters added a comment - Its worth noting that as per MNGECLIPSE-965 , to use freds example you should edit jboss-seam-booking-parent/pom.xml to add the following <repositories> <repository> <id>jboss</id> <name>Jboss Repository</name> <url> http://repository.jboss.com/maven2/ </url> </repository> </repositories>

            People

            • Assignee:
              Eugene Kuleshov
              Reporter:
              Chris Graham
            • Votes:
              20 Vote for this issue
              Watchers:
              20 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: