KickJava   Java API By Example, From Geeks To Geeks.

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


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 WSIFService.
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 WSIFServiceRef 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
81     /**
82      * Constructor that takes all necessary information needed to create a
83      * WSIFService.
84      * @param wsdl The location of the wsdl file
85      * @param sNS The namespace for the service as specified in the wsdl
86      * @param sName The name of the service required, as specified in the wsdl
87      * @param ptNS The namespace of the port type required, as specified in the wsdl
88      * @param ptName The name of the port type required, as specified in the wsdl
89      */

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

113     public Reference JavaDoc getReference() throws NamingException JavaDoc {
114         Trc.entry(this);
115
116         Reference JavaDoc ref =
117             new Reference JavaDoc(
118                 WSIFServiceRef.class.getName(),
119                 WSIFServiceObjectFactory.class.getName(),
120                 null);
121         ref.add(new StringRefAddr JavaDoc("wsdlLoc", wsdlLoc));
122         ref.add(new StringRefAddr JavaDoc("serviceNS", serviceNS));
123         ref.add(new StringRefAddr JavaDoc("serviceName", serviceName));
124         ref.add(new StringRefAddr JavaDoc("portTypeNS", portTypeNS));
125         ref.add(new StringRefAddr JavaDoc("portTypeName", portTypeName));
126
127         Trc.exit(ref);
128         return ref;
129     }
130
131     public String JavaDoc deep() {
132         String JavaDoc buff = "";
133         try {
134             buff = new String JavaDoc(this.toString() + "\n");
135             buff += "wsdlLoc: " + wsdlLoc;
136             buff += " serviceNS: " + serviceNS;
137             buff += " serviceName: " + serviceName;
138             buff += " portTypeNS: " + portTypeNS;
139             buff += " portTypeName: " + portTypeName;
140         } catch (Exception JavaDoc e) {
141             Trc.exceptionInTrace(e);
142         }
143         return buff;
144     }
145 }
Popular Tags