Author: rob.stryker(a)jboss.com
Date: 2009-11-03 15:16:23 -0500 (Tue, 03 Nov 2009)
New Revision: 18401
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBoss4xEarFacetInstallListener.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java
Log:
JBIDE-5018 - found a solution =D
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF 2009-11-03
18:06:18 UTC (rev 18400)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/META-INF/MANIFEST.MF 2009-11-03
20:16:23 UTC (rev 18401)
@@ -14,9 +14,13 @@
org.eclipse.jst.j2ee,
org.eclipse.wst.xml.core,
org.apache.ant,
- org.jboss.tools.jmx.core;bundle-version="0.2.1",
- org.eclipse.core.variables;bundle-version="3.2.200",
- org.jboss.ide.eclipse.as.wtp.core;bundle-version="1.0.0"
+ org.jboss.tools.jmx.core,
+ org.eclipse.core.variables,
+ org.jboss.ide.eclipse.as.wtp.core,
+ org.eclipse.wst.common.project.facet.core,
+ org.eclipse.wst.common.frameworks,
+ org.eclipse.jst.jee,
+ org.eclipse.core.commands
Bundle-ActivationPolicy: lazy
Export-Package: org.jboss.ide.eclipse.as.core,
org.jboss.ide.eclipse.as.core.extensions.descriptors,
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBoss4xEarFacetInstallListener.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBoss4xEarFacetInstallListener.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBoss4xEarFacetInstallListener.java 2009-11-03
20:16:23 UTC (rev 18401)
@@ -0,0 +1,77 @@
+/*******************************************************************************
+ * Copyright (c) 2007 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is made available under the terms of the
+ * Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at
http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ ******************************************************************************/
+package org.jboss.ide.eclipse.as.core;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.jst.jee.project.facet.EarCreateDeploymentFilesDataModelProvider;
+import org.eclipse.jst.jee.project.facet.ICreateDeploymentFilesDataModelProperties;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
+import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
+import org.eclipse.wst.common.project.facet.core.events.IProjectFacetActionEvent;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.ServerCore;
+import org.jboss.ide.eclipse.as.core.util.IWTPConstants;
+
+import static org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants.AS_42;
+import static org.jboss.ide.eclipse.as.core.util.IJBossToolingConstants.EAP_43;
+
+/**
+ * This class is here to deal with the case when a new Ear project is
+ * created but targeted to a JBoss 4.x server. JBoss 4.x servers require
+ * application.xml files in their structure to be deployable.
+ *
+ * @author rob.stryker(a)jboss.com
+ */
+public class JBoss4xEarFacetInstallListener implements IFacetedProjectListener {
+
+ private static JBoss4xEarFacetInstallListener instance;
+ public static JBoss4xEarFacetInstallListener getDefault() {
+ if( instance == null )
+ instance = new JBoss4xEarFacetInstallListener();
+ return instance;
+ }
+
+ JBoss4xEarFacetInstallListener() {
+ // Do nothing
+ }
+
+ public void handleEvent(IFacetedProjectEvent event) {
+ IProjectFacetActionEvent e = (IProjectFacetActionEvent)event;
+ IProjectFacet pf = e.getProjectFacet();
+ if( pf.getId().equals(IWTPConstants.FACET_EAR)) {
+ String rtName = e.getProject().getPrimaryRuntime().getName();
+ IRuntime rt = ServerCore.findRuntime(rtName);
+ if( rt != null ) {
+ String type = rt.getRuntimeType().getId();
+ if( type.equals(AS_42) || type.equals(EAP_43)) {
+ // Launch the op to create the ear application.xml file
+ IVirtualComponent vc = ComponentCore.createComponent(e.getProject().getProject());
+ IDataModel model = DataModelFactory.createDataModel(new
EarCreateDeploymentFilesDataModelProvider());
+ model.setProperty(ICreateDeploymentFilesDataModelProperties.GENERATE_DD, vc);
+ model.setProperty(ICreateDeploymentFilesDataModelProperties.TARGET_PROJECT,
e.getProject().getProject());
+ IDataModelOperation op = model.getDefaultOperation();
+ try {
+ op.execute(new NullProgressMonitor(), null);
+ } catch (ExecutionException e1) {
+ // Ignore
+ }
+ }
+ }
+ }
+ }
+}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java 2009-11-03
18:06:18 UTC (rev 18400)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/JBossServerCorePlugin.java 2009-11-03
20:16:23 UTC (rev 18401)
@@ -10,14 +10,15 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.core;
-import java.util.ResourceBundle;
-
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Plugin;
+import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework;
+import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectEvent;
import org.eclipse.wst.server.core.IServer;
import org.jboss.ide.eclipse.as.core.extensions.descriptors.XPathModel;
import org.jboss.ide.eclipse.as.core.server.UnitedServerListenerManager;
@@ -59,6 +60,7 @@
UnitedServerListenerManager.getDefault();
UnitedServerListenerManager.getDefault().addListener(XPathModel.getDefault());
UnitedServerListenerManager.getDefault().addListener(ServerListener.getDefault());
+ FacetedProjectFramework.addListener( JBoss4xEarFacetInstallListener.getDefault(),
IFacetedProjectEvent.Type.POST_INSTALL);
}
/**
@@ -68,6 +70,7 @@
super.stop(context);
UnitedServerListenerManager.getDefault().removeListener(ServerListener.getDefault());
UnitedServerListenerManager.getDefault().removeListener(XPathModel.getDefault());
+ FacetedProjectFramework.removeListener(JBoss4xEarFacetInstallListener.getDefault());
}
/**