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==--