Author: rob.stryker(a)jboss.com
Date: 2011-08-11 02:20:08 -0400 (Thu, 11 Aug 2011)
New Revision: 33800
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/IJBossSARFacetDataModelProperties.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetDataModelProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetInstallationDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetProjectCreationDataModelProvider.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleFactory.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/SARVirtualComponent.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARFacetInstallationPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARProjectFirstPage.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARProjectWizard.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/StrippedServerWizardFragment.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/jbossui/org/jboss/ide/eclipse/as/ui/sar/
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTFlatModuleDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTFlatProjectModuleFactory.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/vcf/VCFClasspathCommand.java
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/IWTPConstants.java
trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/plugin.xml
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/Messages.java
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/Messages.properties
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF
trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTProjectModuleDelegate.java
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTProjectModuleFactory.java
Log:
/JBIDE-9497 - introduction of sar project
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java 2011-08-11
01:53:46 UTC (rev 33799)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/publishers/PublishUtil.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -258,8 +258,8 @@
suffix = ""; //$NON-NLS-1$
else if( "jboss.singlefile".equals(type)) //$NON-NLS-1$
suffix = ""; //$NON-NLS-1$
- else
- suffix = IWTPConstants.EXT_JAR;
+ else if( "jst.jboss.sar".equals(type)) //$NON-NLS-1$
+ suffix = IWTPConstants.EXT_SAR;
return suffix;
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/IWTPConstants.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/IWTPConstants.java 2011-08-11
01:53:46 UTC (rev 33799)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.core/jbosscore/org/jboss/ide/eclipse/as/core/util/IWTPConstants.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -32,4 +32,5 @@
public static final String EXT_WAR = ".war"; //$NON-NLS-1$
public static final String EXT_EAR = ".ear"; //$NON-NLS-1$
public static final String EXT_XML = ".xml"; //$NON-NLS-1$
+ public static final String EXT_SAR = ".sar"; //$NON-NLS-1$
}
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml 2011-08-11 01:53:46 UTC (rev
33799)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.core/plugin.xml 2011-08-11 06:20:08 UTC (rev
33800)
@@ -247,8 +247,13 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4">
- </moduleType>
+ versions="4.2,4.3,4.4"/>
+ <moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
+ <moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
</runtimeType>
<runtimeType
vendor="%providerName"
@@ -286,8 +291,10 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4,4.5,4.6,4.7">
- </moduleType>
+ versions="4.2,4.3,4.4,4.5,4.6,4.7"/>
+ <moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
</runtimeType>
<runtimeType
vendor="%providerName"
@@ -325,9 +332,11 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4,4.5,4.6,4.7">
- </moduleType>
+ versions="4.2,4.3,4.4,4.5,4.6,4.7"/>
<moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
+ <moduleType
types="jbt.bpel.module"
versions="1.1, 2.0">
</moduleType>
@@ -372,9 +381,11 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9">
- </moduleType>
+ versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9"/>
<moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
+ <moduleType
types="jbt.bpel.module"
versions="1.1, 2.0">
</moduleType>
@@ -419,9 +430,11 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9">
- </moduleType>
+ versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9"/>
<moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
+ <moduleType
types="jbt.bpel.module"
versions="1.1, 2.0">
</moduleType>
@@ -468,9 +481,11 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9">
- </moduleType>
+ versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9"/>
<moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
+ <moduleType
types="jbt.bpel.module"
versions="1.1, 2.0">
</moduleType>
@@ -522,8 +537,10 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4,4.5,4.6,4.7">
- </moduleType>
+ versions="4.2,4.3,4.4,4.5,4.6,4.7"/>
+ <moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
</runtimeType>
<runtimeType
@@ -562,9 +579,11 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9">
- </moduleType>
+ versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9"/>
<moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
+ <moduleType
types="jbt.bpel.module"
versions="1.1, 2.0">
</moduleType>
@@ -612,9 +631,11 @@
versions="1.0"/>
<moduleType
types="jst.jboss.esb"
- versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9">
- </moduleType>
+ versions="4.2,4.3,4.4,4.5,4.6,4.7,4.9"/>
<moduleType
+ types="jst.jboss.sar"
+ versions="1.0"/>
+ <moduleType
types="jbt.bpel.module"
versions="1.1, 2.0">
</moduleType>
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF 2011-08-11 01:53:46
UTC (rev 33799)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/META-INF/MANIFEST.MF 2011-08-11 06:20:08
UTC (rev 33800)
@@ -51,7 +51,10 @@
org.jboss.ide.eclipse.as.core,
org.eclipse.ui.navigator;bundle-version="3.5.0",
org.eclipse.ui.views.log;bundle-version="1.0.200",
- org.eclipse.jst.j2ee.core;bundle-version="1.2.100"
+ org.eclipse.jst.j2ee.core;bundle-version="1.2.100",
+ org.eclipse.wst.common.project.facet.ui;bundle-version="1.4.200",
+ org.jboss.ide.eclipse.as.wtp.core;bundle-version="2.3.0",
+ org.eclipse.jst.common.project.facet.core;bundle-version="1.4.200"
Bundle-ActivationPolicy: lazy
Export-Package: org.jboss.ide.eclipse.as.ui,
org.jboss.ide.eclipse.as.ui.dialogs,
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2011-08-11 01:53:46 UTC (rev
33799)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui/plugin.xml 2011-08-11 06:20:08 UTC (rev
33800)
@@ -450,31 +450,4 @@
typeIds="%AllJBossServerTypes">
</runtimeLocator>
</extension>
-
- <!--
- <extension point="org.eclipse.ui.popupMenus">
- <objectContribution
- adaptable="true"
- id="org.jboss.ide.eclipse.as.ui.actions.exploreAction"
- objectClass="org.eclipse.wst.server.core.IServer">
- <enablement>
- <adapt type="org.eclipse.wst.server.core.IServer">
- <test forcePluginActivation="true"
- property="org.eclipse.wst.server.ui.serverType"
- value="org.jboss.ide.eclipse.as*" />
- </adapt>
- </enablement>
-
- <action
- label="Explore"
- icon="icons/actions/xpl/explore.gif"
-
class="org.jboss.ide.eclipse.as.ui.actions.ExploreActionDelegate"
- tooltip="Explore"
-
menubarPath="org.eclipse.wst.server.ui.internal.cnf.controlServerSectionEnd"
- enablesFor="1"
- id="org.jboss.ide.eclipse.as.ui.actions.ExploreAction">
- </action>
- </objectContribution>
- </extension>
--->
</plugin>
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/META-INF/MANIFEST.MF
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/META-INF/MANIFEST.MF 2011-08-11
01:53:46 UTC (rev 33799)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/META-INF/MANIFEST.MF 2011-08-11
06:20:08 UTC (rev 33800)
@@ -21,7 +21,25 @@
org.eclipse.jdt.ui;bundle-version="3.7.0",
org.eclipse.ui.ide;bundle-version="3.7.0",
org.eclipse.core.filesystem;bundle-version="1.3.100",
- org.jboss.ide.eclipse.as.ui
+ org.jboss.ide.eclipse.as.ui,
+ org.eclipse.jst.common.project.facet.core;bundle-version="1.4.200",
+ org.eclipse.jst.common.project.facet.ui;bundle-version="1.4.200",
+ org.eclipse.wst.common.project.facet.core;bundle-version="1.4.200",
+ org.eclipse.wst.common.project.facet.ui;bundle-version="1.4.200",
+ org.eclipse.wst.common.frameworks;bundle-version="1.2.100",
+ org.jboss.ide.eclipse.as.core;bundle-version="2.3.0",
+ org.eclipse.wst.server.core;bundle-version="1.1.302",
+ org.eclipse.wst.server.ui;bundle-version="1.1.305",
+ org.eclipse.wst.web;bundle-version="1.1.500",
+ org.eclipse.wst.web.ui;bundle-version="1.1.400",
+ org.eclipse.jst.server.core;bundle-version="1.2.202",
+ org.jboss.ide.eclipse.as.wtp.core;bundle-version="2.3.0",
+ org.eclipse.jst.j2ee;bundle-version="1.1.500",
+ org.eclipse.wst.common.modulecore.ui;bundle-version="1.0.100",
+ org.eclipse.jst.j2ee.core;bundle-version="1.2.100",
+ org.eclipse.wst.common.frameworks.ui;bundle-version="1.2.100",
+ org.eclipse.jst.j2ee.ui;bundle-version="1.1.500",
+ org.eclipse.jst.common.frameworks;bundle-version="1.1.500"
Bundle-ActivationPolicy: lazy
Export-Package: org.jboss.ide.eclipse.as.ui.mbeans.editors.proposals
Bundle-Vendor: %Bundle-Vendor.0
Modified: trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/plugin.xml
===================================================================
--- trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/plugin.xml 2011-08-11 01:53:46 UTC
(rev 33799)
+++ trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/plugin.xml 2011-08-11 06:20:08 UTC
(rev 33800)
@@ -105,4 +105,126 @@
id="org.jboss.ide.eclipse.ejb3.wizards.ui.NewMessageDrivenBeanWizard"/>
</extension>
+
+ <!--
+ SAR support
+ -->
+
+ <extension
+ point="org.eclipse.wst.common.project.facet.core.facets">
+ <project-facet
+ id="jst.jboss.sar">
+ <label>
+ JBoss SAR
+ </label>
+ </project-facet>
+ <project-facet-version
+ facet="jst.jboss.sar"
+ version="1.0">
+ <group-member
+ id="modules">
+ </group-member>
+ <constraint>
+ <and>
+ <conflicts
+ group="modules">
+ </conflicts>
+ <requires
+ facet="jst.java"
+ version="[5.0">
+ </requires>
+ </and>
+ </constraint>
+ </project-facet-version>
+ <action
+ facet="jst.jboss.sar"
+ id="jst.jboss.sar.install"
+ type="install">
+ <delegate
+
class="org.jboss.ide.eclipse.as.ui.mbeans.project.JBossSARFacetInstallationDelegate">
+ </delegate>
+ <config-factory
+
class="org.jboss.ide.eclipse.as.ui.mbeans.project.JBossSARFacetDataModelProvider">
+ </config-factory>
+ </action>
+ <template
+ id="template.jst.jboss.sar">
+ <label>
+ SAR Template
+ </label>
+ <fixed
+ facet="jst.java">
+ </fixed>
+ <fixed
+ facet="jst.jboss.sar">
+ </fixed>
+ </template>
+ </extension>
+ <extension
+ point="org.eclipse.wst.server.core.moduleTypes">
+ <moduleType
+ id="jst.jboss.sar"
+ name="JBoss SAR Module">
+ </moduleType>
+ </extension>
+ <extension
+ point="org.eclipse.wst.server.core.moduleFactories">
+ <moduleFactory
+
class="org.jboss.ide.eclipse.as.ui.mbeans.project.JBossSARModuleFactory"
+ id="org.jboss.ide.eclipse.as.core.modules.sar.moduleFactory"
+ projects="true">
+ <moduleType
+ types="jst.jboss.sar"
+ versions="1.0">
+ </moduleType>
+ </moduleFactory>
+ </extension>
+ <extension
+ point="org.eclipse.wst.common.modulecore.componentimpl">
+ <componentimpl
+ typeID="jst.jboss.sar"
+
class="org.jboss.ide.eclipse.as.ui.mbeans.project.SARVirtualComponent">
+ </componentimpl>
+ </extension>
+
+ <extension
+ point="org.eclipse.wst.common.project.facet.core.runtimes">
+ <supported>
+ <facet
+ id="jst.jboss.sar"
+ version="1.0">
+ </facet>
+ <runtime-component
+ id="org.jboss.ide.eclipse.as.runtime.component"
+ version="4.2,5.0,5.1,6.0,7.0">
+ </runtime-component>
+ </supported>
+ </extension>
+
+
+
+
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.jboss.ide.eclipse.as.ui.sar"
+
class="org.jboss.ide.eclipse.as.ui.mbeans.project.ui.SARProjectWizard"
+ icon="$nl$/icons/wizards/sar.gif"
+ id="JBoss.SAR.Project.Wizard"
+ name="SAR Project"
+ project="true">
+ </wizard>T
+ </extension>
+
+ <extension
+ point="org.eclipse.wst.common.project.facet.ui.wizardPages">
+ <wizard-pages
+ action="jst.jboss.sar.install">
+ <page
+
class="org.jboss.ide.eclipse.as.ui.mbeans.project.ui.SARFacetInstallationPage">
+ </page>
+ </wizard-pages>
+ </extension>
+
+
</plugin>
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/Messages.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/Messages.java 2011-08-11
01:53:46 UTC (rev 33799)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/Messages.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -75,6 +75,17 @@
public static String ServiceXMLEditorUtil_could_not_get_methods;
+
+ /*
+ * Sar Project
+ */
+ public static String NewSarProject_ContentRootLabel;
+ public static String NewSarProject_FacetInstallationPage;
+ public static String NewSarProject_FacetInstallationPageDesc;
+ public static String NewSarProject_FacetInstallationPage_ContentRootError;
+ public static String NewSarProject_FirstPageTitle;
+ public static String NewSarProject_FirstPageDesc;
+
static {
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/Messages.properties
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/Messages.properties 2011-08-11
01:53:46 UTC (rev 33799)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/Messages.properties 2011-08-11
06:20:08 UTC (rev 33800)
@@ -42,3 +42,9 @@
ServiceXMLEditorUtil_could_not_get_methods=Could not determine methods for {0}
+NewSarProject_ContentRootLabel=Content Root
+NewSarProject_FacetInstallationPage=SAR facet
+NewSarProject_FacetInstallationPageDesc=Configure the SAR facet
+NewSarProject_FacetInstallationPage_ContentRootError=Please provide a valid content root
folder name.
+NewSarProject_FirstPageTitle=New SAR Project
+NewSarProject_FirstPageDesc=A SAR Project is a Service Archive project, deployable to
JBoss Application Servers.
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/IJBossSARFacetDataModelProperties.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/IJBossSARFacetDataModelProperties.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/IJBossSARFacetDataModelProperties.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,70 @@
+/*******************************************************************************
+ * 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.ui.mbeans.project;
+
+import org.eclipse.core.runtime.QualifiedName;
+import
org.eclipse.wst.common.componentcore.datamodel.properties.IFacetDataModelProperties;
+
+public interface IJBossSARFacetDataModelProperties extends IFacetDataModelProperties {
+
+ public static final String USER_DEFINED_LOCATION =
"IProjectCreationPropertiesNew.USER_DEFINED_LOCATION"; //$NON-NLS-1$
+ public static final String DEFAULT_LOCATION =
"IProjectCreationPropertiesNew.DEFAULT_LOCATION"; //$NON-NLS-1$
+ public static final String USE_DEFAULT_LOCATION =
"IProjectCreationPropertiesNew.USE_DEFAULT_LOCATION"; //$NON-NLS-1$
+ public static final String PROJECT_LOCATION =
"IProjectCreationPropertiesNew.PROJECT_LOCATION"; //$NON-NLS-1$
+
+ public static final String SAR_CONTENT_FOLDER =
"JBoss.Project.Content_Folder"; //$NON-NLS-1$
+ public static final String SAR_SOURCE_FOLDER = "JBoss.Project.Src_Folder";
//$NON-NLS-1$
+
+ public static final String SAR_CONFIG_VERSION =
"JBoss.Project.Config_Version"; //$NON-NLS-1$
+
+ public static final QualifiedName QNAME_SAR_CONTENT_FOLDER = new
QualifiedName("jboss", SAR_CONTENT_FOLDER); //$NON-NLS-1$
+ public static final QualifiedName QNAME_SAR_SRC_FOLDER = new
QualifiedName("jboss", SAR_SOURCE_FOLDER); //$NON-NLS-1$
+ public static final String SAR_PROJECT_VERSION =
"jboss.sar.project.project.version"; //$NON-NLS-1$
+
+
+
+ public static final String JBOSS_SAR_FACET_ID = "jst.jboss.sar";
//$NON-NLS-1$
+ public static final String RUNTIME_DEPLOY = "jboss.deploy"; //$NON-NLS-1$
+ public static final String QUALIFIEDNAME_IDENTIFIER = "jboss.tools";
//$NON-NLS-1$
+ public static final String RUNTIME_IS_SERVER_SUPPLIED =
"jboss.is.server.supplied"; //$NON-NLS-1$
+ public static final String RUNTIME_ID = "jboss.runtime_id"; //$NON-NLS-1$
+
+ public static final String PERSISTENT_PROPERTY_IS_SERVER_SUPPLIED_RUNTIME =
"is.server.supplied.runtime"; //$NON-NLS-1$
+ public static final String RUNTIME_HOME = "jboss.runtime.home"; //$NON-NLS-1$
+ public static final String DEFAULT_VALUE_IS_SERVER_SUPPLIED = "1";
//$NON-NLS-1$
+ static QualifiedName PERSISTENCE_PROPERTY_QNAME_RUNTIME_NAME = new
QualifiedName(QUALIFIEDNAME_IDENTIFIER,
+ RUNTIME_ID);
+ static QualifiedName PERSISTENCE_PROPERTY_RNTIME_LOCATION = new
QualifiedName(QUALIFIEDNAME_IDENTIFIER,
+ RUNTIME_HOME);
+ static QualifiedName PERSISTENCE_PROPERTY_SERVER_SUPPLIED_RUNTIME = new QualifiedName(
+ QUALIFIEDNAME_IDENTIFIER,
+ PERSISTENT_PROPERTY_IS_SERVER_SUPPLIED_RUNTIME);
+
+
+
+
+
+ /*
+ * Other constants
+ */
+ public final static String SAR_EXTENSION = ".sar";//$NON-NLS-1$
+ public final static String SAR_PROJECT_FACET = "jst.jboss.sar";//$NON-NLS-1$
+ public final static String SAR_PROJECT_FACET_TEMPLATE =
"template.jst.jboss.sar";//$NON-NLS-1$
+ public final static String BUILD_CLASSES = "build/classes";//$NON-NLS-1$
+ public final static String META_INF = "META-INF";//$NON-NLS-1$
+
+ public final static String DEFAULT_SAR_CONFIG_RESOURCE_FOLDER =
"sarcontent";//$NON-NLS-1$
+ public final static String DEFAULT_SAR_SOURCE_FOLDER = "src";//$NON-NLS-1$
+
+ public final static String SAR_PROJECT_NATURE =
"org.jboss.tools.esb.project.SARNature";//$NON-NLS-1$
+
+
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetDataModelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetDataModelProvider.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetDataModelProvider.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,73 @@
+/*******************************************************************************
+ * 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.ui.mbeans.project;
+
+import java.util.Set;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
+import org.eclipse.jst.j2ee.project.facet.J2EEModuleFacetInstallDataModelProvider;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+
+public class JBossSARFacetDataModelProvider extends
J2EEModuleFacetInstallDataModelProvider implements IJBossSARFacetDataModelProperties{
+
+ private static final String JBOSS_SAR_PROJECT_FACET =
IJBossSARFacetDataModelProperties.SAR_PROJECT_FACET;
+
+ public Set getPropertyNames() {
+ Set names = super.getPropertyNames();
+ names.add(CONFIG_FOLDER);
+ names.add(IJBossSARFacetDataModelProperties.SAR_SOURCE_FOLDER);
+ names.add(IJBossSARFacetDataModelProperties.SAR_CONTENT_FOLDER);
+ names.add(IJBossSARFacetDataModelProperties.SAR_SOURCE_FOLDER);
+ names.add(RUNTIME_ID);
+ names.add(RUNTIME_HOME);
+ names.add(RUNTIME_IS_SERVER_SUPPLIED);
+ return names;
+ }
+
+ public Object getDefaultProperty(String propertyName) {
+ if (propertyName.equals(FACET_ID)) {
+ return JBOSS_SAR_PROJECT_FACET;
+ }
+ else if(IJBossSARFacetDataModelProperties.SAR_CONTENT_FOLDER.equals(propertyName)){
+ return IJBossSARFacetDataModelProperties.DEFAULT_SAR_CONFIG_RESOURCE_FOLDER;
+ }
+ else if(IJBossSARFacetDataModelProperties.SAR_SOURCE_FOLDER.equals(propertyName)){
+ return IJBossSARFacetDataModelProperties.DEFAULT_SAR_SOURCE_FOLDER;
+ }
+ else if(propertyName.equals(RUNTIME_ID)){
+ return ""; //$NON-NLS-1$
+ }else if(propertyName.equals(FACET_ID)){
+ return IJBossSARFacetDataModelProperties.JBOSS_SAR_FACET_ID;
+ } else if( propertyName.equals(RUNTIME_IS_SERVER_SUPPLIED)){
+ return true;
+ }
+ return super.getDefaultProperty(propertyName);
+ }
+
+ protected int convertFacetVersionToJ2EEVersion(IProjectFacetVersion version) {
+ return J2EEVersionConstants.J2EE_1_4_ID;
+ }
+
+ public boolean isPropertyEnabled(String propertyName) {
+ return super.isPropertyEnabled(propertyName);
+ }
+
+ public boolean propertySet(String propertyName, Object propertyValue) {
+ boolean status = false;
+ status = super.propertySet(propertyName, propertyValue);
+ return status;
+ }
+
+ public IStatus validate(String propertyName) {
+ return OK_STATUS;
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetInstallationDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetInstallationDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetInstallationDelegate.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.ui.mbeans.project;
+
+import org.eclipse.core.resources.IFolder;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ProjectScope;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.preferences.IEclipsePreferences;
+import org.eclipse.core.runtime.preferences.IScopeContext;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jst.common.project.facet.WtpUtils;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.util.IComponentImplFactory;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+import org.eclipse.wst.common.componentcore.resources.IVirtualResource;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.project.facet.core.IDelegate;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.osgi.service.prefs.BackingStoreException;
+
+public class JBossSARFacetInstallationDelegate implements IDelegate {
+
+
+ private IDataModel model;
+ //public static final String ESB_NATURE =
"org.jboss.tools.esb.project.core.ESBNature";
+
+ public void execute(IProject project, IProjectFacetVersion fv,
+ Object config, IProgressMonitor monitor) throws CoreException {
+ model = (IDataModel) config;
+ final IJavaProject jproj = JavaCore.create(project);
+
+ createProjectStructure(project);
+
+
+ // Add WTP natures.
+ WtpUtils.addNatures(project);
+
+ // Setup the flexible project structure
+
+ /*
+ * This is necessary because at time, the project has NO facets
+ * So a call to createComponent(etc) returns a default implementation.
+ * Today, this WTP default implementation does not handle
+ * new reference types in an acceptable fashion
+ * (Does not use extension point).
+ */
+ IComponentImplFactory factory = new SARVirtualComponent();
+ IVirtualComponent newComponent = factory.createComponent(project);
+
+ String outputLoc = jproj.readOutputLocation().removeFirstSegments(1).toString();
+ newComponent.create(0, null);
+ newComponent.setMetaProperty("java-output-path", outputLoc); //$NON-NLS-1$
+
+ final IVirtualFolder jbiRoot = newComponent.getRootFolder();
+
+ // Map the esbcontent to root for deploy
+ String resourcesFolder = model.getStringProperty(
+ IJBossSARFacetDataModelProperties.SAR_CONTENT_FOLDER);
+ jbiRoot.createLink(new Path("/" + resourcesFolder), 0, null); //$NON-NLS-1$
+
+ final IWorkspace ws = ResourcesPlugin.getWorkspace();
+ final IClasspathEntry[] cp = jproj.getRawClasspath();
+ for (int i = 0; i < cp.length; i++) {
+ final IClasspathEntry cpe = cp[i];
+ if (cpe.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
+ if( cpe.getPath().removeFirstSegments(1).segmentCount() > 0 ){
+ try{
+ IFolder srcFolder = ws.getRoot().getFolder(cpe.getPath());
+
+ IVirtualResource[] virtualResource = ComponentCore.createResources(srcFolder);
+ //create link for source folder only when it is not mapped
+ if( virtualResource.length == 0 ){
+ jbiRoot.createLink(cpe.getPath().removeFirstSegments(1), 0, null);
+ }
+ }
+ catch(Exception e){
+ // TODO
+ }
+ }
+ }
+ }
+
+// IVirtualComponent outputFoldersComponent = new OutputFoldersVirtualComponent(project,
newComponent);
+// VCFUtil.addReference(outputFoldersComponent, newComponent, "/", null);
//$NON-NLS-1$
+ }
+
+
+
+ private void createProjectStructure(IProject project) throws CoreException{
+ String strContentFolder =
model.getStringProperty(IJBossSARFacetDataModelProperties.SAR_CONTENT_FOLDER);
+ project.setPersistentProperty(IJBossSARFacetDataModelProperties.QNAME_SAR_CONTENT_FOLDER,
strContentFolder);
+
+ String qualifier =
JBossServerCorePlugin.getDefault().getDescriptor().getUniqueIdentifier();
+ IScopeContext context = new ProjectScope(project);
+ IEclipsePreferences node = context.getNode(qualifier);
+ if (node != null)
+ node.putDouble(IJBossSARFacetDataModelProperties.SAR_PROJECT_VERSION, 1.0);
+
+ try {
+ node.flush();
+ } catch (BackingStoreException e) {
+ e.printStackTrace();
+ }
+
+ IFolder esbContent = project.getFolder(strContentFolder);
+ if(!esbContent.exists()) {
+ esbContent.create(true, true, null);
+ }
+
+ esbContent.getFolder(IJBossSARFacetDataModelProperties.META_INF).create(true, true,
null);
+ project.refreshLocal(IResource.DEPTH_ZERO, null);
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetProjectCreationDataModelProvider.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetProjectCreationDataModelProvider.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARFacetProjectCreationDataModelProvider.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * 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.ui.mbeans.project;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.jst.common.project.facet.IJavaFacetInstallDataModelProperties;
+import org.eclipse.jst.common.project.facet.JavaFacetInstallDataModelProvider;
+import
org.eclipse.wst.common.componentcore.datamodel.FacetProjectCreationDataModelProvider;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+
+public class JBossSARFacetProjectCreationDataModelProvider extends
+ FacetProjectCreationDataModelProvider {
+
+
+ public void init() {
+ super.init();
+
+ FacetDataModelMap map = (FacetDataModelMap) getProperty(FACET_DM_MAP);
+ IDataModel javaFacet = DataModelFactory.createDataModel(new
JavaFacetInstallDataModelProvider());
+ map.add(javaFacet);
+
+ IDataModel sarFacet = DataModelFactory.createDataModel(new
JBossSARFacetDataModelProvider());
+ map.add(sarFacet);
+ String sarSrc =
sarFacet.getStringProperty(IJBossSARFacetDataModelProperties.SAR_SOURCE_FOLDER);
+ javaFacet.setProperty(IJavaFacetInstallDataModelProperties.SOURCE_FOLDER_NAME,
sarSrc);
+
+ }
+
+
+
+ @Override
+ public IStatus validate(String propertyName) {
+
+ return super.validate(propertyName);
+ }
+
+
+
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleDelegate.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * 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.ui.mbeans.project;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.common.internal.modulecore.AddClasspathFoldersParticipant;
+import org.eclipse.jst.common.internal.modulecore.AddClasspathLibReferencesParticipant;
+import org.eclipse.jst.common.internal.modulecore.AddMappedOutputFoldersParticipant;
+import org.eclipse.jst.common.internal.modulecore.IgnoreJavaInSourceFolderParticipant;
+import org.eclipse.jst.common.internal.modulecore.ReplaceManifestExportParticipant;
+import org.eclipse.jst.common.internal.modulecore.SingleRootExportParticipant;
+import org.eclipse.jst.j2ee.internal.J2EEConstants;
+import org.eclipse.jst.j2ee.internal.classpathdep.ClasspathDependencyEnablement;
+import org.eclipse.jst.j2ee.internal.common.exportmodel.JEEHeirarchyExportParticipant;
+import org.eclipse.jst.j2ee.internal.common.exportmodel.JavaEESingleRootCallback;
+import org.eclipse.wst.common.componentcore.internal.flat.IFlattenParticipant;
+import org.eclipse.wst.server.core.model.IModuleResource;
+import org.eclipse.wst.web.internal.deployables.FlatComponentDeployable;
+import org.jboss.ide.eclipse.as.wtp.core.modules.IJBTModule;
+
+public class JBossSARModuleDelegate extends FlatComponentDeployable implements IJBTModule
{
+
+ public JBossSARModuleDelegate(IProject project){
+ super(project);
+ }
+
+ public IModuleResource[] members() throws CoreException {
+ return super.members();
+ }
+
+ @Override
+ protected IFlattenParticipant[] getParticipants() {
+ List<IFlattenParticipant> participants = new
ArrayList<IFlattenParticipant>();
+ participants.add(new JEEHeirarchyExportParticipant());
+ participants.add(new AddMappedOutputFoldersParticipant());
+ participants.add(new IgnoreJavaInSourceFolderParticipant());
+ return participants.toArray(new IFlattenParticipant[participants.size()]);
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleFactory.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleFactory.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/JBossSARModuleFactory.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,84 @@
+/*******************************************************************************
+ * 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.ui.mbeans.project;
+
+import java.io.File;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.wst.common.componentcore.internal.flat.IChildModuleReference;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.web.internal.deployables.FlatComponentDeployable;
+import org.jboss.ide.eclipse.as.wtp.core.modules.JBTFlatProjectModuleFactory;
+
+public class JBossSARModuleFactory extends JBTFlatProjectModuleFactory {
+ public static final String FACTORY_ID =
"org.jboss.ide.eclipse.as.core.modules.sar.moduleFactory"; //$NON-NLS-1$
+ public static final String MODULE_TYPE =
IJBossSARFacetDataModelProperties.JBOSS_SAR_FACET_ID;
+
+ public String getFactoryId() {
+ return FACTORY_ID;
+ }
+
+ public JBossSARModuleFactory() {
+ super();
+ }
+
+ protected FlatComponentDeployable createDelegate(IProject project) {
+ return new JBossSARModuleDelegate(project);
+ }
+
+ @Override
+ protected boolean canHandleProject(IProject project) {
+ IProjectFacet facet = ProjectFacetsManager
+ .getProjectFacet(MODULE_TYPE);
+ IFacetedProject facetedProject = null;
+ try {
+ facetedProject = ProjectFacetsManager.create(project);
+ if (facetedProject.hasProjectFacet(facet)) {
+ return true;
+ }
+ } catch (CoreException e) {
+ }
+
+ return false;
+ }
+
+ @Override
+ protected String getModuleType(IProject project) {
+ // TODO Auto-generated method stub
+ return MODULE_TYPE;
+ }
+
+ @Override
+ protected String getModuleVersion(IProject project) {
+ return "1.0"; //$NON-NLS-1$
+ }
+
+ @Override
+ protected String getModuleType(File binaryFile) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ protected String getModuleVersion(File binaryFile) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public IModule createChildModule(FlatComponentDeployable parent, IChildModuleReference
child) {
+ return null;
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/SARVirtualComponent.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/SARVirtualComponent.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/SARVirtualComponent.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,9 @@
+package org.jboss.ide.eclipse.as.ui.mbeans.project;
+
+import org.eclipse.wst.common.componentcore.internal.util.IComponentImplFactory;
+import org.jboss.ide.eclipse.as.wtp.core.vcf.JBTVirtualComponent;
+
+public class SARVirtualComponent extends JBTVirtualComponent implements
+ IComponentImplFactory {
+
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARFacetInstallationPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARFacetInstallationPage.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARFacetInstallationPage.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,106 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.ui.mbeans.project.ui;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
+import org.eclipse.wst.common.project.facet.core.events.IFacetedProjectListener;
+import org.eclipse.wst.common.project.facet.ui.AbstractFacetWizardPage;
+import org.eclipse.wst.common.project.facet.ui.IFacetWizardPage;
+import org.jboss.ide.eclipse.as.ui.mbeans.Messages;
+import org.jboss.ide.eclipse.as.ui.mbeans.project.IJBossSARFacetDataModelProperties;
+
+public class SARFacetInstallationPage extends AbstractFacetWizardPage implements
IFacetWizardPage, IJBossSARFacetDataModelProperties {
+
+ private Text contentFolder;
+ private Label contentRootLabel;
+ private IDataModel model;
+ private boolean hasValidContentFolder = true;
+ private IFacetedProjectListener fpListerner;
+ private IFacetedProjectWorkingCopy fpwc;
+
+ public SARFacetInstallationPage() {
+ super( "esb.facet.install.page"); //$NON-NLS-1$
+ setTitle(Messages.NewSarProject_FacetInstallationPage);
+ setDescription(Messages.NewSarProject_FacetInstallationPageDesc);
+
+ }
+
+ public void setConfig(Object config) {
+ this.model = (IDataModel)config;
+ }
+
+ public void createControl(Composite parent) {
+ setControl(createTopLevelComposite(parent));
+ }
+
+ private void changePageStatus(){
+ if(!validFolderName(contentFolder.getText())){
+ setErrorMessage(Messages.NewSarProject_FacetInstallationPage_ContentRootError);
+ hasValidContentFolder = false;
+ setPageComplete(isPageComplete());
+ }
+ }
+
+ private boolean validFolderName(String folderName) {
+ IWorkspace ws = ResourcesPlugin.getWorkspace();
+ return ws.validateName(folderName, IResource.FOLDER).isOK();
+ }
+
+
+ protected Composite createTopLevelComposite(Composite parent) {
+ //setInfopopID(IWstWebUIContextIds.NEW_STATIC_WEB_PROJECT_PAGE3);
+ final Composite composite = new Composite(parent, SWT.NONE);
+ composite.setLayout(new GridLayout(1, false));
+ createProjectGroup(composite);
+// //set page status
+ changePageStatus();
+
+ return composite;
+ }
+
+ private void createProjectGroup(Composite parent){
+ Composite prjGroup = new Composite(parent, SWT.NONE);
+ prjGroup.setLayout(new GridLayout(1, false));
+ prjGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+
+ this.contentRootLabel = new Label(prjGroup, SWT.NONE);
+ this.contentRootLabel.setText(Messages.NewSarProject_ContentRootLabel);
+ this.contentRootLabel.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+ this.contentFolder = new Text(prjGroup, SWT.BORDER);
+ this.contentFolder.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+ this.contentFolder.setData("label", this.contentRootLabel); //$NON-NLS-1$ //
wtf??
+ this.contentFolder.setText(model.getStringProperty(SAR_CONTENT_FOLDER));
+ contentFolder.addModifyListener(new ModifyListener(){
+ public void modifyText(ModifyEvent e){
+ String content = contentFolder.getText();
+ if(content != null && !content.equals("")){ //$NON-NLS-1$
+ model.setProperty(SAR_CONTENT_FOLDER, content);
+ }
+ changePageStatus();
+ }
+ });
+
+ }
+}
\ No newline at end of file
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARProjectFirstPage.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARProjectFirstPage.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARProjectFirstPage.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,101 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.ui.mbeans.project.ui;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jst.common.project.facet.core.JavaFacet;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEUIPlugin;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
+import org.eclipse.wst.common.project.facet.core.IProjectFacet;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.web.ui.internal.wizards.DataModelFacetCreationWizardPage;
+import org.jboss.ide.eclipse.as.ui.mbeans.project.IJBossSARFacetDataModelProperties;
+
+public class SARProjectFirstPage extends DataModelFacetCreationWizardPage {
+
+ public SARProjectFirstPage(IDataModel dataModel, String pageName) {
+ super(dataModel, pageName);
+ setTitle(org.jboss.ide.eclipse.as.ui.mbeans.Messages.NewSarProject_FirstPageTitle);
+ setDescription(org.jboss.ide.eclipse.as.ui.mbeans.Messages.NewSarProject_FirstPageDesc);
+ }
+
+ protected String getModuleTypeID() {
+ return IJBossSARFacetDataModelProperties.SAR_PROJECT_FACET;
+ }
+
+ protected void createPrimaryFacetComposite(Composite top) {
+ super.createPrimaryFacetComposite(top);
+ super.handlePrimaryFacetVersionSelectedEvent();
+ }
+
+ @Override
+ protected void validatePage() {
+ Display.getDefault().syncExec(new Runnable() {
+ public void run() {
+ validatePage(true);
+ }
+ });
+ }
+
+ @Override
+ protected IDialogSettings getDialogSettings() {
+ return J2EEUIPlugin.getDefault().getDialogSettings();
+ }
+
+
+ @Override
+ protected Set<IProjectFacetVersion> getFacetConfiguration( final
IProjectFacetVersion primaryFacetVersion ) {
+ final Set<IProjectFacetVersion> config = new
HashSet<IProjectFacetVersion>();
+ IFacetedProjectWorkingCopy fpjwc = (IFacetedProjectWorkingCopy) this.model
+ .getProperty(FACETED_PROJECT_WORKING_COPY);
+ for (IProjectFacet fixedFacet : fpjwc.getFixedProjectFacets()) {
+ if (fixedFacet == primaryFacetVersion.getProjectFacet()) {
+ config.add(primaryFacetVersion);
+ } else if (fixedFacet == JavaFacet.FACET) {
+ config.add(JavaFacet.VERSION_1_6);
+// IProjectFacetVersion v = getDefaultJavaVersion();
+// config.add(getDefaultJavaVersion());
+ } else {
+ config.add(fpjwc.getHighestAvailableVersion(fixedFacet));
+ }
+ }
+ return config;
+ }
+//
+//
+// private static final Map<String,IProjectFacetVersion> EXEC_ENV_TO_FACET_VER=
new HashMap<String,IProjectFacetVersion>();
+// static {
+// EXEC_ENV_TO_FACET_VER.put( "1.3",JavaFacet.VERSION_1_3 ); //$NON-NLS-1$
+// EXEC_ENV_TO_FACET_VER.put( "1.4",JavaFacet.VERSION_1_4 ); //$NON-NLS-1$
+// EXEC_ENV_TO_FACET_VER.put( "1.5",JavaFacet.VERSION_1_5 ); //$NON-NLS-1$
+// EXEC_ENV_TO_FACET_VER.put( "1.6",JavaFacet.VERSION_1_6 ); //$NON-NLS-1$
+// EXEC_ENV_TO_FACET_VER.put( "1.7",JavaFacet.VERSION_1_7 ); //$NON-NLS-1$
+// }
+//
+// protected IProjectFacetVersion getDefaultJavaVersion() {
+// IProjectFacetVersion val = EXEC_ENV_TO_FACET_VER.get(getCompilerLevel());
+// return val == null ? JavaFacet.VERSION_1_5 : val;
+// }
+//
+ public static String getCompilerLevel() {
+ String level = JavaCore.getOption( JavaCore.COMPILER_COMPLIANCE );
+ if( level == null )
+ level = (String) JavaCore.getDefaultOptions().get( JavaCore.COMPILER_COMPLIANCE
);
+ return level;
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARProjectWizard.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARProjectWizard.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/SARProjectWizard.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,128 @@
+/*******************************************************************************
+ * 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.ui.mbeans.project.ui;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.wizard.IWizardPage;
+import org.eclipse.jst.server.core.internal.JavaServerPlugin;
+import org.eclipse.jst.server.core.internal.RuntimeClasspathContainer;
+import org.eclipse.jst.server.core.internal.RuntimeClasspathProviderWrapper;
+import org.eclipse.ui.INewWizard;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IFacetedProjectTemplate;
+import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.eclipse.wst.common.project.facet.core.runtime.IRuntime;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.web.ui.internal.wizards.NewProjectDataModelFacetWizard;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.jboss.ide.eclipse.as.ui.mbeans.project.IJBossSARFacetDataModelProperties;
+import
org.jboss.ide.eclipse.as.ui.mbeans.project.JBossSARFacetProjectCreationDataModelProvider;
+import org.jboss.ide.eclipse.as.wtp.core.vcf.VCFClasspathCommand;
+
+public class SARProjectWizard extends NewProjectDataModelFacetWizard implements
+ INewWizard {
+
+ public SARProjectWizard() {
+ super();
+ Set<IProjectFacetVersion> current =
getFacetedProjectWorkingCopy().getProjectFacets();
+// getFacetedProjectWorkingCopy().addListener(new IFacetedProjectListener(){
+// public void handleEvent(IFacetedProjectEvent event) {
+// System.out.println("runtime changed" +
event.getWorkingCopy().getPrimaryRuntime().getName());
+// }}, IFacetedProjectEvent.Type.PRIMARY_RUNTIME_CHANGED);
+ IRuntime rt = getFacetedProjectWorkingCopy().getPrimaryRuntime();
+ getFacetedProjectWorkingCopy().setProjectFacets(current);
+ setWindowTitle("New Sar Project");
+ //setDefaultPageImageDescriptor(ESBSharedImages.getImageDescriptor(ESBSharedImages.WIZARD_NEW_PROJECT));
+ }
+
+ public SARProjectWizard(IDataModel model) {
+ super(model);
+ setWindowTitle("New Sar Project");
+ //setDefaultPageImageDescriptor(ESBSharedImages.getImageDescriptor(ESBSharedImages.WIZARD_NEW_PROJECT));
+
+ }
+
+ @Override
+ protected IDataModel createDataModel() {
+ return DataModelFactory.createDataModel(new
JBossSARFacetProjectCreationDataModelProvider());
+ }
+
+ private IFacetedProjectWorkingCopy fpjwc;
+
+ @Override
+ public void setFacetedProjectWorkingCopy( final IFacetedProjectWorkingCopy fpjwc ) {
+ super.setFacetedProjectWorkingCopy(fpjwc);
+ this.fpjwc = fpjwc;
+ }
+
+ @Override
+ protected IWizardPage createFirstPage() {
+ return new SARProjectFirstPage(model, "first.page"); //$NON-NLS-1$
+ }
+
+ @Override
+ protected ImageDescriptor getDefaultPageImageDescriptor() {
+ return null; //ESBSharedImages.getImageDescriptor(ESBSharedImages.WIZARD_NEW_PROJECT);
+ }
+
+ @Override
+ protected IFacetedProjectTemplate getTemplate() {
+ return
ProjectFacetsManager.getTemplate(IJBossSARFacetDataModelProperties.SAR_PROJECT_FACET_TEMPLATE);
+ }
+
+ @Override
+ protected void postPerformFinish() throws InvocationTargetException {
+ super.postPerformFinish();
+ String prjName = this.getProjectName();
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(prjName);
+ if(!project.exists()) return;
+
+ try {
+ String esbcontent =
project.getPersistentProperty(IJBossSARFacetDataModelProperties.QNAME_SAR_CONTENT_FOLDER);
+ IPath esbPath = new
Path(esbcontent).append(IJBossSARFacetDataModelProperties.META_INF);
+ IWorkbenchPage page =
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
+
+ // Add the server runtime as well
+ IFacetedProject fp = ProjectFacetsManager.create(project);
+ IRuntime runtime = fp.getPrimaryRuntime();
+
+ if(runtime == null) return;
+
+ String name = runtime.getName();
+ org.eclipse.wst.server.core.IRuntime serverRuntime = ServerCore.findRuntime(name);
+ RuntimeClasspathProviderWrapper rcpw =
JavaServerPlugin.findRuntimeClasspathProvider(serverRuntime.getRuntimeType());
+ IPath serverContainerPath = new Path(RuntimeClasspathContainer.SERVER_CONTAINER)
+ .append(rcpw.getId()).append(serverRuntime.getId());
+ VCFClasspathCommand.addClassPath(project, serverContainerPath);
+
+ } catch (CoreException e) {
+ JBossServerCorePlugin.getDefault().getLog().log(e.getStatus());
+ }
+
+ }
+
+
+
+}
\ No newline at end of file
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/StrippedServerWizardFragment.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/StrippedServerWizardFragment.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/StrippedServerWizardFragment.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,293 @@
+/**
+ * JBoss by Red Hat
+ * Copyright 2006-2009, Red Hat Middleware, LLC, and individual contributors as
indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.ide.eclipse.as.ui.mbeans.project.ui;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.ModifyEvent;
+import org.eclipse.swt.events.ModifyListener;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.FormAttachment;
+import org.eclipse.swt.layout.FormData;
+import org.eclipse.swt.layout.FormLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.DirectoryDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.wst.server.core.IServer;
+import org.eclipse.wst.server.core.IServerWorkingCopy;
+import org.eclipse.wst.server.core.ServerCore;
+import org.eclipse.wst.server.core.TaskModel;
+import org.eclipse.wst.server.ui.wizard.IWizardHandle;
+import org.eclipse.wst.server.ui.wizard.WizardFragment;
+import org.jboss.ide.eclipse.as.core.JBossServerCorePlugin;
+import org.jboss.ide.eclipse.as.core.server.IJBossServerConstants;
+import org.jboss.ide.eclipse.as.core.server.internal.DeployableServer;
+import org.jboss.ide.eclipse.as.ui.JBossServerUIPlugin;
+import org.jboss.ide.eclipse.as.ui.JBossServerUISharedImages;
+import org.jboss.ide.eclipse.as.ui.Messages;
+
+/**
+ *
+ * @author Rob Stryker <rob.stryker(a)redhat.com>
+ *
+ */
+public class StrippedServerWizardFragment extends WizardFragment {
+
+ private IWizardHandle handle;
+
+ private Label deployLabel, tmpDeployLabel, nameLabel;
+ private Text deployText, tmpDeployText, nameText;
+ private Button browse, tmpBrowse;
+ private String name, deployLoc, tmpDeployLoc;
+
+ public StrippedServerWizardFragment() {
+ }
+
+ public Composite createComposite(Composite parent, IWizardHandle handle) {
+ this.handle = handle;
+ Composite main = new Composite(parent, SWT.NONE);
+ main.setLayout(new FormLayout());
+
+ nameLabel = new Label(main, SWT.NONE);
+ nameText = new Text(main, SWT.BORDER);
+ nameLabel.setText(Messages.serverName);
+
+ deployLabel = new Label(main, SWT.NONE);
+ deployText = new Text(main, SWT.BORDER);
+ browse = new Button(main, SWT.PUSH);
+ deployLabel.setText(Messages.swf_DeployDirectory);
+ browse.setText(Messages.browse);
+
+ tmpDeployLabel = new Label(main, SWT.NONE);
+ tmpDeployText = new Text(main, SWT.BORDER);
+ tmpBrowse = new Button(main, SWT.PUSH);
+ tmpDeployLabel.setText(Messages.swf_TempDeployDirectory);
+ tmpBrowse.setText(Messages.browse);
+
+ FormData namelData = new FormData();
+ namelData.top = new FormAttachment(0, 5);
+ namelData.left = new FormAttachment(0, 5);
+ nameLabel.setLayoutData(namelData);
+
+ FormData nametData = new FormData();
+ nametData.top = new FormAttachment(0, 5);
+ nametData.left = new FormAttachment(deployLabel, 5);
+ nametData.right = new FormAttachment(100, -5);
+ nameText.setLayoutData(nametData);
+
+ FormData lData = new FormData();
+ lData.top = new FormAttachment(nameText, 5);
+ lData.left = new FormAttachment(0, 5);
+ deployLabel.setLayoutData(lData);
+
+ FormData tData = new FormData();
+ tData.top = new FormAttachment(nameText, 5);
+ tData.left = new FormAttachment(deployLabel, 5);
+ tData.right = new FormAttachment(browse, -5);
+ deployText.setLayoutData(tData);
+
+ FormData bData = new FormData();
+ bData.right = new FormAttachment(100, -5);
+ bData.top = new FormAttachment(nameText, 5);
+ browse.setLayoutData(bData);
+
+ lData = new FormData();
+ lData.top = new FormAttachment(deployText, 5);
+ lData.left = new FormAttachment(0, 5);
+ tmpDeployLabel.setLayoutData(lData);
+
+ tData = new FormData();
+ tData.top = new FormAttachment(deployText, 5);
+ tData.left = new FormAttachment(tmpDeployLabel, 5);
+ tData.right = new FormAttachment(tmpBrowse, -5);
+ tmpDeployText.setLayoutData(tData);
+
+ bData = new FormData();
+ bData.right = new FormAttachment(100, -5);
+ bData.top = new FormAttachment(deployText, 5);
+ tmpBrowse.setLayoutData(bData);
+
+
+ ModifyListener ml = new ModifyListener() {
+ public void modifyText(ModifyEvent e) {
+ textChanged();
+ }
+ };
+
+ browse.addSelectionListener(new MySelectionListener(deployText));
+ tmpBrowse.addSelectionListener(new MySelectionListener(tmpDeployText));
+
+ tmpDeployText.addModifyListener(ml);
+ deployText.addModifyListener(ml);
+ nameText.addModifyListener(ml);
+ nameText.setText(getDefaultNameText());
+ handle.setImageDescriptor(JBossServerUISharedImages
+ .getImageDescriptor(JBossServerUISharedImages.WIZBAN_JBOSS_LOGO));
+ return main;
+ }
+
+ private class MySelectionListener implements SelectionListener {
+ private Text text;
+ public MySelectionListener(Text text) {
+ this.text = text;
+ }
+ public void widgetDefaultSelected(SelectionEvent e) {
+ }
+
+ public void widgetSelected(SelectionEvent e) {
+ DirectoryDialog d = new DirectoryDialog(new Shell());
+ d.setFilterPath(text.getText());
+ String x = d.open();
+ if (x != null)
+ text.setText(x);
+ }
+ }
+
+ protected void textChanged() {
+ IStatus status = checkErrors();
+ if (status.isOK()) {
+ deployLoc = deployText.getText();
+ tmpDeployLoc = tmpDeployText.getText();
+ name = nameText.getText();
+ handle.setMessage("", IStatus.OK); //$NON-NLS-1$
+ handle.update();
+ } else {
+ handle.setMessage(status.getMessage(), IStatus.WARNING);
+ }
+ }
+
+ protected IStatus checkErrors() {
+ if (findServer(nameText.getText()) != null) {
+ return new Status(IStatus.WARNING, JBossServerUIPlugin.PLUGIN_ID, IStatus.OK,
+ Messages.StrippedServerWizardFragment_NameInUseStatusMessage, null);
+ }
+ File f = new File(deployText.getText());
+ if (!f.exists() || !f.isDirectory()) {
+ return new Status(IStatus.WARNING, JBossServerUIPlugin.PLUGIN_ID, IStatus.OK,
+ Messages.StrippedServerWizardFragment_DeployFolderDoesNotExistStatusMessage, null);
+ }
+ f = new File(tmpDeployText.getText());
+ if (!f.exists() || !f.isDirectory()) {
+ return new Status(IStatus.WARNING, JBossServerUIPlugin.PLUGIN_ID, IStatus.OK,
+ Messages.StrippedServerWizardFragment_TemporaryDeployFolderDoesNotExistStatusMessage,
null);
+ }
+
+ // Check if a renameTo on these folders will fail
+ File tmp1, dep1;
+ tmp1 = dep1 = null;
+ boolean success = false;
+ try {
+ tmp1 = File.createTempFile(JBossServerUIPlugin.PLUGIN_ID, ".txt", new
File(tmpDeployText.getText())); //$NON-NLS-1$
+ dep1 = new Path(deployText.getText()).append(JBossServerUIPlugin.PLUGIN_ID +
".txt").toFile(); //$NON-NLS-1$
+ success = tmp1.renameTo(dep1);
+ } catch(IOException ioe) {
+ } finally {
+ if( tmp1 != null && tmp1.exists())
+ tmp1.delete();
+ if( dep1 != null && dep1.exists())
+ dep1.delete();
+ if( !success )
+ return new Status(IStatus.ERROR, JBossServerUIPlugin.PLUGIN_ID, 0,
+ "Unable to rename files from your temporary folder to your deploy folder.
Please verify both are on the same filesystem.", null); //$NON-NLS-1$
+ }
+
+
+ return new Status(IStatus.OK, JBossServerUIPlugin.PLUGIN_ID, IStatus.OK, "",
null); //$NON-NLS-1$
+ }
+
+ public void enter() {
+ handle.setTitle(Messages.sswf_Title);
+ IServer s = (IServer) getTaskModel().getObject(TaskModel.TASK_SERVER);
+ IServerWorkingCopy swc;
+ if (s instanceof IServerWorkingCopy)
+ swc = (IServerWorkingCopy) s;
+ else
+ swc = s.createWorkingCopy();
+
+ deployText.setText(swc.getAttribute(DeployableServer.DEPLOY_DIRECTORY, ""));
//$NON-NLS-1$
+ }
+
+ public void exit() {
+ textChanged();
+ IServer s = (IServer) getTaskModel().getObject(TaskModel.TASK_SERVER);
+ IServerWorkingCopy swc;
+ if (s instanceof IServerWorkingCopy)
+ swc = (IServerWorkingCopy) s;
+ else
+ swc = s.createWorkingCopy();
+
+ swc.setName(name);
+ swc.setAttribute(DeployableServer.DEPLOY_DIRECTORY, deployLoc);
+ String tempFolder = JBossServerCorePlugin.getServerStateLocation(s)
+ .append(IJBossServerConstants.TEMP_DEPLOY).makeAbsolute().toString();
+ swc.setAttribute(DeployableServer.TEMP_DEPLOY_DIRECTORY, tempFolder);
+ getTaskModel().putObject(TaskModel.TASK_SERVER, swc);
+ }
+
+ public void performFinish(IProgressMonitor monitor) throws CoreException {
+ IServerWorkingCopy serverWC = (IServerWorkingCopy)
getTaskModel().getObject(TaskModel.TASK_SERVER);
+
+ try {
+ serverWC.setServerConfiguration(null);
+ serverWC.setName(name);
+ serverWC.setAttribute(DeployableServer.DEPLOY_DIRECTORY, deployLoc);
+ serverWC.setAttribute(DeployableServer.TEMP_DEPLOY_DIRECTORY, tmpDeployLoc);
+ getTaskModel().putObject(TaskModel.TASK_SERVER, serverWC);
+ } catch (Exception ce) {
+ }
+ }
+
+ public boolean isComplete() {
+ return checkErrors().isOK();
+ }
+
+ public boolean hasComposite() {
+ return true;
+ }
+
+ private String getDefaultNameText() {
+ Object o = getTaskModel().getObject(TaskModel.TASK_SERVER);
+ return ((IServerWorkingCopy) o).getName();
+ }
+
+ private IServer findServer(String name) {
+ IServer[] servers = ServerCore.getServers();
+ for (int i = 0; i < servers.length; i++) {
+ IServer server = servers[i];
+ if (name.equals(server.getName()))
+ return server;
+ }
+ return null;
+ }
+
+}
Property changes on:
trunk/as/plugins/org.jboss.ide.eclipse.as.ui.mbeans/src/org/jboss/ide/eclipse/as/ui/mbeans/project/ui/StrippedServerWizardFragment.java
___________________________________________________________________
Added: svn:executable
+ *
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTFlatModuleDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTFlatModuleDelegate.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTFlatModuleDelegate.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.wtp.core.modules;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.wst.common.componentcore.internal.flat.IChildModuleReference;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.web.internal.deployables.FlatComponentDeployable;
+
+public class JBTFlatModuleDelegate extends FlatComponentDeployable {
+
+ private JBTFlatProjectModuleFactory factory;
+ public JBTFlatModuleDelegate(IProject project, JBTFlatProjectModuleFactory myFactory) {
+ super(project);
+ this.factory = myFactory;
+ }
+ public JBTFlatModuleDelegate(IProject project, IVirtualComponent aComponent,
JBTFlatProjectModuleFactory myFactory) {
+ super(project, aComponent);
+ this.factory = myFactory;
+ }
+ @Override
+ protected IModule gatherModuleReference(IVirtualComponent component,
IChildModuleReference child ) {
+ if (!child.isBinary())
+ return super.gatherModuleReference(component, child);
+ return factory.createChildModule(this, child);
+ }
+}
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTFlatProjectModuleFactory.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTFlatProjectModuleFactory.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTFlatProjectModuleFactory.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,206 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.wtp.core.modules;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResourceChangeEvent;
+import org.eclipse.core.resources.IResourceChangeListener;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.j2ee.internal.deployables.BinaryFileModuleDelegate;
+import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
+import org.eclipse.wst.common.componentcore.ComponentCore;
+import org.eclipse.wst.common.componentcore.internal.StructureEdit;
+import org.eclipse.wst.common.componentcore.internal.flat.IChildModuleReference;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.server.core.IModule;
+import org.eclipse.wst.server.core.internal.Module;
+import org.eclipse.wst.server.core.internal.ModuleFactory;
+import org.eclipse.wst.server.core.internal.ServerPlugin;
+import org.eclipse.wst.server.core.model.ModuleDelegate;
+import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
+import org.eclipse.wst.web.internal.deployables.FlatComponentDeployable;
+
+public abstract class JBTFlatProjectModuleFactory extends ProjectModuleFactoryDelegate
implements IResourceChangeListener {
+ public static final String BINARY_PREFIX = "/binary:"; //$NON-NLS-1$
+ public static void ensureFactoryLoaded(String factoryId) {
+ ModuleFactory[] factories = ServerPlugin.getModuleFactories();
+ for( int i = 0; i < factories.length; i++ ) {
+ if( factories[i].getId().equals(factoryId)) {
+ factories[i].getDelegate(new NullProgressMonitor());
+ }
+ }
+ }
+
+ protected Map <IModule, FlatComponentDeployable> moduleDelegates = new
HashMap<IModule, FlatComponentDeployable>(5);
+ public JBTFlatProjectModuleFactory() {
+ super();
+ }
+
+ @Override
+ public void initialize() {
+ super.initialize();
+ ResourcesPlugin.getWorkspace().addResourceChangeListener(this);
+ }
+
+ @Override
+ protected IModule[] createModules(IProject project) {
+ IVirtualComponent component = ComponentCore.createComponent(project);
+ if(component != null)
+ return createModuleDelegates(component);
+ return null;
+ }
+
+
+ @Override
+ public ModuleDelegate getModuleDelegate(IModule module) {
+ if (module == null)
+ return null;
+ ModuleDelegate md = moduleDelegates.get(module);
+ if( md == null && ((Module)module).getInternalId().startsWith(BINARY_PREFIX))
+ return createBinaryDelegate(module);
+ if (md == null) {
+ createModules(module.getProject());
+ md = moduleDelegates.get(module);
+ }
+ return md;
+ }
+
+ protected abstract boolean canHandleProject(IProject p);
+ protected abstract String getModuleType(IProject project);
+ protected abstract String getModuleVersion(IProject project);
+ protected abstract String getModuleType(File binaryFile);
+ protected abstract String getModuleVersion(File binaryFile);
+ protected FlatComponentDeployable createModuleDelegate(IProject project,
IVirtualComponent component) {
+ return new JBTFlatModuleDelegate(project, component, this);
+ }
+
+ protected FlatComponentDeployable getNestedDelegate(IVirtualComponent component) {
+ return new JBTFlatModuleDelegate(component.getProject(), component, this);
+ }
+
+ protected IModule[] createModuleDelegates(IVirtualComponent component) {
+ if(component == null)
+ return null;
+
+ List<IModule> projectModules = new ArrayList<IModule>();
+ try {
+ if (canHandleProject(component.getProject())) {
+ String type = getModuleType(component.getProject());
+ String version = getModuleVersion(component.getProject());
+ IModule module = createModule(component.getName(), component.getName(), type,
version, component.getProject());
+ FlatComponentDeployable moduleDelegate = createModuleDelegate(component.getProject(),
component);
+ moduleDelegates.put(module, moduleDelegate);
+ projectModules.add(module);
+ } else {
+ return new IModule[]{};
+ }
+ } catch (Exception e) {
+ J2EEPlugin.logError(e);
+ }
+ return projectModules.toArray(new IModule[projectModules.size()]);
+ }
+
+
+ /**
+ * From this point on, when queried, projects will generate their binary
+ * child modules on the fly and they will be small and dumb
+ *
+ * @param parent
+ * @param child
+ * @return
+ */
+ public IModule createChildModule(FlatComponentDeployable parent, IChildModuleReference
child) {
+ File file = child.getFile();
+ if( file != null ) {
+ IPath p = new Path(file.getAbsolutePath());
+ String id = BINARY_PREFIX + file.getAbsolutePath();
+ IModule nestedModule = createModule(id, file.getName(),
+ getModuleType(file), getModuleVersion(file),
+ parent.getProject());
+ FlatComponentDeployable moduleDelegate = getNestedDelegate(child.getComponent());
+ moduleDelegates.put(nestedModule, moduleDelegate);
+ return nestedModule;
+ }
+ return null;
+ }
+
+ /**
+ * Create a module delegate on the fly for this binary file
+ * @param module
+ * @return
+ */
+ public ModuleDelegate createBinaryDelegate(IModule module) {
+ String internalId = ((Module)module).getInternalId();
+ String path = internalId.substring(BINARY_PREFIX.length());
+ File f = new File(path);
+ return new BinaryFileModuleDelegate(f);
+ }
+
+ public void resourceChanged(IResourceChangeEvent event) {
+ cleanAllDelegates();
+ }
+
+ protected void cleanAllDelegates() {
+ Iterator<FlatComponentDeployable> i = moduleDelegates.values().iterator();
+ while(i.hasNext()) {
+ i.next().clearCache();
+ }
+ modulesChanged();
+ }
+
+
+ /**
+ * Returns the list of resources that the module should listen to for state
+ * changes. The paths should be project relative paths. Subclasses can
+ * override this method to provide the paths.
+ *
+ * @return a possibly empty array of paths
+ */
+ @Override
+ protected IPath[] getListenerPaths() {
+ return new IPath[] { new Path(".project"), // nature //$NON-NLS-1$
+ new Path(StructureEdit.MODULE_META_FILE_NAME), // component
+ new Path(".settings/org.eclipse.wst.common.project.facet.core.xml") //
facets //$NON-NLS-1$
+ };
+ }
+
+ @Override
+ protected void clearCache(IProject project) {
+ super.clearCache(project);
+ List<IModule> modulesToRemove = null;
+ for (Iterator<IModule> iterator = moduleDelegates.keySet().iterator();
iterator.hasNext();) {
+ IModule module = iterator.next();
+ if (module.getProject() != null && module.getProject().equals(project)) {
+ if (modulesToRemove == null) {
+ modulesToRemove = new ArrayList<IModule>();
+ }
+ modulesToRemove.add(module);
+ }
+ }
+ if (modulesToRemove != null) {
+ for (IModule module : modulesToRemove) {
+ moduleDelegates.remove(module);
+ }
+ }
+ }
+
+
+}
\ No newline at end of file
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTProjectModuleDelegate.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTProjectModuleDelegate.java 2011-08-11
01:53:46 UTC (rev 33799)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTProjectModuleDelegate.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -29,6 +29,14 @@
import org.eclipse.wst.web.internal.deployables.ComponentDeployable;
import org.jboss.ide.eclipse.as.wtp.core.vcf.JBTVirtualArchiveComponent;
+/**
+ * This class is deprecated because it inherits from a deprecated class.
+ *
+ * ESB NEEDS TO STOP USING THIS!!!
+ * @author rob
+ *
+ */
+@Deprecated
public abstract class JBTProjectModuleDelegate extends ComponentDeployable implements
IJBTModule {
public JBTProjectModuleDelegate(IProject project) {
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTProjectModuleFactory.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTProjectModuleFactory.java 2011-08-11
01:53:46 UTC (rev 33799)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/modules/JBTProjectModuleFactory.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -35,6 +35,14 @@
import org.eclipse.wst.server.core.util.ProjectModuleFactoryDelegate;
import org.jboss.ide.eclipse.as.wtp.core.ASWTPToolsPlugin;
+/**
+ * This class is deprecated because it inherits from a deprecated class.
+ *
+ * ESB NEEDS TO STOP USING THIS!!!
+ * @author rob
+ *
+ */
+@Deprecated
public abstract class JBTProjectModuleFactory extends ProjectModuleFactoryDelegate {
public static JBTProjectModuleFactory getFactory(String id) {
ModuleFactory[] factories = ServerPlugin.getModuleFactories();
Added:
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/vcf/VCFClasspathCommand.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/vcf/VCFClasspathCommand.java
(rev 0)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.wtp.core/src/org/jboss/ide/eclipse/as/wtp/core/vcf/VCFClasspathCommand.java 2011-08-11
06:20:08 UTC (rev 33800)
@@ -0,0 +1,61 @@
+package org.jboss.ide.eclipse.as.wtp.core.vcf;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jdt.core.IClasspathEntry;
+import org.eclipse.jdt.core.IJavaProject;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.jboss.ide.eclipse.as.wtp.core.ASWTPToolsPlugin;
+
+public class VCFClasspathCommand {
+ /**
+ * This can add *any* container path
+ * @param project
+ * @param path
+ * @return
+ */
+ public static IStatus addClassPath(IProject project, IPath path) {
+ IStatus status = Status.OK_STATUS;
+ try {
+
+ IClasspathEntry newClasspath;
+ IJavaProject javaProject = JavaCore.create(project);
+ newClasspath = JavaCore.newContainerEntry(path);
+
+ IClasspathEntry[] oldClasspathEntries = javaProject
+ .readRawClasspath();
+
+ boolean isFolderInClassPathAlready = false;
+ for (int i = 0; i < oldClasspathEntries.length
+ && !isFolderInClassPathAlready; i++) {
+ if (oldClasspathEntries[i].getPath().equals(
+ newClasspath.getPath())) {
+ isFolderInClassPathAlready = true;
+ break;
+ }
+ }
+
+ if (!isFolderInClassPathAlready) {
+
+ IClasspathEntry[] newClasspathEntries = new
IClasspathEntry[oldClasspathEntries.length + 1];
+ for (int i = 0; i < oldClasspathEntries.length; i++) {
+ newClasspathEntries[i] = oldClasspathEntries[i];
+ }
+ newClasspathEntries[oldClasspathEntries.length] = newClasspath;
+ javaProject.setRawClasspath(newClasspathEntries,
+ new NullProgressMonitor());
+ }
+ } catch (JavaModelException e) {
+ status = new Status(IStatus.ERROR, ASWTPToolsPlugin.PLUGIN_ID,
e.getLocalizedMessage(), e);
+ return status;
+ }
+
+ return status;
+ }
+
+
+}