Skip to main content

This CGIT instance is deprecated, and repositories have been moved to Gitlab or Github. See the repository descriptions for specific locations.

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcbridgha2005-05-24 22:25:58 +0000
committercbridgha2005-05-24 22:25:58 +0000
commit3bfb2249a9a0b151dc81e3dd77e1aba2aea14356 (patch)
treedd7b5ecef32c17262b4e1c98b7336b5d9184c78b /plugins/org.eclipse.jst.j2ee/earproject/org/eclipse
parent70e06820321fdfb93056035db5a76f6be8b48c8f (diff)
downloadwebtools.javaee-3bfb2249a9a0b151dc81e3dd77e1aba2aea14356.tar.gz
webtools.javaee-3bfb2249a9a0b151dc81e3dd77e1aba2aea14356.tar.xz
webtools.javaee-3bfb2249a9a0b151dc81e3dd77e1aba2aea14356.zip
*** empty log message ***
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee/earproject/org/eclipse')
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddArchiveToEARDataModel.java7
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationDataModel.java5
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddModuleToEARDataModel.java2
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddUtilityProjectToEARDataModel.java7
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddWebModuleToEARDataModel.java21
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java5
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModel.java15
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModelProvider.java695
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModel.java9
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModel.java9
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationOperation.java5
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModel.java5
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java46
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportOperationNew.java87
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/JavaUtilityComponentCreationOperation.java5
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EARComponentCreationDataModel.java5
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/modulecore/util/EARArtifactEditOperationDataModel.java5
-rw-r--r--plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/moduleextension/EarModuleExtension.java2
18 files changed, 894 insertions, 41 deletions
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddArchiveToEARDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddArchiveToEARDataModel.java
index aaa83ee3a..f9b4687dc 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddArchiveToEARDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddArchiveToEARDataModel.java
@@ -30,11 +30,10 @@ import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.ServerCore;
+//TODO delete
/**
- * @author DABERG
- *
- * To change the template for this generated type comment go to Window>Preferences>Java>Code
- * Generation>Code and Comments
+ * @deprecated
+ *
*/
public abstract class AddArchiveToEARDataModel extends EARArtifactEditOperationDataModel {
/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationDataModel.java
index d62823c32..51b95dd59 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddComponentToEnterpriseApplicationDataModel.java
@@ -5,6 +5,11 @@ import java.util.ArrayList;
import org.eclipse.jst.j2ee.internal.modulecore.util.EARArtifactEditOperationDataModel;
import org.eclipse.wst.common.frameworks.internal.operations.WTPOperation;
+//TODO delete
+/**
+ * @deprecated
+ *
+ */
public class AddComponentToEnterpriseApplicationDataModel extends EARArtifactEditOperationDataModel {
//Used for adding module components to an Enterprise Application during EAR component creation
public static final String MODULE_LIST = "AddComponentToEnterpriseApplicationDataModel.MODULE_LIST"; //$NON-NLS-1$
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddModuleToEARDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddModuleToEARDataModel.java
index 8907c7352..4886c3789 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddModuleToEARDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddModuleToEARDataModel.java
@@ -16,7 +16,9 @@ import org.eclipse.wst.common.componentcore.internal.operation.ArtifactEditOpera
import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
import org.eclipse.wst.common.frameworks.internal.operations.WTPOperation;
+//TODO delete
/**
+ * @deprecated
*
*/
public class AddModuleToEARDataModel extends AddArchiveToEARDataModel {
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddUtilityProjectToEARDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddUtilityProjectToEARDataModel.java
index 621d738ed..ee9f4b66f 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddUtilityProjectToEARDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddUtilityProjectToEARDataModel.java
@@ -31,11 +31,10 @@ import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.ServerCore;
+//TODO delete
/**
- * @author DABERG
- *
- * To change the template for this generated type comment go to Window>Preferences>Java>Code
- * Generation>Code and Comments
+ * @deprecated
+ *
*/
public class AddUtilityProjectToEARDataModel extends AddArchiveToEARDataModel {
/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddWebModuleToEARDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddWebModuleToEARDataModel.java
index 8acf9243b..4ff45c296 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddWebModuleToEARDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/AddWebModuleToEARDataModel.java
@@ -19,12 +19,13 @@ import org.eclipse.jst.j2ee.internal.project.ProjectSupportResourceHandler;
import org.eclipse.wst.common.componentcore.internal.WorkbenchComponent;
import org.eclipse.wst.common.componentcore.internal.operation.ArtifactEditOperationDataModel;
-
+// TODO delete
/**
- *
+ * @deprecated
+ *
*/
public class AddWebModuleToEARDataModel extends AddComponentToEnterpriseApplicationDataModel {
-
+
/**
* Optional - This is the context root stored with the module in the application.xml.
*/
@@ -34,7 +35,7 @@ public class AddWebModuleToEARDataModel extends AddComponentToEnterpriseApplicat
*
*/
public String defaultContextRoot = ""; //$NON-NLS-1$
-
+
/**
*
* @param earModuleName
@@ -47,7 +48,7 @@ public class AddWebModuleToEARDataModel extends AddComponentToEnterpriseApplicat
model.setProperty(AddArchiveToEARDataModel.ARCHIVE_MODULE, module);
return model;
}
-
+
/**
*
*/
@@ -100,7 +101,7 @@ public class AddWebModuleToEARDataModel extends AddComponentToEnterpriseApplicat
}
private String computeDefaultContextRoot() {
- String wbCompName = (String)getProperty(ARCHIVE_MODULE);
+ String wbCompName = (String) getProperty(ARCHIVE_MODULE);
if (wbCompName != null && wbCompName.length() > 0)
return wbCompName.replace(' ', '_');
return null;
@@ -124,21 +125,19 @@ public class AddWebModuleToEARDataModel extends AddComponentToEnterpriseApplicat
public IStatus validateContextRoot(String contextRoot) {
if (contextRoot.equals("") || contextRoot == null) { //$NON-NLS-1$
return J2EEPlugin.newErrorStatus(ProjectSupportResourceHandler.getString("Context_Root_cannot_be_empty_2", new Object[]{contextRoot}), null); //$NON-NLS-1$
- }
- else if (contextRoot.trim().equals(contextRoot)) {
+ } else if (contextRoot.trim().equals(contextRoot)) {
StringTokenizer stok = new StringTokenizer(contextRoot, "."); //$NON-NLS-1$
while (stok.hasMoreTokens()) {
String token = stok.nextToken();
for (int i = 0; i < token.length(); i++) {
if (!(token.charAt(i) == '_') && !(token.charAt(i) == '-') && !(token.charAt(i) == '/') && Character.isLetterOrDigit(token.charAt(i)) == false) {
Object[] invalidChar = new Object[]{(new Character(token.charAt(i))).toString()};
- String errorStatus = ProjectSupportResourceHandler.getString("The_character_is_invalid_in_a_context_root",invalidChar); //$NON-NLS-1$
+ String errorStatus = ProjectSupportResourceHandler.getString("The_character_is_invalid_in_a_context_root", invalidChar); //$NON-NLS-1$
return J2EEPlugin.newErrorStatus(errorStatus, null);
}
}
}
- }
- else
+ } else
return J2EEPlugin.newErrorStatus(ProjectSupportResourceHandler.getString("Names_cannot_begin_or_end_with_whitespace_5", new Object[]{contextRoot}), null); //$NON-NLS-1$
return OK_STATUS;
}
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java
index 9984f9c05..de5bc41d6 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EARComponentCreationOperation.java
@@ -30,6 +30,11 @@ import org.eclipse.wst.common.componentcore.resources.ComponentHandle;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+//TODO delete
+/**
+ * @deprecated
+ *
+ */
public class EARComponentCreationOperation extends J2EEComponentCreationOperation {
public EARComponentCreationOperation(EARComponentCreationDataModel dataModel) {
super(dataModel);
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModel.java
index acdf8ba03..f72d0aa46 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModel.java
@@ -63,13 +63,10 @@ import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.ServerCore;
import org.xml.sax.InputSource;
+//TODO delete
/**
- * This dataModel is used for to import Enterprise Applications(from EAR files) into the workspace.
- *
- * This class (and all its fields and methods) is likely to change during the WTP 1.0 milestones as
- * the new project structures are adopted. Use at your own risk.
- *
- * @since WTP 1.0
+ * @deprecated
+ *
*/
public final class EnterpriseApplicationImportDataModel extends J2EEArtifactImportDataModel implements IAnnotationsDataModel {
/**
@@ -542,7 +539,7 @@ public final class EnterpriseApplicationImportDataModel extends J2EEArtifactImpo
} else if (temp.isWARFile()) {
WebModuleExtension webExt = EarModuleManager.getWebModuleExtension();
if (webExt != null) {
- model = webExt.createImportDataModel();
+ model = null;//webExt.createImportDataModel();
WebModule webModule = (WebModule) getEARFile().getModule(temp.getURI(), null);
if (null != webModule && null != webModule.getContextRoot()) {
model.setProperty(AddWebModuleToEARDataModel.CONTEXT_ROOT, webModule.getContextRoot());
@@ -551,7 +548,7 @@ public final class EnterpriseApplicationImportDataModel extends J2EEArtifactImpo
} else if (temp.isEJBJarFile()) {
EjbModuleExtension ejbExt = EarModuleManager.getEJBModuleExtension();
if (ejbExt != null) {
- model = ejbExt.createImportDataModel();
+ model = null;//ejbExt.createImportDataModel();
}
EJBJar jar = ((EJBJarFile) temp).getDeploymentDescriptor();
if (jar != null) {
@@ -569,7 +566,7 @@ public final class EnterpriseApplicationImportDataModel extends J2EEArtifactImpo
} else if (temp.isRARFile()) {
JcaModuleExtension rarExt = EarModuleManager.getJCAModuleExtension();
if (rarExt != null) {
- model = rarExt.createImportDataModel();
+ model = null;//rarExt.createImportDataModel();
}
}
if (model != null) {
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModelProvider.java
new file mode 100644
index 000000000..c5a177082
--- /dev/null
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/EnterpriseApplicationImportDataModelProvider.java
@@ -0,0 +1,695 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are 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: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.jst.j2ee.application.internal.operations;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.Hashtable;
+import java.util.List;
+
+import org.eclipse.core.internal.localstore.CoreFileSystemLibrary;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.j2ee.application.WebModule;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.CommonarchiveFactory;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.EARFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.EJBJarFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.ModuleFile;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.FileImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.impl.WARFileImpl;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.util.ArchiveUtil;
+import org.eclipse.jst.j2ee.datamodel.properties.IEARComponentImportDataModelProperties;
+import org.eclipse.jst.j2ee.datamodel.properties.IEarComponentCreationDataModelProperties;
+import org.eclipse.jst.j2ee.datamodel.properties.IJ2EEModuleImportDataModelProperties;
+import org.eclipse.jst.j2ee.datamodel.properties.IJavaUtilityJarImportDataModelProperties;
+import org.eclipse.jst.j2ee.ejb.EJBJar;
+import org.eclipse.jst.j2ee.internal.J2EEVersionConstants;
+import org.eclipse.jst.j2ee.internal.archive.operations.EnterpriseApplicationImportOperationNew;
+import org.eclipse.jst.j2ee.internal.common.XMLResource;
+import org.eclipse.jst.j2ee.internal.earcreation.EARComponentCreationDataModel;
+import org.eclipse.jst.j2ee.internal.earcreation.EARCreationResourceHandler;
+import org.eclipse.jst.j2ee.internal.moduleextension.EarModuleManager;
+import org.eclipse.jst.j2ee.internal.moduleextension.EjbModuleExtension;
+import org.eclipse.jst.j2ee.internal.moduleextension.JcaModuleExtension;
+import org.eclipse.jst.j2ee.internal.moduleextension.WebModuleExtension;
+import org.eclipse.jst.j2ee.internal.servertarget.ServerTargetDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelEvent;
+import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelListener;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+import org.eclipse.wst.common.frameworks.internal.operations.ProjectCreationDataModel;
+import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
+import org.eclipse.wst.server.core.IRuntime;
+import org.eclipse.wst.server.core.ServerCore;
+
+/**
+ * This dataModel is used for to import Enterprise Applications(from EAR files) into the workspace.
+ *
+ * This class (and all its fields and methods) is likely to change during the WTP 1.0 milestones as
+ * the new project structures are adopted. Use at your own risk.
+ *
+ * @since WTP 1.0
+ */
+public final class EnterpriseApplicationImportDataModelProvider extends J2EEArtifactImportDataModelProvider implements IAnnotationsDataModel, IEARComponentImportDataModelProperties {
+
+ /**
+ * Optional, type Boolean, default false, This flag is set to allow nested projects (module
+ * projects & utility projects to be overwritten or not.
+ */
+ public static final String OVERWRITE_NESTED_PROJECTS = "EARImportDataModel.OVERWRITE_NESTED_PROJECTS"; //$NON-NLS-1$
+
+ /**
+ * Booleam, default is true. When all the module projects are added to the ear, this controls
+ * whether their server targets will be set to be the same as the one set on the ear.
+ */
+ public static final String SYNC_SERVER_TARGETS_WITH_EAR = "EARImportDataModel.SYNC_SERVER_TARGETS_WITH_EAR"; //$NON-NLS-1$
+
+ /**
+ * This is only to force validation for the nested projects; do not set.
+ */
+ public static final String NESTED_PROJECTS_VALIDATION = "EARImportDataModel.NESTED_PROJECTS_VALIDATION"; //$NON-NLS-1$
+
+
+ private IDataModelListener nestedListener = new IDataModelListener() {
+ public void propertyChanged(DataModelEvent event) {
+ if (event.getPropertyName().equals(J2EEArtifactImportDataModel.PROJECT_NAME)) {
+ model.notifyPropertyChange(NESTED_PROJECTS_VALIDATION, IDataModel.DEFAULT_CHG);
+ }
+ }
+ };
+
+ private Hashtable ejbJarToClientJarModels = new Hashtable();
+
+ private Hashtable clientJarToEjbJarModels = new Hashtable();
+
+ public String[] getPropertyNames() {
+ return combineProperties(super.getPropertyNames(), new String[]{NESTED_MODULE_ROOT, UTILITY_LIST, MODULE_MODELS_LIST, EJB_CLIENT_LIST, UTILITY_MODELS_LIST, NESTED_PROJECTS_VALIDATION, SELECTED_MODELS_LIST, OVERWRITE_NESTED_PROJECTS, IMPORT_EAR_PROJECT, SYNC_SERVER_TARGETS_WITH_EAR, USE_ANNOTATIONS, ALL_PROJECT_MODELS_LIST, UNHANDLED_PROJECT_MODELS_LIST, HANDLED_PROJECT_MODELS_LIST});
+ }
+
+ public Object getDefaultProperty(String propertyName) {
+ if (NESTED_MODULE_ROOT.equals(propertyName)) {
+ return getLocation().toOSString();
+ } else if (MODULE_MODELS_LIST.equals(propertyName) || UTILITY_LIST.equals(propertyName) || UTILITY_MODELS_LIST.equals(propertyName) || SELECTED_MODELS_LIST.equals(propertyName) || EJB_CLIENT_LIST.equals(propertyName)) {
+ return Collections.EMPTY_LIST;
+ } else if (OVERWRITE_NESTED_PROJECTS.equals(propertyName)) {
+ return Boolean.FALSE;
+ } else if (IMPORT_EAR_PROJECT.equals(propertyName)) {
+ return Boolean.TRUE;
+ } else if (SYNC_SERVER_TARGETS_WITH_EAR.equals(propertyName)) {
+ return Boolean.TRUE;
+ } else if (USE_ANNOTATIONS.equals(propertyName)) {
+ return Boolean.FALSE;
+ } else if (ALL_PROJECT_MODELS_LIST.equals(propertyName)) {
+ return getProjectModels();
+ } else if (UNHANDLED_PROJECT_MODELS_LIST.equals(propertyName)) {
+ return getUnhandledProjectModels();
+ } else if (HANDLED_PROJECT_MODELS_LIST.equals(propertyName)) {
+ return getHandledSelectedModels();
+ }
+ return super.getDefaultProperty(propertyName);
+ }
+
+ public void propertyChanged(DataModelEvent event) {
+ super.propertyChanged(event);
+ if (event.getPropertyName().equals(J2EEArtifactImportDataModel.PROJECT_NAME)) {
+ changeModuleCreationLocationForNameChange(getProjectModels());
+ }
+ if (event.getPropertyName().equals(J2EEArtifactImportDataModel.SERVER_TARGET_ID)) {
+ changeModuleServerTargets((List) getProperty(MODULE_MODELS_LIST));
+ }
+ }
+
+ /**
+ * @param list
+ */
+ private void changeModuleServerTargets(List projectModels) {
+ J2EEArtifactImportDataModel nestedModel = null;
+ for (int i = 0; i < projectModels.size(); i++) {
+ nestedModel = (J2EEArtifactImportDataModel) projectModels.get(i);
+ nestedModel.setProperty(J2EEArtifactImportDataModel.SERVER_TARGET_ID, getProperty(ServerTargetDataModel.RUNTIME_TARGET_ID));
+ }
+ }
+
+ public boolean propertySet(String propertyName, Object propertyValue) {
+ if (ALL_PROJECT_MODELS_LIST.equals(propertyName) || UNHANDLED_PROJECT_MODELS_LIST.equals(propertyName) || HANDLED_PROJECT_MODELS_LIST.equals(propertyName)) {
+ throw new RuntimeException(propertyName + " is an unsettable property");
+ }
+ if (OVERWRITE_NESTED_PROJECTS.equals(propertyName)) {
+ List projectModels = getProjectModels();
+ J2EEArtifactImportDataModel nestedModel = null;
+ for (int i = 0; i < projectModels.size(); i++) {
+ nestedModel = (J2EEArtifactImportDataModel) projectModels.get(i);
+ nestedModel.setProperty(J2EEArtifactImportDataModel.OVERWRITE_PROJECT, propertyValue);
+ }
+ }
+ boolean doSet = super.propertySet(propertyName, propertyValue);
+ if (NESTED_MODULE_ROOT.equals(propertyName)) {
+ changeModuleCreationLocationForAll(getProjectModels(), (String) propertyValue);
+ } else if (FILE_NAME.equals(propertyName)) {
+ setProperty(MODULE_MODELS_LIST, getModuleModels());
+ setProperty(UTILITY_LIST, null);
+
+
+ IDataModel earProjectModel = model.getNestedModel(NESTED_MODEL_J2EE_COMPONENT_CREATION);
+ if (getArchiveFile() != null) {
+ earProjectModel.setIntProperty(IEarComponentCreationDataModelProperties.COMPONENT_VERSION, ArchiveUtil.getFastSpecVersion((ModuleFile) getArchiveFile()));
+ }
+
+ model.notifyPropertyChange(PROJECT_NAME, IDataModel.VALID_VALUES_CHG);
+ if (getJ2EEVersion() < J2EEVersionConstants.VERSION_1_3)
+ setBooleanProperty(USE_ANNOTATIONS, false);
+ model.notifyPropertyChange(USE_ANNOTATIONS, IDataModel.ENABLE_CHG);
+ } else if (UTILITY_LIST.equals(propertyName)) {
+ updateUtilityModels((List) propertyValue);
+ } else if (SERVER_TARGET_ID.equals(propertyName)) {
+ List projectModels = (List) getProperty(MODULE_MODELS_LIST);
+ J2EEArtifactImportDataModel nestedModel = null;
+ for (int i = 0; i < projectModels.size(); i++) {
+ nestedModel = (J2EEArtifactImportDataModel) projectModels.get(i);
+ nestedModel.setProperty(J2EEArtifactImportDataModel.SERVER_TARGET_ID, propertyValue);
+ }
+ } else if (USE_ANNOTATIONS.equals(propertyName)) {
+ List projectModels = (List) getProperty(MODULE_MODELS_LIST);
+ J2EEArtifactImportDataModel nestedModel = null;
+ for (int i = 0; i < projectModels.size(); i++) {
+ nestedModel = (J2EEArtifactImportDataModel) projectModels.get(i);
+ if (nestedModel.getJ2eeArtifactCreationDataModel() instanceof J2EEComponentCreationDataModel)
+ ((J2EEComponentCreationDataModel) nestedModel.getJ2eeArtifactCreationDataModel()).setProperty(J2EEComponentCreationDataModel.USE_ANNOTATIONS, propertyValue);
+ }
+ } else if (MODULE_MODELS_LIST.equals(propertyName)) {
+ List newList = new ArrayList();
+ newList.addAll(getProjectModels());
+ setProperty(SELECTED_MODELS_LIST, newList);
+ } else if (PROJECT_NAME.equals(propertyName)) {
+ List nestedModels = (List) getProperty(MODULE_MODELS_LIST);
+ IDataModel nestedModel = null;
+ for (int i = 0; i < nestedModels.size(); i++) {
+ nestedModel = (IDataModel) nestedModels.get(i);
+ nestedModel.setProperty(IJ2EEModuleImportDataModelProperties.EAR_NAME, propertyValue);
+ }
+ nestedModels = (List) getProperty(UTILITY_MODELS_LIST);
+ for (int i = 0; i < nestedModels.size(); i++) {
+ nestedModel = (IDataModel) nestedModels.get(i);
+ nestedModel.setProperty(IJavaUtilityJarImportDataModelProperties.EAR_PROJECT_NAME, propertyValue);
+ }
+ IProject project = ProjectCreationDataModel.getProjectHandleFromProjectName(getStringProperty(PROJECT_NAME));
+ if (null != project && project.exists()) {
+ IRuntime target = ServerCore.getProjectProperties(project).getRuntimeTarget();
+ if (null != target) {
+ setProperty(SERVER_TARGET_ID, target.getId());
+ }
+ }
+ }
+ return doSet;
+ }
+
+ private List getUtilitiesForMetaDataImport(EARFile earFile) {
+ List list = getAllUtilitiesExceptEJBClients(earFile);
+ for (int i = list.size() - 1; i > -1; i--) {
+ Archive archive = (Archive) list.get(i);
+ if (!archive.containsFile(".project")) { //$NON-NLS-1$
+ list.remove(archive);
+ }
+ }
+ return list;
+ }
+
+ public List getAllUtilitiesExceptEJBClients(EARFile earFile) {
+ List clientList = (List) getProperty(EJB_CLIENT_LIST);
+ List list = getAllUtilities(earFile);
+ for (int i = list.size() - 1; i > -1; i--) {
+ FileImpl file = (FileImpl) list.get(i);
+ boolean shouldRemove = false;
+ for (int j = 0; j < clientList.size() && !shouldRemove; j++) {
+ J2EEUtilityJarImportDataModel model = (J2EEUtilityJarImportDataModel) clientList.get(j);
+ if (model.getArchiveFile() == file) {
+ shouldRemove = true;
+ }
+ }
+
+ if (shouldRemove) {
+ list.remove(i);
+ }
+ }
+ return list;
+ }
+
+ public static List getAllUtilities(EARFile earFile) {
+ List files = earFile.getFiles();
+ List utilJars = new ArrayList();
+ for (int i = 0; i < files.size(); i++) {
+ FileImpl file = (FileImpl) files.get(i);
+ if (file.isArchive() && !file.isModuleFile() && file.getURI().endsWith(".jar")) { //$NON-NLS-1$
+ utilJars.add(file);
+ }
+ if (file.isWARFile()) {
+ List webLib = ((WARFileImpl) file).getLibArchives();
+ if (!webLib.isEmpty())
+ utilJars.addAll(webLib);
+ }
+ }
+ return utilJars;
+ }
+
+ protected boolean forceResetOnPreserveMetaData() {
+ return false;
+ }
+
+ public IStatus validate(String propertyName) {
+ if (propertyName.equals(NESTED_PROJECTS_VALIDATION)) {
+ boolean overwrite = getBooleanProperty(OVERWRITE_NESTED_PROJECTS);
+ String earProjectName = getStringProperty(PROJECT_NAME);
+ List subProjects = getSelectedModels();
+ J2EEArtifactImportDataModel subDataModel = null;
+ String tempProjectName = null;
+ Archive tempArchive = null;
+ IStatus tempStatus = null;
+ Hashtable projects = new Hashtable(4);
+ for (int i = 0; i < subProjects.size(); i++) {
+ subDataModel = (J2EEArtifactImportDataModel) subProjects.get(i);
+ tempProjectName = subDataModel.getStringProperty(J2EEArtifactImportDataModel.PROJECT_NAME);
+ IStatus status = ProjectCreationDataModel.validateProjectName(tempProjectName);
+ if (!status.isOK()) {
+ return status;
+ }
+ tempArchive = subDataModel.getArchiveFile();
+ if (!overwrite && subDataModel.getProject().exists()) {
+ return WTPCommonPlugin.createErrorStatus(EARCreationResourceHandler.getString("EARImportDataModel_UI_0", new Object[]{tempProjectName, tempArchive.getURI()})); //$NON-NLS-1$
+ }
+ tempStatus = subDataModel.validateDataModel();
+ if (!tempStatus.isOK()) {
+ return tempStatus;
+ }
+ if (tempProjectName.equals(earProjectName)) {
+ return WTPCommonPlugin.createErrorStatus(EARCreationResourceHandler.getString("EARImportDataModel_UI_1", new Object[]{tempProjectName, tempArchive.getURI()})); //$NON-NLS-1$
+ } else if (!CoreFileSystemLibrary.isCaseSensitive()) {
+ if (tempProjectName.toLowerCase().equals(earProjectName.toLowerCase())) {
+ return WTPCommonPlugin.createErrorStatus(EARCreationResourceHandler.getString("EARImportDataModel_UI_1", new Object[]{tempProjectName, tempArchive.getURI()})); //$NON-NLS-1$
+ }
+ }
+ if (projects.containsKey(tempProjectName)) {
+ return WTPCommonPlugin.createErrorStatus(EARCreationResourceHandler.getString("EARImportDataModel_UI_2", new Object[]{tempProjectName, tempArchive.getURI(), ((Archive) projects.get(tempProjectName)).getURI()})); //$NON-NLS-1$
+ } else if (!CoreFileSystemLibrary.isCaseSensitive()) {
+ String lowerCaseProjectName = tempProjectName.toLowerCase();
+ String currentKey = null;
+ Enumeration keys = projects.keys();
+ while (keys.hasMoreElements()) {
+ currentKey = (String) keys.nextElement();
+ if (currentKey.toLowerCase().equals(lowerCaseProjectName)) {
+ return WTPCommonPlugin.createErrorStatus(EARCreationResourceHandler.getString("EARImportDataModel_UI_2", new Object[]{tempProjectName, tempArchive.getURI(), ((Archive) projects.get(currentKey)).getURI()})); //$NON-NLS-1$
+ }
+ }
+ }
+ projects.put(tempProjectName, tempArchive);
+ }
+ } else if (propertyName.equals(PROJECT_NAME) && !getBooleanProperty(IMPORT_EAR_PROJECT)) {
+ return OK_STATUS;
+ }
+ // TODO: check context root is not inside current working
+ // directory...this is invalid
+ return super.validate(propertyName);
+ }
+
+ private void changeModuleCreationLocationForAll(List projects, String property) {
+ J2EEArtifactImportDataModel model = null;
+ for (int i = 0; null != projects && i < projects.size(); i++) {
+ model = (J2EEArtifactImportDataModel) projects.get(i);
+ IPath newPath = new Path(property);
+ newPath = newPath.append((String) model.getProperty(J2EEComponentCreationDataModel.PROJECT_NAME));
+ // model.setProperty(J2EEComponentCreationDataModel.PROJECT_LOCATION,
+ // newPath.toOSString());
+ }
+ }
+
+ private void changeModuleCreationLocationForNameChange(List projects) {
+ J2EEArtifactImportDataModel model = null;
+ for (int i = 0; null != projects && i < projects.size(); i++) {
+ model = (J2EEArtifactImportDataModel) projects.get(i);
+ if (isPropertySet(NESTED_MODULE_ROOT)) {
+ IPath newPath = new Path((String) getProperty(NESTED_MODULE_ROOT));
+ newPath = newPath.append((String) model.getProperty(J2EEComponentCreationDataModel.PROJECT_NAME));
+ // model.setProperty(J2EEComponentCreationDataModel.PROJECT_LOCATION,
+ // newPath.toOSString());
+ } else {
+ // model.setProperty(J2EEComponentCreationDataModel.PROJECT_LOCATION, null);
+ }
+ }
+ }
+
+ private IPath getLocation() {
+ return ResourcesPlugin.getWorkspace().getRoot().getLocation();
+ }
+
+ private void trimSelection() {
+ boolean modified = false;
+ List selectedList = getSelectedModels();
+ List allList = getProjectModels();
+ for (int i = selectedList.size() - 1; i > -1; i--) {
+ if (!allList.contains(selectedList.get(i))) {
+ modified = true;
+ selectedList.remove(i);
+ }
+ }
+ if (modified) {
+ List newList = new ArrayList();
+ newList.addAll(selectedList);
+ setProperty(SELECTED_MODELS_LIST, newList);
+ }
+ }
+
+ private void updateUtilityModels(List utilityJars) {
+ updateUtilityModels(utilityJars, SELECTED_MODELS_LIST, UTILITY_MODELS_LIST);
+ }
+
+ private void updateUtilityModels(List utilityJars, String selectedProperty, String listTypeProperty) {
+ boolean allSelected = true;
+ List selectedList = (List) getProperty(selectedProperty);
+ List allList = getProjectModels();
+ if (selectedList.size() == allList.size()) {
+ for (int i = 0; i < selectedList.size() && allSelected; i++) {
+ if (!selectedList.contains(allList.get(i)) || !allList.contains(selectedList.get(i))) {
+ allSelected = false;
+ }
+ }
+ } else {
+ allSelected = false;
+ }
+ List utilityModels = (List) getProperty(listTypeProperty);
+ Archive currentArchive = null;
+ IDataModel currentUtilityModel = null;
+ boolean utilityJarsModified = false;
+ // Add missing
+ for (int i = 0; null != utilityJars && i < utilityJars.size(); i++) {
+ currentArchive = (Archive) utilityJars.get(i);
+ boolean added = false;
+ for (int j = 0; utilityModels != null && j < utilityModels.size() && !added; j++) {
+ currentUtilityModel = (IDataModel) utilityModels.get(j);
+ if (currentUtilityModel.getProperty(IJavaUtilityJarImportDataModelProperties.FILE) == currentArchive) {
+ added = true;
+ }
+ }
+ if (!added) {
+ if (!isPropertySet(listTypeProperty)) {
+ utilityModels = new ArrayList();
+ setProperty(listTypeProperty, utilityModels);
+ }
+ IDataModel model = DataModelFactory.createDataModel(new J2EEUtilityJarImportDataModelProvider());
+ model.setProperty(IJavaUtilityJarImportDataModelProperties.FILE, currentArchive);
+ model.setProperty(IJavaUtilityJarImportDataModelProperties.EAR_PROJECT_NAME, getStringProperty(PROJECT_NAME));
+ model.setProperty(IJavaUtilityJarImportDataModelProperties.EAR_COMPONENT_NAME, getStringProperty(COMPONENT_NAME));
+ utilityModels.add(model);
+ model.addListener(nestedListener);
+ utilityJarsModified = true;
+ }
+ } // Remove extras
+ for (int i = utilityModels.size() - 1; i >= 0; i--) {
+ currentUtilityModel = (IDataModel) utilityModels.get(i);
+ currentArchive = (Archive) currentUtilityModel.getProperty(IJavaUtilityJarImportDataModelProperties.FILE);
+ if (null == utilityJars || !utilityJars.contains(currentArchive)) {
+ currentUtilityModel.removeListener(nestedListener);
+ currentUtilityModel.dispose();
+ utilityModels.remove(currentUtilityModel);
+ utilityJarsModified = true;
+ }
+ }
+ allList = getProjectModels();
+ if (allSelected) {
+ List newList = new ArrayList();
+ newList.addAll(allList);
+ setProperty(SELECTED_MODELS_LIST, newList);
+ } else {
+ trimSelection();
+ }
+ if (utilityJarsModified) {
+ model.notifyPropertyChange(NESTED_PROJECTS_VALIDATION, IDataModel.VALUE_CHG);
+ }
+ }
+
+ private List getModuleModels() {
+ if (getArchiveFile() == null)
+ return Collections.EMPTY_LIST;
+ List moduleFiles = getEARFile().getModuleFiles();
+ List moduleModels = new ArrayList();
+ List clientJarArchives = new ArrayList();
+ IDataModel model;
+ String earProjectName = getStringProperty(PROJECT_NAME);
+ List defaultModuleNames = new ArrayList();
+ List collidingModuleNames = null;
+ Hashtable ejbJarsWithClients = new Hashtable();
+ for (int i = 0; i < moduleFiles.size(); i++) {
+ model = null;
+ ModuleFile temp = (ModuleFile) moduleFiles.get(i);
+ if (temp.isApplicationClientFile()) {
+ model = null; // new AppClientModuleImportDataModel();
+ } else if (temp.isWARFile()) {
+ WebModuleExtension webExt = EarModuleManager.getWebModuleExtension();
+ if (webExt != null) {
+ model = webExt.createImportDataModel();
+ WebModule webModule = (WebModule) getEARFile().getModule(temp.getURI(), null);
+ if (null != webModule && null != webModule.getContextRoot()) {
+ model.setProperty(AddWebModuleToEARDataModel.CONTEXT_ROOT, webModule.getContextRoot());
+ }
+ }
+ } else if (temp.isEJBJarFile()) {
+ EjbModuleExtension ejbExt = EarModuleManager.getEJBModuleExtension();
+ if (ejbExt != null) {
+ model = ejbExt.createImportDataModel();
+ }
+ EJBJar jar = ((EJBJarFile) temp).getDeploymentDescriptor();
+ if (jar != null) {
+ if (jar.getEjbClientJar() != null) {
+ String clientName = jar.getEjbClientJar();
+ try {
+ Archive clientArchive = (Archive) getEARFile().getFile(clientName);
+ clientJarArchives.add(clientArchive);
+ ejbJarsWithClients.put(model, clientArchive);
+ } catch (Exception e) {
+ // TODO: handle exception
+ }
+ }
+ }
+ } else if (temp.isRARFile()) {
+ JcaModuleExtension rarExt = EarModuleManager.getJCAModuleExtension();
+ if (rarExt != null) {
+ model = rarExt.createImportDataModel();
+ }
+ }
+ if (model != null) {
+ model.setProperty(FILE, temp);
+ model.setProperty(J2EEModuleImportDataModel.EAR_NAME, earProjectName);
+ model.setBooleanProperty(J2EEComponentCreationDataModel.ADD_TO_EAR, false);
+ model.setProperty(SERVER_TARGET_ID, getProperty(ServerTargetDataModel.RUNTIME_TARGET_ID));
+ model.addListener(this);
+ model.addListener(nestedListener);
+ moduleModels.add(model);
+ String moduleName = model.getStringProperty(J2EEModuleImportDataModel.PROJECT_NAME);
+ if (defaultModuleNames.contains(moduleName)) {
+ if (collidingModuleNames == null) {
+ collidingModuleNames = new ArrayList();
+ }
+ collidingModuleNames.add(moduleName);
+ } else {
+ defaultModuleNames.add(moduleName);
+ }
+ }
+ }
+ updateUtilityModels(clientJarArchives, EJB_CLIENT_LIST, EJB_CLIENT_LIST);
+ List clientModelList = (List) getProperty(EJB_CLIENT_LIST);
+ Enumeration ejbModels = ejbJarsWithClients.keys();
+ ejbJarToClientJarModels.clear();
+ clientJarToEjbJarModels.clear();
+ while (ejbModels.hasMoreElements()) {
+ Object ejbModel = ejbModels.nextElement();
+ Object archive = ejbJarsWithClients.get(ejbModel);
+ Object clientModel = null;
+ for (int i = 0; clientModel == null && i < clientModelList.size(); i++) {
+ if (((J2EEArtifactImportDataModel) clientModelList.get(i)).getArchiveFile() == archive) {
+ clientModel = clientModelList.get(i);
+ }
+ }
+ ejbJarToClientJarModels.put(ejbModel, clientModel);
+ clientJarToEjbJarModels.put(clientModel, ejbModel);
+ }
+
+ for (int i = 0; collidingModuleNames != null && i < moduleModels.size(); i++) {
+ model = (IDataModel) moduleModels.get(i);
+ String moduleName = model.getStringProperty(IJ2EEModuleImportDataModelProperties.PROJECT_NAME);
+ if (collidingModuleNames.contains(moduleName)) {
+ ModuleFile module = (ModuleFile) model.getProperty(IJ2EEModuleImportDataModelProperties.FILE);
+ String suffix = null;
+ if (module.isApplicationClientFile()) {
+ suffix = "_AppClient"; //$NON-NLS-1$
+ } else if (module.isWARFile()) {
+ suffix = "_WEB"; //$NON-NLS-1$
+ } else if (module.isEJBJarFile()) {
+ suffix = "_EJB"; //$NON-NLS-1$
+ } else if (module.isRARFile()) {
+ suffix = "_JCA"; //$NON-NLS-1$
+ }
+ if (defaultModuleNames.contains(moduleName + suffix)) {
+ int count = 1;
+ for (; defaultModuleNames.contains(moduleName + suffix + count) && count < 10; count++);
+ suffix += count;
+ }
+ model.setProperty(IJ2EEModuleImportDataModelProperties.PROJECT_NAME, moduleName + suffix);
+ }
+ }
+ return moduleModels;
+ }
+
+ protected J2EEComponentCreationDataModel createJ2EEProjectCreationDataModel() {
+ return new EARComponentCreationDataModel();
+ }
+
+ protected int getType() {
+ return XMLResource.APPLICATION_TYPE;
+ }
+
+ protected Archive openArchive(String uri) throws OpenFailureException {
+ return CommonarchiveFactory.eINSTANCE.openEARFile(getArchiveOptions(), uri);
+ }
+
+ private EARFile getEARFile() {
+ return (EARFile) getArchiveFile();
+ }
+
+ public boolean handlesArchive(Archive anArchive) {
+ List temp = new ArrayList();
+ List tempList = (List) getProperty(MODULE_MODELS_LIST);
+ if (null != tempList) {
+ temp.addAll(tempList);
+ }
+ tempList = (List) getProperty(EJB_CLIENT_LIST);
+ if (null != tempList) {
+ temp.addAll(tempList);
+ }
+ tempList = getSelectedModels();
+ for (int i = 0; i < tempList.size(); i++) {
+ if (!temp.contains(tempList.get(i))) {
+ temp.add(tempList.get(i));
+ }
+ }
+ J2EEArtifactImportDataModel importDM = null;
+ for (int i = 0; i < temp.size(); i++) {
+ importDM = (J2EEArtifactImportDataModel) temp.get(i);
+ if (importDM.getArchiveFile() == anArchive) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private List getProjectModels() {
+ List temp = new ArrayList();
+ List tempList = (List) getProperty(MODULE_MODELS_LIST);
+ if (null != tempList) {
+ temp.addAll(tempList);
+ }
+ tempList = (List) getProperty(UTILITY_MODELS_LIST);
+ if (null != tempList) {
+ temp.addAll(tempList);
+ }
+ tempList = (List) getProperty(EJB_CLIENT_LIST);
+ if (null != tempList) {
+ temp.addAll(tempList);
+ }
+ return temp;
+ }
+
+ private List getUnhandledProjectModels() {
+ List handled = removeHandledModels(getProjectModels(), getProjectModels(), false);
+ List all = getProjectModels();
+ all.removeAll(handled);
+ return all;
+ }
+
+ public List getSelectedModels() {
+ return (List) getProperty(SELECTED_MODELS_LIST);
+ }
+
+ private List removeHandledModels(List listToPrune, List modelsToCheck, boolean addModels) {
+ List newList = new ArrayList();
+ newList.addAll(listToPrune);
+ J2EEArtifactImportDataModel model = null;
+ for (int i = 0; i < modelsToCheck.size(); i++) {
+ model = (J2EEArtifactImportDataModel) modelsToCheck.get(i);
+ model.extractHandled(newList, addModels);
+ }
+ return newList;
+ }
+
+ private List getHandledSelectedModels() {
+ List selectedModels = getSelectedModels();
+ return removeHandledModels(selectedModels, selectedModels, true);
+ }
+
+ public int getJ2EEVersion() {
+ EARFile ef = getEARFile();
+ return null == ef ? J2EEVersionConstants.J2EE_1_2_ID : ArchiveUtil.getFastSpecVersion(ef);
+ }
+
+ public boolean isPropertyEnabled(String propertyName) {
+ if (!super.isPropertyEnabled(propertyName)) {
+ return false;
+ }
+ if (propertyName.equals(ServerTargetDataModel.RUNTIME_TARGET_ID)) {
+ IProject project = ProjectCreationDataModel.getProjectHandleFromProjectName(getStringProperty(PROJECT_NAME));
+ if (null == project || !project.exists()) {
+ return true;
+ }
+ } else if (propertyName.equals(USE_ANNOTATIONS)) {
+ if (getJ2EEVersion() < J2EEVersionConstants.VERSION_1_3)
+ return false;
+ return true;
+ }
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.eclipse.jst.j2ee.internal.internal.application.operations.J2EEImportDataModel#dispose()
+ */
+ public void dispose() {
+ super.dispose();
+ List list = getProjectModels();
+ for (int i = 0; i < list.size(); i++) {
+ ((IDataModel) list.get(i)).dispose();
+ }
+ EARFile earFile = getEARFile();
+ if (earFile != null)
+ earFile.close();
+ }
+
+ public J2EEArtifactImportDataModel getMatchingEJBJarOrClient(J2EEArtifactImportDataModel model) {
+ if (clientJarToEjbJarModels.containsKey(model)) {
+ return (J2EEArtifactImportDataModel) clientJarToEjbJarModels.get(model);
+ } else if (ejbJarToClientJarModels.containsKey(model)) {
+ return (J2EEArtifactImportDataModel) ejbJarToClientJarModels.get(model);
+ } else {
+ return null;
+ }
+ }
+
+ protected IDataModel createJ2EEComponentCreationDataModel() {
+ return null;
+ }
+
+ public IDataModelOperation getDefaultOperation() {
+ return new EnterpriseApplicationImportOperationNew(model);
+ }
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModel.java
index c59d14e86..6eb09ddac 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEArtifactImportDataModel.java
@@ -38,13 +38,10 @@ import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonMessages;
import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
import org.xml.sax.InputSource;
+//TODO delete
/**
- * This dataModel is a common super class used to import J2EE Components.
- *
- * This class (and all its fields and methods) is likely to change during the WTP 1.0 milestones as
- * the new project structures are adopted. Use at your own risk.
- *
- * @since WTP 1.0
+ * @deprecated
+ *
*/
public abstract class J2EEArtifactImportDataModel extends WTPOperationDataModel {
/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModel.java
index fecb83de2..e0e332803 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationDataModel.java
@@ -32,13 +32,10 @@ import org.eclipse.wst.common.frameworks.internal.operations.WTPPropertyDescript
import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonMessages;
import org.eclipse.wst.common.frameworks.internal.plugin.WTPCommonPlugin;
+//TODO delete
/**
- * This dataModel is a common super class used for to create Flexibile J2EE Components.
- *
- * This class (and all its fields and methods) is likely to change during the WTP 1.0 milestones as
- * the new project structures are adopted. Use at your own risk.
- *
- * @since WTP 1.0
+ * @deprecated
+ *
*/
public abstract class J2EEComponentCreationDataModel extends JavaComponentCreationDataModel implements IAnnotationsDataModel {
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationOperation.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationOperation.java
index 9e9d9a94f..cc6c3ed62 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEComponentCreationOperation.java
@@ -49,6 +49,11 @@ import org.eclipse.wst.common.componentcore.internal.impl.ModuleURIUtil;
import org.eclipse.wst.common.componentcore.internal.operation.ComponentCreationOperation;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+//TODO delete
+/**
+ * @deprecated
+ *
+ */
public abstract class J2EEComponentCreationOperation extends ComponentCreationOperation {
/**
* name of the template emitter to be used to generate the deployment
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModel.java
index 3ebfdaa54..b4e3bd263 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModel.java
@@ -19,6 +19,11 @@ package org.eclipse.jst.j2ee.application.internal.operations;
import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
import org.eclipse.wst.common.frameworks.internal.operations.WTPOperation;
+//TODO delete
+/**
+ * @deprecated
+ *
+ */
public final class J2EEUtilityJarImportDataModel extends J2EEArtifactImportDataModel {
public static final String EAR_PROJECT = "J2EEUtilityJarImportDataModel.EAR_PROJECT"; //$NON-NLS-1$
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java
new file mode 100644
index 000000000..6f3200e80
--- /dev/null
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportDataModelProvider.java
@@ -0,0 +1,46 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Dec 15, 2003
+ *
+ * To change the template for this generated file go to Window - Preferences -
+ * Java - Code Generation - Code and Comments
+ */
+package org.eclipse.jst.j2ee.application.internal.operations;
+
+import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.OpenFailureException;
+import org.eclipse.jst.j2ee.datamodel.properties.IJavaUtilityJarImportDataModelProperties;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
+
+public final class J2EEUtilityJarImportDataModelProvider extends J2EEArtifactImportDataModelProvider implements IJavaUtilityJarImportDataModelProperties {
+
+ public String[] getPropertyNames() {
+ return combineProperties(super.getPropertyNames(), new String[]{EAR_COMPONENT_NAME, EAR_PROJECT_NAME});
+ }
+
+ protected Archive openArchive(String uri) throws OpenFailureException {
+ return null;
+ }
+
+ protected int getType() {
+ return 0;
+ }
+
+ public IDataModelOperation getDefaultOperation() {
+ return new J2EEUtilityJarImportOperationNew(model);
+ }
+
+ protected IDataModel createJ2EEComponentCreationDataModel() {
+ return null;
+ }
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportOperationNew.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportOperationNew.java
new file mode 100644
index 000000000..fc20ceda8
--- /dev/null
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/J2EEUtilityJarImportOperationNew.java
@@ -0,0 +1,87 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are 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:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.jst.j2ee.application.internal.operations;
+
+import org.eclipse.core.commands.ExecutionException;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Path;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jdt.core.JavaCore;
+import org.eclipse.jdt.core.JavaModelException;
+import org.eclipse.jem.util.logger.proxy.Logger;
+import org.eclipse.jem.workbench.utility.JemProjectUtilities;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
+import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.SaveFailureException;
+import org.eclipse.jst.j2ee.datamodel.properties.IJavaUtilityJarImportDataModelProperties;
+import org.eclipse.jst.j2ee.internal.archive.operations.FlexibleJ2EEJavaSaveStrategyImpl;
+import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
+import org.eclipse.wst.common.frameworks.datamodel.AbstractDataModelOperation;
+import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
+
+/**
+ * @author jsholl
+ *
+ * To change the template for this generated type comment go to Window - Preferences - Java - Code
+ * Generation - Code and Comments
+ */
+public class J2EEUtilityJarImportOperationNew extends AbstractDataModelOperation {
+
+ public J2EEUtilityJarImportOperationNew(IDataModel dataModel) {
+ super(dataModel);
+ }
+
+ public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ // if (model.getBooleanProperty(J2EEArtifactImportDataModel.OVERWRITE_PROJECT)) {
+ // IProject project = model.getProject();
+ // if (project.exists()) {
+ // project.delete(true, true, new NullProgressMonitor());
+ // }
+ // }
+
+ IDataModel nestedComonentCreationDM = model.getNestedModel(IJavaUtilityJarImportDataModelProperties.NESTED_MODEL_J2EE_COMPONENT_CREATION);
+
+
+ if (!((IProject) model.getProperty(IJavaUtilityJarImportDataModelProperties.PROJECT_NAME)).exists()) {
+ model.getNestedModel(IJavaUtilityJarImportDataModelProperties.NESTED_MODEL_J2EE_COMPONENT_CREATION).getDefaultOperation().execute(monitor, info);
+ }
+
+ IProject javaProject = (IProject) model.getProperty(IJavaUtilityJarImportDataModelProperties.PROJECT_NAME);
+ Archive jarFile = (Archive) model.getProperty(IJavaUtilityJarImportDataModelProperties.FILE);
+
+ FlexibleJ2EEJavaSaveStrategyImpl strat = new FlexibleJ2EEJavaSaveStrategyImpl((IVirtualComponent) model.getProperty(IJavaUtilityJarImportDataModelProperties.COMPONENT));
+
+ strat.setProgressMonitor(new SubProgressMonitor(monitor, 1));
+ try {
+ jarFile.save(strat);
+ JemProjectUtilities.appendJavaClassPath(javaProject, JavaCore.newContainerEntry(new Path("org.eclipse.jdt.launching.JRE_CONTAINER"))); //$NON-NLS-1$)
+ JemProjectUtilities.forceClasspathReload(javaProject);
+ } catch (SaveFailureException e) {
+ Logger.getLogger().logError(e);
+ } catch (JavaModelException e) {
+ Logger.getLogger().logError(e);
+ }
+ return OK_STATUS;
+ }
+
+ public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+} \ No newline at end of file
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/JavaUtilityComponentCreationOperation.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/JavaUtilityComponentCreationOperation.java
index 2f6943605..91e5c09b6 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/JavaUtilityComponentCreationOperation.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/application/internal/operations/JavaUtilityComponentCreationOperation.java
@@ -33,6 +33,11 @@ import org.eclipse.wst.common.componentcore.internal.util.IModuleConstants;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.resources.IVirtualFolder;
+//TODO delete
+/**
+ * @deprecated
+ *
+ */
public class JavaUtilityComponentCreationOperation extends ComponentCreationOperation {
/**
* @param dataModel
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EARComponentCreationDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EARComponentCreationDataModel.java
index d4363d4a5..395ad84d8 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EARComponentCreationDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/earcreation/EARComponentCreationDataModel.java
@@ -33,6 +33,11 @@ import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.IRuntimeType;
import org.eclipse.wst.server.core.ServerCore;
+//TODO delete
+/**
+ * @deprecated
+ *
+ */
public class EARComponentCreationDataModel extends J2EEComponentCreationDataModel {
/**
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/modulecore/util/EARArtifactEditOperationDataModel.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/modulecore/util/EARArtifactEditOperationDataModel.java
index 77b495f83..f16e96699 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/modulecore/util/EARArtifactEditOperationDataModel.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/modulecore/util/EARArtifactEditOperationDataModel.java
@@ -14,6 +14,11 @@ import org.eclipse.jst.j2ee.componentcore.util.EARArtifactEdit;
import org.eclipse.wst.common.componentcore.internal.operation.ArtifactEditOperationDataModel;
import org.eclipse.wst.common.frameworks.internal.operations.WTPOperation;
+//TODO delete
+/**
+ * @deprecated
+ *
+ */
public class EARArtifactEditOperationDataModel extends ArtifactEditOperationDataModel {
public WTPOperation getDefaultOperation() {
diff --git a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/moduleextension/EarModuleExtension.java b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/moduleextension/EarModuleExtension.java
index cae912f77..0fa8a9998 100644
--- a/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/moduleextension/EarModuleExtension.java
+++ b/plugins/org.eclipse.jst.j2ee/earproject/org/eclipse/jst/j2ee/internal/moduleextension/EarModuleExtension.java
@@ -40,7 +40,7 @@ public interface EarModuleExtension {
*/
IDataModel createProjectDataModel();
- J2EEModuleImportDataModel createImportDataModel();
+ IDataModel createImportDataModel();
J2EEComponentCreationOperation createProjectCreationOperation(J2EEComponentCreationDataModel dataModel);

Back to the top