Author: snjeza
Date: 2009-08-16 18:54:11 -0400 (Sun, 16 Aug 2009)
New Revision: 17101
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/SeamProjectConfigurator.java
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencePage.java
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencesInitializer.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-4736 Add m2eclipse project-configurator for Seam
projects
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java 2009-08-15
08:45:37 UTC (rev 17100)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/MavenSeamActivator.java 2009-08-16
22:54:11 UTC (rev 17101)
@@ -71,12 +71,16 @@
private static final String PARENT_SUFFIX = "-parent";
// The plug-in ID
- public static final String PLUGIN_ID = "org.jboss.tools.maven.seam";
+ public static final String PLUGIN_ID = "org.jboss.tools.maven.seam";
//$NON-NLS-1$
public static final String CONFIGURE_SEAM = "configureSeam"; //$NON-NLS-1$
public static final boolean CONFIGURE_SEAM_VALUE = true;
+
+ public static final String CONFIGURE_SEAM_RUNTIME = "configureSeamRuntime";
//$NON-NLS-1$
+ public static final boolean CONFIGURE_SEAM_RUNTIME_VALUE = true;
+
// The shared instance
private static MavenSeamActivator plugin;
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/SeamProjectConfigurator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/SeamProjectConfigurator.java 2009-08-15
08:45:37 UTC (rev 17100)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/configurators/SeamProjectConfigurator.java 2009-08-16
22:54:11 UTC (rev 17101)
@@ -1,5 +1,6 @@
package org.jboss.tools.maven.seam.configurators;
+import java.io.File;
import java.util.List;
import org.apache.maven.model.Dependency;
@@ -30,6 +31,10 @@
import org.jboss.tools.maven.seam.MavenSeamActivator;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
+import org.jboss.tools.seam.core.SeamUtil;
+import org.jboss.tools.seam.core.project.facet.SeamRuntime;
+import org.jboss.tools.seam.core.project.facet.SeamRuntimeManager;
+import org.jboss.tools.seam.core.project.facet.SeamVersion;
import org.jboss.tools.seam.internal.core.project.facet.ISeamFacetDataModelProperties;
import
org.jboss.tools.seam.internal.core.project.facet.SeamFacetInstallDataModelProvider;
import org.maven.ide.eclipse.MavenPlugin;
@@ -102,13 +107,22 @@
if (earProjects.length > 0) {
deploying = "ear"; //$NON-NLS-1$
}
- IDataModel model = createSeamDataModel(deploying);
+ IDataModel model = createSeamDataModel(deploying, seamVersion);
final IFacetedProject fproj = ProjectFacetsManager.create(project);
if ("war".equals(packaging)) { //$NON-NLS-1$
installWarFacets(fproj,model,seamVersion, monitor);
} else if ("ear".equals(packaging)) { //$NON-NLS-1$
installEarFacets(fproj, monitor);
installM2Facet(fproj, monitor);
+ IProject webProject = getReferencingSeamWebProject(project);
+ if (webProject != null) {
+ IEclipsePreferences prefs = SeamCorePlugin.getSeamPreferences(webProject);
+ String deployingType =
prefs.get(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS,null);
+ if (deployingType == null ||
deployingType.equals(ISeamFacetDataModelProperties.DEPLOY_AS_WAR)) {
+
prefs.put(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS,ISeamFacetDataModelProperties.DEPLOY_AS_EAR);
+ storeSettings(webProject);
+ }
+ }
} else if ("ejb".equals(packaging)) { //$NON-NLS-1$
installM2Facet(fproj,monitor);
installEjbFacets(fproj, monitor);
@@ -287,9 +301,12 @@
return null;
}
- private IDataModel createSeamDataModel(String deployType) {
+ private IDataModel createSeamDataModel(String deployType, String seamVersion) {
IDataModel config = (IDataModel) new SeamFacetInstallDataModelProvider().create();
- //config.setStringProperty(ISeamFacetDataModelProperties.SEAM_RUNTIME_NAME,
SEAM_1_2_0);
+ String seamRuntimeName = getSeamRuntimeName(seamVersion);
+ if (seamRuntimeName != null) {
+ config.setStringProperty(ISeamFacetDataModelProperties.SEAM_RUNTIME_NAME,
seamRuntimeName);
+ }
config.setBooleanProperty(ISeamFacetDataModelProperties.DB_ALREADY_EXISTS, true);
config.setBooleanProperty(ISeamFacetDataModelProperties.RECREATE_TABLES_AND_DATA_ON_DEPLOY,
false);
config.setStringProperty(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS,
deployType);
@@ -302,4 +319,58 @@
//config.setProperty(ISeamFacetDataModelProperties.JDBC_DRIVER_JAR_PATH, new String[] {
"noop-driver.jar" });
return config;
}
+
+ private String getSeamRuntimeName(String seamVersionStr) {
+ if (seamVersionStr == null) {
+ return null;
+ }
+ IPreferenceStore store = MavenSeamActivator.getDefault().getPreferenceStore();
+ boolean configureSeamRuntime =
store.getBoolean(MavenSeamActivator.CONFIGURE_SEAM_RUNTIME);
+ if (!configureSeamRuntime) {
+ return null;
+ }
+ String seamRuntime5 = null;
+ String seamRuntime3 = null;
+ SeamRuntime[] seamRuntimes = SeamRuntimeManager.getInstance().getRuntimes();
+ for (int i = 0; i < seamRuntimes.length; i++) {
+ SeamRuntime seamRuntime = seamRuntimes[i];
+ String seamHomeDir = seamRuntime.getHomeDir();
+ if (seamHomeDir == null) {
+ continue;
+ }
+ if ( ! (new File(seamHomeDir).exists() )) {
+ continue;
+ }
+ String fullVersion = SeamUtil.getSeamVersionFromManifest(seamRuntime.getHomeDir());
+ if (fullVersion == null) {
+ continue;
+ }
+ if (fullVersion == seamVersionStr) {
+ return seamRuntime.getName();
+ }
+ if (seamRuntime5 == null) {
+ String fullVersion5 = fullVersion.substring(0,5);
+ String seamVersion5 = seamVersionStr.substring(0,5);
+ if (seamVersion5.equals(fullVersion5)) {
+ seamRuntime5 = seamRuntime.getName();
+ }
+ }
+ if (seamRuntime5 == null && seamRuntime3 == null) {
+ String fullVersion3 = fullVersion.substring(0,3);
+ String seamVersion3 = seamVersionStr.substring(0,3);
+ if (seamVersion3.equals(fullVersion3)) {
+ seamRuntime3 = seamRuntime.getName();
+ }
+ }
+ }
+ if (seamRuntime5 != null) {
+ return seamRuntime5;
+ }
+ SeamVersion seamVersion = SeamVersion.parseFromString(seamVersionStr.substring(0,3));
+ SeamRuntime defaultRuntime =
SeamRuntimeManager.getInstance().getDefaultRuntime(seamVersion);
+ if (defaultRuntime != null) {
+ return defaultRuntime.getName();
+ }
+ return seamRuntime3;
+ }
}
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencePage.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencePage.java 2009-08-15
08:45:37 UTC (rev 17100)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencePage.java 2009-08-16
22:54:11 UTC (rev 17101)
@@ -3,6 +3,8 @@
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
@@ -15,7 +17,8 @@
IWorkbenchPreferencePage {
- private Button button;
+ private Button configureSeamButton;
+ private Button configureSeamRuntimeButton;
@Override
protected Control createContents(Composite parent) {
@@ -25,11 +28,27 @@
layout.marginHeight = 0;
composite.setLayout(layout);
- button = new Button(composite,SWT.CHECK);
- button.setText("Configure Seam when importing Maven projects");
+ configureSeamButton = new Button(composite,SWT.CHECK);
+ configureSeamButton.setText("Configure Seam when importing Maven projects");
IPreferenceStore store = MavenSeamActivator.getDefault().getPreferenceStore();
boolean configureSeam = store.getBoolean(MavenSeamActivator.CONFIGURE_SEAM);
- button.setSelection(configureSeam);
+ configureSeamButton.setSelection(configureSeam);
+
+ configureSeamRuntimeButton = new Button(composite,SWT.CHECK);
+ configureSeamRuntimeButton.setText("Configure Seam Runtime");
+ boolean configureSeamRuntime =
store.getBoolean(MavenSeamActivator.CONFIGURE_SEAM_RUNTIME);
+ configureSeamRuntimeButton.setSelection(configureSeamRuntime);
+ configureSeamRuntimeButton.setEnabled(configureSeam);
+
+ configureSeamButton.addSelectionListener(new SelectionAdapter() {
+
+ @Override
+ public void widgetSelected(SelectionEvent e) {
+ configureSeamRuntimeButton.setEnabled(configureSeamButton.getSelection());
+ }
+
+ });
+
return composite;
}
@@ -38,7 +57,7 @@
@Override
protected void performDefaults() {
- button.setSelection(MavenSeamActivator.CONFIGURE_SEAM_VALUE);
+ configureSeamButton.setSelection(MavenSeamActivator.CONFIGURE_SEAM_VALUE);
IPreferenceStore store = MavenSeamActivator.getDefault().getPreferenceStore();
store.setValue(MavenSeamActivator.CONFIGURE_SEAM,
MavenSeamActivator.CONFIGURE_SEAM_VALUE);
super.performDefaults();
@@ -47,7 +66,7 @@
@Override
public boolean performOk() {
IPreferenceStore store = MavenSeamActivator.getDefault().getPreferenceStore();
- store.setValue(MavenSeamActivator.CONFIGURE_SEAM, button.getSelection());
+ store.setValue(MavenSeamActivator.CONFIGURE_SEAM, configureSeamButton.getSelection());
return super.performOk();
}
Modified:
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencesInitializer.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencesInitializer.java 2009-08-15
08:45:37 UTC (rev 17100)
+++
trunk/maven/plugins/org.jboss.tools.maven.seam/src/org/jboss/tools/maven/seam/preferences/SeamConfiguratorPreferencesInitializer.java 2009-08-16
22:54:11 UTC (rev 17101)
@@ -16,6 +16,9 @@
node.putBoolean(
MavenSeamActivator.CONFIGURE_SEAM,
MavenSeamActivator.CONFIGURE_SEAM_VALUE);
+ node.putBoolean(
+ MavenSeamActivator.CONFIGURE_SEAM_RUNTIME,
+ MavenSeamActivator.CONFIGURE_SEAM_RUNTIME_VALUE);
}
}