KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > wsif > naming > WSIFServiceStubRef


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  *
5  * Copyright (c) 2002 The Apache Software Foundation. All rights
6  * reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Apache Software Foundation (http://www.apache.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "WSIF" and "Apache Software Foundation" must
28  * not be used to endorse or promote products derived from this
29  * software without prior written permission. For written
30  * permission, please contact apache@apache.org.
31  *
32  * 5. Products derived from this software may not be called "Apache",
33  * nor may "Apache" appear in their name, without prior written
34  * permission of the Apache Software Foundation.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47  * SUCH DAMAGE.
48  * ====================================================================
49  *
50  * This software consists of voluntary contributions made by many
51  * individuals on behalf of the Apache Software Foundation and was
52  * originally based on software copyright (c) 2001, 2002, International
53  * Business Machines, Inc., http://www.apache.org. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  */

57
58 package org.apache.wsif.naming;
59
60 import javax.naming.NamingException JavaDoc;
61 import javax.naming.Reference JavaDoc;
62 import javax.naming.Referenceable JavaDoc;
63 import javax.naming.StringRefAddr JavaDoc;
64 import org.apache.wsif.logging.Trc;
65
66 /**
67  * This is a lightweight object which provides a reference for a service stub.
68  * When passed to Context.bind(), the getReference() method is invoked and the
69  * resulting Reference object is stored in the directory by JNDI.
70  *
71  * @author Owen Burroughs <owenb@apache.org>
72  */

73 public class WSIFServiceStubRef implements Referenceable JavaDoc {
74
75     String JavaDoc wsdlLoc;
76     String JavaDoc serviceNS;
77     String JavaDoc serviceName;
78     String JavaDoc portTypeNS;
79     String JavaDoc portTypeName;
80     String JavaDoc preferredPort;
81     String JavaDoc className;
82
83     /**
84      * Constructor that takes all necessary information needed to create a
85      * WSIFService and stub.
86      * @param wsdl The location of the wsdl file
87      * @param sNS The namespace for the service as specified in the wsdl
88      * @param sName The name of the service required, as specified in the wsdl
89      * @param ptNS The namespace of the port type required, as specified in the wsdl
90      * @param ptName The name of the port type required, as specified in the wsdl
91      * @param portName The name of the preferred port to use
92      * @param cls The fully qualified name of the interface class for the stub
93      */

94     public WSIFServiceStubRef(
95             String JavaDoc wsdl,
96             String JavaDoc sNS,
97             String JavaDoc sName,
98             String JavaDoc ptNS,
99             String JavaDoc ptName,
100             String JavaDoc portName,
101             String JavaDoc cls) {
102         Trc.entry(this, wsdl, sNS, sName, ptNS, ptName, portName, cls);
103
104         wsdlLoc = wsdl;
105         serviceNS = sNS;
106         serviceName = sName;
107         portTypeNS = ptNS;
108         portTypeName = ptName;
109         preferredPort = portName;
110         className = cls;
111         if (Trc.ON)
112             Trc.exit(deep());
113     }
114
115     /**
116      * Method to create and return a Reference object for the service.
117      * @return A Reference object containing the information required to create a
118      * WSIFService and return it, when a lookup is performed on the service using
119      * JNDI.
120      */

121     public Reference JavaDoc getReference() throws NamingException JavaDoc {
122         Trc.entry(this);
123
124         Reference JavaDoc ref =
125             new Reference JavaDoc(
126                 WSIFServiceStubRef.class.getName(),
127                 WSIFServiceObjectFactory.class.getName(),
128                 null);
129         ref.add(new StringRefAddr JavaDoc("wsdlLoc", wsdlLoc));
130         ref.add(new StringRefAddr JavaDoc("serviceNS", serviceNS));
131         ref.add(new StringRefAddr JavaDoc("serviceName", serviceName));
132         ref.add(new StringRefAddr JavaDoc("portTypeNS", portTypeNS));
133         ref.add(new StringRefAddr JavaDoc("portTypeName", portTypeName));
134         ref.add(new StringRefAddr JavaDoc("preferredPort", preferredPort));
135         ref.add(new StringRefAddr JavaDoc("className", className));
136
137         Trc.exit(ref);
138         return ref;
139     }
140
141     public String JavaDoc deep() {
142         String JavaDoc buff = "";
143         try {
144             buff = new String JavaDoc(this.toString() + "\n");
145             buff += "wsdlLoc: " + wsdlLoc;
146             buff += " serviceNS: " + serviceNS;
147             buff += " serviceName: " + serviceName;
148             buff += " portTypeNS: " + portTypeNS;
149             buff += " portTypeName: " + portTypeName;
150             buff += " preferredPort: " + preferredPort;
151             buff += " className: " + className;
152         } catch (Exception JavaDoc e) {
153             Trc.exceptionInTrace(e);
154         }
155         return buff;
156     }
157 }
Popular Tags