/******************************************************************************* * Copyright (c) 2001, 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.commonarchivecore.internal; import java.io.FileNotFoundException; import java.util.List; import java.util.Map; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EObject; import org.eclipse.jst.j2ee.application.Application; import org.eclipse.jst.j2ee.application.ConnectorModule; import org.eclipse.jst.j2ee.application.EjbModule; import org.eclipse.jst.j2ee.application.JavaClientModule; import org.eclipse.jst.j2ee.application.Module; import org.eclipse.jst.j2ee.application.WebModule; import org.eclipse.jst.j2ee.client.ApplicationClient; import org.eclipse.jst.j2ee.common.EjbRef; import org.eclipse.jst.j2ee.common.SecurityRole; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ArchiveWrappedException; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DeploymentDescriptorLoadException; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.DuplicateObjectException; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.EmptyResourceException; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ObjectNotFoundException; import org.eclipse.jst.j2ee.commonarchivecore.internal.exception.ResourceLoadException; import org.eclipse.jst.j2ee.ejb.EJBJar; import org.eclipse.jst.j2ee.ejb.EnterpriseBean; import org.eclipse.jst.j2ee.jca.Connector; import org.eclipse.jst.j2ee.webapplication.WebApp; /** * @generated */ public interface EARFile extends ModuleFile { /** * Makes a copy of * * @aModuleFile, using its local deployment descriptor; creates a new Module and adds it to the * Application deployment descriptor of this EAR file and adds the copy of the * ModuleFile to this EAR. * * @return The copied module file * * @exception DuplicateObjectException * if this EAR already contains a file with the same uri as * @aModuleFile */ public ModuleFile addCopy(ModuleFile aModuleFile) throws DuplicateObjectException; /** * This is the same as addCopy(ModuleFile) except the return value is the new ModuleRef */ public ModuleRef addCopyRef(ModuleFile aModuleFile) throws DuplicateObjectException; /** * Add a copy of the security role to the dd for the module; if an alt dd is specified, add to * that dd; otherwise add to the standard dd of the module; also add a copy of the role to the * ear file dd if a role with that name does not already exist * * @throws DuplicateObjectException * if the dd for aModule already contains a role with that name */ public SecurityRole addCopy(SecurityRole aRole, Module aModule) throws DuplicateObjectException; /** * Add a copy of the security role to the ear file's dd, if it does not already contain a role * with the same name */ public SecurityRole addCopyIfNotExists(SecurityRole aRole); EObject getAltDeploymentDescriptor(Module aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException; /** * Returns a filtered list of ApplicationClientFiles; adds will not be reflected; use * * @link Archive#add(File) */ public List getApplicationClientFiles(); /** * Returns a filtered list of ClientModuleRefs */ public List getClientModuleRefs(); /** * @throws DeploymentDescriptorLoadException - * is a runtime exception, because we can't override the signature of the generated * methods */ /** * @generated This field/method will be replaced during code generation * @return The DeploymentDescriptor reference */ Application getDeploymentDescriptor() throws DeploymentDescriptorLoadException; Connector getDeploymentDescriptor(ConnectorModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException; EJBJar getDeploymentDescriptor(EjbModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException; ApplicationClient getDeploymentDescriptor(JavaClientModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException; EObject getDeploymentDescriptor(Module aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException; WebApp getDeploymentDescriptor(WebModule aModule) throws FileNotFoundException, ResourceLoadException, EmptyResourceException; /** * Returns a filtered list of EJBJarFiles; adds will not be reflected; use * * @link Archive#add(File) */ public List getEJBJarFiles(); /** * Returns a filtered list of EJBModuleRefs */ public List getEJBModuleRefs(); /** * Return an enterprise bean referenced by the EjbRef, if one exists. The ejb-link value of the * ref must equate to a named enterprise bean contained in the jar; otherwise return null. * Returns the first hit found; assumption that the ejb names are unique within the scope of the * ear file. This will likely be replaced with a better way for dereferencing ejb refs. * * Can be used with ejb 1.1 references only. * * @deprecated {@link#getEnterpiseBeanFromRef(EjbRef ref, String moduleUri ) * @param EjbRef * ref - An ejb reference * @return EnterpriseBean */ public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref); /** * Return an enterprise bean referenced by the EjbRef and a module uri, if one exists. The * ejb-link value of the ref must equate to a named enterprise bean contained in the jar; * otherwise return null. Returns the first hit found; assumption that the ejb names are unique * within the scope of the ear file. This will likely be replaced with a better way for * dereferencing ejb refs. * * Can be used with ejb 1.1 & ejb 2.0 references. * * @param EjbRef * ref - An ejb reference * @param String * moduleUri - The module uri * @return EnterpriseBean */ public EnterpriseBean getEnterpiseBeanFromRef(EjbRef ref, String moduleUri); public Module getModule(String uri, String altDD); /** * @return the module ref which references * @moduleDescriptor */ public ModuleRef getModuleRef(Module moduleDescriptor); /** * @return java.util.List of all module refs in this EAR having a reference to * @aModuleFile */ public List getModuleRefs(ModuleFile aModuleFile); /** * Returns a filtered list of ModuleFiles; adds will not be reflected; use * * @link Archive#add(File) */ public List getModuleFiles(); /** * Returns a filtered list of RarFiles; adds will not be reflected; use * * @link Archive#add(File) */ public List getRARFiles(); /** * Returns a filtered list of FARFiles; adds will not be reflected; use * {@link Archive#add(File)} */ public List getFARFiles(); /** * Returns a filtered list of ConnectorModuleRefs */ public List getConnectorModuleRefs(); /** * Return all security roles from all existing modules (EjbModule and WebModule) */ public EList getRolesFromAllModules(); /** * Return all security roles from an existing module (EjbModule and WebModule) */ public EList getRolesFromModule(Module aModule); /** * Returns a filtered list of WarFiles; adds will not be reflected; use * * @link Archive#add(File) */ public List getWARFiles(); /** * Returns a filtered list of WebModuleRefs */ public List getWebModuleRefs(); /** * Copy the role into each ModuleFile in the ear file which does not already contain the role * Assumption: a role with the same name as * * @role exists in the application deployment descriptor */ public void pushDownRole(SecurityRole role); /** * Copy the role into the ModuleFile for the module, if the module does not already contain the * role Assumption: a role with the same name as * * @role exists in the application deployment descriptor */ public void pushDownRole(SecurityRole role, Module aModule); /** * Attempt to remove the module for the parameter from this object's dd, then remove the module * file, if it is not referenced from any other ModuleRef, from the list of files */ public void remove(ModuleRef aModuleRef); /** * Rename the security role in the ear file's dd; push this change down to any contained module * dd's; if the module specifies an alt-dd, the change will be reflected there; otherwise it * will be reflected in the standard dd of the module * * @throws ObjectNotFoundException * if the dd for the ear does not contain a role with the existingRoleName * * @throws DuplicateObjectException * if the dd for the ear file already contains a role with the new name */ public void renameSecurityRole(String existingRoleName, String newRoleName) throws ObjectNotFoundException, DuplicateObjectException; /** * For each security role in the dd for each module, add a copy to the ear file's dd; if an * alt-dd is specified for the module, use that dd; otherwise use the standard dd in the module * file */ public void rollUpRoles(); /** * For each security role in the dd for a module, add a copy to the ear file's dd; if an alt-dd * is specified for the module, use that dd; otherwise use the standard dd in the module file */ public void rollUpRoles(Module aModule); /** * @generated This field/method will be replaced during code generation * @param l * The new value of the DeploymentDescriptor reference */ void setDeploymentDescriptor(Application value); /** * @generated This field/method will be replaced during code generation * @return The list of ModuleRefs references */ EList getModuleRefs(); public List getArchivesOfType(String type); /** * Return a Map of Modules as keys and a List of EJB References as the values. This will let you * know which Modules the references came from. You can filter the list of EJB References * returned on the linked attributed of the reference. This means that you can filter linked * references, non-linked references, or neither (i.e., return all references). */ Map getEJBReferences(boolean filterLinkedReferences, boolean filterNonLinkedReferences) throws ArchiveWrappedException; }