001: /*
002: * JOnAS: Java(TM) Open Application Server
003: * Copyright (C) 1999 Bull S.A.
004: * Contact: jonas-team@objectweb.org
005: *
006: * This library is free software; you can redistribute it and/or
007: * modify it under the terms of the GNU Lesser General Public
008: * License as published by the Free Software Foundation; either
009: * version 2.1 of the License, or any later version.
010: *
011: * This library is distributed in the hope that it will be useful,
012: * but WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * Lesser General Public License for more details.
015: *
016: * You should have received a copy of the GNU Lesser General Public
017: * License along with this library; if not, write to the Free Software
018: * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
019: * USA
020: *
021: * Initial developer(s): ____________________________________.
022: * Contributor(s):
023: * JOnAS 2.4 Sebastien Chassande-Barrioz (sebastien.chassande@inrialpes.fr)
024: * JOnAS 3.0 Eric Hardesty (Eric.Hardesty@bull.com)
025: *
026: * --------------------------------------------------------------------------
027: * $Id: ResourceService.java 5699 2004-10-29 23:33:37Z ehardesty $
028: * --------------------------------------------------------------------------
029: */
030: package org.objectweb.jonas.resource;
031:
032: import java.net.URL;
033:
034: import javax.naming.Context;
035:
036: import org.objectweb.jonas.service.Service;
037:
038: /**
039: * JCA resource service implmentation
040: * @author Philippe Coq
041: * Contributor(s):
042: * JOnAS 2.4 Sebastien Chassande-Barrioz (sebastien.chassande@inrialpes.fr)
043: * JOnAS 3.0 Eric Hardesty (Eric.Hardesty@bull.com)
044: * JOnAS 4.0 Adriana Danes (JSR 77 + use of Jakarta Modeler Component : http://jakarta.apache.org/commons/modeler)
045: * Eric Hardesty (J2CA 1.5)
046: *
047: */
048: public interface ResourceService extends Service {
049:
050: /**
051: * Create a Resource Adapter
052: * @param ctx Context that defines the:
053: * 1) name of the resource adapter.
054: * 2) information to determine if the rar is in an ear
055: *
056: * the configuration information for this resource adapter
057: * must be found in the xml files in the rar file
058: * being deployed
059: * @return The ObjectName of the MBean associated to the deployed J2EE Application
060: * @throws Exception if the create of the RAR object fails.
061: */
062: String createResourceAdapter(Context ctx) throws Exception;
063:
064: /**
065: * Deploy an RAR, used by management applications via J2EEServer managed object
066: * @param fileName the fileName of the rar which must be be deployed.
067: * @return The ObjectName of the MBean associated to the deployed J2EE Application
068: * @throws Exception if the deployment of the RAR failed.
069: */
070: String deployRar(String fileName) throws Exception;
071:
072: /**
073: * Deploy the given rars of an ear file with the specified parent
074: * classloader (ear classloader). (This method is only used for
075: * the ear applications).
076: * @param ctx Context that defines the:
077: * This context contains the following parameters :<BR>
078: * - urls the list of the urls of the rars to deploy.<BR>
079: * - earRootURL the URL of the ear application file.<BR>
080: * - earClassLoader the ear classLoader of the j2ee app.<BR>
081: * - altDDs the optional URI of deployment descriptor.<BR>
082: * @throws ResourceServiceException if an error occurs during the deployment.
083: */
084: void deployRars(Context ctx) throws ResourceServiceException;
085:
086: /**
087: * Return the Rars directory.
088: * @return The Rars directory
089: */
090: String getRarsDirectory();
091:
092: /**
093: * Test if the specified filename is already deployed or not.
094: * @param fileName the name of the rar file.
095: * @return true if the rar is deployed, else false.
096: */
097: Boolean isRarDeployed(String fileName);
098:
099: /**
100: * Test if the specified unpack name is already deployed or not. This
101: * method is defined in the RarService interface.
102: * @param unpackName the name of the rar file.
103: * @return true if the rar is deployed, else false.
104: */
105: boolean isRarDeployedByUnpackName(String unpackName);
106:
107: /**
108: * Undeploy an RAR, used by management applications via J2EEServer managed object
109: * @param fileName the fileName of the rar which must be be undeployed.
110: * @throws Exception if the undeployment of the RAR failed.
111: */
112: void unDeployRar(String fileName) throws Exception;
113:
114: /**
115: * Undeploy the given rars of an ear file with the specified parent
116: * classloader (ear classloader). (This method is only used for
117: * the ear applications).
118: * @param urls the list of the urls of the rars to deploy.
119: * @param earUrl ear's URL
120: */
121: void unDeployRars(URL[] urls, URL earUrl);
122:
123: }
|