From jbossws-commits at lists.jboss.org Tue Oct 30 05:21:13 2012
Content-Type: multipart/mixed; boundary="===============6919729789746307591=="
MIME-Version: 1.0
From: jbossws-commits at lists.jboss.org
To: jbossws-commits at lists.jboss.org
Subject: [jbossws-commits] JBossWS SVN: r16953 - in
container/jboss71/branches/jbossws-jboss712/server-integration/src/main/java/org/jboss/as/webservices:
dmr and 2 other directories.
Date: Tue, 30 Oct 2012 05:21:12 -0400
Message-ID: <201210300921.q9U9LCC6008017@svn01.web.mwc.hst.phx2.redhat.com>
--===============6919729789746307591==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: alessio.soldano(a)jboss.com
Date: 2012-10-30 05:21:12 -0400 (Tue, 30 Oct 2012)
New Revision: 16953
Modified:
container/jboss71/branches/jbossws-jboss712/server-integration/src/main/=
java/org/jboss/as/webservices/deployers/EndpointServiceDeploymentAspect.java
container/jboss71/branches/jbossws-jboss712/server-integration/src/main/=
java/org/jboss/as/webservices/dmr/WSSubsystemAdd.java
container/jboss71/branches/jbossws-jboss712/server-integration/src/main/=
java/org/jboss/as/webservices/publish/EndpointPublisherImpl.java
container/jboss71/branches/jbossws-jboss712/server-integration/src/main/=
java/org/jboss/as/webservices/service/EndpointPublishService.java
container/jboss71/branches/jbossws-jboss712/server-integration/src/main/=
java/org/jboss/as/webservices/service/EndpointService.java
container/jboss71/branches/jbossws-jboss712/server-integration/src/main/=
java/org/jboss/as/webservices/service/ServerConfigService.java
Log:
[JBWS-3426] Fixing ASIL 712
Modified: container/jboss71/branches/jbossws-jboss712/server-integration/sr=
c/main/java/org/jboss/as/webservices/deployers/EndpointServiceDeploymentAsp=
ect.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/deployers/EndpointServiceDeploymentAspect.ja=
va 2012-10-29 10:46:39 UTC (rev 16952)
+++ container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/deployers/EndpointServiceDeploymentAspect.ja=
va 2012-10-30 09:21:12 UTC (rev 16953)
@@ -30,6 +30,7 @@
import org.jboss.ws.common.deployment.EndpointLifecycleDeploymentAspect;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.LifecycleHandler;
=
/**
* Creates Endpoint Service instance when starting the Endpoint
@@ -37,18 +38,49 @@
* @author alessio.soldano(a)jboss.com
* @author Richard Opalka
*/
-public final class EndpointServiceDeploymentAspect extends EndpointLifecyc=
leDeploymentAspect {
+public final class EndpointServiceDeploymentAspect extends EndpointLifecyc=
leDeploymentAspect implements Cloneable {
=
+ private boolean stopServices =3D false;
+ =
@Override
public void start(final Deployment dep) {
- super.start(dep);
final ServiceTarget target =3D getOptionalAttachment(dep, ServiceT=
arget.class);
- if (target !=3D null) {
+ final DeploymentUnit unit =3D getRequiredAttachment(dep, Deploymen=
tUnit.class);
+ for (final Endpoint ep : dep.getService().getEndpoints()) {
+ EndpointService.install(target, ep, unit);
+ getLifecycleHandler(ep, true).start(ep);
+ }
+ }
+
+ @Override
+ public void stop(Deployment dep)
+ {
+ if (stopServices) {
final DeploymentUnit unit =3D getRequiredAttachment(dep, Deplo=
ymentUnit.class);
for (final Endpoint ep : dep.getService().getEndpoints()) {
- EndpointService.install(target, ep, unit);
+ LifecycleHandler lifecycleHandler =3D getLifecycleHandler(=
ep, false);
+ if (lifecycleHandler !=3D null)
+ lifecycleHandler.stop(ep);
+ EndpointService.uninstall(ep, unit);
}
+ } else {
+ super.stop(dep);
}
}
-
+ =
+ public void setStopServices(boolean stopServices) {
+ this.stopServices =3D stopServices;
+ }
+ =
+ public Object clone() {
+ EndpointServiceDeploymentAspect clone =3D new EndpointServiceDeplo=
ymentAspect();
+ clone.setForJaxRpc(isForJaxRpc());
+ clone.setForJaxWs(isForJaxWs());
+ clone.setLast(isLast());
+ clone.setProvides(getProvides());
+ clone.setRelativeOrder(getRelativeOrder());
+ clone.setRequires(getRequires());
+ clone.setStopServices(stopServices);
+ return clone;
+ }
}
Modified: container/jboss71/branches/jbossws-jboss712/server-integration/sr=
c/main/java/org/jboss/as/webservices/dmr/WSSubsystemAdd.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/dmr/WSSubsystemAdd.java 2012-10-29 10:46:39 =
UTC (rev 16952)
+++ container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/dmr/WSSubsystemAdd.java 2012-10-30 09:21:12 =
UTC (rev 16953)
@@ -119,14 +119,13 @@
}
}, OperationContext.Stage.RUNTIME);
=
- WSServices.saveContainerRegistry(context.getServiceRegistry(false)=
);
ServiceTarget serviceTarget =3D context.getServiceTarget();
if (appclient && model.hasDefined(WSDL_HOST)) {
- ServerConfigImpl serverConfig =3D createServerConfig(model, tr=
ue);
+ ServerConfigImpl serverConfig =3D createServerConfig(model, ap=
pclient);
newControllers.add(ServerConfigService.install(serviceTarget, =
serverConfig, verificationHandler));
}
if (!appclient) {
- ServerConfigImpl serverConfig =3D createServerConfig(model, fa=
lse);
+ ServerConfigImpl serverConfig =3D createServerConfig(model, ap=
pclient);
newControllers.add(ServerConfigService.install(serviceTarget, =
serverConfig, verificationHandler));
newControllers.add(EndpointRegistryService.install(serviceTarg=
et, verificationHandler));
=
Modified: container/jboss71/branches/jbossws-jboss712/server-integration/sr=
c/main/java/org/jboss/as/webservices/publish/EndpointPublisherImpl.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/publish/EndpointPublisherImpl.java 2012-10-2=
9 10:46:39 UTC (rev 16952)
+++ container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/publish/EndpointPublisherImpl.java 2012-10-3=
0 09:21:12 UTC (rev 16953)
@@ -25,6 +25,7 @@
=
import java.io.File;
import java.lang.reflect.InvocationTargetException;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
=
@@ -39,6 +40,7 @@
import org.apache.catalina.startup.ContextConfig;
import org.apache.tomcat.InstanceManager;
import org.jboss.as.web.deployment.WebCtxLoader;
+import org.jboss.as.webservices.deployers.EndpointServiceDeploymentAspect;
import org.jboss.as.webservices.deployers.deployment.DeploymentAspectsProv=
ider;
import org.jboss.as.webservices.deployers.deployment.WSDeploymentBuilder;
import org.jboss.as.webservices.service.ServerConfigService;
@@ -50,16 +52,12 @@
import org.jboss.metadata.web.spec.ServletMappingMetaData;
import org.jboss.msc.service.ServiceTarget;
import org.jboss.ws.common.deployment.DeploymentAspectManagerImpl;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
import org.jboss.wsf.spi.classloading.ClassLoaderProvider;
import org.jboss.wsf.spi.deployment.Deployment;
import org.jboss.wsf.spi.deployment.DeploymentAspect;
import org.jboss.wsf.spi.deployment.DeploymentAspectManager;
import org.jboss.wsf.spi.deployment.Endpoint;
import org.jboss.wsf.spi.deployment.WSFServlet;
-import org.jboss.wsf.spi.management.EndpointRegistry;
-import org.jboss.wsf.spi.management.EndpointRegistryFactory;
import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
import org.jboss.wsf.spi.publish.Context;
import org.jboss.wsf.spi.publish.EndpointPublisher;
@@ -73,31 +71,42 @@
public final class EndpointPublisherImpl implements EndpointPublisher {
=
private Host host;
+ private boolean runningInService =3D false;
+ private static List depAspects =3D null;
=
public EndpointPublisherImpl(Host host) {
this.host =3D host;
}
+ =
+ public EndpointPublisherImpl(Host host, boolean runningInService) {
+ this(host);
+ this.runningInService =3D runningInService;
+ }
=
@Override
public Context publish(String context, ClassLoader loader, Map urlPatternToClassNameMap) throws Exception {
- return publish(null, context, loader, urlPatternToClassNameMap, nu=
ll);
+ return publish(getBaseTarget(), context, loader, urlPatternToClass=
NameMap, null);
}
=
@Override
public Context publish(String context, ClassLoader loader, Map urlPatternToClassNameMap, WebservicesMetaData metadata) throws Exc=
eption {
- return publish(null, context, loader, urlPatternToClassNameMap, me=
tadata);
+ return publish(getBaseTarget(), context, loader, urlPatternToClass=
NameMap, metadata);
}
=
public Context publish(ServiceTarget target, String context, ClassLoad=
er loader, Map urlPatternToClassNameMap, WebservicesMetaDat=
a metadata) throws Exception {
WSEndpointDeploymentUnit unit =3D new WSEndpointDeploymentUnit(loa=
der, context, urlPatternToClassNameMap, metadata);
return new Context(context, publish(target, unit));
}
+ =
+ private static ServiceTarget getBaseTarget() {
+ return WSServices.getContainerRegistry().getService(WSServices.CON=
FIG_SERVICE).getServiceContainer();
+ }
=
/**
* Publishes the endpoints declared to the provided WSEndpointDeployme=
ntUnit
*/
public List publish(ServiceTarget target, WSEndpointDeployme=
ntUnit unit) throws Exception {
- List aspects =3D DeploymentAspectsProvider.getSo=
rtedDeploymentAspects();
+ List aspects =3D getDeploymentAspects();
ClassLoader origClassLoader =3D SecurityActions.getContextClassLoa=
der();
Deployment dep =3D null;
try {
@@ -108,16 +117,6 @@
DeploymentAspectManager dam =3D new DeploymentAspectManagerImp=
l();
dam.setDeploymentAspects(aspects);
dam.deploy(dep);
- // TODO: [JBWS-3426] fix this. START workaround
- if (target =3D=3D null) {
- SPIProvider spiProvider =3D SPIProviderResolver.getInstanc=
e().getProvider();
- EndpointRegistryFactory factory =3D spiProvider.getSPI(End=
pointRegistryFactory.class);
- EndpointRegistry registry =3D factory.getEndpointRegistry(=
);
- for (final Endpoint endpoint : dep.getService().getEndpoin=
ts()) {
- registry.register(endpoint);
- }
- }
- // END workaround
} finally {
if (dep !=3D null) {
dep.removeAttachment(ServiceTarget.class);
@@ -199,24 +198,13 @@
return;
}
Deployment deployment =3D eps.get(0).getService().getDeployment();
- List aspects =3D DeploymentAspectsProvider.getSo=
rtedDeploymentAspects();
+ List aspects =3D getDeploymentAspects();
try {
stopWebApp(deployment.getAttachment(StandardContext.class));
} finally {
ClassLoader origClassLoader =3D SecurityActions.getContextClas=
sLoader();
try {
SecurityActions.setContextClassLoader(ClassLoaderProvider.=
getDefaultProvider().getServerIntegrationClassLoader());
- final ServiceTarget target =3D deployment.getAttachment(Se=
rviceTarget.class);
- // TODO: [JBWS-3426] fix this. START workaround
- if (target =3D=3D null) {
- SPIProvider spiProvider =3D SPIProviderResolver.getIns=
tance().getProvider();
- EndpointRegistryFactory factory =3D spiProvider.getSPI=
(EndpointRegistryFactory.class);
- EndpointRegistry registry =3D factory.getEndpointRegis=
try();
- for (final Endpoint endpoint : deployment.getService()=
.getEndpoints()) {
- registry.unregister(endpoint);
- }
- }
- // END workaround
DeploymentAspectManager dam =3D new DeploymentAspectManage=
rImpl();
dam.setDeploymentAspects(aspects);
dam.undeploy(deployment);
@@ -240,6 +228,29 @@
throw MESSAGES.destroyContextPhaseFailed(e);
}
}
+ =
+ private List getDeploymentAspects() {
+ return runningInService ? DeploymentAspectsProvider.getSortedDeplo=
ymentAspects() : getPublisherDeploymentAspects();
+ }
+ =
+ private static synchronized List getPublisherDeploym=
entAspects() {
+ if (depAspects =3D=3D null) {
+ depAspects =3D new LinkedList();
+ final List serverAspects =3D DeploymentAspec=
tsProvider.getSortedDeploymentAspects();
+ //copy to replace the EndpointServiceDeploymentAspect
+ for (DeploymentAspect aspect : serverAspects) {
+ if (aspect instanceof EndpointServiceDeploymentAspect) {
+ final EndpointServiceDeploymentAspect a =3D (EndpointS=
erviceDeploymentAspect)aspect;
+ EndpointServiceDeploymentAspect clone =3D (EndpointSer=
viceDeploymentAspect)(a.clone());
+ clone.setStopServices(true);
+ depAspects.add(clone);
+ } else {
+ depAspects.add(aspect);
+ }
+ }
+ }
+ return depAspects;
+ }
=
private static class LocalInstanceManager implements InstanceManager {
LocalInstanceManager() {
Modified: container/jboss71/branches/jbossws-jboss712/server-integration/sr=
c/main/java/org/jboss/as/webservices/service/EndpointPublishService.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/service/EndpointPublishService.java 2012-10-=
29 10:46:39 UTC (rev 16952)
+++ container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/service/EndpointPublishService.java 2012-10-=
30 09:21:12 UTC (rev 16953)
@@ -83,8 +83,8 @@
public void start(final StartContext ctx) throws StartException {
ROOT_LOGGER.starting(name);
try {
- EndpointPublisherImpl publisher =3D new EndpointPublisherImpl(=
hostInjector.getValue().getHost());
- wsctx =3D publisher.publish(context, loader, urlPatternToClass=
Name);
+ EndpointPublisherImpl publisher =3D new EndpointPublisherImpl(=
hostInjector.getValue().getHost(), true);
+ wsctx =3D publisher.publish(ctx.getChildTarget(), context, loa=
der, urlPatternToClassName, null);
} catch (Exception e) {
throw new StartException(e);
}
@@ -94,7 +94,7 @@
public void stop(final StopContext ctx) {
ROOT_LOGGER.stopping(name);
try {
- EndpointPublisherImpl publisher =3D new EndpointPublisherImpl(=
hostInjector.getValue().getHost());
+ EndpointPublisherImpl publisher =3D new EndpointPublisherImpl(=
hostInjector.getValue().getHost(), true);
publisher.destroy(wsctx);
} catch (Exception e) {
throw new RuntimeException(e);
Modified: container/jboss71/branches/jbossws-jboss712/server-integration/sr=
c/main/java/org/jboss/as/webservices/service/EndpointService.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/service/EndpointService.java 2012-10-29 10:4=
6:39 UTC (rev 16952)
+++ container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/service/EndpointService.java 2012-10-30 09:2=
1:12 UTC (rev 16953)
@@ -192,6 +192,11 @@
builder.setInitialMode(Mode.ACTIVE);
builder.install();
}
+ =
+ public static void uninstall(final Endpoint endpoint, final Deployment=
Unit unit) {
+ final ServiceName serviceName =3D getServiceName(unit, endpoint.ge=
tShortName());
+ WSServices.getContainerRegistry().getRequiredService(serviceName).=
setMode(Mode.REMOVE);
+ }
=
private static String getDeploymentSecurityDomainName(final Endpoint e=
p) {
JBossWebMetaData metadata =3D ep.getService().getDeployment().getA=
ttachment(JBossWebMetaData.class);
Modified: container/jboss71/branches/jbossws-jboss712/server-integration/sr=
c/main/java/org/jboss/as/webservices/service/ServerConfigService.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/service/ServerConfigService.java 2012-10-29 =
10:46:39 UTC (rev 16952)
+++ container/jboss71/branches/jbossws-jboss712/server-integration/src/main=
/java/org/jboss/as/webservices/service/ServerConfigService.java 2012-10-30 =
09:21:12 UTC (rev 16953)
@@ -88,7 +88,9 @@
builder.addDependency(ServerEnvironmentService.SERVICE_NAME, Serve=
rEnvironment.class, serverConfig.getServerEnvironmentInjector());
builder.addListener(listener);
builder.setInitialMode(Mode.ACTIVE);
- return builder.install();
+ ServiceController> sc =3D builder.install();
+ WSServices.saveContainerRegistry(sc.getServiceContainer());
+ return sc;
}
=
}
--===============6919729789746307591==--