001: /*
002: * The Apache Software License, Version 1.1
003: *
004: *
005: * Copyright (c) 2002 The Apache Software Foundation. All rights
006: * reserved.
007: *
008: * Redistribution and use in source and binary forms, with or without
009: * modification, are permitted provided that the following conditions
010: * are met:
011: *
012: * 1. Redistributions of source code must retain the above copyright
013: * notice, this list of conditions and the following disclaimer.
014: *
015: * 2. Redistributions in binary form must reproduce the above copyright
016: * notice, this list of conditions and the following disclaimer in
017: * the documentation and/or other materials provided with the
018: * distribution.
019: *
020: * 3. The end-user documentation included with the redistribution,
021: * if any, must include the following acknowledgment:
022: * "This product includes software developed by the
023: * Apache Software Foundation (http://www.apache.org/)."
024: * Alternately, this acknowledgment may appear in the software itself,
025: * if and wherever such third-party acknowledgments normally appear.
026: *
027: * 4. The names "WSIF" and "Apache Software Foundation" must
028: * not be used to endorse or promote products derived from this
029: * software without prior written permission. For written
030: * permission, please contact apache@apache.org.
031: *
032: * 5. Products derived from this software may not be called "Apache",
033: * nor may "Apache" appear in their name, without prior written
034: * permission of the Apache Software Foundation.
035: *
036: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
037: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
038: * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
039: * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
040: * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
041: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
042: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
043: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
044: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
045: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
046: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
047: * SUCH DAMAGE.
048: * ====================================================================
049: *
050: * This software consists of voluntary contributions made by many
051: * individuals on behalf of the Apache Software Foundation and was
052: * originally based on software copyright (c) 2001, 2002, International
053: * Business Machines, Inc., http://www.apache.org. For more
054: * information on the Apache Software Foundation, please see
055: * <http://www.apache.org/>.
056: */
057:
058: package org.apache.wsif.naming;
059:
060: import javax.naming.NamingException;
061: import javax.naming.Reference;
062: import javax.naming.Referenceable;
063: import javax.naming.StringRefAddr;
064: import org.apache.wsif.logging.Trc;
065:
066: /**
067: * This is a lightweight object which provides a reference for a WSIFService.
068: * When passed to Context.bind(), the getReference() method is invoked and the
069: * resulting Reference object is stored in the directory by JNDI.
070: *
071: * @author Owen Burroughs <owenb@apache.org>
072: */
073: public class WSIFServiceRef implements Referenceable {
074:
075: String wsdlLoc;
076: String serviceNS;
077: String serviceName;
078: String portTypeNS;
079: String portTypeName;
080:
081: /**
082: * Constructor that takes all necessary information needed to create a
083: * WSIFService.
084: * @param wsdl The location of the wsdl file
085: * @param sNS The namespace for the service as specified in the wsdl
086: * @param sName The name of the service required, as specified in the wsdl
087: * @param ptNS The namespace of the port type required, as specified in the wsdl
088: * @param ptName The name of the port type required, as specified in the wsdl
089: */
090: public WSIFServiceRef(String wsdl, String sNS, String sName,
091: String ptNS, String ptName) {
092: Trc.entry(this , wsdl, sNS, sName, ptNS, ptName);
093:
094: wsdlLoc = wsdl;
095: serviceNS = sNS;
096: serviceName = sName;
097: portTypeNS = ptNS;
098: portTypeName = ptName;
099: if (Trc.ON)
100: Trc.exit(deep());
101: }
102:
103: /**
104: * Method to create and return a Reference object for the service.
105: * @return A Reference object containing the information required to create a
106: * WSIFService and return it, when a lookup is performed on the service using
107: * JNDI.
108: */
109: public Reference getReference() throws NamingException {
110: Trc.entry(this );
111:
112: Reference ref = new Reference(WSIFServiceRef.class.getName(),
113: WSIFServiceObjectFactory.class.getName(), null);
114: ref.add(new StringRefAddr("wsdlLoc", wsdlLoc));
115: ref.add(new StringRefAddr("serviceNS", serviceNS));
116: ref.add(new StringRefAddr("serviceName", serviceName));
117: ref.add(new StringRefAddr("portTypeNS", portTypeNS));
118: ref.add(new StringRefAddr("portTypeName", portTypeName));
119:
120: Trc.exit(ref);
121: return ref;
122: }
123:
124: public String deep() {
125: String buff = "";
126: try {
127: buff = new String(this .toString() + "\n");
128: buff += "wsdlLoc: " + wsdlLoc;
129: buff += " serviceNS: " + serviceNS;
130: buff += " serviceName: " + serviceName;
131: buff += " portTypeNS: " + portTypeNS;
132: buff += " portTypeName: " + portTypeName;
133: } catch (Exception e) {
134: Trc.exceptionInTrace(e);
135: }
136: return buff;
137: }
138: }
|