diff options
author | cbridgha | 2005-05-24 22:25:58 +0000 |
---|---|---|
committer | cbridgha | 2005-05-24 22:25:58 +0000 |
commit | 3bfb2249a9a0b151dc81e3dd77e1aba2aea14356 (patch) | |
tree | dd7b5ecef32c17262b4e1c98b7336b5d9184c78b /plugins/org.eclipse.jst.j2ee/earproject/org/eclipse | |
parent | 70e06820321fdfb93056035db5a76f6be8b48c8f (diff) | |
download | webtools.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')
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); |