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 1any 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: Christophe Ney
022: * --------------------------------------------------------------------------
023: * $Id: ResourceRefDesc.java 5161 2004-07-21 11:37:34Z joaninh $
024: * --------------------------------------------------------------------------
025: */package org.objectweb.jonas_lib.deployment.api;
026:
027: import org.objectweb.jonas_lib.deployment.xml.ResourceRef;
028: import org.objectweb.jonas_lib.deployment.xml.JonasResource;
029:
030: /**
031: * This class represents the description of a ResourceRef object
032: * @author Christophe Ney
033: * @author Florent Benoit
034: */
035: public class ResourceRefDesc {
036:
037: /**
038: * To indicate that the application manage the authentication.
039: */
040: public static final int APPLICATION_AUTH = 0;
041:
042: /**
043: * To indicate that the container manage the authentication.
044: */
045: public static final int CONTAINER_AUTH = 1;
046:
047: /**
048: * List of all possible authentication.
049: */
050: private static final String[] AUTH = { "APPLICATION_AUTH",
051: "CONTAINER_AUTH" };
052:
053: /**
054: * The resource ref name.
055: */
056: private String name;
057:
058: /**
059: * The resource ref type name.
060: */
061: private String typeName;
062:
063: /**
064: * The resource ref authentication.
065: */
066: private int authentication;
067:
068: /**
069: * The resource ref jndi name.
070: */
071: private String jndiName;
072:
073: /**
074: * Construct a descriptor for the resource-ref and jonas-resource tags.
075: * @param classLoader the classloader for the classes.
076: * @param res the resource-ref resulting of the web.xml parsing.
077: * @param jRes the jonas-resource resulting of the jonas-web.xml parsing.
078: * @throws DeploymentDescException when missing information for
079: * creating the ResourceRefDesc.
080: */
081: public ResourceRefDesc(ClassLoader classLoader, ResourceRef res,
082: JonasResource jRes) throws DeploymentDescException {
083: name = res.getResRefName();
084: typeName = new String(res.getResType());
085: String auth = res.getResAuth();
086:
087: if (auth.equals("Application")) {
088: authentication = APPLICATION_AUTH;
089: } else if (auth.equals("Container")) {
090: authentication = CONTAINER_AUTH;
091: } else {
092: throw new DeploymentDescException(
093: "res-auth not valid for resource-ref " + name);
094: }
095: jndiName = jRes.getJndiName();
096: }
097:
098: /**
099: * Get resource ref. name
100: * @return Name of the resource ref.
101: */
102: public String getName() {
103: return name;
104: }
105:
106: /**
107: * Get resource ref. type name
108: * @return Class name of the resource ref.
109: */
110: public String getTypeName() {
111: return typeName;
112: }
113:
114: /**
115: * Get the authentication of the resource ref.
116: * @return Authentication value within APPLICATION_AUTH, CONTAINER_AUTH
117: */
118: public int getAuthentication() {
119: return authentication;
120: }
121:
122: /**
123: * Assessor for JDBC resource
124: * @return true if the resource is Jdbc compliant
125: */
126: public boolean isJdbc() {
127: return "javax.sql.DataSource".equals(typeName);
128: }
129:
130: /**
131: * Get the jndi name of the resource ref.
132: * @return String representation of the JNDI name
133: */
134: public String getJndiName() {
135: return jndiName;
136: }
137:
138: /**
139: * String representation of the object for test purpose
140: * @return String representation of this object
141: */
142: public String toString() {
143: StringBuffer ret = new StringBuffer();
144: ret.append("\ngetName()=" + getName());
145: ret.append("\ngetTypeName()=" + getTypeName());
146: ret
147: .append("\ngetAuthentication()="
148: + AUTH[getAuthentication()]);
149: ret.append("\nisJdbc()=" + new Boolean(isJdbc()).toString());
150: ret.append("\ngetJndiName()=" + getJndiName());
151: return ret.toString();
152: }
153: }
|