blob: 14f9e4f2cc47e34c80455a0201994ba91eee91dd [file] [log] [blame]
/***************************************************************************************************
* 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 Sep 29, 2003
*
* To change the template for this generated file go to Window>Preferences>Java>Code
* Generation>Code and Comments
*/
package org.eclipse.jst.j2ee.internal.web.plugin;
import java.util.Set;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jst.j2ee.application.Module;
import org.eclipse.jst.j2ee.application.WebModule;
import org.eclipse.jst.j2ee.application.internal.operations.J2EEComponentCreationOperation;
import org.eclipse.jst.j2ee.commonarchivecore.internal.Archive;
import org.eclipse.jst.j2ee.internal.earcreation.UpdateModuleReferencesInEARProjectCommand;
import org.eclipse.jst.j2ee.internal.moduleextension.EarModuleExtensionImpl;
import org.eclipse.jst.j2ee.internal.moduleextension.WebModuleExtension;
import org.eclipse.jst.j2ee.internal.project.IWebNatureConstants;
import org.eclipse.jst.j2ee.internal.project.J2EEJavaProjectInfo;
import org.eclipse.jst.j2ee.internal.project.J2EENature;
import org.eclipse.jst.j2ee.internal.web.archive.operations.WebComponentCreationDataModelProvider;
import org.eclipse.jst.j2ee.internal.web.archive.operations.WebComponentCreationOperation;
import org.eclipse.jst.j2ee.internal.web.archive.operations.WebModuleImportDataModelProvider;
import org.eclipse.jst.j2ee.internal.web.operations.WebProjectInfo;
import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit;
import org.eclipse.jst.j2ee.webapplication.WebApp;
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
public class WebModuleExtensionImpl extends EarModuleExtensionImpl implements WebModuleExtension {
/**
*
*/
public WebModuleExtensionImpl() {
super();
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.WebModuleExtension#createProjectInfo()
*/
public J2EEJavaProjectInfo createProjectInfo() {
// TODO Auto-generated method stub
return null;
}
public void initializeEjbReferencesToModule(J2EENature moduleNature, UpdateModuleReferencesInEARProjectCommand command) {
// WebEditModel editModel;
// try {
// editModel = ((J2EEWebNatureRuntime) moduleNature).getWebAppEditModelForWrite(this);
// } catch (Exception e) {
// return;
// }
WebArtifactEdit webEdit = null;
WebApp webApp = null;
try {
// TODO migrate to flex project
// webEdit = (WebArtifactEdit) StructureEdit.getFirstArtifactEditForRead(
// moduleNature.getProject());
if (webEdit != null)
webApp = (WebApp) webEdit.getDeploymentDescriptorRoot();
if (webApp != null) {
command.initializeEjbReferencesToModule(webApp.getEjbRefs());
command.initializeEjbReferencesToModule(webApp.getEjbLocalRefs());
}
} finally {
if (webEdit != null)
webEdit.dispose();
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.WebModuleExtension#addWLPProjects(org.eclipse.core.resources.IProject,
* java.util.Set)
*/
public void addWLPProjects(IProject aProject, Set projectsToBuild) {
// J2EEWebNatureRuntime nature = J2EEWebNatureRuntime.getRuntime(aProject);
// if (nature == null)
// return;
// ILibModule[] libModules = nature.getLibModules();
// for (int i = 0; i < libModules.length; i++) {
// IProject p = libModules[i].getProject();
// if (p.isAccessible())
// projectsToBuild.add(libModules[i].getProject());
// }
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.WebModuleExtension#createWebProjectInfo(org.eclipse.jst.j2ee.internal.internal.commonarchivecore.Archive)
*/
public J2EEJavaProjectInfo createWebProjectInfo(Archive anArchive) {
WebProjectInfo info = new WebProjectInfo();
// Moved this code below to EARProjectSaveStrategyImpl, to defer the
// work
// and avoid hangs in the wizard right after finish pressed
/*
* boolean isVersion2_2 = !ArchiveUtil.isJ2EE13FastCheck((WARFile)anArchive); if
* (isVersion2_2) { info.setJSPLevel(IJ2EEWebNature.JSPLEVEL_1_1);
* info.setServletLevel(IJ2EEWebNature.SERVLETLEVEL_2_2);
*/
return info;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.WebModuleExtension#setContextRootForModuleMapping(org.eclipse.jst.j2ee.internal.internal.application.WebModule,
* org.eclipse.core.resources.IProject)
*/
public void setContextRootForModuleMapping(WebModule webModule, IProject nestedProject) throws CoreException {
WebArtifactEdit webEdit = null;
try {
// TODO migrate to flex project
// webEdit = (WebArtifactEdit) StructureEdit.getFirstArtifactEditForRead( nestedProject
// );
if (webEdit != null) {
webEdit.setServerContextRoot(webModule.getContextRoot());
}
} finally {
if (webEdit != null)
webEdit.dispose();
}
// if (wnr != null) {
// wnr.setContextRoot(webModule.getContextRoot());
// }
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.WebModuleExtension#hasRuntime(org.eclipse.core.resources.IProject)
*/
public boolean hasRuntime(IProject project) {
// return J2EEWebNatureRuntimeUtilities.hasJ2EERuntime(project);
// To do: work based on module
return false;
}
// public J2EEImportOperationOLD createImportOperation(IProject
// nestedProject, WARFile warFile, EARImportConfiguration importConfig){
// WarImportOperation op = new WarImportOperation(nestedProject, warFile);
// //op.setServerTarget(info.getServerTarget());
// HashMap opMap = importConfig.createProjectOption;
// if(opMap != null && !opMap.isEmpty())
// op.createWLProjectOptions = opMap;
// return op;
// }
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.WebModuleExtension#getContentFolder(org.eclipse.core.resources.IProject,
* org.eclipse.jst.j2ee.internal.internal.commonarchivecore.File)
*/
public String getContentFolder(IProject project, IFile webSettingsFile) {
String contentFolder = null;
// WebSettings webSettings = new WebSettings(project, webSettingsFile);
// if (webSettings != null) {
// contentFolder = webSettings.getWebContentName();
// }
// To do: Needs work here, no content folder exists now
WebArtifactEdit webEdit = null;
try {
// TODO migrate to flex project
// webEdit = (WebArtifactEdit) StructureEdit.getFirstArtifactEditForRead(project);
if (webEdit != null) {
}
} finally {
if (webEdit != null)
webEdit.dispose();
}
return contentFolder;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.WebModuleExtension#compareWebContextRoot(org.eclipse.jst.j2ee.internal.internal.application.Module,
* org.eclipse.core.resources.IProject)
*/
public boolean compareWebContextRoot(Module module, IProject project) throws CoreException {
String contextRoot = ((WebModule) module).getContextRoot();
if (contextRoot != null)
return ((contextRoot).equals(getServerContextRoot(project)));
return false;
}
protected String getServerContextRoot(IProject project) {
WebArtifactEdit webEdit = null;
try {
// TODO migrate to flex project
// webEdit = (WebArtifactEdit) StructureEdit.getFirstArtifactEditForRead(project);
if (webEdit != null) {
return webEdit.getServerContextRoot();
}
} finally {
if (webEdit != null)
webEdit.dispose();
}
return ""; //$NON-NLS-1$
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.EarModuleExtension#createProjectCreationOperation(org.eclipse.jst.j2ee.internal.internal.application.operations.J2EEModuleCreationDataModel)
*/
public J2EEComponentCreationOperation createProjectCreationOperation(IDataModel dataModel) {
return new WebComponentCreationOperation( dataModel);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.EarModuleExtension#createProjectDataModel()
*/
public IDataModel createProjectDataModel() {
return DataModelFactory.createDataModel(new WebComponentCreationDataModelProvider());
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jst.j2ee.internal.internal.moduleextension.EarModuleExtension#createImportDataModel()
*/
public IDataModel createImportDataModel() {
return DataModelFactory.createDataModel(new WebModuleImportDataModelProvider());
}
public String getNatureID() {
return IWebNatureConstants.J2EE_NATURE_ID;
}
}