Sat, 07 Nov 2020 10:30:02 +0800
Added tag mips-jdk8u275-b01 for changeset fdbe50121f48
1 /*
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
23 * questions.
24 */
26 package com.sun.xml.internal.ws.server;
28 import com.sun.istack.internal.NotNull;
29 import com.sun.xml.internal.ws.api.SOAPVersion;
30 import com.sun.xml.internal.ws.api.WSBinding;
31 import com.sun.xml.internal.ws.api.message.Packet;
32 import com.sun.xml.internal.ws.api.model.SEIModel;
33 import com.sun.xml.internal.ws.api.model.wsdl.WSDLPort;
34 import com.sun.xml.internal.ws.api.pipe.Codec;
35 import com.sun.xml.internal.ws.api.pipe.FiberContextSwitchInterceptor;
36 import com.sun.xml.internal.ws.api.pipe.ServerTubeAssemblerContext;
37 import com.sun.xml.internal.ws.api.pipe.ThrowableContainerPropertySet;
38 import com.sun.xml.internal.ws.api.server.Container;
39 import com.sun.xml.internal.ws.api.server.ServiceDefinition;
40 import com.sun.xml.internal.ws.api.server.WSEndpoint;
41 import com.sun.xml.internal.ws.policy.PolicyMap;
42 import com.sun.xml.internal.ws.wsdl.OperationDispatcher;
43 import com.sun.org.glassfish.gmbal.AMXClient;
44 import com.sun.org.glassfish.gmbal.GmbalMBean;
45 import com.sun.org.glassfish.gmbal.ManagedObjectManager;
47 import javax.management.MBeanServer;
48 import javax.management.ObjectName;
49 import java.io.IOException;
50 import java.lang.annotation.Annotation;
51 import java.lang.reflect.AnnotatedElement;
52 import java.util.List;
53 import java.util.ResourceBundle;
54 import java.util.Set;
55 import java.util.concurrent.Executor;
56 import javax.xml.namespace.QName;
57 import javax.xml.ws.EndpointReference;
58 import org.w3c.dom.Element;
60 /**
61 * {@link ManagedObjectManager} proxy class for {@link WSEndpointImpl} instances that could be used when Gmbal API calls
62 * need to be deferred. The proxy tries to defer a need of a real ManagedObjectManager instance to the time when any
63 * method from {@link ManagedObjectManager} is invoked on it. In this case a real instance of ManagedObjectManager is
64 * obtained from WSEndpointImpl and the method is rather invoked on this object.
65 */
66 public class WSEndpointMOMProxy extends WSEndpoint implements ManagedObjectManager {
68 private final @NotNull
69 WSEndpointImpl wsEndpoint;
70 private ManagedObjectManager managedObjectManager;
72 WSEndpointMOMProxy(@NotNull WSEndpointImpl wsEndpoint) {
73 this.wsEndpoint = wsEndpoint;
74 }
76 /**
77 * Returns a real instance of {@link ManagedObjectManager}
78 *
79 * @return an ManagedObjectManager instance
80 */
81 @Override
82 public ManagedObjectManager getManagedObjectManager() {
83 if (managedObjectManager == null) {
84 managedObjectManager = wsEndpoint.obtainManagedObjectManager();
85 }
86 return managedObjectManager;
87 }
89 void setManagedObjectManager(ManagedObjectManager managedObjectManager) {
90 this.managedObjectManager = managedObjectManager;
91 }
93 /**
94 * Returns {@code true} if this proxy contains a reference to real ManagedObjectManager instance, {@code false}
95 * otherwise.
96 *
97 * @return {@code true} if ManagedObjectManager has been created, {@code false} otherwise.
98 */
99 public boolean isInitialized() {
100 return this.managedObjectManager != null;
101 }
103 public WSEndpointImpl getWsEndpoint() {
104 return wsEndpoint;
105 }
107 @Override
108 public void suspendJMXRegistration() {
109 getManagedObjectManager().suspendJMXRegistration();
110 }
112 @Override
113 public void resumeJMXRegistration() {
114 getManagedObjectManager().resumeJMXRegistration();
115 }
117 @Override
118 public boolean isManagedObject(Object obj) {
119 return getManagedObjectManager().isManagedObject(obj);
120 }
122 @Override
123 public GmbalMBean createRoot() {
124 return getManagedObjectManager().createRoot();
125 }
127 @Override
128 public GmbalMBean createRoot(Object root) {
129 return getManagedObjectManager().createRoot(root);
130 }
132 @Override
133 public GmbalMBean createRoot(Object root, String name) {
134 return getManagedObjectManager().createRoot(root, name);
135 }
137 @Override
138 public Object getRoot() {
139 return getManagedObjectManager().getRoot();
140 }
142 @Override
143 public GmbalMBean register(Object parent, Object obj, String name) {
144 return getManagedObjectManager().register(parent, obj, name);
145 }
147 @Override
148 public GmbalMBean register(Object parent, Object obj) {
149 return getManagedObjectManager().register(parent, obj);
150 }
152 @Override
153 public GmbalMBean registerAtRoot(Object obj, String name) {
154 return getManagedObjectManager().registerAtRoot(obj, name);
155 }
157 @Override
158 public GmbalMBean registerAtRoot(Object obj) {
159 return getManagedObjectManager().registerAtRoot(obj);
160 }
162 @Override
163 public void unregister(Object obj) {
164 getManagedObjectManager().unregister(obj);
165 }
167 @Override
168 public ObjectName getObjectName(Object obj) {
169 return getManagedObjectManager().getObjectName(obj);
170 }
172 @Override
173 public AMXClient getAMXClient(Object obj) {
174 return getManagedObjectManager().getAMXClient(obj);
175 }
177 @Override
178 public Object getObject(ObjectName oname) {
179 return getManagedObjectManager().getObject(oname);
180 }
182 @Override
183 public void stripPrefix(String... str) {
184 getManagedObjectManager().stripPrefix(str);
185 }
187 @Override
188 public void stripPackagePrefix() {
189 getManagedObjectManager().stripPackagePrefix();
190 }
192 @Override
193 public String getDomain() {
194 return getManagedObjectManager().getDomain();
195 }
197 @Override
198 public void setMBeanServer(MBeanServer server) {
199 getManagedObjectManager().setMBeanServer(server);
200 }
202 @Override
203 public MBeanServer getMBeanServer() {
204 return getManagedObjectManager().getMBeanServer();
205 }
207 @Override
208 public void setResourceBundle(ResourceBundle rb) {
209 getManagedObjectManager().setResourceBundle(rb);
210 }
212 @Override
213 public ResourceBundle getResourceBundle() {
214 return getManagedObjectManager().getResourceBundle();
215 }
217 @Override
218 public void addAnnotation(AnnotatedElement element, Annotation annotation) {
219 getManagedObjectManager().addAnnotation(element, annotation);
220 }
222 @Override
223 public void setRegistrationDebug(RegistrationDebugLevel level) {
224 getManagedObjectManager().setRegistrationDebug(level);
225 }
227 @Override
228 public void setRuntimeDebug(boolean flag) {
229 getManagedObjectManager().setRuntimeDebug(flag);
230 }
232 @Override
233 public void setTypelibDebug(int level) {
234 getManagedObjectManager().setTypelibDebug(level);
235 }
237 @Override
238 public void setJMXRegistrationDebug(boolean flag) {
239 getManagedObjectManager().setJMXRegistrationDebug(flag);
240 }
242 @Override
243 public String dumpSkeleton(Object obj) {
244 return getManagedObjectManager().dumpSkeleton(obj);
245 }
247 @Override
248 public void suppressDuplicateRootReport(boolean suppressReport) {
249 getManagedObjectManager().suppressDuplicateRootReport(suppressReport);
250 }
252 @Override
253 public void close() throws IOException {
254 getManagedObjectManager().close();
255 }
257 @Override
258 public boolean equalsProxiedInstance(WSEndpoint endpoint) {
259 if (wsEndpoint == null) {
260 return (endpoint == null);
261 }
262 return wsEndpoint.equals(endpoint);
263 }
265 @Override
266 public Codec createCodec() {
267 return this.wsEndpoint.createCodec();
268 }
270 @Override
271 public QName getServiceName() {
272 return this.wsEndpoint.getServiceName();
273 }
275 @Override
276 public QName getPortName() {
277 return this.wsEndpoint.getPortName();
278 }
280 @Override
281 public Class getImplementationClass() {
282 return this.wsEndpoint.getImplementationClass();
283 }
285 @Override
286 public WSBinding getBinding() {
287 return this.wsEndpoint.getBinding();
288 }
290 @Override
291 public Container getContainer() {
292 return this.wsEndpoint.getContainer();
293 }
295 @Override
296 public WSDLPort getPort() {
297 return this.wsEndpoint.getPort();
298 }
300 @Override
301 public void setExecutor(Executor exec) {
302 this.wsEndpoint.setExecutor(exec);
303 }
305 @Override
306 public void schedule(Packet request, CompletionCallback callback, FiberContextSwitchInterceptor interceptor) {
307 this.wsEndpoint.schedule(request, callback, interceptor);
308 }
310 @Override
311 public PipeHead createPipeHead() {
312 return this.wsEndpoint.createPipeHead();
313 }
315 @Override
316 public void dispose() {
317 if (this.wsEndpoint != null) {
318 this.wsEndpoint.dispose();
319 }
320 }
322 @Override
323 public ServiceDefinition getServiceDefinition() {
324 return this.wsEndpoint.getServiceDefinition();
325 }
327 @Override
328 public Set getComponentRegistry() {
329 return this.wsEndpoint.getComponentRegistry();
330 }
332 @Override
333 public SEIModel getSEIModel() {
334 return this.wsEndpoint.getSEIModel();
335 }
337 @Override
338 public PolicyMap getPolicyMap() {
339 return this.wsEndpoint.getPolicyMap();
340 }
342 @Override
343 public void closeManagedObjectManager() {
344 this.wsEndpoint.closeManagedObjectManager();
345 }
347 @Override
348 public ServerTubeAssemblerContext getAssemblerContext() {
349 return this.wsEndpoint.getAssemblerContext();
350 }
352 @Override
353 public EndpointReference getEndpointReference(Class clazz, String address, String wsdlAddress, Element... referenceParameters) {
354 return wsEndpoint.getEndpointReference(clazz, address, wsdlAddress, referenceParameters);
355 }
357 @Override
358 public EndpointReference getEndpointReference(Class clazz, String address, String wsdlAddress, List metadata, List referenceParameters) {
359 return wsEndpoint.getEndpointReference(clazz, address, wsdlAddress, metadata, referenceParameters);
360 }
362 @Override
363 public OperationDispatcher getOperationDispatcher() {
364 return wsEndpoint.getOperationDispatcher();
365 }
367 @Override
368 public Packet createServiceResponseForException(final ThrowableContainerPropertySet tc,
369 final Packet responsePacket,
370 final SOAPVersion soapVersion,
371 final WSDLPort wsdlPort,
372 final SEIModel seiModel,
373 final WSBinding binding)
374 {
375 return wsEndpoint.createServiceResponseForException(tc, responsePacket, soapVersion,
376 wsdlPort, seiModel, binding);
377 }
378 }