KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > celtix > bus > wsdl > WSDLManagerInstrumentation


1 package org.objectweb.celtix.bus.wsdl;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.HashSet JavaDoc;
5 import java.util.Iterator JavaDoc;
6 import java.util.List JavaDoc;
7 import java.util.Set JavaDoc;
8 import java.util.WeakHashMap JavaDoc;
9
10 import javax.wsdl.Binding;
11 import javax.wsdl.Definition;
12 import javax.wsdl.Operation;
13 import javax.wsdl.PortType;
14 import javax.xml.namespace.QName JavaDoc;
15
16 import org.objectweb.celtix.bus.management.jmx.export.annotation.ManagedAttribute;
17 import org.objectweb.celtix.bus.management.jmx.export.annotation.ManagedOperation;
18 import org.objectweb.celtix.bus.management.jmx.export.annotation.ManagedResource;
19 import org.objectweb.celtix.management.Instrumentation;
20
21 @ManagedResource(componentName = "WSDLManager",
22                  description = "The Celtix bus wsdl model component ",
23                  currencyTimeLimit = 15, persistPolicy = "OnUpdate")
24 public class WSDLManagerInstrumentation implements Instrumentation {
25     private static final String JavaDoc INSTRUMENTED_NAME = "Bus.WSDLManager";
26     private String JavaDoc objectName;
27     private WSDLManagerImpl wsdlManager;
28     private WeakHashMap JavaDoc<Object JavaDoc, Definition> definitionsMap;
29    
30     
31     public WSDLManagerInstrumentation(WSDLManagerImpl wsdl) {
32         wsdlManager = wsdl;
33         objectName = ",name=WSDLManager";
34         definitionsMap = wsdlManager.definitionsMap;
35     }
36        
37     // get the wsdl model information
38

39     @ManagedAttribute(description = "The celtix bus WSDL provider the Service",
40                       persistPolicy = "OnUpdate")
41     public String JavaDoc[] getServices() {
42         List JavaDoc<String JavaDoc> strList = new ArrayList JavaDoc<String JavaDoc>();
43         Set JavaDoc<Definition> defSet = new HashSet JavaDoc<Definition>(definitionsMap.values());
44         for (Iterator JavaDoc<Definition> it = defSet.iterator();
45             it.hasNext();) {
46             Definition definition = it.next();
47             String JavaDoc defName = "Definition: " + definition.getQName().toString();
48             for (Iterator JavaDoc jt = definition.getServices().keySet().iterator();
49                 jt.hasNext();) {
50                 QName JavaDoc serviceQName = (QName JavaDoc)jt.next();
51                 String JavaDoc name = defName + " Service: " + serviceQName.toString();
52                 strList.add(name);
53             }
54         }
55         String JavaDoc[] strings = new String JavaDoc[strList.size()];
56         return strList.toArray(strings);
57     }
58     
59     @ManagedAttribute(description = "The celtix bus WSDL provider the Bindings",
60                       persistPolicy = "OnUpdate")
61     public String JavaDoc[] getBindings() {
62         List JavaDoc<String JavaDoc> strList = new ArrayList JavaDoc<String JavaDoc>();
63         Set JavaDoc<Definition> defSet = new HashSet JavaDoc<Definition>(definitionsMap.values());
64         for (Iterator JavaDoc<Definition> it = defSet.iterator();
65             it.hasNext();) {
66             Definition definition = it.next();
67             String JavaDoc defName = "Definition: " + definition.getQName().toString();
68             for (Iterator JavaDoc jt = definition.getBindings().values().iterator();
69                 jt.hasNext();) {
70                 Binding binding = (Binding)jt.next();
71                 String JavaDoc name = defName + " Binding: " + binding.getQName().toString();
72                 strList.add(name);
73             }
74         }
75         String JavaDoc[] strings = new String JavaDoc[strList.size()];
76         return strList.toArray(strings);
77     }
78     
79     @ManagedAttribute(description = "The celtix bus WSDL provider the PortTypes",
80                       persistPolicy = "OnUpdate")
81     public String JavaDoc[] getPorts() {
82         List JavaDoc<String JavaDoc> strList = new ArrayList JavaDoc<String JavaDoc>();
83         Set JavaDoc<Definition> defSet = new HashSet JavaDoc<Definition>(definitionsMap.values());
84         for (Iterator JavaDoc<Definition> it = defSet.iterator();
85             it.hasNext();) {
86             Definition definition = it.next();
87             String JavaDoc defName = "Definition: " + definition.getQName().toString();
88             for (Iterator JavaDoc jt = definition.getPortTypes().values().iterator();
89                 jt.hasNext();) {
90                 PortType port = (PortType)jt.next();
91                 String JavaDoc name = defName + " PortType: " + port.getQName().toString();
92                 strList.add(name);
93             }
94         }
95         String JavaDoc[] strings = new String JavaDoc[strList.size()];
96         return strList.toArray(strings);
97     }
98     
99     // get the address
100

101     @ManagedOperation(currencyTimeLimit = 30,
102                       description = "The celtix bus WSDL defined service and port provider operation")
103     public String JavaDoc[] getOperation(String JavaDoc def, String JavaDoc pt) {
104         List JavaDoc<String JavaDoc> strList = new ArrayList JavaDoc<String JavaDoc>();
105         Definition definition = null;
106         PortType port = null;
107         Set JavaDoc<Definition> defSet = new HashSet JavaDoc<Definition>(definitionsMap.values());
108         for (Iterator JavaDoc<Definition> it = defSet.iterator();
109             it.hasNext();) {
110             definition = it.next();
111             if (def.compareTo(definition.getQName().getLocalPart()) == 0) {
112                 for (Iterator JavaDoc jt = definition.getPortTypes().values().iterator();
113                         jt.hasNext();) {
114                     port = (PortType)jt.next();
115                     if (pt.compareTo(port.getQName().getLocalPart()) == 0) {
116                         break;
117                     }
118                 }
119                 break;
120             }
121         }
122         if (definition != null && port != null) {
123             for (Iterator JavaDoc it = port.getOperations().iterator(); it.hasNext();) {
124                 Operation opt = (Operation)it.next();
125                 String JavaDoc name = "Operation: " + opt.getName();
126                 strList.add(name);
127             }
128         }
129         String JavaDoc[] strings = new String JavaDoc[strList.size()];
130         return strList.toArray(strings);
131     }
132     
133        
134     public String JavaDoc getInstrumentationName() {
135         return INSTRUMENTED_NAME;
136     }
137
138     public Object JavaDoc getComponent() {
139         return wsdlManager;
140     }
141         
142
143     public String JavaDoc getUniqueInstrumentationName() {
144         return objectName;
145     }
146
147 }
148
Popular Tags