Author: jim.ma
Date: 2013-06-14 03:35:08 -0400 (Fri, 14 Jun 2013)
New Revision: 17671
Added:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/ServiceContainerEndpointRegistry.java
Removed:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointRegistryService.java
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/WSLogger.java
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/dmr/WSEndpointMetrics.java
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/dmr/WSSubsystemAdd.java
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointPublishService.java
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointService.java
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/PortComponentLinkService.java
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/EndpointRegistryFactory.java
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/WSServices.java
Log:
[JBWS-3643]:Change the EndpointRegistry to use MSC's registry
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/WSLogger.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/WSLogger.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/WSLogger.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -243,11 +243,11 @@
void ignoringPortComponentRef(Object o);
@LogMessage(level = ERROR)
- @Message(id = 15591, value = "Cannot register record processor with JMX
server")
+ @Message(id = 15591, value = "Cannot register record processor in JMX
server")
void cannotRegisterRecordProcessor();
@LogMessage(level = ERROR)
- @Message(id = 15592, value = "Cannot unregister record processor with JMX
server")
+ @Message(id = 15592, value = "Cannot unregister record processor from JMX
server")
void cannotUnregisterRecordProcessor();
@LogMessage(level = INFO)
@@ -261,4 +261,13 @@
@LogMessage(level = TRACE)
@Message(id = 15597, value = "Child '%s' not found for VirtualFile:
%s")
void missingChild(String child, VirtualFile file);
+
+ @LogMessage(level = ERROR)
+ @Message(id = 15600, value = "Cannot register endpoint: %s in JMX server")
+ void cannotRegisterEndpoint(Object endpoint);
+
+ @LogMessage(level = ERROR)
+ @Message(id = 15601, value = "Cannot unregister endpoint: %s from JMX
server")
+ void cannotUnregisterEndpoint(Object endpoint);
+
}
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/dmr/WSEndpointMetrics.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/dmr/WSEndpointMetrics.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/dmr/WSEndpointMetrics.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -27,8 +27,6 @@
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
import org.jboss.as.controller.AttributeDefinition;
import org.jboss.as.controller.OperationContext;
@@ -40,9 +38,10 @@
import org.jboss.dmr.ModelNode;
import org.jboss.dmr.ModelType;
import org.jboss.msc.service.ServiceController;
+import org.jboss.msc.service.ServiceName;
+import org.jboss.msc.service.ServiceRegistry;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.management.EndpointMetrics;
-import org.jboss.wsf.spi.management.EndpointRegistry;
/**
* Provides WS endpoint metrics.
@@ -92,10 +91,10 @@
if (context.isNormalServer()) {
context.addStep(new OperationStepHandler() {
public void execute(OperationContext context, ModelNode operation) throws
OperationFailedException {
- final ServiceController<?> controller =
context.getServiceRegistry(false).getService(WSServices.REGISTRY_SERVICE);
- if (controller != null) {
+ final ServiceRegistry registry = context.getServiceRegistry(false);
+ if (registry != null) {
try {
- context.getResult().set(getEndpointMetricsFragment(operation,
controller));
+ context.getResult().set(getEndpointMetricsFragment(operation,
registry));
} catch (Exception e) {
throw new OperationFailedException(new
ModelNode(getFallbackMessage() + ": " + e.getMessage()));
}
@@ -111,7 +110,8 @@
context.stepCompleted();
}
- private ModelNode getEndpointMetricsFragment(final ModelNode operation, final
ServiceController<?> controller) throws OperationFailedException {
+ @SuppressWarnings("unchecked")
+ private ModelNode getEndpointMetricsFragment(final ModelNode operation, final
ServiceRegistry registry) throws OperationFailedException {
final PathAddress address = PathAddress.pathAddress(operation.require(OP_ADDR));
String endpointId;
try {
@@ -122,16 +122,9 @@
final String metricName = operation.require(NAME).asString();
final String webContext = endpointId.substring(0,
endpointId.indexOf(":"));
final String endpointName =
endpointId.substring(endpointId.indexOf(":") + 1);
- ObjectName endpointObjectName;
- try {
- endpointObjectName = new ObjectName("jboss.ws:context=" +
webContext + ",endpoint=" + endpointName);
- } catch (final MalformedObjectNameException e) {
- throw new OperationFailedException(new ModelNode().set(e.getMessage()));
- }
-
- final EndpointRegistry registry = (EndpointRegistry) controller.getValue();
- final Endpoint endpoint = registry.getEndpoint(endpointObjectName);
-
+ ServiceName endpointServiceName =
WSServices.ENDPOINT_SERVICE.append("context="+webContext).append(endpointName);
+ ServiceController<Endpoint> service =
(ServiceController<Endpoint>)WSServices.getContainerRegistry().getService(endpointServiceName);
+ Endpoint endpoint= service.getValue();
final ModelNode result = new ModelNode();
if (endpoint != null && endpoint.getEndpointMetrics() != null) {
final EndpointMetrics endpointMetrics = endpoint.getEndpointMetrics();
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/dmr/WSSubsystemAdd.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/dmr/WSSubsystemAdd.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/dmr/WSSubsystemAdd.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -41,7 +41,6 @@
import org.jboss.as.server.AbstractDeploymentChainStep;
import org.jboss.as.server.DeploymentProcessorTarget;
import org.jboss.as.webservices.config.ServerConfigImpl;
-import org.jboss.as.webservices.service.EndpointRegistryService;
import org.jboss.as.webservices.service.PortComponentLinkService;
import org.jboss.as.webservices.service.ServerConfigService;
import org.jboss.as.webservices.util.ModuleClassLoaderProvider;
@@ -85,8 +84,6 @@
if (!appclient) {
ServerConfigImpl serverConfig = createServerConfig(model, false, context);
newControllers.add(ServerConfigService.install(serviceTarget, serverConfig,
verificationHandler));
- newControllers.add(EndpointRegistryService.install(serviceTarget,
verificationHandler));
-
final Resource webSubsystem =
context.readResourceFromRoot(PathAddress.pathAddress(PathElement.pathElement("subsystem",
"web")));
String defaultHost =
webSubsystem.getModel().get("default-virtual-server").asString();
newControllers.add(PortComponentLinkService.install(serviceTarget,
defaultHost, verificationHandler));
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointPublishService.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointPublishService.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointPublishService.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -122,7 +122,6 @@
final EndpointPublishService service = new EndpointPublishService(context, loader,
urlPatternToClassName, jbwmd, wsmd, jbwsmd);
final ServiceBuilder<Context> builder =
serviceTarget.addService(service.getName(), service);
builder.addDependency(DependencyType.REQUIRED, WSServices.CONFIG_SERVICE);
- builder.addDependency(DependencyType.REQUIRED, WSServices.REGISTRY_SERVICE);
builder.addDependency(WebSubsystemServices.JBOSS_WEB_HOST.append(hostName),
VirtualHost.class, service.getHostInjector());
return builder;
}
Deleted:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointRegistryService.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointRegistryService.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointRegistryService.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -1,91 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2012, Red Hat, Inc., and individual contributors
- * as indicated by the @author tags. See the copyright.txt file in the
- * distribution for a full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
- */
-package org.jboss.as.webservices.service;
-
-import javax.management.MBeanServer;
-
-import org.jboss.as.webservices.util.WSServices;
-import org.jboss.msc.service.Service;
-import org.jboss.msc.service.ServiceBuilder;
-import org.jboss.msc.service.ServiceBuilder.DependencyType;
-import org.jboss.msc.service.ServiceController;
-import org.jboss.msc.service.ServiceController.Mode;
-import org.jboss.msc.service.ServiceListener;
-import org.jboss.msc.service.ServiceName;
-import org.jboss.msc.service.ServiceTarget;
-import org.jboss.msc.service.StartContext;
-import org.jboss.msc.service.StartException;
-import org.jboss.msc.service.StopContext;
-import org.jboss.msc.value.InjectedValue;
-import org.jboss.ws.common.management.DefaultEndpointRegistry;
-import org.jboss.ws.common.management.ManagedEndpointRegistry;
-import org.jboss.wsf.spi.management.EndpointRegistry;
-
-/**
- * The service for the endpoint registry
- *
- * @author alessio.soldano(a)jboss.com
- * @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
- */
-public final class EndpointRegistryService implements Service<EndpointRegistry> {
-
- private static final ServiceName MBEAN_SERVER_NAME =
ServiceName.JBOSS.append("mbean", "server");
- private static final EndpointRegistryService INSTANCE = new
EndpointRegistryService();
- private final InjectedValue<MBeanServer> injectedMBeanServer = new
InjectedValue<MBeanServer>();
- private volatile EndpointRegistry registry;
-
- private EndpointRegistryService() {
- }
-
- @Override
- public EndpointRegistry getValue() {
- return registry;
- }
-
- @Override
- public void start(final StartContext context) throws StartException {
- if (injectedMBeanServer.getValue() != null) {
- final ManagedEndpointRegistry managedEndpointRegistry = new
ManagedEndpointRegistry();
- managedEndpointRegistry.setMbeanServer(injectedMBeanServer.getValue());
- registry = managedEndpointRegistry;
- } else {
- registry = new DefaultEndpointRegistry();
- }
- }
-
- @Override
- public void stop(final StopContext context) {
- }
-
- private InjectedValue<MBeanServer> getMBeanServerInjector() {
- return injectedMBeanServer;
- }
-
- public static ServiceController<?> install(final ServiceTarget serviceTarget,
final ServiceListener<Object> listener) {
- final ServiceBuilder<EndpointRegistry> builder =
serviceTarget.addService(WSServices.REGISTRY_SERVICE, INSTANCE);
- builder.addDependency(DependencyType.OPTIONAL, MBEAN_SERVER_NAME,
MBeanServer.class, INSTANCE.getMBeanServerInjector());
- builder.addListener(listener);
- builder.setInitialMode(Mode.ACTIVE);
- return builder.install();
- }
-
-}
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointService.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointService.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/EndpointService.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -51,6 +51,7 @@
import org.jboss.security.SecurityUtil;
import org.jboss.ws.api.monitoring.RecordProcessor;
import org.jboss.ws.common.ObjectNameFactory;
+import org.jboss.ws.common.management.ManagedEndpoint;
import org.jboss.ws.common.monitoring.ManagedRecordProcessor;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.Endpoint;
@@ -63,6 +64,7 @@
*
* @author alessio.soldano(a)jboss.com
* @author <a href="mailto:ropalka@redhat.com">Richard Opalka</a>
+ * @author <a href="mailto:ema@redhat.com">Jim Ma</a>
*/
public final class EndpointService implements Service<Endpoint> {
@@ -103,7 +105,7 @@
for (final RecordProcessor processor : processors) {
registerRecordProcessor(processor, endpoint);
}
- endpointRegistryValue.getValue().register(endpoint);
+ registerEndpoint(endpoint);
}
@Override
@@ -113,7 +115,7 @@
if (hasWebservicesMD(endpoint)) {
pclWebAppControllerValue.getValue().decrementUsers();
}
- endpointRegistryValue.getValue().unregister(endpoint);
+ unregisterEndpoint(endpoint);
final List<RecordProcessor> processors = endpoint.getRecordProcessors();
for (final RecordProcessor processor : processors) {
unregisterRecordProcessor(processor, endpoint);
@@ -127,7 +129,7 @@
mbeanServer.registerMBean(processor,
ObjectNameFactory.create(ep.getName() + ",recordProcessor=" +
processor.getName()));
}
catch (final JMException ex) {
- ROOT_LOGGER.trace("Cannot register endpoint with JMX server, trying
with the default ManagedRecordProcessor: " + ex.getMessage());
+ ROOT_LOGGER.trace("Cannot register endpoint in JMX server, trying
with the default ManagedRecordProcessor: " + ex.getMessage());
try {
mbeanServer.registerMBean(new ManagedRecordProcessor(processor),
ObjectNameFactory.create(ep.getName() + ",recordProcessor=" +
processor.getName()));
}
@@ -152,7 +154,37 @@
ROOT_LOGGER.mBeanServerNotAvailable(processor);
}
}
+
+ private void registerEndpoint(final Endpoint ep) {
+ MBeanServer mbeanServer = mBeanServerValue.getValue();
+ if (mbeanServer != null) {
+ try {
+ ManagedEndpoint jmxEndpoint = new ManagedEndpoint(endpoint,
mbeanServer);
+ mbeanServer.registerMBean(jmxEndpoint, endpoint.getName());
+ } catch (final JMException ex) {
+ ROOT_LOGGER.trace("Cannot register endpoint in JMX server",
ex);
+ ROOT_LOGGER.cannotRegisterEndpoint(endpoint.getShortName());
+ }
+ } else {
+ ROOT_LOGGER.mBeanServerNotAvailable(endpoint.getShortName());
+ }
+ }
+ private void unregisterEndpoint(final Endpoint ep) {
+ MBeanServer mbeanServer = mBeanServerValue.getValue();
+ if (mbeanServer != null) {
+ try {
+ mbeanServer.unregisterMBean(endpoint.getName());
+ } catch (final JMException ex) {
+ ROOT_LOGGER.trace("Cannot unregister endpoint from JMX server",
ex);
+ ROOT_LOGGER.cannotUnregisterEndpoint(endpoint.getShortName());
+ }
+ } else {
+ ROOT_LOGGER.mBeanServerNotAvailable(endpoint.getShortName());
+ }
+ }
+
+
private boolean hasWebservicesMD(final Endpoint endpoint) {
final Deployment dep = endpoint.getService().getDeployment();
return dep.getAttachment(WebservicesMetaData.class) != null;
@@ -175,15 +207,18 @@
}
public static void install(final ServiceTarget serviceTarget, final Endpoint
endpoint, final DeploymentUnit unit) {
+
+ final String propContext =
endpoint.getName().getKeyProperty(Endpoint.SEPID_PROPERTY_CONTEXT);
+ final String propEndpoint =
endpoint.getName().getKeyProperty(Endpoint.SEPID_PROPERTY_ENDPOINT);
+ final StringBuilder context = new
StringBuilder(Endpoint.SEPID_PROPERTY_CONTEXT).append("=").append(propContext);
final ServiceName serviceName = getServiceName(unit, endpoint.getShortName());
final EndpointService service = new EndpointService(endpoint, serviceName);
final ServiceBuilder<Endpoint> builder =
serviceTarget.addService(serviceName, service);
+ final ServiceName alias =
WSServices.ENDPOINT_SERVICE.append(context.toString()).append(propEndpoint);
+ builder.addAliases(alias);
builder.addDependency(DependencyType.REQUIRED,
SecurityDomainService.SERVICE_NAME.append(getDeploymentSecurityDomainName(endpoint)),
SecurityDomainContext.class,
service.getSecurityDomainContextInjector());
- builder.addDependency(DependencyType.REQUIRED, WSServices.REGISTRY_SERVICE,
- EndpointRegistry.class,
- service.getEndpointRegistryInjector());
builder.addDependency(DependencyType.REQUIRED,
WSServices.PORT_COMPONENT_LINK_SERVICE,
WebAppController.class, service.getPclWebAppControllerInjector());
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/PortComponentLinkService.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/PortComponentLinkService.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/service/PortComponentLinkService.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -96,7 +96,6 @@
public static ServiceBuilder<WebAppController> createServiceBuilder(final
ServiceTarget serviceTarget, final String hostName) {
final PortComponentLinkService service = new PortComponentLinkService();
final ServiceBuilder<WebAppController> builder =
serviceTarget.addService(service.getName(), service);
- builder.addDependency(DependencyType.REQUIRED, WSServices.REGISTRY_SERVICE);
builder.addDependency(DependencyType.REQUIRED, WSServices.CONFIG_SERVICE,
ServerConfig.class, service.getServerConfigInjector());
builder.addDependency(WebSubsystemServices.JBOSS_WEB_HOST.append(hostName),
VirtualHost.class, service.getHostInjector());
return builder;
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/EndpointRegistryFactory.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/EndpointRegistryFactory.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/EndpointRegistryFactory.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -22,19 +22,19 @@
package org.jboss.as.webservices.util;
-import org.jboss.ws.common.management.DefaultEndpointRegistry;
import org.jboss.wsf.spi.management.EndpointRegistry;
/**
* JBoss AS 7 WS Endpoint registry factory
*
* @author alessio.soldano(a)jboss.com
+ * @author <a href="mailto:ema@redhat.com">Jim Ma</a>
* @since 25-Jan-2012
*
*/
public final class EndpointRegistryFactory extends
org.jboss.wsf.spi.management.EndpointRegistryFactory {
- private static final EndpointRegistry fallbackRegistry = new
DefaultEndpointRegistry();;
+ private static final EndpointRegistry registry = new
ServiceContainerEndpointRegistry();
public EndpointRegistryFactory() {
super();
@@ -46,15 +46,7 @@
* @return endpoint registry
*/
public EndpointRegistry getEndpointRegistry() {
- try {
- EndpointRegistry registry =
ASHelper.getMSCService(WSServices.REGISTRY_SERVICE, EndpointRegistry.class);
- if (registry == null) {
- registry = fallbackRegistry;
- }
- return registry;
- } catch (Exception e) {
- return fallbackRegistry;
- }
+ return registry;
}
}
Added:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/ServiceContainerEndpointRegistry.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/ServiceContainerEndpointRegistry.java
(rev 0)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/ServiceContainerEndpointRegistry.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -0,0 +1,100 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2012, Red Hat, Inc., and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+ */
+package org.jboss.as.webservices.util;
+
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArraySet;
+
+import javax.management.ObjectName;
+
+import org.jboss.msc.service.ServiceName;
+import org.jboss.ws.common.ObjectNameFactory;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.management.EndpointRegistry;
+import org.jboss.wsf.spi.management.EndpointResolver;
+/**
+ * @author <a href="mailto:ema@redhat.com">Jim Ma</a>
+ *
+ */
+public class ServiceContainerEndpointRegistry implements EndpointRegistry {
+ final String endpointPrefix = WSServices.ENDPOINT_SERVICE.getCanonicalName() +
".context";
+
+ @Override
+ public Set<ObjectName> getEndpoints() {
+ Set<ObjectName> endpoints = new CopyOnWriteArraySet<ObjectName>();
+ for (ServiceName sname : WSServices.getContainerRegistry().getServiceNames()) {
+ if (sname.getCanonicalName().startsWith(endpointPrefix)) {
+ String contextPath = sname.getParent().getSimpleName().substring(8);
+ String endpointName = sname.getSimpleName();
+ final StringBuilder name = new StringBuilder(Endpoint.SEPID_DOMAIN +
":");
+ name.append(Endpoint.SEPID_PROPERTY_CONTEXT + "=" + contextPath
+ ",");
+ name.append(Endpoint.SEPID_PROPERTY_ENDPOINT + "=" +
endpointName);
+ endpoints.add(ObjectNameFactory.create(name.toString()));
+ }
+ }
+ return endpoints;
+ }
+
+ @Override
+ public Endpoint getEndpoint(ObjectName epName) {
+ String context = epName.getKeyProperty(Endpoint.SEPID_PROPERTY_CONTEXT);
+ String name = epName.getKeyProperty(Endpoint.SEPID_PROPERTY_ENDPOINT);
+ ServiceName epSerivceName =
WSServices.ENDPOINT_SERVICE.append("context=" + context).append(name);
+ return ASHelper.getMSCService(epSerivceName, Endpoint.class);
+
+ }
+
+ @Override
+ public Endpoint resolve(EndpointResolver resolver) {
+ return resolver.query(getRegisteredEndpoints().iterator());
+ }
+
+ @Override
+ public boolean isRegistered(ObjectName epName) {
+ if (getEndpoint(epName) != null) {
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void register(Endpoint endpoint) {
+ // TODO:Remove this interface
+
+ }
+
+ @Override
+ public void unregister(Endpoint endpoint) {
+ // TODO:Remove this interface
+ }
+
+ private Set<Endpoint> getRegisteredEndpoints() {
+ Set<Endpoint> endpoints = new CopyOnWriteArraySet<Endpoint>();
+ for (ServiceName sname : WSServices.getContainerRegistry().getServiceNames()) {
+ if (sname.getCanonicalName().startsWith(endpointPrefix)) {
+ endpoints.add(ASHelper.getMSCService(sname, Endpoint.class));
+ }
+ }
+ return endpoints;
+ }
+
+}
Property changes on:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/ServiceContainerEndpointRegistry.java
___________________________________________________________________
Added: svn:keywords
+ Rev Date
Added: svn:eol-style
+ native
Modified:
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/WSServices.java
===================================================================
---
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/WSServices.java 2013-06-14
06:54:17 UTC (rev 17670)
+++
container/jboss72/branches/jbossws-jboss720/server-integration/src/main/java/org/jboss/as/webservices/util/WSServices.java 2013-06-14
07:35:08 UTC (rev 17671)
@@ -36,7 +36,6 @@
public static final ServiceName WS_SERVICE =
ServiceName.JBOSS.append("ws");
public static final ServiceName CONFIG_SERVICE =
WS_SERVICE.append("config");
- public static final ServiceName REGISTRY_SERVICE =
WS_SERVICE.append("registry");
public static final ServiceName MODEL_SERVICE =
WS_SERVICE.append("model");
public static final ServiceName ENDPOINT_SERVICE =
WS_SERVICE.append("endpoint");
public static final ServiceName ENDPOINT_PUBLISH_SERVICE =
WS_SERVICE.append("endpoint-publish");