diff options
Diffstat (limited to 'plugins/org.eclipse.jst.j2ee.web/war-validation/org/eclipse/jst/j2ee/internal/web/validation/UIWarValidator.java')
-rw-r--r-- | plugins/org.eclipse.jst.j2ee.web/war-validation/org/eclipse/jst/j2ee/internal/web/validation/UIWarValidator.java | 285 |
1 files changed, 0 insertions, 285 deletions
diff --git a/plugins/org.eclipse.jst.j2ee.web/war-validation/org/eclipse/jst/j2ee/internal/web/validation/UIWarValidator.java b/plugins/org.eclipse.jst.j2ee.web/war-validation/org/eclipse/jst/j2ee/internal/web/validation/UIWarValidator.java deleted file mode 100644 index d66db9fb7..000000000 --- a/plugins/org.eclipse.jst.j2ee.web/war-validation/org/eclipse/jst/j2ee/internal/web/validation/UIWarValidator.java +++ /dev/null @@ -1,285 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2003, 2007 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.internal.web.validation; - - - -import java.util.HashMap; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.jobs.ISchedulingRule; -import org.eclipse.jst.j2ee.classpathdep.ClasspathDependencyUtil; -import org.eclipse.jst.j2ee.componentcore.J2EEModuleVirtualComponent; -import org.eclipse.jst.j2ee.internal.J2EEConstants; -import org.eclipse.jst.j2ee.internal.plugin.IJ2EEModuleConstants; -import org.eclipse.jst.j2ee.model.internal.validation.WarValidator; -import org.eclipse.jst.j2ee.project.JavaEEProjectUtilities; -import org.eclipse.jst.j2ee.project.WebUtilities; -import org.eclipse.jst.j2ee.web.componentcore.util.WebArtifactEdit; -import org.eclipse.wst.common.componentcore.ComponentCore; -import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent; -import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; -import org.eclipse.wst.common.componentcore.resources.IVirtualFile; -import org.eclipse.wst.common.componentcore.resources.IVirtualFolder; -import org.eclipse.wst.common.componentcore.resources.IVirtualReference; -import org.eclipse.wst.common.componentcore.resources.IVirtualResource; -import org.eclipse.wst.validation.internal.core.Message; -import org.eclipse.wst.validation.internal.core.ValidationException; -import org.eclipse.wst.validation.internal.operations.IWorkbenchContext; -import org.eclipse.wst.validation.internal.provisional.core.IMessage; -import org.eclipse.wst.validation.internal.provisional.core.IReporter; -import org.eclipse.wst.validation.internal.provisional.core.IValidationContext; - - -/** - * Insert the type's description here. Creation date: (10/2/2001 6:46:56 PM) - * - * @author: Administrator - */ -public class UIWarValidator extends WarValidator { - - protected org.eclipse.jst.j2ee.internal.web.validation.UIWarHelper warHelper; - - - - - /** - * UIWarValidator constructor comment. - */ - public UIWarValidator() { - super(); - } - - /** - * Insert the method's description here. Creation date: (10/2/2001 8:01:45 PM) - * - * @return org.eclipse.wst.validation.internal.core.core.war.workbenchimpl.UIWarHelper - */ - public org.eclipse.jst.j2ee.internal.web.validation.UIWarHelper getWarHelper() { - return warHelper; - } - - /** - * Insert the method's description here. Creation date: (10/2/2001 8:01:45 PM) - * - * @param newWarHelper - * org.eclipse.wst.validation.internal.core.core.war.workbenchimpl.UIWarHelper - */ - public void setWarHelper(org.eclipse.jst.j2ee.internal.web.validation.UIWarHelper newWarHelper) { - warHelper = newWarHelper; - } - - /** - * Insert the method's description here. Creation date: (10/2/2001 6:49:26 PM) - */ - @Override - public void validate() throws ValidationException { - // First remove all previous msg. for this project - // _reporter.removeAllMessages(this,null); - super.validate(); - validateEARForContextRoot(); - } - - /** - * Insert the method's description here. Creation date: (10/2/2001 6:49:26 PM) - */ - @Override - public IStatus validateInJob(IValidationContext inHelper, IReporter inReporter) - throws org.eclipse.wst.validation.internal.core.ValidationException { - - setWarHelper((UIWarHelper) inHelper); - IProject proj = ((IWorkbenchContext) warHelper).getProject(); - IVirtualComponent wbModule = ComponentCore.createComponent(proj); - if( wbModule != null && JavaEEProjectUtilities.isDynamicWebProject(proj)) { - IVirtualFile webFile = wbModule.getRootFolder().getFile(J2EEConstants.WEBAPP_DD_URI); - if( webFile.exists()) { - status = super.validateInJob(inHelper, inReporter); - validateWebInfLibs(wbModule); - } - } - return status; - } - - /* - * For web projects, need to validate that the classpath component dependencies (both - * from this project's classpath and from the exported classpath entries of referenced - * utility projects) do not conflict. - */ - private void validateWebInfLibs(final IVirtualComponent component) { - - final Set webLibMappings = new HashSet(); - - // get the libs currently in the WEB-INF/lib folder - final IVirtualFolder folder = component.getRootFolder().getFolder(WebArtifactEdit.WEBLIB); - try { - IVirtualResource[] resources = folder.members(); - for (int i = 0; i < resources.length; i++) { - if (resources[i] instanceof IVirtualFile) { - IResource[] underlyingResources = resources[i].getUnderlyingResources(); - for (int j = 0; j < underlyingResources.length; j++) { - webLibMappings.add(underlyingResources[j].getName()); - } - } - } - } catch (CoreException ce) { - // swallow - } - final Map archiveToPath = new HashMap(); - final IVirtualReference[] webLibs = WebUtilities.getLibModules(component); - for (int i = 0; i < webLibs.length; i++) { - IVirtualComponent comp = webLibs[i].getReferencedComponent(); - String name = null; - if (comp.isBinary()) { - java.io.File diskFile = (java.io.File)comp.getAdapter(java.io.File.class); - checkLibName(diskFile.getName(), null, webLibMappings, true); - } else { - String archiveName = webLibs[i].getArchiveName(); - if (archiveName != null && archiveName.length() > 0) { - name = archiveName; - } else { - name = comp.getName() + IJ2EEModuleConstants.JAR_EXT; - } - checkLibName(name, comp.getProject(), webLibMappings, true); - if (comp instanceof J2EEModuleVirtualComponent) { - final IVirtualReference[] cpRefs = ((J2EEModuleVirtualComponent) comp).getJavaClasspathReferences(); - for (int j = 0; j < cpRefs.length; j++) { - final IVirtualReference ref = cpRefs[j]; - if (ref.getReferencedComponent() instanceof VirtualArchiveComponent) { - final String cpCompName = ref.getArchiveName(); - checkLibName(cpCompName, comp.getProject(), webLibMappings, false); - IPath cpEntryPath= ClasspathDependencyUtil.getClasspathVirtualReferenceLocation(ref); - if (cpEntryPath != null) { - IPath existingPath = (IPath) archiveToPath.get(cpCompName); - if (existingPath != null && !existingPath.equals(cpEntryPath)) { - _reporter.addMessage(this, new Message(getBaseName(), IMessage.HIGH_SEVERITY, ERROR_DUPLICATE_CLASSPATH_COMPONENT_URI, new String[]{cpCompName, comp.getProject().getName()})); - } else { - archiveToPath.put(cpCompName, cpEntryPath); - } - } - } - } - } - } - } - } - - private void checkLibName(final String name, final IProject project, final Set webLibNames, final boolean addName) { - if (webLibNames.contains(name)) { - if (project != null) { - //ignore this because of WAR import brings in the lib jars along with projects - //_reporter.addMessage(this, new Message(getBaseName(), IMessage.HIGH_SEVERITY, ERROR_DUPLICATE_WEB_INF_LIB_OTHER_PROJECT, new String[]{name, project.getName()})); - } else { - _reporter.addMessage(this, new Message(getBaseName(), IMessage.HIGH_SEVERITY, ERROR_DUPLICATE_WEB_INF_LIB, new String[]{name})); - } - } else if (addName) { - webLibNames.add(name); - } - } - - /** - * Insert the method's description here. Creation date: (10/2/2001 6:49:26 PM) - */ - public void validateEARForContextRoot() { - -// IProject project = getWarHelper().getProject(); -// J2EEWebNatureRuntime webNature = J2EEWebNatureRuntime.getRuntime(project); -// String contextRoot = webNature.getContextRoot(); -// -// if (webNature == null) -// return; -// -// EARNatureRuntime earRuntimeNature[] = webNature.getReferencingEARProjects(); - -// for (int i = 0; i < earRuntimeNature.length; i++) { -// // for each Ear Project that contains this web project update the context root. -// // hold the model and validate the context root & release the model -// org.eclipse.jst.j2ee.internal.earcreation.EAREditModel editModel = null; -// try { -// editModel = earRuntimeNature[i].getEarEditModelForRead(this); -// if (editModel != null) { -// Module module = null; -// if ((module = earRuntimeNature[i].getModule(project)) != null) { -// String webModcontextRoot = ((WebModule) module).getContextRoot(); -// if (webModcontextRoot != null && !webModcontextRoot.equals(contextRoot)) { -// String[] params = new String[3]; -// params[0] = project.getName(); -// params[1] = ((WebModule) module).getContextRoot(); -// params[2] = earRuntimeNature[i].getProject().getName(); -// addError(WAR_CATEGORY, ERROR_EAR_INVALID_CONTEXT_ROOT, params); -// } -// } -// } -// } finally { -// if (editModel != null) { -// editModel.releaseAccess(this); -// editModel = null; -// } -// } -// -// } - - } - - /** - * Method validateLibModules. - * - * - */ - - //TODO create validation for modules -/* protected void validateLibModules(J2EEWebNatureRuntime webNature) { - if (webNature != null) { - ILibModule[] libModules = webNature.getLibModules(); - IProject project = webNature.getProject(); - - for (int i = 0; i < libModules.length; i++) { - ILibModule lib = libModules[i]; - IProject tProject = lib.getProject(); - if (tProject != null) { // Project could be null if JavaProject is deleted, for - // example - if (!tProject.exists() || !tProject.isOpen()) { - addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_MISSING_WLP_PROJECT, new String[]{tProject.getName()}, webNature.getProject()); - } - } - - String jarName = lib.getJarName(); - IPath jarPath = webNature.getLibraryFolder().getFullPath().append(jarName); - if (((Resource) project).findExistingResourceVariant(jarPath) != null) - addWarning(WAR_CATEGORY, MESSAGE_WAR_VALIDATION_CONFLICTING_WLP_PROJECT, new String[]{jarName}, webNature.getProject()); - } - } - }*/ - - @Override - public ISchedulingRule getSchedulingRule(IValidationContext helper) { - - IProject project = ((IWorkbenchContext) helper).getProject(); - IVirtualComponent comp = ComponentCore.createComponent( project ); - IFile webDeploymentDescriptor = null; - if( comp != null ){ - IVirtualFile vf = comp.getRootFolder().getFile(new Path(J2EEConstants.WEBAPP_DD_URI)); - if( vf!= null ){ - webDeploymentDescriptor = vf.getUnderlyingFile(); - } - } - return webDeploymentDescriptor; - } - -} |