Hello,
The following are my comments on
http://www.glxn.net/seam-maven-refimpl/doc/tutorial/05-eclipse-3.6-worklo...
and a patch for JBIDE-6596
4. Open a command shell, navigate to your project directory and run:
mvn install eclipse:eclipse
The maven-eclipse-plugin plugin is deprecated. The project should be
imported using the Import>Maven>Existing Maven Projects m2eclipse action.
9. JBoss Tools 3.2 Issue:
web.xml: All comments are stripped after project import, must restore
original
web.xml from svn
(not an issue with JBoss Tools 3.1).
This problem is related to webtools and is described in
https://jira.jboss.org/browse/JBIDE-6228.
The problem was also existing in JBoss Tools 3.1 when the JBoss Maven
Seam Configurator was included.
10. m2eclipse issues:
The version of JRE isn't important for EAR project because an EAR
project doesn't contain Java sources.
The problem related to application.xml is described in
https://jira.jboss.org/browse/JBIDE-4809
There is a patch for it.
11. JBoss Tools (or m2eclipse?) issue:
The EAR module's src/application folder should be source folder.
Since EAR projects don't contain Java source files, that is unnecessary.
JBoss Tools doesn't configure Java capabilities for any project, so that
is related to m2eclipse.
12. JBoss Tools issue:
Schema validation for some resource files fails due to use of Maven
property
placeholders. The > target resource files should be correct, so
they are the files that should be validated.
This problem can be fixed in the following way:
- add the components.properties file to the classpath which contains
all required maven properties. In the component.xml file, those
properties should be declared as "@property_name@"
"Duplicate component" errors are marked correctly because there are
several same components declared in ejb and war projects.
13. EAR Deployment assembly
JBoss Tools 3.2 Issues:
* seam-tutorial-ejb module has wrong naming:
seam-tutorial-ejb.ejb. Should be named
seam-tutorial-ejb.jar
* Resource files should be published from the EAR target folder
due to
filtering of
resource files and generating of application.xml and jboss.app.xml
during the Maven
generate-sources goal.
This issue is related to
https://jira.jboss.org/browse/JBIDE-4809. You
can use the bundleFileName element as a workaround. The problem is an
m2eclipse problem.
14. Web Deployment assembly
JBoss Tools 3.2 Issue:
Resource files should be published from WAR target folder due to
filtering of
resource files
during the Maven generate-sources goal.
The WTP configurator publishes war projects. It is part of m2eclipse.
Anyway, resources are published to WEB-INF/classes and exist in the
classpath of the application which is correct in my opinion. The
messages_xx.properties files have to be in the classpath, for instance.
17. Publish
JBoss Tools 3.2 Issue:
Seam jar is published to a separate folder but should be published to
ear root
folder.
This is a JBoss Tools AS deployer problem
(
https://jira.jboss.org/browse/JBIDE-6596). Attached is a patch.
Snjeza
Andersen Max wrote:
hi,
@leifoolsen posted this
http://www.glxn.net/seam-maven-refimpl/doc/tutorial/05-eclipse-3.6-worklo...
this is him explaining how to use JBoss Tools + Maven on a seam project.
The walkthrough illustrates how resource filtering in maven + the WTP assembly is
fighting against each other ;(
it also shows that he also bumped into JBIDE-6596 with respect to lib/jboss-seam.jar.
Its an excellent read to see some of the problems we are facing....
/max
_______________________________________________
jbosstools-dev mailing list
jbosstools-dev(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/jbosstools-dev
### Eclipse Workspace Patch 1.0
#P org.jboss.ide.eclipse.as.core
Index: jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
===================================================================
--- jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java (revision 23095)
+++ jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java (working copy)
@@ -22,6 +22,7 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
import org.eclipse.jst.server.core.IEnterpriseApplication;
+import org.eclipse.jst.server.core.IJ2EEModule;
import org.eclipse.wst.common.componentcore.ModuleCoreNature;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.internal.DeletedModule;
@@ -37,11 +38,11 @@
import org.jboss.ide.eclipse.as.core.server.IJBossServerConstants;
import org.jboss.ide.eclipse.as.core.server.xpl.ModulePackager;
import org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader;
-import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
-import org.jboss.ide.eclipse.as.core.util.IWTPConstants;
import
org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader.DeploymentModulePrefs;
import
org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader.DeploymentPreferences;
import
org.jboss.ide.eclipse.as.core.util.DeploymentPreferenceLoader.DeploymentTypePrefs;
+import org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants;
+import org.jboss.ide.eclipse.as.core.util.IWTPConstants;
public class PublishUtil {
public static int countChanges(IModuleResourceDelta[] deltas) {
@@ -126,7 +127,11 @@
public static IPath getDeployPath(IModule[] moduleTree, String deployFolder) {
IPath root = new Path( deployFolder );
String type, modName, name, uri, suffixedName;
- for( int i = 0; i < moduleTree.length; i++ ) {
+ for( int i = 0; i < moduleTree.length; i++ ) {
+ IJ2EEModule j2eeModule = (IJ2EEModule) moduleTree[i].loadAdapter(IJ2EEModule.class,
null);
+ if (j2eeModule != null && j2eeModule.isBinary()) {
+ continue;
+ }
type = moduleTree[i].getModuleType().getId();
modName = moduleTree[i].getName();
name = new Path(modName).lastSegment();
Index: jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPublisher.java
===================================================================
--- jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPublisher.java (revision
23095)
+++ jbosscore/org/jboss/ide/eclipse/as/core/publishers/JstPublisher.java (working copy)
@@ -22,6 +22,7 @@
import org.eclipse.core.runtime.MultiStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.Status;
+import org.eclipse.jst.server.core.IJ2EEModule;
import org.eclipse.osgi.util.NLS;
import org.eclipse.wst.server.core.IModule;
import org.eclipse.wst.server.core.IServer;
@@ -107,8 +108,13 @@
IModuleResource[] members = getResources(module);
ArrayList<IStatus> list = new ArrayList<IStatus>();
+ IJ2EEModule j2eeModule = (IJ2EEModule) module.loadAdapter(IJ2EEModule.class, null);
+ boolean delete = true;
+ if (j2eeModule != null && j2eeModule.isBinary()) {
+ delete = false;
+ }
// if the module we're publishing is a project, not a binary, clean it's
folder
- if( !(new Path(module.getName()).segmentCount() > 1 ))
+ if( !(new Path(module.getName()).segmentCount() > 1 ) && delete)
list.addAll(Arrays.asList(localSafeDelete(deployPath)));
if( !deployPackaged(moduleTree) && !isBinaryObject(moduleTree)) {