diff options
Diffstat (limited to 'plugins/org.eclipse.jst.jee.web/web/org/eclipse')
10 files changed, 0 insertions, 1138 deletions
diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Messages.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Messages.java deleted file mode 100644 index 36bac768e..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Messages.java +++ /dev/null @@ -1,31 +0,0 @@ -/*********************************************************************** - * Copyright (c) 2008 by SAP AG, Walldorf. - * 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: - * SAP AG - initial API and implementation - ***********************************************************************/ -package org.eclipse.jst.jee.model.internal; - -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -public class Messages { - private static final String BUNDLE_NAME = "org.eclipse.jst.jee.model.internal.messages"; //$NON-NLS-1$ - - private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME); - - private Messages() { - } - - public static String getString(String key) { - try { - return RESOURCE_BUNDLE.getString(key); - } catch (MissingResourceException e) { - return '!' + key + '!'; - } - } -} diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProvider.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProvider.java deleted file mode 100644 index cc8698676..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProvider.java +++ /dev/null @@ -1,167 +0,0 @@ -/*********************************************************************** - * Copyright (c) 2008 by SAP AG, Walldorf. - * 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: - * SAP AG - initial API and implementation - ***********************************************************************/ -package org.eclipse.jst.jee.model.internal; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jst.j2ee.model.IModelProvider; -import org.eclipse.jst.j2ee.model.IModelProviderEvent; -import org.eclipse.jst.javaee.web.WebApp; -import org.eclipse.jst.javaee.web.WebFactory; -import org.eclipse.jst.jee.model.internal.common.AbstractMergedModelProvider; -import org.eclipse.jst.jee.model.internal.mergers.ModelElementMerger; -import org.eclipse.jst.jee.model.internal.mergers.ModelException; -import org.eclipse.jst.jee.model.internal.mergers.WebAppMerger; -import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager; - -/** - * @author Kiril Mitov k.mitov@sap.com - * - */ -public class Web25MergedModelProvider extends AbstractMergedModelProvider<WebApp> { - - public Web25MergedModelProvider(IProject project) { - super(project); - } - - @Override - protected IModelProvider loadAnnotationModel(WebApp ddModel) throws CoreException { - return new WebAnnotationReader(ProjectFacetsManager.create(project), ddModel); - } - - @Override - protected IModelProvider loadDeploymentDescriptorModel() throws CoreException { - return new Web25ModelProvider(project); - } - - private WebApp getAnnotationWebApp() { - return annotationModelProvider != null ? (WebApp) annotationModelProvider.getModelObject() : null; - } - - private WebApp getXmlWebApp() { - return ddProvider != null ? (WebApp) ddProvider.getModelObject() : null; - } - - public Object getModelObject(IPath modelPath) { - return null; - } - - public void modify(Runnable runnable, IPath modelPath) { - /* - * Someone has called modify before loading the model. Try to load the - * model. - */ - if (mergedModel == null) - getMergedModel(); - if (isDisposed()) { - return; - } - /* - * Still not supporting modifications of the merged model. During modify - * the model is becoming the ddModel. After modifying the model is - * unloaded. - */ - WebApp backup = mergedModel; - try { - mergedModel = (WebApp) ddProvider.getModelObject(); - ddProvider.modify(runnable, modelPath); - } finally { - mergedModel = backup; - } - if (mergedModel == null) - mergedModel = getMergedModel(); - else - merge(getXmlWebApp(), getAnnotationWebApp()); - } - - private void clearModel(WebApp app) { - if (app == null) { - return; - } - app.getContextParams().clear(); - app.getDescriptions().clear(); - app.getDisplayNames().clear(); - app.getDistributables().clear(); - app.getEjbLocalRefs().clear(); - app.getEjbRefs().clear(); - app.getEnvEntries().clear(); - app.getErrorPages().clear(); - app.getFilterMappings().clear(); - app.getFilters().clear(); - app.getIcons().clear(); - app.getJspConfigs().clear(); - app.getListeners().clear(); - app.getLocalEncodingMappingsLists().clear(); - app.getLoginConfigs().clear(); - app.getMessageDestinationRefs().clear(); - app.getMessageDestinations().clear(); - app.getMimeMappings().clear(); - app.getPersistenceContextRefs().clear(); - app.getPersistenceUnitRefs().clear(); - app.getPostConstructs().clear(); - app.getPreDestroys().clear(); - app.getResourceEnvRefs().clear(); - app.getResourceRefs().clear(); - app.getSecurityConstraints().clear(); - app.getSecurityRoles().clear(); - app.getServiceRefs().clear(); - app.getServletMappings().clear(); - app.getServlets().clear(); - app.getSessionConfigs().clear(); - app.getWelcomeFileLists().clear(); - } - - protected void annotationModelChanged(IModelProviderEvent event) { - internalModelChanged(event); - } - - protected void xmlModelChanged(IModelProviderEvent event) { - internalModelChanged(event); - } - - /* - * Notifications from xml and annotation may come in different threads. This - * depends on the implementation of the model providers, but to make sure - * that no race conditions occurs I am synchronizing this method. - */ - private synchronized void internalModelChanged(IModelProviderEvent event) { - merge(getXmlWebApp(), getAnnotationWebApp()); - notifyListeners(event); - } - - @Override - protected WebApp merge(WebApp ddModel, WebApp annotationsModel) { - try { - if (mergedModel != ddModel) { - clearModel(mergedModel); - mergeWithModel(ddModel); - mergeWithModel(annotationsModel); - } - } catch (ModelException e) { - e.printStackTrace(); - } - return mergedModel; - } - - private void mergeWithModel(WebApp model) throws ModelException { - if (model == null) - return; - WebAppMerger merger = new WebAppMerger(mergedModel, model, ModelElementMerger.ADD); - merger.process(); - } - - @Override - protected WebApp createNewModelInstance() { - return WebFactory.eINSTANCE.createWebApp(); - } - -} diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProviderFactory.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProviderFactory.java deleted file mode 100644 index 927f98afc..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25MergedModelProviderFactory.java +++ /dev/null @@ -1,49 +0,0 @@ -/*********************************************************************** - * Copyright (c) 2008 by SAP AG, Walldorf. - * 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: - * SAP AG - initial API and implementation - ***********************************************************************/ -package org.eclipse.jst.jee.model.internal; - -import java.util.HashMap; - -import org.eclipse.core.resources.IProject; -import org.eclipse.jst.j2ee.model.IModelProvider; -import org.eclipse.jst.j2ee.model.IModelProviderFactory; -import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; - -/** - * @author Kiril Mitov k.mitov@sap.com - * - */ -public class Web25MergedModelProviderFactory implements IModelProviderFactory { - - private HashMap<IProject, IModelProvider> xmlResources = new HashMap<IProject, IModelProvider>(); - - public IModelProvider create(IProject project) { - IModelProvider result = getResource(project); - if(result == null || ((Web25MergedModelProvider)result).isDisposed()){ - result = new Web25MergedModelProvider(project); - addResource(project, result); - } - return result; - } - - public IModelProvider create(IVirtualComponent component) { - return create(component.getProject()); - } - - private void addResource(IProject project, IModelProvider modelProvider){ - xmlResources.put(project, modelProvider); - } - - private IModelProvider getResource(IProject project){ - return xmlResources.get(project); - } - -} diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25ModelProvider.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25ModelProvider.java deleted file mode 100644 index 6df26c526..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25ModelProvider.java +++ /dev/null @@ -1,64 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 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.jee.model.internal; - - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl; -import org.eclipse.jst.j2ee.internal.J2EEConstants; -import org.eclipse.jst.javaee.core.DisplayName; -import org.eclipse.jst.javaee.core.JavaeeFactory; -import org.eclipse.jst.javaee.web.IWebResource; -import org.eclipse.jst.javaee.web.WebApp; -import org.eclipse.jst.javaee.web.WebAppDeploymentDescriptor; -import org.eclipse.jst.javaee.web.WebAppVersionType; -import org.eclipse.jst.javaee.web.WebFactory; - -public class Web25ModelProvider extends JEE5ModelProvider { - - private IWebResource webResource = null; - private static final String WAR25_CONTENT_TYPE = "org.eclipse.jst.jee.ee5webDD"; //$NON-NLS-1$ - public Web25ModelProvider(IProject proj) { - super(); - this.proj = proj; - setDefaultResourcePath(new Path(J2EEConstants.WEBAPP_DD_URI)); - } - - /* (non-Javadoc) - * @see org.eclipse.jst.j2ee.model.IModelProvider#getModelObject(org.eclipse.core.runtime.IPath) - */ - public Object getModelObject(IPath modelPath) { - IWebResource webRes = (IWebResource)getModelResource(modelPath); - if (webRes != null && webRes.getRootObject() != null) - return webRes.getWebApp(); - return null; - } - protected String getContentTypeDescriber() { - return WAR25_CONTENT_TYPE; - } - public void populateRoot(XMLResourceImpl res, String name) { - WebAppDeploymentDescriptor dd = WebFactory.eINSTANCE.createWebAppDeploymentDescriptor(); - dd.getXMLNSPrefixMap().put("", J2EEConstants.JAVAEE_NS_URL); //$NON-NLS-1$ - dd.getXMLNSPrefixMap().put("xsi", J2EEConstants.XSI_NS_URL); //$NON-NLS-1$ - dd.getXSISchemaLocation().put(J2EEConstants.JAVAEE_NS_URL, J2EEConstants.WEB_APP_SCHEMA_LOC_2_5); - WebApp war = WebFactory.eINSTANCE.createWebApp(); - DisplayName dn = JavaeeFactory.eINSTANCE.createDisplayName(); - dn.setValue(name); - war.getDisplayNames().add(dn); - dd.setWebApp(war); - war.setVersion(WebAppVersionType._25_LITERAL); - res.getContents().add((EObject) dd); - } - -} diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25ModelProviderFactory.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25ModelProviderFactory.java deleted file mode 100644 index e5c2d8e4b..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/Web25ModelProviderFactory.java +++ /dev/null @@ -1,28 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 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.jee.model.internal; - -import org.eclipse.core.resources.IProject; -import org.eclipse.jst.j2ee.model.IModelProvider; -import org.eclipse.jst.j2ee.model.IModelProviderFactory; -import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; - -public class Web25ModelProviderFactory implements IModelProviderFactory { - - public IModelProvider create(IProject project) { - return new Web25ModelProvider(project); - } - - public IModelProvider create(IVirtualComponent component) { - return new Web25ModelProvider(component.getProject()); - } - -} diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/WebAnnotationFactory.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/WebAnnotationFactory.java deleted file mode 100644 index 898b02f63..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/WebAnnotationFactory.java +++ /dev/null @@ -1,145 +0,0 @@ -/*********************************************************************** - * Copyright (c) 2008 by SAP AG, Walldorf. - * 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: - * SAP AG - initial API and implementation - ***********************************************************************/ -package org.eclipse.jst.jee.model.internal; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jdt.core.IAnnotation; -import org.eclipse.jdt.core.IField; -import org.eclipse.jdt.core.IMember; -import org.eclipse.jdt.core.IMethod; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jst.javaee.core.EjbLocalRef; -import org.eclipse.jst.javaee.core.JavaEEObject; -import org.eclipse.jst.javaee.core.JavaeeFactory; -import org.eclipse.jst.javaee.core.Listener; -import org.eclipse.jst.javaee.core.ResourceRef; -import org.eclipse.jst.javaee.core.RunAs; -import org.eclipse.jst.javaee.core.SecurityRoleRef; -import org.eclipse.jst.javaee.web.Filter; -import org.eclipse.jst.javaee.web.Servlet; -import org.eclipse.jst.javaee.web.WebFactory; -import org.eclipse.jst.jee.model.internal.common.AbstractAnnotationFactory; -import org.eclipse.jst.jee.model.internal.common.Result; - -/** - * @author Kiril Mitov k.mitov@sap.com - * - */ -public class WebAnnotationFactory extends AbstractAnnotationFactory { - - private static final String EJB = "EJB"; //$NON-NLS-1$ - private static final String RUN_AS = "RunAs"; //$NON-NLS-1$ - private static final String RESOURCE = "Resource"; //$NON-NLS-1$ - private static final String RESOURCES = "Resources"; //$NON-NLS-1$ - private static final String DECLARE_ROLES = "DeclareRoles"; //$NON-NLS-1$ - - private WebAnnotationFactory() { - super(); - } - - public static WebAnnotationFactory createFactory() { - return new WebAnnotationFactory(); - } - - public Result createServlet(IType rootType, String servletName) throws JavaModelException { - Result result = new Result(); - Servlet servlet = WebFactory.eINSTANCE.createServlet(); - servlet.setServletName(servletName); - servlet.setServletClass(rootType.getFullyQualifiedName()); - result.setMainObject(servlet); - processTypeAnnotations(result, rootType); - processMethodAnnotations(result, rootType); - processFieldAnnotations(result, rootType); - return result; - } - - public Result createListener(IType rootType) throws JavaModelException { - Result result = new Result(); - Listener listener = JavaeeFactory.eINSTANCE.createListener(); - listener.setListenerClass(rootType.getFullyQualifiedName()); - result.setMainObject(listener); - processTypeAnnotations(result, rootType); - processMethodAnnotations(result, rootType); - processFieldAnnotations(result, rootType); - return result; - } - - public Result createFilter(IType rootType, String filterName) throws JavaModelException { - Result result = new Result(); - Filter filter = WebFactory.eINSTANCE.createFilter(); - filter.setFilterName(filterName); - filter.setFilterClass(rootType.getFullyQualifiedName()); - result.setMainObject(filter); - processTypeAnnotations(result, rootType); - processMethodAnnotations(result, rootType); - processFieldAnnotations(result, rootType); - return result; - } - - private void processTypeAnnotations(Result result, IType type) throws JavaModelException { - JavaEEObject mainObject = result.getMainObject(); - boolean isServlet = Servlet.class.isInstance(mainObject); - for (IAnnotation annotation : type.getAnnotations()) { - String annotationName = annotation.getElementName(); - if (isServlet && DECLARE_ROLES.equals(annotationName)) { - List<SecurityRoleRef> refs = new ArrayList<SecurityRoleRef>(); - processDeclareRoles(result, refs, annotation, type); - ((Servlet) mainObject).getSecurityRoleRefs().addAll(refs); - } else if (RESOURCES.equals(annotationName)) { - List<ResourceRef> resourceRefs = new ArrayList<ResourceRef>(2); - processResourcesAnnotation(annotation, resourceRefs, type, result.getDependedTypes()); - result.getAdditional().addAll(resourceRefs); - } else if (RESOURCE.equals(annotationName)) { - List<ResourceRef> resourceRefs = new ArrayList<ResourceRef>(2); - processResourceRefAnnotation(annotation, resourceRefs, type, result.getDependedTypes()); - result.getAdditional().addAll(resourceRefs); - } else if (isServlet && RUN_AS.equals(annotationName)) { - RunAs runAs = JavaeeFactory.eINSTANCE.createRunAs(); - processRunAs(annotation, runAs); - ((Servlet) mainObject).setRunAs(runAs); - } - } - } - - private void processFieldAnnotations(Result result, IType type) throws JavaModelException { - for (IField field : type.getFields()) { - for (IAnnotation annotation : field.getAnnotations()) { - processMemberAnnotations(result, field, annotation); - } - } - } - - private void processMethodAnnotations(Result result, IType type) throws JavaModelException { - for (IMethod method : type.getMethods()) { - for (IAnnotation annotation : method.getAnnotations()) { - processMemberAnnotations(result, method, annotation); - } - } - } - - private void processMemberAnnotations(Result result, IMember member, IAnnotation annotation) - throws JavaModelException { - String annotationName = annotation.getElementName(); - if (EJB.equals(annotationName)) { - List<EjbLocalRef> refs = new ArrayList<EjbLocalRef>(1); - processEjbAnnotation(annotation, refs, member, result.getDependedTypes()); - result.getAdditional().addAll(refs); - } else if (RESOURCE.equals(annotationName)) { - List<ResourceRef> refs = new ArrayList<ResourceRef>(1); - processResourceRefAnnotation(annotation, refs, member, result.getDependedTypes()); - result.getAdditional().addAll(refs); - } - } - -} diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/WebAnnotationReader.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/WebAnnotationReader.java deleted file mode 100644 index c6e4069a5..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/WebAnnotationReader.java +++ /dev/null @@ -1,266 +0,0 @@ -/*********************************************************************** - * Copyright (c) 2008 by SAP AG, Walldorf. - * 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: - * SAP AG - initial API and implementation - ***********************************************************************/ -package org.eclipse.jst.jee.model.internal; - -import java.util.Collection; -import java.util.HashSet; -import java.util.Iterator; - -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.IJavaElementDelta; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IPackageFragmentRoot; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jst.j2ee.model.IModelProviderEvent; -import org.eclipse.jst.javaee.core.EjbLocalRef; -import org.eclipse.jst.javaee.core.JavaEEObject; -import org.eclipse.jst.javaee.core.Listener; -import org.eclipse.jst.javaee.core.ResourceRef; -import org.eclipse.jst.javaee.core.SecurityRole; -import org.eclipse.jst.javaee.core.SecurityRoleRef; -import org.eclipse.jst.javaee.ejb.SecurityIdentityType; -import org.eclipse.jst.javaee.web.Filter; -import org.eclipse.jst.javaee.web.Servlet; -import org.eclipse.jst.javaee.web.WebApp; -import org.eclipse.jst.javaee.web.WebFactory; -import org.eclipse.jst.jee.model.internal.common.AbstractAnnotationModelProvider; -import org.eclipse.jst.jee.model.internal.common.ManyToOneRelation; -import org.eclipse.jst.jee.model.internal.common.Result; -import org.eclipse.wst.common.project.facet.core.IFacetedProject; - -/** - * @author Kiril Mitov k.mitov@sap.com - * - */ -public class WebAnnotationReader extends AbstractAnnotationModelProvider<WebApp> { - - private ManyToOneRelation<JavaEEObject, ICompilationUnit> modelToUnit; - - private ManyToOneRelation<JavaEEObject, ICompilationUnit> modelToInterfaceUnit; - - private WebAnnotationFactory annotationFactory; - - private WebApp ddApp; - - public WebAnnotationReader(IFacetedProject facetedProject, WebApp ddApp) { - super(facetedProject); - if (ddApp == null) - throw new IllegalArgumentException("The deployment descriptor model can not be null!"); //$NON-NLS-1$ - this.ddApp = ddApp; - } - - @Override - protected void preLoad() { - modelObject = WebFactory.eINSTANCE.createWebApp(); - annotationFactory = WebAnnotationFactory.createFactory(); - } - - @Override - protected void loadModel() throws CoreException { - IJavaProject javaProject = JavaCore.create(facetedProject.getProject()); - final Collection<ICompilationUnit> javaUnits = new HashSet<ICompilationUnit>(); - for (final IPackageFragmentRoot root : javaProject.getAllPackageFragmentRoots()) { - visitJavaFiles(javaUnits, root); - } - annotationFactory = WebAnnotationFactory.createFactory(); - - modelToInterfaceUnit = new ManyToOneRelation<JavaEEObject, ICompilationUnit>(); - modelToUnit = new ManyToOneRelation<JavaEEObject, ICompilationUnit>(); - for (ICompilationUnit unit : javaUnits) { - Result result = analyzeCompilationUnit(unit); - if (result == null) - continue; - processResult(unit, result); - } - } - - /** - * Analyze this unit for a web artifact. If the file is not a valid java - * compilation unit or it does not contain a class the method returns - * <code>null</code> - * - * Only the primary type of the compilation unit is processed. - * - * @param unit - * the unit to be processed. - * @return result from processing the file - * @throws JavaModelException - */ - private Result analyzeCompilationUnit(ICompilationUnit unit) throws JavaModelException { - IType rootType = unit.findPrimaryType(); - /* - * If the compilation unit is not valid and can not be compiled the - * rootType may be null. This can happen if a class is define as follows - * <code> @Stateless public SomeClass implements SomeInterface{}</code>. - * Here the "class" word is missed and the type is not valid. - */ - if (rootType == null || !rootType.isClass()) - return null; - for (Iterator iter = ddApp.getServlets().iterator(); iter.hasNext();) { - Servlet servlet = (Servlet) iter.next(); - if (rootType.getFullyQualifiedName().equals(servlet.getServletClass())) - return annotationFactory.createServlet(rootType, servlet.getServletName()); - } - for (Iterator iter = ddApp.getListeners().iterator(); iter.hasNext();) { - Listener listener = (Listener) iter.next(); - if (rootType.getFullyQualifiedName().equals(listener.getListenerClass())) - return annotationFactory.createListener(rootType); - } - for (Iterator iter = ddApp.getFilters().iterator(); iter.hasNext();) { - Filter filter = (Filter) iter.next(); - if (rootType.getFullyQualifiedName().equals(filter.getFilterClass())) { - return annotationFactory.createFilter(rootType, filter.getFilterName()); - } - } - return null; - } - - /** - * Process the result from parsing the unit. Depending on the result this - * might include adding a session bean, message driven bean, securityRole - * etc. - * - * @param unit - * @param result - * @throws JavaModelException - */ - private void processResult(ICompilationUnit unit, Result result) throws JavaModelException { - JavaEEObject mainObject = result.getMainObject(); - if (Servlet.class.isInstance(mainObject)) - servletFound(unit, (Servlet) result.getMainObject(), result.getDependedTypes()); - for (JavaEEObject additional : result.getAdditional()) { - if (EjbLocalRef.class.isInstance(additional)) { - ejbLocalRefFound(unit, (EjbLocalRef) additional, result.getDependedTypes()); - } else if (ResourceRef.class.isInstance(additional)) { - resourceRefFound(unit, (ResourceRef) additional, result.getDependedTypes()); - } else if (SecurityRole.class.isInstance(additional)) { - securityRoleFound(result.getMainObject(), (SecurityRole) additional); - } else if (SecurityIdentityType.class.isInstance(additional)) { - securityIdentityTypeFound(unit, (SecurityIdentityType) additional); - } - } - } - - private void servletFound(ICompilationUnit unit, Servlet servlet, Collection<IType> dependedTypes) - throws JavaModelException { - modelObject.getServlets().add(servlet); - connectObjectWithFile(unit, servlet, dependedTypes); - } - - private void securityIdentityTypeFound(ICompilationUnit file, SecurityIdentityType additional) { - } - - private void resourceRefFound(ICompilationUnit unit, ResourceRef resourceRef, Collection<IType> dependedTypes) - throws JavaModelException { - modelObject.getResourceRefs().add(resourceRef); - connectObjectWithFile(unit, resourceRef, dependedTypes); - } - - private void ejbLocalRefFound(ICompilationUnit unit, EjbLocalRef localRef, Collection<IType> dependedTypes) - throws JavaModelException { - modelObject.getEjbLocalRefs().add(localRef); - connectObjectWithFile(unit, localRef, dependedTypes); - } - - private void connectObjectWithFile(ICompilationUnit unit, JavaEEObject localRef, Collection<IType> dependedTypes) - throws JavaModelException { - modelToUnit.connect(localRef, unit); - for (IType type : dependedTypes) { - if (type.isBinary() || type.isInterface() == false) - continue; - modelToInterfaceUnit.connect(localRef, type.getCompilationUnit()); - } - } - - @Override - protected void processAddedCompilationUnit(IModelProviderEvent modelEvent, ICompilationUnit unit) - throws CoreException { - Result result = analyzeCompilationUnit(unit); - if (result == null || result.isEmpty()) - return; - processResult(unit, result); - modelEvent.addResource(unit); - } - - @Override - protected void processChangedCompilationUnit(IModelProviderEvent modelEvent, ICompilationUnit unit) - throws CoreException { - if (modelToUnit.containsTarget(unit)) - processChangedModelUnit(modelEvent, unit); - else - processAddedCompilationUnit(modelEvent, unit); - } - - private void processChangedModelUnit(IModelProviderEvent modelEvent, ICompilationUnit unit) throws CoreException { - processRemovedCompilationUnit(modelEvent, unit); - processAddedCompilationUnit(modelEvent, unit); - } - - @Override - protected void processRemovedCompilationUnit(IModelProviderEvent modelEvent, ICompilationUnit unit) - throws CoreException { - if (modelToUnit.containsTarget(unit)) - processRemovedModelResource(modelEvent, unit); - else if (modelToInterfaceUnit.containsTarget(unit)) - processRemoveInterface(modelEvent, unit); - } - - private void processRemoveInterface(IModelProviderEvent event, ICompilationUnit unit) { - } - - @Override - protected void processRemovedPackage(IModelProviderEvent modelEvent, IJavaElementDelta delta) throws CoreException { - for (ICompilationUnit unit : modelToUnit.getTargets()) { - if (unit.getParent().getElementName().equals(delta.getElement().getElementName())) { - processRemovedCompilationUnit(modelEvent, unit); - } - } - } - - private void processRemovedModelResource(IModelProviderEvent event, ICompilationUnit file) { - Collection<JavaEEObject> modelObjects = modelToUnit.getSources(file); - for (JavaEEObject o : modelObjects) { - if (Servlet.class.isInstance(o)) - disconnectFromRoles(o); - EcoreUtil.remove((EObject) o); - } - modelToUnit.disconnect(file); - event.setEventCode(event.getEventCode() | IModelProviderEvent.REMOVED_RESOURCE); - event.addResource(file); - } - - public void modify(Runnable runnable, IPath modelPath) { - } - - public IStatus validateEdit(IPath modelPath, Object context) { - return null; - } - - @Override - protected Collection<SecurityRoleRef> getSecurityRoleRefs(JavaEEObject target) { - if (Servlet.class.isInstance(target)) - return ((Servlet) target).getSecurityRoleRefs(); - return null; - } - - @Override - protected Collection<SecurityRole> getSecurityRoles() { - return modelObject.getSecurityRoles(); - } - -} diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/mergers/WebAppMerger.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/mergers/WebAppMerger.java deleted file mode 100644 index 6d3d4112d..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/mergers/WebAppMerger.java +++ /dev/null @@ -1,308 +0,0 @@ -/*********************************************************************** - * Copyright (c) 2008 by SAP AG, Walldorf. - * 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: - * SAP AG - initial API and implementation - ***********************************************************************/ -package org.eclipse.jst.jee.model.internal.mergers; - -import java.util.ArrayList; -import java.util.List; - - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.emf.ecore.util.EcoreUtil; -import org.eclipse.jst.j2ee.webapplication.WelcomeFile; -import org.eclipse.jst.javaee.core.Description; -import org.eclipse.jst.javaee.core.JavaEEObject; -import org.eclipse.jst.javaee.core.Listener; -import org.eclipse.jst.javaee.core.RunAs; -import org.eclipse.jst.javaee.core.SecurityRole; -import org.eclipse.jst.javaee.web.Filter; -import org.eclipse.jst.javaee.web.Servlet; -import org.eclipse.jst.javaee.web.WebApp; -import org.eclipse.jst.jee.model.internal.mergers.JNDIRefsMerger; -import org.eclipse.jst.jee.model.internal.mergers.ModelElementMerger; -import org.eclipse.jst.jee.model.internal.mergers.ModelException; - -/** - * WebApp merger merges the WebApp artifact. - * - * @author Dimitar Giormov - */ -public class WebAppMerger extends ModelElementMerger { - - /** - * Constructor which gets the base and to merge WebApp element. - * - * @param _base - is the base element, into which the values will be merged. - * @param merge - is the conflicting element, which will be merged into base. - * @param kind - */ - public WebAppMerger(JavaEEObject _base, JavaEEObject merge, int kind) { - super(_base, merge, kind); - } - - /** - * Returns the base element, into which the values will be merged. - * - * @return base element, into which the values will be merged. - */ - WebApp getBaseWebApp(){ - return (WebApp) getBase(); - } - - /** - * Returns the conflicting element, which will be merged into base. - * - * @return the conflicting element, which will be merged into base. - */ - WebApp getToMergeWebApp(){ - return (WebApp) getToMerge(); - } - - - /* (non-Javadoc) - * @see org.eclipse.jst.javaee.ejb.model.mergers.ModelElementMerger#process() - */ - @Override - public List process() throws ModelException { - List warnings = new ArrayList(); - if(getToMergeWebApp() == null || getBaseWebApp() == null){ - return warnings; - } - try { - mergeServlets(warnings); - mergeFilters(warnings); - mergeListeners(warnings); - - copyGeneralData(warnings); - - mergeRunAs(warnings); - mergeJNDIRefs(warnings); - mergeSecurityRoles(warnings); - } catch (Exception e) { - throw new ModelException(e); - } - return warnings; - } - - private void mergeFilters(List warnings) { - if (getToMergeWebApp().getFilters() != null){ - copyMissingContentInBase(getToMergeWebApp().getFilters(), getBaseWebApp().getFilters()); - } - if (getToMergeWebApp().getFilterMappings() != null){ - copyAllContentInBase(getToMergeWebApp().getFilterMappings(), getBaseWebApp().getFilterMappings()); - } - } - - private void mergeListeners(List warnings) { - if (getToMergeWebApp().getListeners() != null){ - copyMissingContentInBase(getToMergeWebApp().getListeners(), getBaseWebApp().getListeners()); - } - } - - private void mergeServlets(List warnings) { - - if (getToMergeWebApp().getServlets() != null){ - copyMissingContentInBase(getToMergeWebApp().getServlets(), getBaseWebApp().getServlets()); - } - - if (getToMergeWebApp().getServletMappings() != null){ - copyAllContentInBase(getToMergeWebApp().getServletMappings(), getBaseWebApp().getServletMappings()); - } - - } - - - private void mergeJNDIRefs(List warnings) throws ModelException { - JNDIRefsMerger jndiRefsMerger = new JNDIRefsMerger(getBaseWebApp(), getToMergeWebApp(), getKind()); - warnings.addAll(jndiRefsMerger.process()); - } - - - private void mergeRunAs(List warnings) throws ModelException { - List baseServlets = getBaseWebApp().getServlets(); - List toMergeServlets = getToMergeWebApp().getServlets(); - for (Object object : toMergeServlets) { - Servlet servlet = (Servlet) object; - Servlet servletInBase = findServletInBase(servlet.getServletName(), baseServlets); - if(servletInBase != null){ - RunAs baseSecId = servletInBase.getRunAs(); - RunAs toMergeSecId = servlet.getRunAs(); - if(baseSecId == null && toMergeSecId != null){ - servletInBase.setRunAs((RunAs) EcoreUtil.copy((EObject)toMergeSecId)); - } - } - } - - } - - private Servlet findServletInBase(String servletName, List baseServlets) { - for (Object object : baseServlets) { - Servlet servlet = (Servlet) object; - if(servlet.getServletName() != null && servlet.getServletName().equals(servletName)){ - return servlet; - } - } - return null; - } - - private void mergeSecurityRoles(List warnings) { - List securityRolesBase = getBaseWebApp().getSecurityRoles(); - List securityRolesToMerge = getToMergeWebApp().getSecurityRoles(); - if (securityRolesToMerge == null){ - return; - } - for (Object sRoles : securityRolesToMerge) { - if(!containsSecRole((SecurityRole) sRoles, securityRolesBase)){ - securityRolesBase.add(EcoreUtil.copy((EObject) sRoles)); - } - } - } - - private boolean containsSecRole(SecurityRole secRole, List secRoles){ - for (Object sRoles : secRoles) { - if(((SecurityRole)sRoles).getRoleName() == null || secRole.getRoleName() == null){ - return ((SecurityRole)sRoles).getRoleName() == secRole.getRoleName(); - } - if (((SecurityRole)sRoles).getRoleName().equals(secRole.getRoleName())){ - return true; - } - } - return false; - } - - private void copyGeneralData(List warnings){ - copyJavaEEGroup(); - - if (getToMergeWebApp().getContextParams() != null && getToMergeWebApp().getContextParams().size() > 0){ - copyMissingContentInBase(getToMergeWebApp().getContextParams(), getBaseWebApp().getContextParams()); - } - - if (getToMergeWebApp().getDistributables() != null){ - copyMissingContentInBase(getToMergeWebApp().getDistributables(), getBaseWebApp().getDistributables()); - } - - if (getToMergeWebApp().getErrorPages() != null){ - copyMissingContentInBase(getToMergeWebApp().getErrorPages(), getBaseWebApp().getErrorPages()); - } - - if (getToMergeWebApp().getJspConfigs() != null){ - copyMissingContentInBase(getToMergeWebApp().getJspConfigs(), getBaseWebApp().getJspConfigs()); - } - - if (getToMergeWebApp().getLocalEncodingMappingsLists() != null){ - copyMissingContentInBase(getToMergeWebApp().getLocalEncodingMappingsLists(), getBaseWebApp().getLocalEncodingMappingsLists()); - } - - - if (getToMergeWebApp().getLoginConfigs() != null){ - copyMissingContentInBase(getToMergeWebApp().getLoginConfigs(), getBaseWebApp().getLoginConfigs()); - } - - - if (getToMergeWebApp().getMessageDestinations() != null){ - copyMissingContentInBase(getToMergeWebApp().getMessageDestinations(), getBaseWebApp().getMessageDestinations()); - } - - - if (getToMergeWebApp().getMimeMappings() != null){ - copyMissingContentInBase(getToMergeWebApp().getMimeMappings(), getBaseWebApp().getMimeMappings()); - } - - if (getToMergeWebApp().getSessionConfigs() != null){ - copyMissingContentInBase(getToMergeWebApp().getSessionConfigs(), getBaseWebApp().getSessionConfigs()); - } - - if (getToMergeWebApp().getWelcomeFileLists() != null){ - copyMissingContentInBase(getToMergeWebApp().getWelcomeFileLists(), getBaseWebApp().getWelcomeFileLists()); - } - - - } - - private void copyAllContentInBase(List listSource, List target) { - for (Object object : listSource) { - if (artifactIsValid(object)){ - target.add(EcoreUtil.copy((EObject) object)); - } - } - - } - - private void copyMissingContentInBase(List listSource, List target) { - for (Object object : listSource) { - if(artifactIsValid(object) && !artifactExists(object, target)){ - target.add(EcoreUtil.copy((EObject) object)); - } - } - - } - - private boolean artifactIsValid(Object javaEEObject) { - if (javaEEObject instanceof Servlet){ - return ( (Servlet)javaEEObject).getServletName() != null; - } else if (javaEEObject instanceof Listener){ - return ((Listener)javaEEObject).getListenerClass() != null; - } else if (javaEEObject instanceof Filter){ - return ((Filter)javaEEObject).getFilterName() != null; - } - return true; - } - - private boolean artifactExists(Object javaEEObject, List target) { - for (Object targetArtifact : target) { - if( !artifactIsValid(targetArtifact) ){ - continue; - } - if (javaEEObject instanceof Servlet){ - - if(((Servlet) targetArtifact).getServletName().equals(((Servlet)javaEEObject).getServletName())){ - return true; - } - } else if (javaEEObject instanceof Listener){ - if(((Listener) targetArtifact).getListenerClass().equals(((Listener)javaEEObject).getListenerClass())){ - return true; - } - } else if (javaEEObject instanceof Filter){ - if(((Filter) targetArtifact).getFilterName().equals(((Filter)javaEEObject).getFilterName())){ - return true; - } - } else if (javaEEObject instanceof Description){ - if(((Description) targetArtifact).getValue().equals(((Description)javaEEObject).getValue())){ - return true; - } - } else if (javaEEObject instanceof WelcomeFile){ - if(((WelcomeFile) targetArtifact).getWelcomeFile().equals(((WelcomeFile)javaEEObject).getWelcomeFile())){ - return true; - } - } - } - return false; - } - - private void copyJavaEEGroup(){ - if (getToMergeWebApp().getDescriptions() != null){ - copyAllContentInBase(getToMergeWebApp().getDescriptions(), getBaseWebApp().getDescriptions()); - } - - if (getToMergeWebApp().getDisplayNames() != null){ - copyAllContentInBase(getToMergeWebApp().getDisplayNames(), getBaseWebApp().getDisplayNames()); - } - - if (getToMergeWebApp().getIcons() != null){ - copyAllContentInBase(getToMergeWebApp().getIcons(), getBaseWebApp().getIcons()); - } - - if (getToMergeWebApp().isSetVersion()){ - getBaseWebApp().setVersion(getToMergeWebApp().getVersion()); - } - } - - -} diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/messages.properties b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/messages.properties deleted file mode 100644 index 03155a973..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/model/internal/messages.properties +++ /dev/null @@ -1 +0,0 @@ -WebAnnotationReader.DisposeWebAnnotationReader=Dispose web annotation reader diff --git a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/web/Activator.java b/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/web/Activator.java deleted file mode 100644 index fe69d55e4..000000000 --- a/plugins/org.eclipse.jst.jee.web/web/org/eclipse/jst/jee/web/Activator.java +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2005, 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.jee.web; - -import org.eclipse.core.runtime.ILog; -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.wst.common.frameworks.internal.WTPPlugin; -import org.osgi.framework.BundleContext; - -/** - * The activator class controls the plug-in life cycle - */ -public class Activator extends WTPPlugin { - - // The plug-in ID - public static final String PLUGIN_ID = "org.eclipse.jst.jee.web"; //$NON-NLS-1$ - - // The shared instance - private static Activator plugin; - - /** - * The constructor - */ - public Activator() { - } - - /* - * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) - */ - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; - } - - /* - * (non-Javadoc) - * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) - */ - public void stop(BundleContext context) throws Exception { - plugin = null; - super.stop(context); - } - - /** - * Returns the shared instance - * - * @return the shared instance - */ - public static Activator getDefault() { - return plugin; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.common.frameworks.internal.WTPPlugin#getPluginID() - */ - public String getPluginID() { - return PLUGIN_ID; - } - - public static void log( final Exception e ) - { - final ILog log = getDefault().getLog(); - final String msg = "Encountered an unexpected exception."; //$NON-NLS-1$ - - log.log( new Status( IStatus.ERROR, PLUGIN_ID, IStatus.OK, msg, e ) ); - } -} |