[jboss-cvs] JBossAS SVN: r100922 - in branches/vfs3-int: aspects and 128 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 12 12:13:26 EST 2010
Author: johnbailey
Date: 2010-02-12 12:13:14 -0500 (Fri, 12 Feb 2010)
New Revision: 100922
Added:
branches/vfs3-int/cluster/src/assembly/examples.xml
branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/ProfileKeyMetaMapper.java
branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java
branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java
branches/vfs3-int/resteasy-int/test/ejb-war/
branches/vfs3-int/resteasy-int/test/ejb-war/pom.xml
branches/vfs3-int/resteasy-int/test/ejb-war/src/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/index.jsp
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/jndi.properties
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/log4j.xml
branches/vfs3-int/resteasy-int/zip/resteasy-ejb-jboss-beans.xml
branches/vfs3-int/server/src/etc/conf/all/bootstrap/stdio.xml
branches/vfs3-int/server/src/etc/deploy/admin-console-activator-jboss-beans.xml
branches/vfs3-int/server/src/etc/deploy/jbossws-console-activator-jboss-beans.xml
branches/vfs3-int/server/src/etc/deploy/jmx-console-activator-jboss-beans.xml
branches/vfs3-int/server/src/main/java/org/jboss/deployment/MetaDataTypeFilterFactory.java
branches/vfs3-int/server/src/main/java/org/jboss/deployment/PUHackDeployer.java
branches/vfs3-int/server/src/main/java/org/jboss/web/RMICodebaseConfigurer.java
branches/vfs3-int/server/src/main/java/org/jboss/web/RMICodebaseConfigurerMBean.java
branches/vfs3-int/system/src/main/java/org/jboss/system/deployers/LegacyPrefixDeploymentContextComparator.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExample.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExampleMBean.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonPojoExample.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/deployers/LegacyPrefixDeploymentContextComparatorTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/jsf/webapp/ValidatedBean.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/naming/test/NamingProviderURLWriterUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/web/servlets/InjectionServlet.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/BasicOnDemandWarTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/OnDemandContextProfileManagerUnitTestCase.java
branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/
branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/
branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java
Removed:
branches/vfs3-int/cluster/src/examples/org/jboss/mq/
branches/vfs3-int/console/src/assembly/applet.xml
branches/vfs3-int/console/src/assembly/console-mgr-classes.xml
branches/vfs3-int/console/src/assembly/console-mgr-sar.xml
branches/vfs3-int/console/src/assembly/jboss-console-client.xml
branches/vfs3-int/console/src/assembly/jboss-console.xml
branches/vfs3-int/console/src/assembly/web-console.xml
branches/vfs3-int/console/src/main/java/org/jboss/console/manager/
branches/vfs3-int/console/src/main/java/org/jboss/console/navtree/
branches/vfs3-int/console/src/main/java/org/jboss/console/plugins/
branches/vfs3-int/console/src/main/java/org/jboss/console/remote/
branches/vfs3-int/console/src/main/java/org/jboss/console/util/
branches/vfs3-int/console/src/resources/console-mgr.sar/
branches/vfs3-int/console/src/resources/webconsole.war/
branches/vfs3-int/jmx-remoting/
branches/vfs3-int/resteasy-int/test/ejb-war/pom.xml
branches/vfs3-int/resteasy-int/test/ejb-war/src/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml
branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/index.jsp
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/jndi.properties
branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/log4j.xml
branches/vfs3-int/server/src/main/java/org/jboss/deployment/DeploymentProvidedDeploymentUnitFilter.java
branches/vfs3-int/system/src/main/java/org/jboss/system/server/profile/basic/
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java
branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/
branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml
branches/vfs3-int/testsuite/src/resources/jmx/jbosstest-urlscanner-service.xml
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java
Modified:
branches/vfs3-int/
branches/vfs3-int/aspects/pom.xml
branches/vfs3-int/build/build-web.xml
branches/vfs3-int/build/build.xml
branches/vfs3-int/build/pom.xml
branches/vfs3-int/client/pom.xml
branches/vfs3-int/cluster/.classpath
branches/vfs3-int/cluster/pom.xml
branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/HASingletonProfileActivator.java
branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/HASingletonProfileManager.java
branches/vfs3-int/cluster/src/resources/jgroups/jgroups-channelfactory-stacks.xml
branches/vfs3-int/component-matrix/pom.xml
branches/vfs3-int/connector/pom.xml
branches/vfs3-int/connector/src/main/java/org/jboss/resource/connectionmanager/BaseConnectionManager2.java
branches/vfs3-int/connector/src/main/java/org/jboss/resource/deployers/ManagedConnectionFactoryDeployer.java
branches/vfs3-int/connector/src/main/java/org/jboss/resource/deployers/RARParserDeployer.java
branches/vfs3-int/connector/src/main/java/org/jboss/resource/work/JBossWorkManager.java
branches/vfs3-int/connector/src/main/java/org/jboss/resource/work/WorkWrapper.java
branches/vfs3-int/console/pom.xml
branches/vfs3-int/deployment/pom.xml
branches/vfs3-int/ejb3/pom.xml
branches/vfs3-int/ejb3/src/main/java/org/jboss/ejb3/deployers/AppClientParsingDeployer.java
branches/vfs3-int/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml
branches/vfs3-int/ejb3/src/resources/META-INF/jpa-deployers-jboss-beans.xml
branches/vfs3-int/hibernate-int/pom.xml
branches/vfs3-int/iiop/pom.xml
branches/vfs3-int/jbossas-jmx-remoting/pom.xml
branches/vfs3-int/jbossas-remoting/pom.xml
branches/vfs3-int/main/pom.xml
branches/vfs3-int/main/src/main/java/org/jboss/Main.java
branches/vfs3-int/main/src/resources/logging.properties
branches/vfs3-int/management/pom.xml
branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/ServiceModule.java
branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/WebModule.java
branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractJSR77Deployer.java
branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractVFSJSR77Deployer.java
branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/ServiceModuleJSR77Deployer.java
branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/WebModuleJSR77Deployer.java
branches/vfs3-int/messaging/pom.xml
branches/vfs3-int/messaging/src/etc/examples/web-service/build.xml
branches/vfs3-int/messaging/src/main/java/org/jboss/jms/server/destination/JBossMessagingCreateDestinationFactory.java
branches/vfs3-int/pom.xml
branches/vfs3-int/profileservice/pom.xml
branches/vfs3-int/profileservice/src/main/java/org/jboss/profileservice/web/DebugServlet.java
branches/vfs3-int/resteasy-int/
branches/vfs3-int/resteasy-int/jar/
branches/vfs3-int/resteasy-int/jar/pom.xml
branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyIntegrationDeployer.java
branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java
branches/vfs3-int/resteasy-int/pom.xml
branches/vfs3-int/resteasy-int/test/application-war/pom.xml
branches/vfs3-int/resteasy-int/test/pom.xml
branches/vfs3-int/resteasy-int/test/scanned-war/pom.xml
branches/vfs3-int/resteasy-int/zip/
branches/vfs3-int/resteasy-int/zip/assembly.xml
branches/vfs3-int/resteasy-int/zip/pom.xml
branches/vfs3-int/security/pom.xml
branches/vfs3-int/security/src/etc/bin/password_tool.sh
branches/vfs3-int/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomain.java
branches/vfs3-int/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomainMBean.java
branches/vfs3-int/server/.classpath
branches/vfs3-int/server/pom.xml
branches/vfs3-int/server/src/etc/conf/all/bootstrap.xml
branches/vfs3-int/server/src/etc/conf/all/bootstrap/classloader.xml
branches/vfs3-int/server/src/etc/conf/all/bootstrap/deployers.xml
branches/vfs3-int/server/src/etc/conf/all/bootstrap/profile.xml
branches/vfs3-int/server/src/etc/conf/all/jboss-service.xml
branches/vfs3-int/server/src/etc/conf/default/bootstrap/profile.xml
branches/vfs3-int/server/src/etc/conf/minimal/bootstrap.xml
branches/vfs3-int/server/src/etc/conf/standard/jboss-service.xml
branches/vfs3-int/server/src/etc/deploy/jboss-logging.xml
branches/vfs3-int/server/src/etc/deploy/legacy-conf-service.xml
branches/vfs3-int/server/src/etc/deployers/core-naming-jboss-beans.xml
branches/vfs3-int/server/src/etc/deployers/metadata-deployer-jboss-beans.xml
branches/vfs3-int/server/src/main/java/org/jboss/deployment/AnnotationMetaDataDeployer.java
branches/vfs3-int/server/src/main/java/org/jboss/deployment/EARStructure.java
branches/vfs3-int/server/src/main/java/org/jboss/deployment/EjbParsingDeployer.java
branches/vfs3-int/server/src/main/java/org/jboss/deployment/WebAppFragmentParsingDeployer.java
branches/vfs3-int/server/src/main/java/org/jboss/deployment/WebAppParsingDeployer.java
branches/vfs3-int/server/src/main/java/org/jboss/naming/NamingProviderURLWriter.java
branches/vfs3-int/system-jmx/pom.xml
branches/vfs3-int/system/pom.xml
branches/vfs3-int/system/src/main/java/org/jboss/system/server/profileservice/persistence/deployer/PersistenceModificationChecker.java
branches/vfs3-int/testsuite/
branches/vfs3-int/testsuite/.classpath
branches/vfs3-int/testsuite/build.xml
branches/vfs3-int/testsuite/imports/sections/cluster.xml
branches/vfs3-int/testsuite/imports/sections/ejb3.xml
branches/vfs3-int/testsuite/imports/sections/jmx.xml
branches/vfs3-int/testsuite/imports/sections/seam.xml
branches/vfs3-int/testsuite/imports/sections/web.xml
branches/vfs3-int/testsuite/imports/server-config.xml
branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/DriverManagerPersistentStoreUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/CacheManagerUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/DRMTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/HASingletonControllerBeanUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/HASingletonElectionPolicyTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/nointerface/AccountManagerBean.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/war/deployment/CounterBeanInWEBINFLibJar.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/war/deployment/CounterDelegateBeanInWarEjbJarXml.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/hibernate/mocks/MockRegionFactory.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/jmx/shutdown/ExitOnShutdown.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/messagedriven/test/SimpleQueueMessageDrivenCreateDestinationUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/messagedriven/test/SimpleTopicMessageDrivenCreateDestinationUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/JMXMappingUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/ProfileServiceUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/SecurityManagedObjectsTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/tm/resource/MTOperation.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/tm/test/MTTransactionManagerUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/JSFIntegrationUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/JSPAnnotationENCUnitTestCase.java
branches/vfs3-int/testsuite/src/main/org/jboss/test/xml/SingletonSchemaBindingResolverUnitTestCase.java
branches/vfs3-int/testsuite/src/resources/cluster/hasingleton/electionpolicy/ha-electionpolicy-jboss-beans.xml
branches/vfs3-int/testsuite/src/resources/cluster/hasingleton/ha-singleton-jboss-beans.xml
branches/vfs3-int/testsuite/src/resources/deployers/seam/booking/jboss-seam-booking.ear
branches/vfs3-int/testsuite/src/resources/deployers/seam/dvd/jboss-seam-dvd.ear
branches/vfs3-int/testsuite/src/resources/deployers/seam/numberguess/jboss-seam-numberguess.ear
branches/vfs3-int/testsuite/src/resources/securitymgr/server.policy
branches/vfs3-int/testsuite/src/resources/web/jspinjection/nested.jsp
branches/vfs3-int/tomcat/pom.xml
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/security/GenericHeaderAuthenticator.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatService.java
branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/session/ClusteredSession.java
branches/vfs3-int/tomcat/src/resources/war-deployers-jboss-beans.xml
branches/vfs3-int/tomcat/src/webapps/ROOT.war/index.html
branches/vfs3-int/varia/.classpath
branches/vfs3-int/varia/pom.xml
branches/vfs3-int/varia/src/main/java/org/jboss/monitor/services/ScriptingListener.java
branches/vfs3-int/varia/src/resources/logging/logmanager-jboss-beans.xml
branches/vfs3-int/varia/src/resources/xnio/xnio-jboss-beans.xml
branches/vfs3-int/webservices/pom.xml
branches/vfs3-int/webservices/src/assembly/jbossws-jboss60-deployer.xml
branches/vfs3-int/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSAspectizedDeployersFactory.java
branches/vfs3-int/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentDeployer.java
Log:
Merged changes from trunk -r 99666:100917
Property changes on: branches/vfs3-int
___________________________________________________________________
Name: svn:ignore
- .git
.metadata
target
bin
*.ipr
*.iws
*.iml
.idea
+ .git
.git
.metadata
target
bin
*.ipr
*.iws
*.iml
.idea
*.patch
Modified: branches/vfs3-int/aspects/pom.xml
===================================================================
--- branches/vfs3-int/aspects/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/aspects/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -14,7 +14,7 @@
<description>JBoss Application Server (aspects module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -153,10 +153,6 @@
<groupId>org.jboss.aop</groupId>
<artifactId>pluggable-instrumentor</artifactId>
</dependency>
- <dependency>
- <groupId>org.jboss.aop</groupId>
- <artifactId>jrockit-pluggable-instrumentor</artifactId>
- </dependency>
</dependencies>
Modified: branches/vfs3-int/build/build-web.xml
===================================================================
--- branches/vfs3-int/build/build-web.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/build/build-web.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -143,4 +143,8 @@
</target>
+ <target name="clean" depends="configure">
+ <delete dir="${web.install.root}" />
+ </target>
+
</project>
Modified: branches/vfs3-int/build/build.xml
===================================================================
--- branches/vfs3-int/build/build.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/build/build.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -45,11 +45,11 @@
- Initialize properties for each dependency in the thirdparty pom
- The properties take the form "groupId:artifactId:packaging"
-->
+ <maven:pom id="pom.project" file="pom.xml"/>
<maven:dependencies filesetId="pom.dependencies"
versionsId="pom.dependencies.versions"
- scopes="compile, runtime"
- cacheDependencyRefs="true">
- <pom file="${dist.pom.file}"/>
+ scopes="compile, runtime">
+ <pom refid="pom.project"/>
</maven:dependencies>
<mapper id="remove-versions" classpathref="maven-ant-tasks.classpath"
@@ -62,7 +62,7 @@
<!-- Configuration -->
<!-- ================================================================== -->
- <target name="configure" depends="init">
+ <target name="configure" depends="init-dependencies">
<!-- =================== -->
<!-- Basic Configuration -->
@@ -79,12 +79,8 @@
</tstamp>
<property name="build.id" value="${build.number}"/>-->
- <!-- Version identifiers for the server. -->
- <xmlproperty file="../pom.xml" prefix="pom"/>
-
<!-- Module name(s) & version -->
<property name="dist.module.name" value="jboss"/>
- <property name="dist.module.Name" value="JBoss Build"/>
<property name="dist.module.version" value="${pom.project.version}"/>
<property name="dist.module.output" value="${basedir}/target"/>
@@ -133,11 +129,11 @@
<property name="install.minimal.deployers" value="${install.minimal}/deployers"/>
<property name="install.minimal.conf" value="${install.minimal}/conf"/>
- <property name="install.web" value="${install.server}/web"/>
- <property name="install.web.lib" value="${install.web}/lib"/>
- <property name="install.web.deploy" value="${install.web}/deploy"/>
- <property name="install.web.deployers" value="${install.web}/deployers"/>
- <property name="install.web.conf" value="${install.web}/conf"/>
+ <property name="install.jbossweb" value="${install.server}/jbossweb-standalone"/>
+ <property name="install.jbossweb.lib" value="${install.jbossweb}/lib"/>
+ <property name="install.jbossweb.deploy" value="${install.jbossweb}/deploy"/>
+ <property name="install.jbossweb.deployers" value="${install.jbossweb}/deployers"/>
+ <property name="install.jbossweb.conf" value="${install.jbossweb}/conf"/>
<property name="install.standard" value="${install.server}/standard"/>
<property name="install.standard.lib" value="${install.standard}/lib"/>
@@ -148,6 +144,7 @@
<!-- libs shared by the server configurations -->
<property name="install.common" value="${install.root}/common"/>
<property name="install.common.lib" value="${install.common}/lib"/>
+ <property name="install.common.deploy" value="${install.common}/deploy"/>
<!-- Configuration for the nightly build and test job -->
<property name="run.nightly.sleep" value="1"/>
@@ -187,7 +184,6 @@
module-server,
module-deployment,
module-jbossas-remoting,
- module-jmx-remoting,
module-jbossas-jmx-remoting,
module-messaging,
module-cluster,
@@ -200,11 +196,12 @@
module-ejb3,
module-tomcat,
module-webservices,
+ module-resteasy,
module-hibernate-int,
module-console">
</target>
- <target name="install" depends="partition-build"
+ <target name="install" depends="partition-build, jboss-all-client"
description="Install the structure for a release.">
</target>
@@ -253,6 +250,7 @@
<fileset dir="${install.default.conf}">
<include name="jndi.properties"/>
<include name="jboss-log4j.xml"/>
+ <include name="bootstrap/stdio.xml"/>
<include name="bootstrap/classloader.xml"/>
<include name="bootstrap/aop.xml"/>
<include name="bootstrap/jmx.xml"/>
@@ -288,17 +286,16 @@
<include name="log4j.jar" />
<include name="jboss-logmanager-log4j.jar" />
<include name="jboss-threads.jar" />
- <include name="jboss-stdio.jar" />
</fileset>
</copy>
<copy file="${project.root}/server/target/jboss-as-server-jboss-minimal.jar"
tofile="${install.minimal.lib}/jboss-minimal.jar"/>
<!-- Build server/web manually -->
- <mkdir dir="${install.web}"/>
- <mkdir dir="${install.web.lib}"/>
+ <mkdir dir="${install.jbossweb}"/>
+ <mkdir dir="${install.jbossweb.lib}"/>
<!-- empty -->
- <copy todir="${install.web.conf}">
+ <copy todir="${install.jbossweb.conf}">
<fileset dir="${install.default.conf}">
<include name="**"/>
<!-- Use default config instead
@@ -309,7 +306,7 @@
-->
</fileset>
</copy>
- <copy todir="${install.web.deployers}">
+ <copy todir="${install.jbossweb.deployers}">
<fileset dir="${install.default.deployers}">
<include name="alias-deployers-jboss-beans.xml"/>
<include name="core-naming-jboss-beans.xml"/>
@@ -323,7 +320,7 @@
<include name="jboss-logging.deployer/**"/>
</fileset>
</copy>
- <copy todir="${install.web.deploy}">
+ <copy todir="${install.jbossweb.deploy}">
<fileset dir="${install.default.deploy}">
<include name="hsqldb-ds.xml"/>
<include name="jca-jboss-beans.xml"/>
@@ -331,7 +328,7 @@
<include name="jboss-local-jdbc.rar"/>
<include name="jbossweb.sar/**"/>
<include name="jboss-xa-jdbc.rar"/>
- <include name="jmx-console.war/**"/>
+ <include name="jmx-console-activator-jboss-beans.xml"/>
<include name="http-invoker.sar/**"/>
<include name="ROOT.war/**"/>
<include name="security/**"/>
@@ -359,6 +356,7 @@
<exclude name="conf/jndi.properties"/>
<!-- ORBInitialContextFactory -->
<include name="deploy/**"/>
+ <!--<exclude name="deploy/admin-console-activator-jboss-beans.xml"/>-->
<exclude name="deploy/http-invoker.sar/**"/>
<exclude name="deploy/jmx-remoting.sar/**"/>
<exclude name="deploy/management/**"/>
@@ -395,61 +393,14 @@
</fileset>
</copy>
- <antcall target="jboss-all-client"/>
</target>
- <target name="jboss-all-client" depends="init"
- description="Create jar containing client classpath">
+ <target name="jboss-all-client" depends="configure"
+ description="Create jar containing client app classpath">
- <!--Create a jbossall-client.jar containing the classpath for everything a client app needs-->
-
- <property name="client.jar.dir" location="${install.client}" />
<property name="jbossall.client.filename" value="jbossall-client.jar"/>
-
- <fileset id="client.jar.fileset" dir="${client.jar.dir}">
- <include name="*-client.jar"/>
- <include name="asm.jar"/>
- <include name="cglib-2.1.1.jar"/>
- <include name="jcl-over-slf4j.jar"/>
- <include name="cdi-api.jar"/>
- <include name="concurrent.jar"/>
- <include name="jpa-api.jar"/>
- <include name="hibernate-annotations.jar"/>
- <include name="hibernate-commons-annotations.jar"/>
- <include name="hibernate-core.jar"/>
- <include name="hibernate-validator.jar"/>
- <include name="javax.inject.jar"/>
- <include name="jboss-annotations-ejb3.jar"/>
- <include name="jboss-auth.jar"/>
- <include name="jboss-appclient.jar"/>
- <include name="jboss-common*.jar"/>
- <include name="jboss-ejb3-ext-api.jar"/>
- <include name="jboss-logging*.jar"/>
- <include name="jboss-interceptor-api.jar"/>
- <include name="slf4j-api.jar"/>
- <include name="slf4j-jboss-logging.jar"/>
- <include name="jboss-deployment.jar"/>
- <include name="jboss-javaee.jar"/>
- <include name="jboss-integration.jar"/>
- <include name="jboss-j2se.jar"/>
- <include name="jboss-jmx-annotations.jar"/>
- <include name="jboss-jmx.jar"/>
- <include name="jboss-remoting.jar"/>
- <include name="jboss-security-spi.jar"/>
- <include name="jboss-serialization.jar"/>
- <include name="jmx-connector-client-factory.jar"/>
- <include name="namespace.jar"/>
- <include name="xmlsec.jar"/>
- <include name="jboss-messaging.jar"/>
- <include name="jboss-mdr.jar"/>
- <include name="jboss-deployers-core.jar"/>
- <include name="jboss-deployers-core-spi.jar"/>
- <include name="jboss-deployers-client.jar"/>
- <include name="jboss-deployers-client-spi.jar"/>
- <include name="jbossjts.jar"/>
- <include name="jbossjts-integration.jar"/>
- <include name="jbossjts-jacorb.jar"/>
- <include name="weld-api.jar"/>
+
+ <fileset id="client.jar.fileset" dir="${install.client}">
<!-- client excludes -->
<exclude name="jbossws-native-client.jar"/>
<exclude name="${jbossall.client.filename}"/>
@@ -461,12 +412,12 @@
<pathconvert property="client.jar.manifest.classpath" refid="client.jar.classpath"
pathsep=" " dirsep="${file.separator}">
- <map from="${client.jar.dir}${file.separator}" to="" />
+ <map from="${install.client}${file.separator}" to="" />
</pathconvert>
<pathconvert property="client.jar.files" refid="client.jar.classpath"
pathsep="${line.separator}" dirsep="${file.separator}">
- <map from="${client.jar.dir}${file.separator}" to="" />
+ <map from="${install.client}${file.separator}" to="" />
</pathconvert>
<mkdir dir="${dist.module.output}/temp"/>
@@ -481,13 +432,13 @@
<jar destfile="${install.client}/${jbossall.client.filename}" basedir="${dist.module.output}/temp">
<manifest>
- <attribute name="Specification-Title" value="${specification.title}"/>
- <attribute name="Specification-Version" value="${specification.version}"/>
- <attribute name="Specification-Vendor" value="${specification.vendor}"/>
- <attribute name="Implementation-Title" value="${implementation.title}"/>
- <attribute name="Implementation-Version" value="${implementation.version}"/>
- <attribute name="Implementation-Vendor" value="${implementation.vendor}"/>
- <attribute name="Implementation-Vendor-Id" value="${implementation.vendor.id}"/>
+ <attribute name="Specification-Title" value="${pom.project.name}"/>
+ <attribute name="Specification-Version" value="${pom.project.version}"/>
+ <attribute name="Specification-Vendor" value="${pom.project.organization.name}"/>
+ <attribute name="Implementation-Title" value="${pom.project.name}"/>
+ <attribute name="Implementation-Version" value="${pom.project.version}"/>
+ <attribute name="Implementation-Vendor" value="${pom.project.organization.name}"/>
+ <attribute name="Implementation-Vendor-Id" value="${pom.project.groupId}"/>
<attribute name="Class-Path" value="${client.jar.manifest.classpath}"/>
</manifest>
</jar>
@@ -652,31 +603,6 @@
</target>
- <!-- ============ -->
- <!-- JMX Remoting -->
- <!-- ============ -->
-
- <target name="module-jmx-remoting">
- <property name="jmx-remoting.module.name" value="jmx-remoting"/>
- <property name="jmx-remoting.module.output" value="${project.root}/${jmx-remoting.module.name}/target"/>
-
- <!-- Copy the generated libraries -->
- <mkdir dir="${install.common.lib}"/>
- <copy file="${jmx-remoting.module.output}/jboss-as-jmx-remoting.jar"
- tofile="${install.common.lib}/jboss-jmx-remoting.jar" filtering="no" />
- </target>
-
- <target name="module-jmx-remoting-all" depends="module-jmx-remoting">
- <!-- Copy the generated javadocs -->
- <mkdir dir="${install.api}/${jmx-remoting.module.name}"/>
- <copy todir="${install.api}/${jmx-remoting.module.name}" filtering="no">
- <fileset dir="${jmx-remoting.module.output}/api">
- <include name="**/*"/>
- </fileset>
- </copy>
-
- </target>
-
<!-- ===================== -->
<!-- JBoss AS JMX Remoting -->
<!-- ===================== -->
@@ -1433,8 +1359,9 @@
</unjar>
<!-- Include the JMX console war unpacked -->
- <mkdir dir="${install.server}/all/deploy/jmx-console.war"/>
- <unjar src="${varia.module.output}/jboss-as-varia-jmx-console.war" dest="${install.server}/all/deploy/jmx-console.war"/>
+ <mkdir dir="${install.common.deploy}"/>
+ <mkdir dir="${install.common.deploy}/jmx-console.war"/>
+ <unjar src="${varia.module.output}/jboss-as-varia-jmx-console.war" dest="${install.common.deploy}/jmx-console.war"/>
<!-- Include the HTTP invoker service unpacked -->
@@ -1813,14 +1740,16 @@
<!-- Endorse JBossWS jars on JDK1.6 and above -->
<copy todir="${install.lib}/endorsed" flatten="true" overwrite="true">
<fileset refid="org.jboss.ws.native:jbossws-native-factories:jar"/>
+ <fileset refid="javax.xml.ws:jaxws-api:jar"/>
<mapper refid="remove-versions" />
</copy>
</target>
<target name="install-jbossws-to-deploy">
- <!-- Install JBossWS web console to deploy directory -->
+ <!-- Install JBossWS web console to deploy directory -->
+ <mkdir dir="${install.common.deploy}"/>
<unzip src="${org.jboss.ws.native:jbossws-native-management:war}"
- dest="${install.all.deploy}/jbossws-console.war"
+ dest="${install.common.deploy}/jbossws-console.war"
/>
</target>
@@ -1835,7 +1764,7 @@
<fileset refid="org.jboss.ws.native:jbossws-native-core:jar"/>
<fileset refid="org.codehaus.jettison:jettison:jar"/>
<fileset refid="org.jboss.netty:netty:jar"/>
- <fileset refid="wscommons-policy:policy:jar"/>
+ <fileset refid="org.apache.ws.policy:wscommons-policy:jar"/>
<fileset refid="wsdl4j:wsdl4j:jar"/>
<fileset refid="org.apache:xmlsec:jar"/>
<mapper refid="remove-versions" />
@@ -1847,16 +1776,6 @@
<include name="META-INF/**"/>
</fileset>
</copy>
- <copy todir="${install.all.deployers}/jbossws.deployer/META-INF">
- <fileset dir="${webservices.module.output}/jbossws-native-resources/resources">
- <include name="standard-*-config.xml"/>
- </fileset>
- </copy>
- <copy todir="${install.all.deployers}/jbossws.deployer" flatten="true" overwrite="true">
- <fileset refid="org.jboss.ws:jbossws-common:jar"/>
- <fileset refid="org.jboss.ws:jbossws-framework:jar"/>
- <mapper refid="remove-versions" />
- </copy>
</target>
<target name="module-webservices-all">
@@ -1877,6 +1796,21 @@
</copy>
</target>
+ <!-- =========== -->
+ <!-- Resteasy -->
+ <!-- =========== -->
+
+ <target name="module-resteasy">
+ <property name="resteasy.module.name" value="resteasy-int"/>
+ <property name="resteasy.module.output" value="${project.root}/${resteasy.module.name}/zip/target/distribution"/>
+
+ <unzip dest="${install.all.deployers}"
+ src="${resteasy.module.output}/resteasy-int-all.zip"/>
+ </target>
+
+ <target name="module-resteasy-all">
+ </target>
+
<!-- ============ -->
<!-- Hibernate -->
<!-- ============ -->
@@ -1944,13 +1878,14 @@
<mkdir dir="${install.common.lib}"/>
<copy todir="${install.common.lib}" filtering="no">
+ <fileset refid="apache-xalan:xalan:jar"/>
+ <fileset refid="apache-xalan:serializer:jar"/>
<fileset refid="org.jboss.threads:jboss-threads:jar"/>
<fileset refid="org.jboss.xnio:xnio-api:jar"/>
<fileset refid="javax.xml.ws:jaxws-api:jar"/>
<fileset refid="javax.jws:jsr181-api:jar"/>
<fileset refid="javax.xml:jaxrpc-api:jar"/>
<fileset refid="javax.xml.soap:saaj-api:jar"/>
- <fileset refid="org.jboss.ws.native:jbossws-native-factories:jar"/>
<fileset refid="org.jboss.ws:jbossws-common:jar"/>
<fileset refid="org.jboss.ws:jbossws-framework:jar"/>
<fileset refid="org.jboss.ws:jbossws-spi:jar"/>
@@ -1968,7 +1903,6 @@
<fileset refid="org.jboss.logging:jboss-logging-log4j:jar"/>
<fileset refid="org.jboss.logging:jboss-logging-jdk:jar"/>
<fileset refid="org.jboss.logmanager:jboss-logmanager-log4j:jar"/>
- <fileset refid="org.jboss.stdio:jboss-stdio:jar"/>
<fileset refid="quartz:quartz:jar"/>
<fileset refid="jaxen:jaxen:jar"/>
<fileset refid="org.jboss.cluster:jboss-ha-client:jar"/>
@@ -2002,7 +1936,8 @@
<fileset refid="org.jboss.ejb3:jboss-ejb3-metadata:jar"/>
<fileset refid="org.jboss.ejb3:jboss-ejb3-metadata-deployers:jar"/>
<fileset refid="org.jboss.ejb3:jboss-ejb3-mc-int:jar"/>
- <fileset refid="org.jboss.ejb3:jboss-ejb3-nointerface:jar"/>
+ <fileset refid="org.jboss.ejb3.nointerface:jboss-ejb3-nointerface-impl:jar"/>
+ <fileset refid="org.jboss.ejb3.nointerface:jboss-ejb3-nointerface-spi:jar"/>
<fileset refid="org.jboss.ejb3:jboss-ejb3-proxy-impl:jar"/>
<fileset refid="org.jboss.ejb3:jboss-ejb3-proxy-spi:jar"/>
<fileset refid="org.jboss.ejb3:jboss-ejb3-proxy-clustered:jar"/>
@@ -2016,7 +1951,7 @@
<fileset refid="org.hibernate:hibernate-commons-annotations:jar"/>
<fileset refid="org.hibernate:hibernate-entitymanager:jar"/>
<fileset refid="org.hibernate:hibernate-annotations:jar"/>
- <fileset refid="org.hibernate.java-persistence:jpa-api:jar"/>
+ <fileset refid="org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar"/>
<fileset refid="org.hibernate:hibernate-validator:jar"/>
<fileset refid="org.hibernate:hibernate-validator-legacy:jar"/>
<fileset refid="org.jboss.interceptor:jboss-interceptor-api:jar"/>
@@ -2044,6 +1979,10 @@
<mapper refid="remove-versions" />
</copy>
+ <!-- Install JBossWS ASIL to common/lib directory -->
+ <copy file="${webservices.module.output}/jboss-as-webservices.jar"
+ tofile="${install.common.lib}/jbossws-jboss60.jar"/>
+
<copy file="${snmptrapappender:snmpTrapAppender:jar}"
tofile="${install.common.lib}/log4j-snmp-appender.jar"/>
@@ -2077,6 +2016,7 @@
<fileset refid="org.jboss.logging:jboss-logging-spi:jar"/>
<fileset refid="org.jboss.logging:jboss-logging-logmanager:jar"/>
<fileset refid="org.jboss.logmanager:jboss-logmanager:jar"/>
+ <fileset refid="org.jboss.stdio:jboss-stdio:jar"/>
<fileset refid="org.jboss.integration:jboss-classloading-spi:jar"/>
<fileset refid="org.jboss.integration:jboss-profileservice-spi:jar"/>
<fileset refid="org.jboss.classpool:jboss-classpool:jar"/>
@@ -2121,20 +2061,16 @@
<fileset refid="org.jboss.aop:jboss-aop-asintegration-mc:jar"/>
<fileset refid="org.jboss.aop:jboss-aop-deployers:jar"/>
<fileset refid="gnu-getopt:getopt:jar"/>
+ <fileset refid="org.jboss:jbossxb:jar"/>
<mapper refid="remove-versions" />
</copy>
- <!--
- - Note: this is copied separately because the name (jboss-xml-binding) is
- - hardcoded in the wsconsume scripts. Once this is changed
- - in the scripts, this should be added to the list of lib jars above
- -->
- <copy file="${org.jboss:jbossxb:jar}"
- tofile="${install.lib}/jboss-xml-binding.jar"/>
<!-- Copy the generated client libraries -->
<mkdir dir="${install.client}"/>
<copy todir="${install.client}" filtering="no">
<fileset refid="antlr:antlr:jar"/>
+ <fileset refid="apache-xalan:xalan:jar"/>
+ <fileset refid="apache-xalan:serializer:jar"/>
<fileset refid="org.apache:xmlsec:jar"/>
<fileset refid="wsdl4j:wsdl4j:jar"/>
<fileset refid="javassist:javassist:jar"/>
@@ -2176,7 +2112,6 @@
<fileset refid="javax.jws:jsr181-api:jar"/>
<fileset refid="org.jboss.ws.native:jbossws-native-client:jar"/>
<fileset refid="org.jboss.ws.native:jbossws-native-core:jar"/>
- <fileset refid="org.jboss.ws.native:jbossws-native-factories:jar"/>
<fileset refid="javax.xml:jaxrpc-api:jar"/>
<fileset refid="javax.xml.soap:saaj-api:jar"/>
<fileset refid="org.jboss.ws:jbossws-common:jar"/>
@@ -2194,11 +2129,13 @@
<fileset refid="com.sun.xml.stream.buffer:streambuffer:jar"/>
<fileset refid="trove:trove:jar"/>
<fileset refid="org.codehaus.woodstox:wstx-lgpl:jar"/>
- <fileset refid="wscommons-policy:policy:jar"/>
+ <fileset refid="org.apache.ws.policy:wscommons-policy:jar"/>
+ <fileset refid="com.sun.xml.ws:policy:jar"/>
<fileset refid="org.hibernate:hibernate-core:jar"/>
<fileset refid="org.hibernate:hibernate-annotations:jar"/>
<fileset refid="org.hibernate:hibernate-commons-annotations:jar"/>
<fileset refid="org.hibernate:hibernate-validator:jar"/>
+ <fileset refid="org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar"/>
<fileset refid="org.jboss.aop:jboss-aop:jar:client"/>
<fileset refid="org.jboss.ejb3:jboss-ejb3-ext-api:jar"/>
<!-- For JSR-250 impl -->
@@ -2224,23 +2161,15 @@
<fileset refid="org.codehaus.jettison:jettison:jar"/>
<fileset refid="org.jboss.netty:netty:jar"/>
<fileset refid="org.jboss.weld:weld-api:jar"/>
+ <fileset refid="org.jboss:jbossxb:jar"/>
<mapper refid="remove-versions" />
</copy>
- <!--
- - Note: this is copied separately because the name (jboss-xml-binding) is
- - hardcoded in the wsconsume scripts. Once this is changed
- - in the scripts, this should be added to the list of client jars above
- -->
- <copy file="${org.jboss:jbossxb:jar}"
- tofile="${install.client}/jboss-xml-binding.jar"/>
<!-- Copy thirdparty code to lib/endorsed -->
<mkdir dir="${install.lib}/endorsed"/>
<copy todir="${install.lib}/endorsed" filtering="no">
<fileset refid="xerces:xercesImpl:jar"/>
<fileset refid="apache-xerces:resolver:jar"/>
- <fileset refid="apache-xalan:xalan:jar"/>
- <fileset refid="apache-xalan:serializer:jar"/>
<fileset refid="sun-jaxb:jaxb-api:jar"/>
<fileset refid="javax.activation:activation:jar"/>
<fileset refid="stax:stax-api:jar"/>
@@ -2311,6 +2240,11 @@
<fileset file="${org.jboss.weld.integration:weld-jboss-int-deployer-assembly:zip}"/>
</unzip>
+ <!-- Install Admin Console -->
+ <mkdir dir="${install.common.deploy}/admin-console.war"/>
+ <unjar src="${org.jboss.jopr:jopr-embedded-jbas5:war}"
+ dest="${install.common.deploy}/admin-console.war"/>
+
<!-- Copy varia stuff -->
<!-- Include the juddi sar unpacked -->
Modified: branches/vfs3-int/build/pom.xml
===================================================================
--- branches/vfs3-int/build/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/build/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -113,11 +113,6 @@
</dependency>
<dependency>
<groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-jmx-remoting</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
<artifactId>jboss-as-main</artifactId>
<optional>true</optional>
</dependency>
@@ -494,6 +489,11 @@
<optional>true</optional>
</dependency>
<dependency>
+ <groupId>org.jboss.jopr</groupId>
+ <artifactId>jopr-embedded-jbas5</artifactId>
+ <type>war</type>
+ </dependency>
+ <dependency>
<groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-jdk</artifactId>
<optional>true</optional>
@@ -695,9 +695,14 @@
<groupId>com.sun.xml.stream.buffer</groupId>
<artifactId>streambuffer</artifactId>
<optional>true</optional>
- </dependency>
+ </dependency>
<dependency>
- <groupId>wscommons-policy</groupId>
+ <groupId>org.apache.ws.policy</groupId>
+ <artifactId>wscommons-policy</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>com.sun.xml.ws</groupId>
<artifactId>policy</artifactId>
<optional>true</optional>
</dependency>
Modified: branches/vfs3-int/client/pom.xml
===================================================================
--- branches/vfs3-int/client/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/client/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -21,8 +21,8 @@
</dependency>
<dependency>
- <groupId>org.hibernate.java-persistence</groupId>
- <artifactId>jpa-api</artifactId>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
<dependency>
Modified: branches/vfs3-int/cluster/.classpath
===================================================================
--- branches/vfs3-int/cluster/.classpath 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/cluster/.classpath 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Modified: branches/vfs3-int/cluster/pom.xml
===================================================================
--- branches/vfs3-int/cluster/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/cluster/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (cluster module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
@@ -61,6 +61,7 @@
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<excludes>
+ <exclude>org/jboss/**/examples/**</exclude>
<exclude>org/jboss/mq/**</exclude>
</excludes>
</configuration>
Copied: branches/vfs3-int/cluster/src/assembly/examples.xml (from rev 100917, trunk/cluster/src/assembly/examples.xml)
===================================================================
--- branches/vfs3-int/cluster/src/assembly/examples.xml (rev 0)
+++ branches/vfs3-int/cluster/src/assembly/examples.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,16 @@
+<assembly>
+ <id>examples</id>
+ <formats>
+ <format>jar</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <fileSets>
+ <fileSet>
+ <directory>target/classes</directory>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>org/jboss/ha/**/examples/**</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+</assembly>
\ No newline at end of file
Modified: branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/HASingletonProfileActivator.java
===================================================================
--- branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/HASingletonProfileActivator.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/HASingletonProfileActivator.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -28,6 +28,7 @@
import org.jboss.managed.api.annotation.ManagementProperties;
import org.jboss.managed.api.annotation.ManagementProperty;
import org.jboss.managed.api.annotation.ViewUse;
+import org.jboss.metatype.api.annotations.MetaMapping;
import org.jboss.profileservice.spi.NoSuchProfileException;
import org.jboss.profileservice.spi.Profile;
import org.jboss.profileservice.spi.ProfileKey;
@@ -241,6 +242,7 @@
*/
@ManagementProperty(use={ViewUse.STATISTIC}, description="ProfileKey for the Profile we activate")
@ManagementObjectID(type="HASingletonProfileActivator")
+ @MetaMapping(ProfileKeyMetaMapper.class)
public ProfileKey getProfileKey()
{
if (this.profileKey == null)
Modified: branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/HASingletonProfileManager.java
===================================================================
--- branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/HASingletonProfileManager.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/HASingletonProfileManager.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -33,6 +33,7 @@
import org.jboss.managed.api.annotation.ManagementProperties;
import org.jboss.managed.api.annotation.ManagementProperty;
import org.jboss.managed.api.annotation.ViewUse;
+import org.jboss.metatype.api.annotations.MetaMapping;
import org.jboss.profileservice.spi.NoSuchProfileException;
import org.jboss.profileservice.spi.Profile;
import org.jboss.profileservice.spi.ProfileKey;
@@ -131,6 +132,7 @@
@ManagementProperty(use={ViewUse.STATISTIC}, description="ProfileKey for the Profile we activate")
@ManagementObjectID(type="HASingletonProfileManager")
+ @MetaMapping(ProfileKeyMetaMapper.class)
@Override
public ProfileKey getProfileKey()
{
Copied: branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/ProfileKeyMetaMapper.java (from rev 100917, trunk/cluster/src/main/java/org/jboss/ha/singleton/ProfileKeyMetaMapper.java)
===================================================================
--- branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/ProfileKeyMetaMapper.java (rev 0)
+++ branches/vfs3-int/cluster/src/main/java/org/jboss/ha/singleton/ProfileKeyMetaMapper.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,79 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2009, Red Hat Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt 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.ha.singleton;
+
+import java.lang.reflect.Type;
+
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
+import org.jboss.metatype.spi.values.MetaMapper;
+import org.jboss.profileservice.spi.ProfileKey;
+
+/**
+ * A ProfileKey -> SimpleValue.STRING meta mapper. We only need the
+ * profile name, since the domain and server information are shared
+ * between all ProfileKeys in a server.
+ *
+ * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
+ * @version $Revision$
+ */
+public class ProfileKeyMetaMapper extends MetaMapper<ProfileKey>
+{
+
+ @Override
+ public MetaType getMetaType()
+ {
+ return SimpleMetaType.STRING;
+ }
+
+ @Override
+ public Type mapToType()
+ {
+ return ProfileKey.class;
+ }
+
+ @Override
+ public MetaValue createMetaValue(MetaType metaType, ProfileKey key)
+ {
+ if(key == null)
+ {
+ throw new IllegalArgumentException("null profile key");
+ }
+ return SimpleValueSupport.wrap(key.getName());
+ }
+
+ @Override
+ public ProfileKey unwrapMetaValue(MetaValue metaValue)
+ {
+ if(metaValue != null && SimpleMetaType.STRING.equals(metaValue.getMetaType()))
+ {
+ String profileName = String.class.cast(((SimpleValue) metaValue).getValue());
+ return new ProfileKey(profileName);
+ }
+ throw new IllegalStateException("cannot recreate profile key");
+ }
+
+}
+
Modified: branches/vfs3-int/cluster/src/resources/jgroups/jgroups-channelfactory-stacks.xml
===================================================================
--- branches/vfs3-int/cluster/src/resources/jgroups/jgroups-channelfactory-stacks.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/cluster/src/resources/jgroups/jgroups-channelfactory-stacks.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -462,7 +462,7 @@
oob_thread_pool.keep_alive_time="5000"
oob_thread_pool.queue_enabled="false"
oob_thread_pool.rejection_policy="discard"/>
- <MPING timeout="5000"
+ <MPING timeout="2000"
mcast_addr="${jboss.partition.udpGroup:228.6.6.6}"
mcast_port="${jboss.messaging.datachanneludpport:45710}"
ip_ttl="${jboss.messaging.ipttl:8}"
Modified: branches/vfs3-int/component-matrix/pom.xml
===================================================================
--- branches/vfs3-int/component-matrix/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/component-matrix/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.jboss</groupId>
<artifactId>jboss-parent</artifactId>
- <version>5-beta-4</version>
+ <version>5-beta-5</version>
</parent>
<!-- POM Model Version -->
@@ -31,38 +31,34 @@
<!-- Properties -->
<properties>
<version.apache.xalan>2.7.0.patch02-brew</version.apache.xalan>
+ <version.beanvalidation.integration>1.0.0-Beta-1</version.beanvalidation.integration>
+ <version.commons.beanutils>1.8.0</version.commons.beanutils>
+ <version.fastinfoset>1.2.2</version.fastinfoset>
<version.inject.api>1</version.inject.api>
<version.interceptor.api>1.1</version.interceptor.api>
<version.jacorb>2.3.1jboss.patch01-brew</version.jacorb>
<version.javassist>3.11.0.GA</version.javassist>
<version.javax.faces>2.0.2-FCS</version.javax.faces>
<version.javax.validation>1.0.0.GA</version.javax.validation>
+ <version.jaxrpc.api>1.1</version.jaxrpc.api>
+ <version.jaxws.api>2.2</version.jaxws.api>
+ <version.jboss.jaxr>2.0.1</version.jboss.jaxr>
<version.jboss.jbossts>4.9.0.GA</version.jboss.jbossts>
- <version.jboss.jaxr>2.0.1</version.jboss.jaxr>
- <version.sun-jaxws>2.1.7</version.sun-jaxws>
- <version.sun.jaxb>2.2</version.sun.jaxb>
- <version.jaxws.api>2.2</version.jaxws.api>
- <version.jaxrpc.api>1.1</version.jaxrpc.api>
- <version.saaj.api>1.3</version.saaj.api>
- <version.jsr181.api>1.0-MR1</version.jsr181.api>
- <version.jboss.jbossws-spi>1.3.0.Beta1</version.jboss.jbossws-spi>
- <version.jboss.jbossws-common>1.3.0.Beta1</version.jboss.jbossws-common>
- <version.jboss.jbossws-framework>3.3.0.Beta1</version.jboss.jbossws-framework>
- <version.jboss.jbossws>3.3.0.Beta1</version.jboss.jbossws>
- <version.commons.beanutils>1.8.0</version.commons.beanutils>
- <version.fastinfoset>1.2.2</version.fastinfoset>
+ <version.jboss.jbossws>3.3.0.Beta3</version.jboss.jbossws>
+ <version.jboss.jbossws-common>1.3.0.Beta2</version.jboss.jbossws-common>
+ <version.jboss.jbossws-framework>3.3.0.Beta2</version.jboss.jbossws-framework>
+ <version.jboss.jbossws-spi>1.3.0.Beta2</version.jboss.jbossws-spi>
<version.jboss.jms-integration-tests>1.0.1.GA</version.jboss.jms-integration-tests>
- <version.jboss.messaging>1.4.1.GA</version.jboss.messaging>
- <version.jboss.web>3.0.0-beta-1</version.jboss.web>
+ <version.jboss.messaging>1.4.6.GA</version.jboss.messaging>
+ <version.jboss.web>3.0.0-beta-2</version.jboss.web>
<version.jgroups>2.6.13.GA</version.jgroups>
+ <version.jsr181.api>1.0-MR1</version.jsr181.api>
<version.junit>3.8.2</version.junit>
- <version.org.hibernate.annotations>3.5.0-Beta-3</version.org.hibernate.annotations>
+ <version.org.hibernate>3.5.0-CR-1</version.org.hibernate>
<version.org.hibernate.commons.annotations>3.2.0.Beta1</version.org.hibernate.commons.annotations>
- <version.org.hibernate.java-persistence>2.0-cr-1</version.org.hibernate.java-persistence>
- <version.org.hibernate.jbosscache>3.5.0-Beta-3</version.org.hibernate.jbosscache>
- <version.org.hibernate.entity.manager>3.5.0-Beta-3</version.org.hibernate.entity.manager>
+ <version.org.hibernate.entity.manager>3.5.0-CR-1</version.org.hibernate.entity.manager>
+ <version.org.hibernate.javax.persistence>1.0.0-CR-1</version.org.hibernate.javax.persistence>
<version.org.hibernate.validator>4.0.2.GA</version.org.hibernate.validator>
- <version.org.hibernate>3.5.0-Beta-3</version.org.hibernate>
<version.org.jboss.aop>2.1.0-SNAPSHOT</version.org.jboss.aop>
<version.org.jboss.aspects.currentinvocation>1.0.1</version.org.jboss.aspects.currentinvocation>
<version.org.jboss.aspects.remoting>1.0.1.GA</version.org.jboss.aspects.remoting>
@@ -81,41 +77,43 @@
<version.org.jboss.cache.pojo>3.0.0.GA</version.org.jboss.cache.pojo>
<version.org.jboss.cl>2.2.0-SNAPSHOT</version.org.jboss.cl>
<version.org.jboss.classpool>1.0.0.Alpha2</version.org.jboss.classpool>
- <version.org.jboss.cluster.cache.jbc>2.1.1.BETA2</version.org.jboss.cluster.cache.jbc>
+ <version.org.jboss.cluster.cache.jbc>2.1.2.GA</version.org.jboss.cluster.cache.jbc>
<version.org.jboss.cluster.cache.spi>2.0.0.GA</version.org.jboss.cluster.cache.spi>
<version.org.jboss.cluster.client>1.1.1.GA</version.org.jboss.cluster.client>
<version.org.jboss.cluster.server.api>1.1.1.GA</version.org.jboss.cluster.server.api>
<version.org.jboss.common.core>2.2.17.GA</version.org.jboss.common.core>
<version.org.jboss.deployers>2.2.0-SNAPSHOT</version.org.jboss.deployers>
- <version.org.jboss.ejb.api>1.0-alpha-1</version.org.jboss.ejb.api>
- <version.org.jboss.ejb3.common.client>1.0.1</version.org.jboss.ejb3.common.client>
+ <version.org.jboss.ejb3>1.0.4</version.org.jboss.ejb3>
+ <version.org.jboss.ejb3.common.client>1.0.2</version.org.jboss.ejb3.common.client>
<version.org.jboss.ejb3.core.client>1.2.1-SNAPSHOT</version.org.jboss.ejb3.core.client>
<version.org.jboss.ejb3.endpoint.deployer>0.1.4</version.org.jboss.ejb3.endpoint.deployer>
+ <version.org.jboss.ejb3.ext.api>1.1.0</version.org.jboss.ejb3.ext.api>
<version.org.jboss.ejb3.jpa.int>2.0.0-alpha-1</version.org.jboss.ejb3.jpa.int>
<version.org.jboss.ejb3.mc.int>1.0.2</version.org.jboss.ejb3.mc.int>
<version.org.jboss.ejb3.metrics.deployer>1.0.2</version.org.jboss.ejb3.metrics.deployer>
+ <version.org.jboss.ejb3.proxy.clustered.client>1.0.2</version.org.jboss.ejb3.proxy.clustered.client>
<version.org.jboss.ejb3.proxy.impl.client>1.0.6</version.org.jboss.ejb3.proxy.impl.client>
<version.org.jboss.ejb3.proxy.spi.client>1.0.0</version.org.jboss.ejb3.proxy.spi.client>
- <version.org.jboss.ejb3.proxy.clustered.client>1.0.2</version.org.jboss.ejb3.proxy.clustered.client>
<version.org.jboss.ejb3.security.client>1.0.0</version.org.jboss.ejb3.security.client>
- <version.org.jboss.ejb3>1.0.1</version.org.jboss.ejb3>
+ <version.org.jboss.ejb.api>1.0-alpha-1</version.org.jboss.ejb.api>
<version.org.jboss.integration>6.0.0-SNAPSHOT</version.org.jboss.integration>
<version.org.jboss.jbossxb>2.0.2.Beta3</version.org.jboss.jbossxb>
+ <version.org.jboss.jopr>1.4.0.Beta1</version.org.jboss.jopr>
<version.org.jboss.jpa.deployers>1.0.2-SNAPSHOT</version.org.jboss.jpa.deployers>
<version.org.jboss.jpa.impl>2.0.0</version.org.jboss.jpa.impl>
<version.org.jboss.jpa.spi>1.0.0</version.org.jboss.jpa.spi>
- <version.org.jboss.kernel>2.2.0.Alpha2</version.org.jboss.kernel>
+ <version.org.jboss.kernel>2.2.0.Alpha6</version.org.jboss.kernel>
<version.org.jboss.logging>2.2.0.CR1</version.org.jboss.logging>
+ <version.org.jboss.logging-service-metadata>1.0.0.CR7</version.org.jboss.logging-service-metadata>
<version.org.jboss.logmanager>1.1.1.GA</version.org.jboss.logmanager>
- <version.org.jboss.logging-service-metadata>1.0.0.CR5</version.org.jboss.logging-service-metadata>
<version.org.jboss.man>2.1.1.SP1</version.org.jboss.man>
<version.org.jboss.mcann>1.0.0-SNAPSHOT</version.org.jboss.mcann>
<version.org.jboss.mc-int>2.2.0.Alpha2</version.org.jboss.mc-int>
<version.org.jboss.mdr>2.2.0-SNAPSHOT</version.org.jboss.mdr>
+ <version.org.jboss.metadata.client>2.0.0.Alpha</version.org.jboss.metadata.client>
<version.org.jboss.metadata.common>2.0.0-SNAPSHOT</version.org.jboss.metadata.common>
- <version.org.jboss.metadata.client>2.0.0.Alpha</version.org.jboss.metadata.client>
- <version.org.jboss.metadata.ear>2.0.0.Alpha</version.org.jboss.metadata.ear>
- <version.org.jboss.metadata.ejb>2.0.0-alpha-5</version.org.jboss.metadata.ejb>
+ <version.org.jboss.metadata.ear>2.0.0.Alpha2</version.org.jboss.metadata.ear>
+ <version.org.jboss.metadata.ejb>2.0.0-alpha-6</version.org.jboss.metadata.ejb>
<version.org.jboss.metadata.rar>2.0.0.Alpha</version.org.jboss.metadata.rar>
<version.org.jboss.metadata.war>2.0.0.Alpha13</version.org.jboss.metadata.war>
<version.org.jboss.mod_cluster>1.1.0.Beta1</version.org.jboss.mod_cluster>
@@ -124,28 +122,32 @@
<version.org.jboss.reflect>2.2.0.Alpha2</version.org.jboss.reflect>
<version.org.jboss.reloaded.naming>0.1.0-alpha-2</version.org.jboss.reloaded.naming>
<version.org.jboss.reloaded.naming.deployers>0.1.0-alpha-2</version.org.jboss.reloaded.naming.deployers>
+ <version.org.jboss.resteasy>2.0-beta-1</version.org.jboss.resteasy>
<version.org.jboss.remoting>2.5.2.SP2</version.org.jboss.remoting>
<version.org.jboss.security>2.1.0.20091223</version.org.jboss.security>
+ <version.org.jboss.security.negotiation>2.0.3.SP1</version.org.jboss.security.negotiation>
<version.org.jboss.service.binding>1.0.0.GA</version.org.jboss.service.binding>
- <version.org.jboss.stdio>1.0.0.CR1</version.org.jboss.stdio>
- <version.org.jboss.threads>2.0.0.CR1</version.org.jboss.threads>
+ <version.org.jboss.slf4j>1.0.2.GA</version.org.jboss.slf4j>
+ <version.org.jboss.stdio>1.0.0.CR3</version.org.jboss.stdio>
+ <version.org.jboss.threads>2.0.0.CR3</version.org.jboss.threads>
<version.org.jboss.vfs>3.0.0.CR1-SNAPSHOT</version.org.jboss.vfs>
- <version.org.jboss.security.negotiation>2.0.3.SP1</version.org.jboss.security.negotiation>
- <version.org.jboss.slf4j>1.0.2.GA</version.org.jboss.slf4j>
- <version.org.jboss.xnio.metadata>1.0.1.GA</version.org.jboss.xnio.metadata>
- <version.org.jboss.xnio>1.2.1.GA</version.org.jboss.xnio>
+ <version.org.jboss.xnio>2.1.0.CR1</version.org.jboss.xnio>
+ <version.org.jboss.xnio.metadata>2.1.0.CR1</version.org.jboss.xnio.metadata>
<version.org.slf4j>1.5.6</version.org.slf4j>
<version.org.springframework>2.5.6</version.org.springframework>
<version.oswego-concurrent.concurrent>1.3.4-jboss-update1</version.oswego-concurrent.concurrent>
+ <version.saaj.api>1.3</version.saaj.api>
<version.seam.integration>5.1.0.CR1</version.seam.integration>
- <version.beanvalidation.integration>1.0.0-Beta-1</version.beanvalidation.integration>
+ <version.spring.integration>1.0.0.CR2</version.spring.integration>
<version.staxex>2.1.1</version.staxex>
- <version.streambuffer>0.9</version.streambuffer>
+ <version.streambuffer>1.0</version.streambuffer>
<version.suffix.org.jboss.javaee>.GA</version.suffix.org.jboss.javaee>
+ <version.sun.jaxb>2.2</version.sun.jaxb>
+ <version.sun-jaxws>2.2</version.sun-jaxws>
+ <version.sun-policy>2.0-b01</version.sun-policy>
+ <version.weld.api>1.0</version.weld.api>
<version.weld.integration>6.0.0-SNAPSHOT</version.weld.integration>
<version.xdoclet>1.2.3</version.xdoclet>
- <version.weld.api>1.0</version.weld.api>
- <version.spring.integration>1.0.0.CR2</version.spring.integration>
</properties>
<!-- Build Configuration -->
@@ -1117,18 +1119,6 @@
</dependency>
<dependency>
- <groupId>jfree</groupId>
- <artifactId>jfreechart</artifactId>
- <version>1.0.2</version>
- </dependency>
-
- <dependency>
- <groupId>jfree</groupId>
- <artifactId>jcommon</artifactId>
- <version>1.0.2</version>
- </dependency>
-
- <dependency>
<groupId>jgroups</groupId>
<artifactId>jgroups</artifactId>
<version>${version.jgroups}</version>
@@ -1269,7 +1259,7 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-jbosscache</artifactId>
- <version>${version.org.hibernate.jbosscache}</version>
+ <version>${version.org.hibernate}</version>
<exclusions>
<exclusion>
<groupId>org.jboss.cache</groupId>
@@ -1281,7 +1271,7 @@
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
- <version>${version.org.hibernate.annotations}</version>
+ <version>${version.org.hibernate}</version>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
@@ -1317,9 +1307,9 @@
</dependency>
<dependency>
- <groupId>org.hibernate.java-persistence</groupId>
- <artifactId>jpa-api</artifactId>
- <version>${version.org.hibernate.java-persistence}</version>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
+ <version>${version.org.hibernate.javax.persistence}</version>
</dependency>
<dependency>
@@ -1402,8 +1392,15 @@
<artifactId>jboss-integration</artifactId>
<version>${version.org.jboss.integration}</version>
</dependency>
-
+
<dependency>
+ <groupId>org.jboss.jopr</groupId>
+ <artifactId>jopr-embedded-jbas5</artifactId>
+ <version>${version.org.jboss.jopr}</version>
+ <type>war</type>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.metadata</groupId>
<artifactId>jboss-metadata-common</artifactId>
<version>${version.org.jboss.metadata.common}</version>
@@ -1412,6 +1409,10 @@
<groupId>org.jboss</groupId>
<artifactId>jboss-jaxws</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>org.hibernate</groupId>
+ <artifactId>ejb3-persistence</artifactId>
+ </exclusion>
</exclusions>
</dependency>
<dependency>
@@ -1852,6 +1853,10 @@
<groupId>org.jboss.microcontainer</groupId>
<artifactId>jboss-kernel</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>org.hibernate</groupId>
+ <artifactId>ejb3-persistence</artifactId>
+ </exclusion>
</exclusions>
</dependency>
@@ -2178,7 +2183,7 @@
<dependency>
<groupId>org.jboss.ejb3</groupId>
<artifactId>jboss-ejb3-ext-api</artifactId>
- <version>1.0.0</version>
+ <version>${version.org.jboss.ejb3.ext.api}</version>
</dependency>
<dependency>
@@ -2626,6 +2631,22 @@
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.messaging.saaj</groupId>
+ <artifactId>saaj-impl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.stream.buffer</groupId>
+ <artifactId>streambuffer</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jvnet</groupId>
+ <artifactId>mimepull</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.glassfish.gmbal</groupId>
+ <artifactId>gmbal-api-only</artifactId>
+ </exclusion>
</exclusions>
</dependency>
@@ -2636,6 +2657,34 @@
</dependency>
<dependency>
+ <groupId>com.sun.xml.ws</groupId>
+ <artifactId>policy</artifactId>
+ <version>${version.sun-policy}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>stax</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.xml.txw2</groupId>
+ <artifactId>txw2</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>com.sun.istack</groupId>
+ <artifactId>istack-commons-runtime</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>woodstox</groupId>
+ <artifactId>wstx-asl</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
<groupId>sun-jaxws</groupId>
<artifactId>stax-ex</artifactId>
<version>${version.staxex}</version>
@@ -2650,7 +2699,7 @@
<dependency>
<groupId>org.jboss.security</groupId>
<artifactId>jbossxacml</artifactId>
- <version>2.0.4</version>
+ <version>2.0.5.CR1</version>
<exclusions>
<exclusion>
<groupId>sun-jaf</groupId>
@@ -2672,8 +2721,8 @@
</dependency>
<dependency>
- <groupId>wscommons-policy</groupId>
- <artifactId>policy</artifactId>
+ <groupId>org.apache.ws.policy</groupId>
+ <artifactId>wscommons-policy</artifactId>
<version>1.0</version>
</dependency>
Modified: branches/vfs3-int/connector/pom.xml
===================================================================
--- branches/vfs3-int/connector/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/connector/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (connector module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -200,10 +200,6 @@
</dependency>
<dependency>
<groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging-log4j</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.logging</groupId>
<artifactId>jboss-logging-spi</artifactId>
</dependency>
<dependency>
@@ -239,6 +235,14 @@
<artifactId>jboss-security-spi</artifactId>
</dependency>
<dependency>
+ <groupId>org.jboss.stdio</groupId>
+ <artifactId>jboss-stdio</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.threads</groupId>
+ <artifactId>jboss-threads</artifactId>
+ </dependency>
+ <dependency>
<groupId>quartz</groupId>
<artifactId>quartz</artifactId>
</dependency>
Modified: branches/vfs3-int/connector/src/main/java/org/jboss/resource/connectionmanager/BaseConnectionManager2.java
===================================================================
--- branches/vfs3-int/connector/src/main/java/org/jboss/resource/connectionmanager/BaseConnectionManager2.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/connector/src/main/java/org/jboss/resource/connectionmanager/BaseConnectionManager2.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -56,6 +56,7 @@
import org.jboss.mx.util.MBeanServerLocator;
import org.jboss.resource.JBossResourceException;
import org.jboss.security.SubjectFactory;
+import org.jboss.stdio.LoggingWriter;
import org.jboss.system.ServiceMBeanSupport;
import org.jboss.tm.TransactionTimeoutConfiguration;
import org.jboss.util.NestedRuntimeException;
@@ -327,8 +328,7 @@
// Give it somewhere to tell people things
String categoryName = poolingStrategy.getManagedConnectionFactory().getClass().getName() + "." + jndiName;
- Logger log = Logger.getLogger(categoryName);
- PrintWriter logWriter = new LoggerPluginWriter(log.getLoggerPluginInstance());
+ PrintWriter logWriter = new PrintWriter(new LoggingWriter(categoryName, "INFO"));
try
{
poolingStrategy.getManagedConnectionFactory().setLogWriter(logWriter);
Modified: branches/vfs3-int/connector/src/main/java/org/jboss/resource/deployers/ManagedConnectionFactoryDeployer.java
===================================================================
--- branches/vfs3-int/connector/src/main/java/org/jboss/resource/deployers/ManagedConnectionFactoryDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/connector/src/main/java/org/jboss/resource/deployers/ManagedConnectionFactoryDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -69,6 +69,7 @@
"securityMetaData",
"managedConnectionFactoryProperties",
};
+
/**
* A mapping from the managed property name to the attachment property name.
*/
@@ -109,7 +110,9 @@
public ManagedConnectionFactoryDeployer()
{
super(ManagedConnectionFactoryDeploymentGroup.class);
- setOutput(ServiceDeployment.class);
+ addOutput(ServiceDeployment.class.getName() + ".JCA");
+ addOutput(ServiceDeployment.class);
+ addOutput(ComponentType.class);
}
public void setBuilders(List<AbstractBuilder> builders)
@@ -145,7 +148,6 @@
@Override
public void deploy(DeploymentUnit unit, ManagedConnectionFactoryDeploymentGroup group) throws DeploymentException
{
-
List<ManagedConnectionFactoryDeploymentMetaData> deployments = group.getDeployments();
ServiceDeployment serviceDeployment = new ServiceDeployment();
List<ServiceMetaData> componentServices = new ArrayList<ServiceMetaData>();
@@ -184,14 +186,9 @@
}
serviceDeployment.setServices(componentServices);
- unit.addAttachment(ServiceDeployment.class, serviceDeployment);
+ // we shouldn't override ServiceDeployment - it's reserved for -service.xml files / SARDeployer
+ unit.addAttachment(ServiceDeployment.class.getName() + ".JCA", serviceDeployment, ServiceDeployment.class);
if( type != null )
unit.addAttachment(ComponentType.class, type);
}
-
- @Override
- public void undeploy(DeploymentUnit unit, ManagedConnectionFactoryDeploymentGroup deployment)
- {
- }
-
}
Modified: branches/vfs3-int/connector/src/main/java/org/jboss/resource/deployers/RARParserDeployer.java
===================================================================
--- branches/vfs3-int/connector/src/main/java/org/jboss/resource/deployers/RARParserDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/connector/src/main/java/org/jboss/resource/deployers/RARParserDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -71,6 +71,8 @@
super(RARDeploymentMetaData.class, getCustomMappings());
// Enable MO creation of RARDeploymentMetaData
setBuildManagedObject(true);
+ // for alt-dd usage
+ addInput("org.jboss.metadata.ear.spec.EarMetaData");
}
protected <U> ObjectModelFactory getObjectModelFactory(Class<U> expectedType, String fileName, U root)
Modified: branches/vfs3-int/connector/src/main/java/org/jboss/resource/work/JBossWorkManager.java
===================================================================
--- branches/vfs3-int/connector/src/main/java/org/jboss/resource/work/JBossWorkManager.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/connector/src/main/java/org/jboss/resource/work/JBossWorkManager.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,6 +1,6 @@
/*
* JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
@@ -21,18 +21,25 @@
*/
package org.jboss.resource.work;
-import java.util.concurrent.Executor;
-import org.jboss.system.ServiceMBeanSupport;
-import org.jboss.tm.JBossXATerminator;
-import org.jboss.util.threadpool.Task;
-
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.RejectedExecutionException;
+import java.util.concurrent.TimeUnit;
import javax.resource.spi.work.ExecutionContext;
import javax.resource.spi.work.Work;
+import javax.resource.spi.work.WorkCompletedException;
+import javax.resource.spi.work.WorkEvent;
import javax.resource.spi.work.WorkException;
import javax.resource.spi.work.WorkListener;
import javax.resource.spi.work.WorkManager;
+import javax.resource.spi.work.WorkRejectedException;
import javax.transaction.xa.Xid;
+import org.jboss.logging.Logger;
+import org.jboss.threads.BlockingExecutor;
+import org.jboss.threads.ExecutionTimedOutException;
+import org.jboss.tm.JBossXATerminator;
+import org.jboss.system.ServiceMBeanSupport;
+
/**
* The work manager implementation
*
@@ -41,39 +48,46 @@
*/
public class JBossWorkManager extends ServiceMBeanSupport implements WorkManager, JBossWorkManagerMBean
{
+ /** The logger */
+ private static Logger log = Logger.getLogger(JBossWorkManager.class);
+
/** Whether trace is enabled */
- private boolean trace = log.isTraceEnabled();
-
- /** The thread pool */
- private Executor executor;
+ private static boolean trace = log.isTraceEnabled();
- /** The xa terminator */
+ /** The executor */
+ private BlockingExecutor executor;
+
+ /** The XA terminator */
private JBossXATerminator xaTerminator;
- /**
- * Retrieve the thread pool
- *
- * @return the thread pool
+ /**
+ * Constructor
*/
- public Executor getExecutor()
+ public JBossWorkManager()
{
+ }
+
+ /**
+ * Retrieve the executor
+ * @return The executor
+ */
+ public BlockingExecutor getExecutor()
+ {
return executor;
}
/**
- * Set the thread pool
- *
- * @param executor the thread pool
+ * Set the executor
+ * @param executor The executor
*/
- public void setExecutor(Executor executor)
+ public void setExecutor(BlockingExecutor executor)
{
this.executor = executor;
}
/**
* Get the XATerminator
- *
- * @return the xa terminator
+ * @return The XA terminator
*/
public JBossXATerminator getXATerminator()
{
@@ -82,179 +96,314 @@
/**
* Set the XATerminator
- *
- * @param xaTerminator the xa terminator
+ * @param xaTerminator The XA terminator
*/
public void setXATerminator(JBossXATerminator xaTerminator)
{
this.xaTerminator = xaTerminator;
}
+ /**
+ * Get the work manager instance
+ * @return The instance
+ */
public WorkManager getInstance()
{
return this;
}
- public void doWork(Work work, long startTimeout, ExecutionContext ctx, WorkListener listener) throws WorkException
- {
- if (ctx == null)
- ctx = new ExecutionContext();
- WorkWrapper wrapper = new WorkWrapper(this, work, Task.WAIT_FOR_COMPLETE, startTimeout, ctx, listener);
- importWork(wrapper);
- executeWork(wrapper);
- if (wrapper.getWorkException() != null)
- throw wrapper.getWorkException();
- }
-
+ /**
+ * {@inheritDoc}
+ */
public void doWork(Work work) throws WorkException
{
doWork(work, WorkManager.INDEFINITE, null, null);
}
-
- public long startWork(Work work, long startTimeout, ExecutionContext ctx, WorkListener listener) throws WorkException
+
+ /**
+ * {@inheritDoc}
+ */
+ public void doWork(Work work,
+ long startTimeout,
+ ExecutionContext execContext,
+ WorkListener workListener)
+ throws WorkException
{
- if (ctx == null)
- ctx = new ExecutionContext();
- WorkWrapper wrapper = new WorkWrapper(this, work, Task.WAIT_FOR_START, startTimeout, ctx, listener);
- importWork(wrapper);
- executeWork(wrapper);
- if (wrapper.getWorkException() != null)
- throw wrapper.getWorkException();
- return wrapper.getBlockedElapsed();
- }
+ WorkException exception = null;
+ WorkWrapper wrapper = null;
+ try
+ {
+ if (work == null)
+ throw new WorkRejectedException("Work is null");
- public long startWork(Work work) throws WorkException
- {
- return startWork(work, WorkManager.INDEFINITE, null, null);
- }
+ if (startTimeout < 0)
+ throw new WorkRejectedException("StartTimeout is negative: " + startTimeout);
- public void scheduleWork(Work work, long startTimeout, ExecutionContext ctx, WorkListener listener) throws WorkException
- {
- if (ctx == null)
- ctx = new ExecutionContext();
- WorkWrapper wrapper = new WorkWrapper(this, work, Task.WAIT_NONE, startTimeout, ctx, listener);
- importWork(wrapper);
- executeWork(wrapper);
- if (wrapper.getWorkException() != null)
- throw wrapper.getWorkException();
- }
+ if (execContext == null)
+ {
+ execContext = new ExecutionContext();
+ }
- public void scheduleWork(Work work) throws WorkException
- {
- scheduleWork(work, WorkManager.INDEFINITE, null, null);
- }
+ final CountDownLatch completedLatch = new CountDownLatch(1);
- /**
- * Import any work
- *
- * @param wrapper the work wrapper
- * @throws WorkException for any error
- */
- protected void importWork(WorkWrapper wrapper) throws WorkException
- {
- trace = log.isTraceEnabled();
- if (trace)
- log.trace("Importing work " + wrapper);
-
- ExecutionContext ctx = wrapper.getExecutionContext();
- if (ctx != null)
+ wrapper = new WorkWrapper(this, work, execContext, workListener, null, completedLatch);
+
+ if (workListener != null)
+ {
+ WorkEvent event = new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null);
+ workListener.workAccepted(event);
+ }
+
+ BlockingExecutor executor = getExecutor(work);
+
+ if (startTimeout == WorkManager.INDEFINITE)
+ {
+ executor.executeBlocking(wrapper);
+ }
+ else
+ {
+ executor.executeBlocking(wrapper, startTimeout, TimeUnit.MILLISECONDS);
+ }
+
+ completedLatch.await();
+ }
+ catch (ExecutionTimedOutException etoe)
{
- Xid xid = ctx.getXid();
- if (xid != null)
+ exception = new WorkRejectedException(etoe);
+ exception.setErrorCode(WorkRejectedException.START_TIMED_OUT);
+ }
+ catch (RejectedExecutionException ree)
+ {
+ exception = new WorkRejectedException(ree);
+ }
+ catch (WorkException we)
+ {
+ exception = we;
+ }
+ catch (InterruptedException ie)
+ {
+ Thread.currentThread().interrupt();
+ exception = new WorkRejectedException("Interrupted while requesting permit");
+ }
+ finally
+ {
+ if (exception != null)
{
- //JBAS-4002 base value is in seconds as per the API, here we convert to millis
- long timeout = (ctx.getTransactionTimeout() * 1000);
- xaTerminator.registerWork(wrapper.getWork(), xid, timeout);
+ if (workListener != null)
+ {
+ WorkEvent event = new WorkEvent(this, WorkEvent.WORK_REJECTED, work, exception);
+ workListener.workRejected(event);
+ }
+
+ throw exception;
}
+
+ checkWorkCompletionException(wrapper);
}
- if (trace)
- log.trace("Imported work " + wrapper);
}
/**
- * Execute the work
- *
- * @param wrapper the work wrapper
- * @throws WorkException for any error
+ * {@inheritDoc}
*/
- protected void executeWork(WorkWrapper wrapper) throws WorkException
+ public long startWork(Work work) throws WorkException
{
- if (trace)
- log.trace("Submitting work to thread pool " + wrapper);
-
- executor.execute(wrapper);
-
- if (trace)
- log.trace("Submitted work to thread pool " + wrapper);
+ return startWork(work, WorkManager.INDEFINITE, null, null);
}
-
+
/**
- * Start work
- *
- * @param wrapper the work wrapper
- * @throws WorkException for any error
+ * {@inheritDoc}
*/
- protected void startWork(WorkWrapper wrapper) throws WorkException
+ public long startWork(Work work,
+ long startTimeout,
+ ExecutionContext execContext,
+ WorkListener workListener)
+ throws WorkException
{
- if (trace)
- log.trace("Starting work " + wrapper);
+ WorkException exception = null;
+ WorkWrapper wrapper = null;
+ try
+ {
+ if (work == null)
+ throw new WorkRejectedException("Work is null");
- ExecutionContext ctx = wrapper.getExecutionContext();
- if (ctx != null)
+ if (startTimeout < 0)
+ throw new WorkRejectedException("StartTimeout is negative: " + startTimeout);
+
+ long started = System.currentTimeMillis();
+
+ if (execContext == null)
+ {
+ execContext = new ExecutionContext();
+ }
+
+ final CountDownLatch startedLatch = new CountDownLatch(1);
+
+ wrapper = new WorkWrapper(this, work, execContext, workListener, startedLatch, null);
+
+ if (workListener != null)
+ {
+ WorkEvent event = new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null);
+ workListener.workAccepted(event);
+ }
+
+ BlockingExecutor executor = getExecutor(work);
+
+ if (startTimeout == WorkManager.INDEFINITE)
+ {
+ executor.executeBlocking(wrapper);
+ }
+ else
+ {
+ executor.executeBlocking(wrapper, startTimeout, TimeUnit.MILLISECONDS);
+ }
+
+ startedLatch.await();
+
+ return System.currentTimeMillis() - started;
+ }
+ catch (ExecutionTimedOutException etoe)
{
- Xid xid = ctx.getXid();
- if (xid != null)
+ exception = new WorkRejectedException(etoe);
+ exception.setErrorCode(WorkRejectedException.START_TIMED_OUT);
+ }
+ catch (RejectedExecutionException ree)
+ {
+ exception = new WorkRejectedException(ree);
+ }
+ catch (WorkException we)
+ {
+ exception = we;
+ }
+ catch (InterruptedException ie)
+ {
+ Thread.currentThread().interrupt();
+ exception = new WorkRejectedException("Interrupted while requesting permit");
+ }
+ finally
+ {
+ if (exception != null)
{
- xaTerminator.startWork(wrapper.getWork(), xid);
+ if (workListener != null)
+ {
+ WorkEvent event = new WorkEvent(this, WorkEvent.WORK_REJECTED, work, exception);
+ workListener.workRejected(event);
+ }
+
+ throw exception;
}
+
+ checkWorkCompletionException(wrapper);
}
- if (trace)
- log.trace("Started work " + wrapper);
+
+ return WorkManager.UNKNOWN;
}
-
+
/**
- * End work
- *
- * @param wrapper the work wrapper
+ * {@inheritDoc}
*/
- protected void endWork(WorkWrapper wrapper)
+ public void scheduleWork(Work work) throws WorkException
{
- if (trace)
- log.trace("Ending work " + wrapper);
+ scheduleWork(work, WorkManager.INDEFINITE, null, null);
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public void scheduleWork(Work work,
+ long startTimeout,
+ ExecutionContext execContext,
+ WorkListener workListener)
+ throws WorkException
+ {
+ WorkException exception = null;
+ WorkWrapper wrapper = null;
+ try
+ {
+ if (work == null)
+ throw new WorkRejectedException("Work is null");
- ExecutionContext ctx = wrapper.getExecutionContext();
- if (ctx != null)
+ if (startTimeout < 0)
+ throw new WorkRejectedException("StartTimeout is negative: " + startTimeout);
+
+ if (execContext == null)
+ {
+ execContext = new ExecutionContext();
+ }
+
+ wrapper = new WorkWrapper(this, work, execContext, workListener, null, null);
+
+ if (workListener != null)
+ {
+ WorkEvent event = new WorkEvent(this, WorkEvent.WORK_ACCEPTED, work, null);
+ workListener.workAccepted(event);
+ }
+
+ BlockingExecutor executor = getExecutor(work);
+
+ if (startTimeout == WorkManager.INDEFINITE)
+ {
+ executor.executeBlocking(wrapper);
+ }
+ else
+ {
+ executor.executeBlocking(wrapper, startTimeout, TimeUnit.MILLISECONDS);
+ }
+ }
+ catch (ExecutionTimedOutException etoe)
{
- Xid xid = ctx.getXid();
- if (xid != null)
+ exception = new WorkRejectedException(etoe);
+ exception.setErrorCode(WorkRejectedException.START_TIMED_OUT);
+ }
+ catch (RejectedExecutionException ree)
+ {
+ exception = new WorkRejectedException(ree);
+ }
+ catch (WorkException we)
+ {
+ exception = we;
+ }
+ catch (InterruptedException ie)
+ {
+ Thread.currentThread().interrupt();
+ exception = new WorkRejectedException("Interrupted while requesting permit");
+ }
+ finally
+ {
+ if (exception != null)
{
- xaTerminator.endWork(wrapper.getWork(), xid);
+ if (workListener != null)
+ {
+ WorkEvent event = new WorkEvent(this, WorkEvent.WORK_REJECTED, work, exception);
+ workListener.workRejected(event);
+ }
+
+ throw exception;
}
+
+ checkWorkCompletionException(wrapper);
}
- if (trace)
- log.trace("Ended work " + wrapper);
}
/**
- * Cancel work
- *
- * @param wrapper the work wrapper
+ * Get the executor
+ * @param work The work instance
+ * @return The executor
*/
- protected void cancelWork(WorkWrapper wrapper)
+ private BlockingExecutor getExecutor(Work work)
{
- if (trace)
- log.trace("Cancel work " + wrapper);
-
- ExecutionContext ctx = wrapper.getExecutionContext();
- if (ctx != null)
+ return executor;
+ }
+
+ /**
+ * Checks work completed status.
+ * @param wrapper work wrapper instance
+ * @throws {@link WorkException} if work is completed with an exception
+ */
+ private void checkWorkCompletionException(WorkWrapper wrapper) throws WorkException
+ {
+ if (wrapper.getWorkException() != null)
{
- Xid xid = ctx.getXid();
- if (xid != null)
- {
- xaTerminator.cancelWork(wrapper.getWork(), xid);
- }
- }
- if (trace)
- log.trace("Canceled work " + wrapper);
+ throw wrapper.getWorkException();
+ }
}
}
Modified: branches/vfs3-int/connector/src/main/java/org/jboss/resource/work/WorkWrapper.java
===================================================================
--- branches/vfs3-int/connector/src/main/java/org/jboss/resource/work/WorkWrapper.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/connector/src/main/java/org/jboss/resource/work/WorkWrapper.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,6 +1,6 @@
/*
* JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * Copyright 2010, Red Hat Middleware LLC, and individual contributors
* as indicated by the @author tags. See the copyright.txt file in the
* distribution for a full listing of individual contributors.
*
@@ -21,60 +21,57 @@
*/
package org.jboss.resource.work;
+import java.util.concurrent.CountDownLatch;
+
import javax.resource.spi.work.ExecutionContext;
import javax.resource.spi.work.Work;
import javax.resource.spi.work.WorkCompletedException;
import javax.resource.spi.work.WorkEvent;
import javax.resource.spi.work.WorkException;
import javax.resource.spi.work.WorkListener;
-import javax.resource.spi.work.WorkManager;
import javax.resource.spi.work.WorkRejectedException;
+import javax.transaction.xa.Xid;
import org.jboss.logging.Logger;
-import org.jboss.util.JBossStringBuilder;
-import org.jboss.util.NestedRuntimeException;
-import org.jboss.util.threadpool.BasicTaskWrapper;
-import org.jboss.util.threadpool.StartTimeoutException;
-import org.jboss.util.threadpool.Task;
/**
* Wraps the resource adapter's work.
*
- * @author <a href="mailto:adrian at jboss.org">Adrian Brock</a>
+ * @author <a href="mailto:jesper.pedersen at jboss.org">Jesper Pedersen</a>
* @version $Revision$
*/
-public class WorkWrapper extends BasicTaskWrapper implements Task
+public class WorkWrapper implements Runnable
{
/** The log */
- private static final Logger log = Logger.getLogger(WorkWrapper.class);
+ private static Logger log = Logger.getLogger(WorkWrapper.class);
/** Whether we are tracing */
- private boolean trace = log.isTraceEnabled();
+ private static boolean trace = log.isTraceEnabled();
/** The work */
private Work work;
/** The execution context */
private ExecutionContext executionContext;
-
+
/** the work listener */
- private WorkListener workListener;
+ private WorkListener workListener;
- /** The start timeout */
- private long startTimeout;
-
/** The work manager */
private JBossWorkManager workManager;
- /** The wait type */
- private int waitType;
-
/** The blocked time */
private long blockedTime;
/** Any exception */
private WorkException exception;
+ /** Started latch */
+ private CountDownLatch startedLatch;
+
+ /** Completed latch */
+ private CountDownLatch completedLatch;
+
/**
* Create a new WorkWrapper
*
@@ -85,7 +82,12 @@
* @param workListener the WorkListener
* @throws IllegalArgumentException for null work, execution context or a negative start timeout
*/
- public WorkWrapper(JBossWorkManager workManager, Work work, int waitType, long startTimeout, ExecutionContext executionContext, WorkListener workListener)
+ public WorkWrapper(JBossWorkManager workManager,
+ Work work,
+ ExecutionContext executionContext,
+ WorkListener workListener,
+ CountDownLatch startedLatch,
+ CountDownLatch completedLatch)
{
super();
@@ -93,19 +95,15 @@
throw new IllegalArgumentException("Null work");
if (executionContext == null)
throw new IllegalArgumentException("Null execution context");
- if (startTimeout < 0)
- throw new IllegalArgumentException("Illegal start timeout: " + startTimeout);
this.workManager = workManager;
this.work = work;
- this.waitType = waitType;
- this.startTimeout = startTimeout;
this.executionContext = executionContext;
this.workListener = workListener;
-
- setTask(this);
+ this.startedLatch = startedLatch;
+ this.completedLatch = completedLatch;
}
-
+
/**
* Get the work manager
*
@@ -127,16 +125,6 @@
}
/**
- * Retrieve the work listener
- *
- * @return the WorkListener
- */
- public WorkListener getWorkListener()
- {
- return workListener;
- }
-
- /**
* Retrieve the exection context
*
* @return the execution context
@@ -147,13 +135,13 @@
}
/**
- * Retrieve the time blocked
+ * Retrieve the work listener
*
- * @return the blocked time
+ * @return the WorkListener
*/
- public long getBlockedElapsed()
+ public WorkListener getWorkListener()
{
- return blockedTime;
+ return workListener;
}
/**
@@ -166,173 +154,167 @@
return exception;
}
- public int getWaitType()
+ /**
+ * Run
+ */
+ public void run()
{
- return waitType;
- }
+ if (trace)
+ log.trace("Starting work " + this);
- public int getPriority()
- {
- return Thread.NORM_PRIORITY;
- }
+ try
+ {
+ start();
- public long getStartTimeout()
- {
- return startTimeout;
- }
+ if (startedLatch != null)
+ startedLatch.countDown();
- public long getCompletionTimeout()
- {
- // [JBAS-6400] Conversion of seconds to milliseconds
- return executionContext.getTransactionTimeout() * 1000L;
- }
+ work.run();
- public void execute()
- {
- if (trace)
- log.trace("Executing work " + this);
- try
- {
- workManager.startWork(this);
+ end();
}
- catch (WorkException e)
+ catch (Exception e)
{
- taskRejected(new NestedRuntimeException(e));
- return;
- }
- try
- {
- work.run();
- }
+ exception = new WorkCompletedException(e);
+
+ cancel();
+ }
finally
{
- workManager.endWork(this);
- }
- if (trace)
- log.trace("Executed work " + this);
- }
+ work.release();
- public void stop()
- {
- if (trace)
- log.trace("Stopping work " + this);
+ if (workListener != null)
+ {
+ WorkEvent event = new WorkEvent(workManager, WorkEvent.WORK_COMPLETED, work, exception);
+ workListener.workCompleted(event);
+ }
- work.release();
- }
+ if (startedLatch != null)
+ {
+ while (startedLatch.getCount() != 0)
+ startedLatch.countDown();
+ }
- public void accepted(long time)
- {
- blockedTime = time;
+ if (completedLatch != null)
+ completedLatch.countDown();
- if (trace)
- log.trace("Accepted work " + this);
-
- if (workListener != null)
- {
- WorkEvent event = new WorkEvent(workManager, WorkEvent.WORK_ACCEPTED, work, null);
- workListener.workAccepted(event);
+ if (trace)
+ log.trace("Executed work " + this);
}
}
- public void rejected(long time, Throwable throwable)
+ /**
+ * Start
+ * @throws WorkException for any error
+ */
+ protected void start() throws WorkException
{
- blockedTime = time;
-
if (trace)
{
- if (throwable != null)
- log.trace("Rejecting work " + this, throwable);
- else
- log.trace("Rejecting work " + this);
+ log.trace("Starting work " + this);
}
- if (throwable != null)
+ ExecutionContext ctx = getExecutionContext();
+
+ if (ctx != null)
{
- exception = new WorkRejectedException(throwable);
- if (throwable instanceof StartTimeoutException)
- exception.setErrorCode(WorkRejectedException.START_TIMED_OUT);
+ Xid xid = ctx.getXid();
+ if (xid != null)
+ {
+ //JBAS-4002 base value is in seconds as per the API, here we convert to millis
+ long timeout = (ctx.getTransactionTimeout() * 1000);
+ workManager.getXATerminator().registerWork(work, xid, timeout);
+ }
}
- workManager.cancelWork(this);
-
- if (workListener != null)
+ if (ctx != null)
{
- WorkEvent event = new WorkEvent(workManager, WorkEvent.WORK_ACCEPTED, work, exception);
- workListener.workRejected(event);
+ Xid xid = ctx.getXid();
+ if (xid != null)
+ {
+ workManager.getXATerminator().startWork(work, xid);
+ }
}
- }
- public void started(long time)
- {
- if (waitType != WAIT_NONE)
- blockedTime = time;
-
if (workListener != null)
{
WorkEvent event = new WorkEvent(workManager, WorkEvent.WORK_STARTED, work, null);
workListener.workStarted(event);
}
+
+ if (trace)
+ {
+ log.trace("Started work " + this);
+ }
}
- public void completed(long time, Throwable throwable)
+ /**
+ * End
+ */
+ protected void end()
{
- if (waitType == WAIT_FOR_COMPLETE)
- blockedTime = time;
+ if (trace)
+ {
+ log.trace("Ending work " + this);
+ }
- if (throwable != null)
- exception = new WorkCompletedException(throwable);
+ ExecutionContext ctx = getExecutionContext();
+ if (ctx != null)
+ {
+ Xid xid = ctx.getXid();
+ if (xid != null)
+ {
+ workManager.getXATerminator().endWork(work, xid);
+ }
+ }
+
if (trace)
- log.trace("Completed work " + this);
+ {
+ log.trace("Ended work " + this);
+ }
+ }
- if (workListener != null)
+ /**
+ * Cancel
+ */
+ protected void cancel()
+ {
+ if (trace)
+ log.trace("Cancel work " + this);
+
+ ExecutionContext ctx = getExecutionContext();
+
+ if (ctx != null)
{
- WorkEvent event = new WorkEvent(workManager, WorkEvent.WORK_COMPLETED, work, exception);
- workListener.workCompleted(event);
+ Xid xid = ctx.getXid();
+ if (xid != null)
+ {
+ workManager.getXATerminator().cancelWork(work, xid);
+ }
}
+
+ if (trace)
+ log.trace("Canceled work " + this);
}
+ /**
+ * String representation
+ * @return The string
+ */
public String toString()
{
- JBossStringBuilder buffer = new JBossStringBuilder(100);
+ StringBuilder buffer = new StringBuilder(100);
buffer.append("WorkWrapper@").append(Integer.toHexString(System.identityHashCode(this)));
buffer.append("[workManger=").append(workManager);
buffer.append(" work=").append(work);
- buffer.append(" state=").append(getStateString());
+
if (executionContext != null && executionContext.getXid() != null)
{
buffer.append(" xid=").append(executionContext.getXid());
buffer.append(" txTimeout=").append(executionContext.getTransactionTimeout());
}
- buffer.append(" waitType=");
- switch (waitType)
- {
- case WAIT_NONE:
- {
- buffer.append("WAIT_NONE");
- break;
- }
- case WAIT_FOR_START:
- {
- buffer.append("WAIT_FOR_START");
- break;
- }
- case WAIT_FOR_COMPLETE:
- {
- buffer.append("WAIT_FOR_COMPLETE");
- break;
- }
- default:
- buffer.append("???");
- }
- if (startTimeout != WorkManager.INDEFINITE)
- buffer.append(" startTimeout=").append(startTimeout);
- long completionTimeout = getCompletionTimeout();
- if (completionTimeout != -1)
- buffer.append(" completionTimeout=").append(completionTimeout);
- if (blockedTime != 0)
- buffer.append(" blockTime=").append(blockedTime);
- buffer.append(" elapsedTime=").append(getElapsedTime());
+
if (workListener != null)
buffer.append(" workListener=").append(workListener);
if (exception != null)
Modified: branches/vfs3-int/console/pom.xml
===================================================================
--- branches/vfs3-int/console/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/console/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -11,12 +11,12 @@
<groupId>org.jboss.jbossas</groupId>
<artifactId>jboss-as-console</artifactId>
<packaging>jar</packaging>
- <name>JBoss Application Server Console</name>
+ <name>JBoss Application Server Command Line Client</name>
<url>http://www.jboss.org/jbossas</url>
- <description>JBoss Application Server (console module)</description>
+ <description>JBoss Application Server (command line client module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -48,13 +48,7 @@
<phase>package</phase>
<configuration>
<descriptors>
- <descriptor>src/assembly/applet.xml</descriptor>
- <descriptor>src/assembly/console-mgr-classes.xml</descriptor>
- <descriptor>src/assembly/jboss-console.xml</descriptor>
- <descriptor>src/assembly/jboss-console-client.xml</descriptor>
<descriptor>src/assembly/twiddle.xml</descriptor>
- <descriptor>src/assembly/web-console.xml</descriptor>
- <descriptor>src/assembly/console-mgr-sar.xml</descriptor>
</descriptors>
</configuration>
</execution>
@@ -100,100 +94,23 @@
<dependencies>
<!-- Compile (global dependencies) -->
<dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-management</artifactId>
+ <groupId>gnu-getopt</groupId>
+ <artifactId>getopt</artifactId>
</dependency>
<dependency>
- <groupId>jboss.web</groupId>
- <artifactId>servlet-api</artifactId>
- </dependency>
- <dependency>
- <groupId>jboss.web</groupId>
- <artifactId>jsp-api</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-varia</artifactId>
- </dependency>
- <dependency>
- <groupId>jfree</groupId>
- <artifactId>jfreechart</artifactId>
- </dependency>
- <dependency>
- <groupId>jfree</groupId>
- <artifactId>jcommon</artifactId>
- </dependency>
- <dependency>
<groupId>org.jboss</groupId>
<artifactId>jboss-common-core</artifactId>
</dependency>
<dependency>
- <groupId>gnu-getopt</groupId>
- <artifactId>getopt</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.logging</groupId>
- <artifactId>jboss-logging-spi</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.mx</groupId>
- <artifactId>jboss-jmx</artifactId>
- </dependency>
- <dependency>
<groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-system-jmx</artifactId>
+ <artifactId>jboss-as-management</artifactId>
</dependency>
+ <!-- Not a dependency of twiddle but needed to make the thirdparty library
+ built pass?! jboss.web:jsp-api:jar is not defined, otherwise -->
<dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-system</artifactId>
+ <groupId>jboss.web</groupId>
+ <artifactId>jsp-api</artifactId>
</dependency>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-system</artifactId>
- <classifier>client</classifier>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.mx</groupId>
- <artifactId>jboss-j2se</artifactId>
- </dependency>
- <dependency>
- <groupId>dom4j</groupId>
- <artifactId>dom4j</artifactId>
- </dependency>
- <dependency>
- <groupId>org.beanshell</groupId>
- <artifactId>bsh</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.aop</groupId>
- <artifactId>jboss-aop</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.bootstrap</groupId>
- <artifactId>jboss-bootstrap-spi-as</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-server</artifactId>
- </dependency>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-server</artifactId>
- <classifier>client</classifier>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jbosssx-client</artifactId>
- </dependency>
- <dependency>
- <groupId>trove</groupId>
- <artifactId>trove</artifactId>
- </dependency>
</dependencies>
</project>
Deleted: branches/vfs3-int/console/src/assembly/applet.xml
===================================================================
--- branches/vfs3-int/console/src/assembly/applet.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/console/src/assembly/applet.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,127 +0,0 @@
-<assembly>
- <id>applet</id>
- <formats>
- <format>jar</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>target/classes</directory>
- <outputDirectory>/</outputDirectory>
- <includes>
- <include>org/jboss/console/manager/**</include>
- <include>org/jboss/console/plugins/**</include>
- <include>org/jboss/console/navtree/**</include>
- <include>org/jboss/console/remote/**</include>
- <include>org/jboss/console/manager/navtree/**</include>
- <include>org/jboss/console/manager/**MBean.*</include>
- </includes>
- </fileSet>
- </fileSets>
- <dependencySets>
- <!--<dependencySet>
- <unpack>true</unpack>
- <includes>
- <include>org.jboss.jbossas:jboss-as-server-jmx-rmi-adaptor</include>
- </includes>
- </dependencySet>-->
- <dependencySet>
- <unpack>true</unpack>
- <includes>
- <include>jfree:jfreechart</include>
- <include>jfree:jcommon</include>
- </includes>
- </dependencySet>
- <dependencySet>
- <unpack>true</unpack>
- <includes>
- <include>org.jboss.jbossas:jboss-as-server:jar:client</include>
- </includes>
- <unpackOptions>
- <includes>
- <include>org/jboss/invocation/*</include>
- </includes>
- <excludes>
- <exclude>META-INF/INDEX.LIST</exclude>
- </excludes>
- </unpackOptions>
- </dependencySet>
- <dependencySet>
- <unpack>true</unpack>
- <includes>
- <include>org.jboss.logging:jboss-logging-spi</include>
- <include>org.jboss.logging:jboss-logging-log4j</include>
- </includes>
- <unpackOptions>
- <includes>
- <include>org/jboss/logging/**</include>
- </includes>
- </unpackOptions>
- </dependencySet>
- <dependencySet>
- <unpack>true</unpack>
- <includes>
- <include>org.jboss:jboss-common-core</include>
- </includes>
- <unpackOptions>
- <excludes>
- <exclude>META-INF/INDEX.LIST</exclude>
- <exclude>org/jboss/util/property/**</exclude>
- <exclude>org/jboss/util/propertyeditor/**</exclude>
- <exclude>org/jboss/util/state/**</exclude>
- <exclude>org/jboss/util/xml/**</exclude>
- <exclude>org/jboss/util/collection/**</exclude>
- <exclude>org/jboss/util/file/**</exclude>
- <exclude>org/jboss/util/platform/**</exclude>
- <exclude>org/jboss/util/stream/**</exclude>
- <exclude>org/jboss/util/timeout/**</exclude>
- <exclude>org/jboss/util/coerce/**</exclude>
- <exclude>org/jboss/util/net/**</exclude>
- </excludes>
- </unpackOptions>
- </dependencySet>
- <dependencySet>
- <unpack>true</unpack>
- <includes>
- <include>org.jboss.jbossas:jboss-as-system:jar:client</include>
- </includes>
- <unpackOptions>
- <excludes>
- <exclude>META-INF/INDEX.LIST</exclude>
- </excludes>
- </unpackOptions>
- </dependencySet>
- <dependencySet>
- <unpack>true</unpack>
- <includes>
- <include>org.jboss.naming:jnp-client</include>
- </includes>
- <unpackOptions>
- <excludes>
- <exclude>META-INF/INDEX.LIST</exclude>
- </excludes>
- </unpackOptions>
- </dependencySet>
- <dependencySet>
- <unpack>true</unpack>
- <includes>
- <include>org.jboss.mx:jboss-jmx</include>
- </includes>
- <unpackOptions>
- <excludes>
- <exclude>META-INF/INDEX.LIST</exclude>
- <exclude>org/jboss/mx/server/**</exclude>
- <exclude>org/jboss/mx/remote/**</exclude>
- <exclude>org/jboss/mx/persistence/**</exclude>
- <exclude>org/jboss/mx/modelmbean/**</exclude>
- <exclude>org/jboss/mx/metadata/**</exclude>
- <exclude>org/jboss/mx/loading/**</exclude>
- <exclude>org/jboss/mx/logging/**</exclude>
- <exclude>org/jboss/mx/interceptor/**</exclude>
- <exclude>javax/management/loading/**</exclude>
- <exclude>javax/management/modelmbean/**</exclude>
- </excludes>
- </unpackOptions>
- </dependencySet>
- </dependencySets>
-</assembly>
\ No newline at end of file
Deleted: branches/vfs3-int/console/src/assembly/console-mgr-classes.xml
===================================================================
--- branches/vfs3-int/console/src/assembly/console-mgr-classes.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/console/src/assembly/console-mgr-classes.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,20 +0,0 @@
-<assembly>
- <id>console-mgr-classes</id>
- <formats>
- <format>jar</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>target/classes</directory>
- <outputDirectory>/</outputDirectory>
- <includes>
- <include>org/jboss/console/**</include>
- </includes>
- <excludes>
- <exclude>org/jboss/console/text/**</exclude>
- <exclude>org/jboss/console/twiddle/**</exclude>
- </excludes>
- </fileSet>
- </fileSets>
-</assembly>
\ No newline at end of file
Deleted: branches/vfs3-int/console/src/assembly/console-mgr-sar.xml
===================================================================
--- branches/vfs3-int/console/src/assembly/console-mgr-sar.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/console/src/assembly/console-mgr-sar.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,31 +0,0 @@
-<assembly>
- <id>console-mgr-sar</id>
- <formats>
- <format>jar</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <files>
- <file>
- <source>target/${project.build.finalName}-console-mgr-classes.jar</source>
- <outputDirectory>/</outputDirectory>
- <destName>console-mgr-classes.jar</destName>
- </file>
- </files>
- <fileSets>
- <fileSet>
- <directory>src/resources/console-mgr.sar</directory>
- <outputDirectory>/</outputDirectory>
- <includes>
- <include>**</include>
- </includes>
- </fileSet>
- </fileSets>
- <dependencySets>
- <dependencySet>
- <outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
- <includes>
- <include>jfree:*</include>
- </includes>
- </dependencySet>
- </dependencySets>
-</assembly>
\ No newline at end of file
Deleted: branches/vfs3-int/console/src/assembly/jboss-console-client.xml
===================================================================
--- branches/vfs3-int/console/src/assembly/jboss-console-client.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/console/src/assembly/jboss-console-client.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,16 +0,0 @@
-<assembly>
- <id>jboss-console-client</id>
- <formats>
- <format>jar</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>target/classes</directory>
- <outputDirectory>/</outputDirectory>
- <includes>
- <include>**/*Exception*.class</include>
- </includes>
- </fileSet>
- </fileSets>
-</assembly>
\ No newline at end of file
Deleted: branches/vfs3-int/console/src/assembly/jboss-console.xml
===================================================================
--- branches/vfs3-int/console/src/assembly/jboss-console.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/console/src/assembly/jboss-console.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,16 +0,0 @@
-<assembly>
- <id>jboss-console</id>
- <formats>
- <format>jar</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>target/classes</directory>
- <outputDirectory>/</outputDirectory>
- <includes>
- <include>org/jboss/console/**</include>
- </includes>
- </fileSet>
- </fileSets>
-</assembly>
\ No newline at end of file
Deleted: branches/vfs3-int/console/src/assembly/web-console.xml
===================================================================
--- branches/vfs3-int/console/src/assembly/web-console.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/console/src/assembly/web-console.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,23 +0,0 @@
-<assembly>
- <id>web-console</id>
- <formats>
- <format>war</format>
- </formats>
- <includeBaseDirectory>false</includeBaseDirectory>
- <fileSets>
- <fileSet>
- <directory>src/resources/webconsole.war</directory>
- <outputDirectory>/</outputDirectory>
- <includes>
- <include>**</include>
- </includes>
- </fileSet>
- </fileSets>
- <files>
- <file>
- <source>target/${project.build.finalName}-applet.jar</source>
- <outputDirectory>/</outputDirectory>
- <destName>applet.jar</destName>
- </file>
- </files>
-</assembly>
\ No newline at end of file
Modified: branches/vfs3-int/deployment/pom.xml
===================================================================
--- branches/vfs3-int/deployment/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/deployment/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -14,7 +14,7 @@
<description>JBoss Application Server (deployment module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@@ -180,8 +180,8 @@
</dependency>
<dependency>
- <groupId>org.hibernate.java-persistence</groupId>
- <artifactId>jpa-api</artifactId>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
<dependency>
Modified: branches/vfs3-int/ejb3/pom.xml
===================================================================
--- branches/vfs3-int/ejb3/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/ejb3/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (ejb3 module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/resources</directory>
@@ -90,7 +90,7 @@
<include name="META-INF/ejb3-deployers-jboss-beans.xml" />
</patternset>
</unjar>
- <unjar src="${maven.dependency.org.jboss.ejb3.jboss-ejb3-nointerface.jar.path}" dest="target/resources">
+ <unjar src="${maven.dependency.org.jboss.ejb3.nointerface.jboss-ejb3-nointerface-impl.jar.path}" dest="target/resources">
<patternset>
<include name="META-INF/ejb3-nointerface-jboss-beans.xml" />
</patternset>
Modified: branches/vfs3-int/ejb3/src/main/java/org/jboss/ejb3/deployers/AppClientParsingDeployer.java
===================================================================
--- branches/vfs3-int/ejb3/src/main/java/org/jboss/ejb3/deployers/AppClientParsingDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/ejb3/src/main/java/org/jboss/ejb3/deployers/AppClientParsingDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -30,6 +30,7 @@
* @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
* @author adrian at jboss.org
* @author Scott.Stark at jboss.org
+ * @author ales.justin at jboss.org
* @version $Revision$
*/
public class AppClientParsingDeployer extends SchemaResolverDeployer<ApplicationClientMetaData>
@@ -38,6 +39,7 @@
{
super(ApplicationClientMetaData.class);
setName("application-client.xml");
- }
-
+ // for alt-dd usage
+ addInput("org.jboss.metadata.ear.spec.EarMetaData");
+ }
}
Modified: branches/vfs3-int/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml
===================================================================
--- branches/vfs3-int/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -67,7 +67,6 @@
<value>applet.jar</value>
<value>jcommon.jar</value>
<value>console-mgr-classes.jar</value>
- <value>jfreechart.jar</value>
<value>juddi-service.jar</value>
<value>wsdl4j.jar</value>
<value>commons-collections.jar</value>
Modified: branches/vfs3-int/ejb3/src/resources/META-INF/jpa-deployers-jboss-beans.xml
===================================================================
--- branches/vfs3-int/ejb3/src/resources/META-INF/jpa-deployers-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/ejb3/src/resources/META-INF/jpa-deployers-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -24,10 +24,23 @@
<bean name="XPCResolver" class="org.jboss.ejb3.stateful.EJB3XPCResolver"/>
- <bean name="PersistenceParsingDeployer" class="org.jboss.jpa.deployers.PersistenceParsingDeployer"/>
+ <bean name="PersistenceParsingDeployer" class="org.jboss.jpa.deployers.PersistenceParsingDeployer">
+ <property name="filter">
+ <bean class="org.jboss.deployers.spi.structure.MetaDataTypeFilter">
+ <constructor factoryClass="org.jboss.deployment.MetaDataTypeFilterFactory" factoryMethod="getAll"/>
+ </bean>
+ </property>
+ </bean>
<bean name="PersistenceDeployer" class="org.jboss.jpa.deployers.PersistenceDeployer"/>
- <bean name="PersistenceUnitDeployer" class="org.jboss.jpa.deployers.PersistenceUnitDeployer">
+
+ <bean name="PUHackDeployer" class="org.jboss.deployment.PUHackDeployer">
+ <constructor>
+ <parameter><inject bean="PersistenceUnitDeployer"/></parameter>
+ </constructor>
+ </bean>
+
+ <bean name="PersistenceUnitDeployer" class="org.jboss.jpa.deployers.PersistenceUnitDeployer" autowire-candidate="false">
<property name="defaultPersistenceProperties">
<map keyClass="java.lang.String" valueClass="java.lang.String">
<entry>
Modified: branches/vfs3-int/hibernate-int/pom.xml
===================================================================
--- branches/vfs3-int/hibernate-int/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/hibernate-int/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (hibernate-int module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Modified: branches/vfs3-int/iiop/pom.xml
===================================================================
--- branches/vfs3-int/iiop/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/iiop/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (iiop module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
Modified: branches/vfs3-int/jbossas-jmx-remoting/pom.xml
===================================================================
--- branches/vfs3-int/jbossas-jmx-remoting/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/jbossas-jmx-remoting/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -14,7 +14,7 @@
<description>JBoss Application Server (jbossas-jmx-remoting module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/resources</directory>
Modified: branches/vfs3-int/jbossas-remoting/pom.xml
===================================================================
--- branches/vfs3-int/jbossas-remoting/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/jbossas-remoting/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -13,7 +13,7 @@
<url>http://www.jboss.com/products/jbossas</url>
<description>JBoss Application Server (jbossas-remoting module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Modified: branches/vfs3-int/main/pom.xml
===================================================================
--- branches/vfs3-int/main/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/main/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -14,7 +14,7 @@
<url>http://www.jboss.org/jbossas</url>
<description>JBoss Application Server (main module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/resources</directory>
Modified: branches/vfs3-int/main/src/main/java/org/jboss/Main.java
===================================================================
--- branches/vfs3-int/main/src/main/java/org/jboss/Main.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/main/src/main/java/org/jboss/Main.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -96,7 +96,7 @@
"jboss-logging-logmanager.jar",
// Common jars
"jboss-common-core.jar",
- "jboss-xml-binding.jar",
+ "jbossxb.jar",
// Bootstrap
"jboss-bootstrap-spi.jar", "jboss-bootstrap-spi-as.jar", "jboss-bootstrap-spi-mc.jar",
"jboss-bootstrap-impl-base.jar", "jboss-bootstrap-impl-as.jar",
@@ -141,6 +141,8 @@
super();
// Set default properties
+ // TODO for JBAS-7705 we do this again at the end of processCommandLine
+ // so this can probably be eliminated
final Properties sysProps = System.getProperties();
for (final Object propName : sysProps.keySet())
{
@@ -189,6 +191,28 @@
System.setProperty("log4j.defaultInitOverride", "true");
}
}
+
+ // Set the RmiClassLoaderSpi to JBoss specific one
+ // see https://jira.jboss.org/jira/browse/JBAS-7588?focusedCommentId=12509300#action_12509300
+ String rmiClassLoaderSpi = System.getProperty("java.rmi.server.RMIClassLoaderSpi");
+ // if already set, then don't override it
+ if (rmiClassLoaderSpi == null)
+ {
+ String jbossRMIClassLoader = "org.jboss.system.JBossRMIClassLoader";
+ // Is the class available?
+ try
+ {
+ Thread.currentThread().getContextClassLoader().loadClass(jbossRMIClassLoader);
+ // class was available, so set the property
+ System.setProperty("java.rmi.server.RMIClassLoaderSpi", jbossRMIClassLoader);
+ }
+ catch (Throwable ignore)
+ {
+ // class isn't available, or there was some problem
+ // loading that class, so don't set the system property
+ }
+
+ }
// Get JBOSS_HOME appropriately
final String homeUrl = props.get(JBossASServerConfig.PROP_KEY_JBOSSAS_HOME_URL);
@@ -450,15 +474,6 @@
Getopt getopt = new Getopt(programName, args, sopts, lopts);
int code;
String arg;
- final String propKeyJBossasBindAddress = JBossASServerConfig.PROP_KEY_JBOSSAS_BIND_ADDRESS;
- if (props.get(propKeyJBossasBindAddress) == null)
- {
- // JBossASServerConfig.PROP_KEY_JBOSSAS_BIND_ADDRESS could have been defined via
- // run.conf and so we don't wanna override that.
- final String defaultBindAddress = "127.0.0.1";
- props.put(propKeyJBossasBindAddress, defaultBindAddress);
- System.setProperty(propKeyJBossasBindAddress, defaultBindAddress);
- }
while ((code = getopt.getopt()) != -1)
{
switch (code)
@@ -668,7 +683,26 @@
// if it does throw an error so we know about it
throw new Error("unhandled option code: " + code);
}
+ }
+
+ // JBAS-7705 -- -P or other switches above may have gotten 'props'
+ // and system properties out of sync -- fix that
+ final Properties sysProps = System.getProperties();
+ for (final Object propName : sysProps.keySet())
+ {
+ final String propNameString = (String) propName;
+ final String propValue = (String) sysProps.get(propNameString);
+ props.put(propNameString, propValue);
}
+
+ // Ensure we have a bind address
+ final String propKeyJBossasBindAddress = JBossASServerConfig.PROP_KEY_JBOSSAS_BIND_ADDRESS;
+ if (props.get(propKeyJBossasBindAddress) == null)
+ {
+ final String defaultBindAddress = "127.0.0.1";
+ props.put(propKeyJBossasBindAddress, defaultBindAddress);
+ System.setProperty(propKeyJBossasBindAddress, defaultBindAddress);
+ }
// Make sure some address properties are set and/or don't specify
// a "any local address" value that's useless for their intended usage
Modified: branches/vfs3-int/main/src/resources/logging.properties
===================================================================
--- branches/vfs3-int/main/src/resources/logging.properties 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/main/src/resources/logging.properties 2010-02-12 17:13:14 UTC (rev 100922)
@@ -23,13 +23,17 @@
### $Id: $ ###
# Additional logger names to configure (root logger is always configured)
-#loggers=org.jboss.whatever
+#loggers=org.jboss.whatever,org.jboss.foo
+loggers=org.jboss.system.server.ServerInfo
# Root logger level
-logger.level=${jboss.boot.server.log.level:DEBUG}
+logger.level=${jboss.boot.server.log.level:INFO}
# Root logger handlers
logger.handlers=CONSOLE, FILE
+# Allow debug logging from ServerInfo to get the system properties dump
+logger.org.jboss.system.server.ServerInfo.level=${jboss.boot.server.log.serverinfo.level:DEBUG}
+
# Console handler configuration
handler.CONSOLE=org.jboss.logmanager.handlers.ConsoleHandler
handler.CONSOLE.properties=autoFlush
Modified: branches/vfs3-int/management/pom.xml
===================================================================
--- branches/vfs3-int/management/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/management/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (management module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/resources</directory>
Modified: branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/ServiceModule.java
===================================================================
--- branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/ServiceModule.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/ServiceModule.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -62,6 +62,10 @@
ObjectName jsr77Name = null;
ObjectName j2eeServerName = J2EEDomain.getDomainServerName(mbeanServer);
+ // Cannot create the module if the J2EEServer MBean is not registered
+ if (j2eeServerName == null)
+ return null;
+
// First get the deployement descriptor
if (url != null && url.getFile().endsWith(".xml"))
{
Modified: branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/WebModule.java
===================================================================
--- branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/WebModule.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/WebModule.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -42,12 +42,10 @@
* @author <a href="mailto:thomas.diesler at jboss.org">Thomas Diesler</a>
* @version $Revision$
*/
-public class WebModule extends J2EEModule
- implements WebModuleMBean
+public class WebModule extends J2EEModule implements WebModuleMBean
{
- private static final String[] eventTypes = {NotificationConstants.OBJECT_CREATED,
- NotificationConstants.OBJECT_DELETED};
+ private static final String[] eventTypes = { NotificationConstants.OBJECT_CREATED, NotificationConstants.OBJECT_DELETED };
// Attributes ----------------------------------------------------
private static Logger log = Logger.getLogger(WebModule.class);
@@ -76,26 +74,25 @@
* @param pURL URL path to the local deployment of the module (where to find the DD file)
* @param webContainerName the JBoss web container mbean name
*/
- public static ObjectName create(MBeanServer mbeanServer,
- String earName,
- String warName,
- URL pURL,
- ObjectName webContainerName)
+ public static ObjectName create(MBeanServer mbeanServer, String earName, String warName, URL pURL, ObjectName webContainerName)
{
String webXml = null;
String jbossWebXml = null;
ObjectName jsr77ParentName = null;
ObjectName lCreated = null;
ObjectName j2eeServerName = J2EEDomain.getDomainServerName(mbeanServer);
+
+ // Cannot create the module if the J2EEServer MBean is not registered
+ if (j2eeServerName == null)
+ return null;
+
ObjectName jsr77Name = null;
try
{
// Get the J2EEServer name
Hashtable props = j2eeServerName.getKeyPropertyList();
- String j2eeServer = props.get(J2EEManagedObject.TYPE) + "=" +
- props.get("name");
+ String j2eeServer = props.get(J2EEManagedObject.TYPE) + "=" + props.get("name");
-
if (earName == null)
{
// If there is no ear use the J2EEServer as the parent
@@ -104,31 +101,25 @@
else
{
// Query for the J2EEApplication matching earName
- ObjectName lApplicationQuery = new ObjectName(J2EEDomain.getDomainName() + ":" +
- J2EEManagedObject.TYPE + "=" + J2EETypeConstants.J2EEApplication + "," +
- "name=" + earName + "," +
- j2eeServer + "," +
- "*");
+ ObjectName lApplicationQuery = new ObjectName(J2EEDomain.getDomainName() + ":" + J2EEManagedObject.TYPE + "=" + J2EETypeConstants.J2EEApplication + ","
+ + "name=" + earName + "," + j2eeServer + "," + "*");
Set lApplications = mbeanServer.queryNames(lApplicationQuery, null);
if (lApplications.isEmpty())
{
- lCreated = J2EEApplication.create(mbeanServer,
- earName,
- null);
+ lCreated = J2EEApplication.create(mbeanServer, earName, null);
jsr77ParentName = lCreated;
} // end of if ()
else if (lApplications.size() == 1)
{
- jsr77ParentName = (ObjectName) lApplications.iterator().next();
+ jsr77ParentName = (ObjectName)lApplications.iterator().next();
} // end of if ()
}
// Get the J2EE deployement descriptor
webXml = J2EEDeployedObject.getDeploymentDescriptor(pURL, J2EEDeployedObject.WEB);
// Get the JBoss Web deployement descriptor
- jbossWebXml = J2EEDeployedObject.getDeploymentDescriptor(pURL,
- J2EEDeployedObject.JBOSS_WEB);
+ jbossWebXml = J2EEDeployedObject.getDeploymentDescriptor(pURL, J2EEDeployedObject.JBOSS_WEB);
}
catch (Exception e)
{
@@ -139,11 +130,9 @@
try
{
// Get JVM of the j2eeServer
- String[] jvms = (String[]) mbeanServer.getAttribute(j2eeServerName,
- "javaVMs");
+ String[] jvms = (String[])mbeanServer.getAttribute(j2eeServerName, "javaVMs");
- WebModule webModule = new WebModule(warName, jsr77ParentName, jvms, webXml,
- webContainerName, jbossWebXml);
+ WebModule webModule = new WebModule(warName, jsr77ParentName, jvms, webXml, webContainerName, jbossWebXml);
jsr77Name = webModule.getObjectName();
mbeanServer.registerMBean(webModule, jsr77Name);
//remember if we created our parent, if we did we have to kill it on destroy.
@@ -173,7 +162,7 @@
{
mbeanServer.unregisterMBean(jsr77Name);
log.debug("Remove JSR-77 WebModule: " + jsr77Name);
- ObjectName jsr77ParentName = (ObjectName) fakeJ2EEApps.get(jsr77Name);
+ ObjectName jsr77ParentName = (ObjectName)fakeJ2EEApps.get(jsr77Name);
if (jsr77ParentName != null)
{
log.debug("Remove fake JSR-77 parent Application: " + jsr77ParentName);
@@ -198,10 +187,8 @@
* @param webContainerName the JBoss web container service name for the war
* @param jbossWebDD the jboss-web.xml descriptor text
*/
- public WebModule(String warName, ObjectName j2eeAppName, String[] jvms,
- String webDD, ObjectName webContainerName, String jbossWebDD)
- throws MalformedObjectNameException,
- InvalidParentException
+ public WebModule(String warName, ObjectName j2eeAppName, String[] jvms, String webDD, ObjectName webContainerName, String jbossWebDD)
+ throws MalformedObjectNameException, InvalidParentException
{
super(J2EETypeConstants.WebModule, warName, j2eeAppName, jvms, webDD);
this.jbossWebDD = (jbossWebDD == null ? "" : jbossWebDD);
@@ -228,7 +215,7 @@
{
if (pIndex >= 0 && pIndex < servletNames.size())
{
- return (String) servletNames.get(pIndex);
+ return (String)servletNames.get(pIndex);
}
else
{
@@ -249,8 +236,7 @@
public void addChild(ObjectName pChild)
{
String lType = J2EEManagedObject.getType(pChild);
- if (J2EETypeConstants.Servlet.equals(lType)
- )
+ if (J2EETypeConstants.Servlet.equals(lType))
{
servletNames.add(pChild.getCanonicalName());
}
@@ -296,10 +282,7 @@
public String toString()
{
- return "WebModule[ " + super.toString() +
- ", Servlets: " + servletNames +
- ", JBoss-Web-DD: " + jbossWebDD +
- " ]";
+ return "WebModule[ " + super.toString() + ", Servlets: " + servletNames + ", JBoss-Web-DD: " + jbossWebDD + " ]";
}
// Package protected ---------------------------------------------
@@ -314,8 +297,8 @@
{
Hashtable parentKeys = new Hashtable();
Hashtable parentProps = jsr77ParentName.getKeyPropertyList();
- String parentName = (String) parentProps.get("name");
- String j2eeType = (String) parentProps.get(J2EEManagedObject.TYPE);
+ String parentName = (String)parentProps.get("name");
+ String j2eeType = (String)parentProps.get(J2EEManagedObject.TYPE);
// Check if parent is a J2EEServer or J2EEApplication
if (j2eeType.equals(J2EETypeConstants.J2EEApplication) == false)
@@ -328,7 +311,7 @@
{
// J2EEApplication
parentKeys.put(J2EETypeConstants.J2EEApplication, parentName);
- String j2eeServerName = (String) parentProps.get(J2EETypeConstants.J2EEServer);
+ String j2eeServerName = (String)parentProps.get(J2EETypeConstants.J2EEServer);
parentKeys.put(J2EETypeConstants.J2EEServer, j2eeServerName);
}
@@ -340,4 +323,3 @@
// Inner classes -------------------------------------------------
}
-
Modified: branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractJSR77Deployer.java
===================================================================
--- branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractJSR77Deployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractJSR77Deployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -34,6 +34,8 @@
/**
* Abstract jsr77 deployer.
*
+ * [TODO] Add meaningful javadoc. What is this supposed to do?
+ *
* @param <T> exact input type
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
Modified: branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractVFSJSR77Deployer.java
===================================================================
--- branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractVFSJSR77Deployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/AbstractVFSJSR77Deployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -29,6 +29,8 @@
/**
* Abstract vfs jsr77 deployer.
*
+ * [TODO] Add meaningful javadoc. What is this supposed to do?
+ *
* @param <T> exact input type
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
Modified: branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/ServiceModuleJSR77Deployer.java
===================================================================
--- branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/ServiceModuleJSR77Deployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/ServiceModuleJSR77Deployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -35,6 +35,8 @@
/**
* Service module jsr77 deployer.
*
+ * [TODO] Add meaningful javadoc. What is this supposed to do?
+ *
* @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
*/
public class ServiceModuleJSR77Deployer extends AbstractVFSJSR77Deployer<ServiceDeployment>
@@ -50,17 +52,17 @@
if (sarName != null)
{
log.debug("Created ServiceModule: " + sarName);
- }
- List<ServiceMetaData> beans = metaData.getServices();
- if (beans != null && beans.isEmpty() == false)
- {
- for (ServiceMetaData bean : beans)
+ List<ServiceMetaData> beans = metaData.getServices();
+ if (beans != null && beans.isEmpty() == false)
{
- ObjectName mbeanName = bean.getObjectName();
- // Create JSR-77 MBean
- MBean.create(server, sarName.toString(), mbeanName);
- log.debug("Create MBean, name: " + mbeanName + ", SAR Module: " + sarName);
+ for (ServiceMetaData bean : beans)
+ {
+ ObjectName mbeanName = bean.getObjectName();
+ // Create JSR-77 MBean
+ MBean.create(server, sarName.toString(), mbeanName);
+ log.debug("Create MBean, name: " + mbeanName + ", SAR Module: " + sarName);
+ }
}
}
}
@@ -71,7 +73,7 @@
if (beans != null && beans.isEmpty() == false)
{
ListIterator<ServiceMetaData> iter = beans.listIterator(beans.size());
- while(iter.hasPrevious())
+ while (iter.hasPrevious())
{
ObjectName name = iter.previous().getObjectName();
try
Modified: branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/WebModuleJSR77Deployer.java
===================================================================
--- branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/WebModuleJSR77Deployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/management/src/main/java/org/jboss/management/j2ee/deployers/WebModuleJSR77Deployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -48,40 +48,43 @@
ObjectName webModuleService = extractRootObjectName(server, unit, metaData); // TODO
String earName = FactoryUtils.findEarParent(unit);
ObjectName jsr77Name = WebModule.create(server, earName, warName, unit.getRoot().toURL(), webModuleService);
- putObjectName(unit, WebModule.class.getName(), jsr77Name);
- Iterable<ObjectName> servlets = extractComponentObjectNames(server, unit, metaData); // TODO
- for (ObjectName servletName : servlets)
+ if (jsr77Name != null)
{
- try
+ putObjectName(unit, WebModule.class.getName(), jsr77Name);
+ Iterable<ObjectName> servlets = extractComponentObjectNames(server, unit, metaData); // TODO
+ for (ObjectName servletName : servlets)
{
- createServlet(server, unit, jsr77Name, servletName);
+ try
+ {
+ createServlet(server, unit, jsr77Name, servletName);
+ }
+ catch (Throwable e)
+ {
+ log.debug("Failed to create JSR-77 servlet: " + servletName, e);
+ }
}
- catch (Throwable e)
- {
- log.debug("Failed to create JSR-77 servlet: " + servletName, e);
- }
}
}
protected void undeployJsr77(MBeanServer server, VFSDeploymentUnit unit, JBossWebMetaData metaData)
{
ObjectName jsr77Name = removeObjectName(unit, WebModule.class.getName());
- log.debug("Destroy module: " + jsr77Name);
- Iterable<ObjectName> servlets = extractComponentObjectNames(server, unit, metaData); // TODO
- for (ObjectName servletName : servlets)
+ if (jsr77Name != null)
{
- try
+ log.debug("Destroy module: " + jsr77Name);
+ Iterable<ObjectName> servlets = extractComponentObjectNames(server, unit, metaData); // TODO
+ for (ObjectName servletName : servlets)
{
- destroyServlet(server, unit, servletName);
+ try
+ {
+ destroyServlet(server, unit, servletName);
+ }
+ catch (Throwable e)
+ {
+ log.debug("Failed to destroy JSR-77 servlet: " + servletName, e);
+ }
}
- catch (Throwable e)
- {
- log.debug("Failed to destroy JSR-77 servlet: " + servletName, e);
- }
- }
- if (jsr77Name != null)
- {
WebModule.destroy(server, jsr77Name);
}
}
Modified: branches/vfs3-int/messaging/pom.xml
===================================================================
--- branches/vfs3-int/messaging/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/messaging/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (messaging module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/resources</directory>
Modified: branches/vfs3-int/messaging/src/etc/examples/web-service/build.xml
===================================================================
--- branches/vfs3-int/messaging/src/etc/examples/web-service/build.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/messaging/src/etc/examples/web-service/build.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -43,7 +43,7 @@
<pathelement location="${jboss.client}/jbossws-client.jar"/>
<pathelement location="${jboss.client}/log4j.jar"/>
<pathelement location="${jboss.client}/mail.jar"/>
- <pathelement location="${jboss.client}/jboss-xml-binding.jar"/>
+ <pathelement location="${jboss.client}/jbossxb.jar"/>
<pathelement location="${jboss.client}/jboss-jaxws.jar"/>
<pathelement location="${jboss.client}/jboss-jaxrpc.jar"/>
<pathelement location="${jboss.client}/jboss-saaj.jar"/>
@@ -66,7 +66,7 @@
<pathelement location="${jboss.client}/jbossws-client.jar"/>
<pathelement location="${jboss.client}/log4j.jar"/>
<pathelement location="${jboss.client}/mail.jar"/>
- <pathelement location="${jboss.client}/jboss-xml-binding.jar"/>
+ <pathelement location="${jboss.client}/jbossxb.jar"/>
<pathelement location="${jboss.client}/jboss-jaxws.jar"/>
<pathelement location="${jboss.client}/jboss-jaxrpc.jar"/>
<pathelement location="${jboss.client}/jboss-saaj.jar"/>
Modified: branches/vfs3-int/messaging/src/main/java/org/jboss/jms/server/destination/JBossMessagingCreateDestinationFactory.java
===================================================================
--- branches/vfs3-int/messaging/src/main/java/org/jboss/jms/server/destination/JBossMessagingCreateDestinationFactory.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/messaging/src/main/java/org/jboss/jms/server/destination/JBossMessagingCreateDestinationFactory.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -110,7 +110,7 @@
public Object create(DeploymentUnit unit, JBossMessageDrivenBeanMetaData mdb) throws DeploymentException
{
- String destinationName = null;
+ String destinationJNDIName = null;
String destinationType = null;
ActivationConfigMetaData activationConfig = mdb.getActivationConfig();
@@ -119,14 +119,14 @@
ActivationConfigPropertiesMetaData properties = activationConfig.getActivationConfigProperties();
if (properties != null)
{
- destinationName = getActivationConfigProperty(properties, "destination");
+ destinationJNDIName = getActivationConfigProperty(properties, "destination");
destinationType = getActivationConfigProperty(properties, "destinationType");
}
}
// TODO message-destination-link?
- if (destinationName == null || destinationName.trim().length() == 0)
+ if (destinationJNDIName == null || destinationJNDIName.trim().length() == 0)
{
log.warn("Unable to determine destination for " + mdb.getName());
return null;
@@ -154,6 +154,8 @@
ServiceMetaData result = new ServiceMetaData();
result.setConstructor(new ServiceConstructorMetaData());
ObjectName objectName;
+ // See https://jira.jboss.org/jira/browse/JBPAPP-3026
+ String destinationName = this.createDestinationNameFromJNDIName(destinationJNDIName);
if (isTopic)
{
objectName = ObjectNameFactory.create("jboss.messaging.destination:service=Topic,name=" + destinationName);
@@ -170,7 +172,7 @@
ServiceAttributeMetaData attribute = new ServiceAttributeMetaData();
attribute.setName("JNDIName");
- attribute.setValue(new ServiceTextValueMetaData(destinationName));
+ attribute.setValue(new ServiceTextValueMetaData(destinationJNDIName));
result.addAttribute(attribute);
attribute = new ServiceAttributeMetaData();
@@ -212,4 +214,25 @@
return null;
return property.getValue();
}
+
+ /**
+ * JBoss Messaging does not allow the use of forward slashes in the destination name (which is used in the
+ * MBean ObjectName for the destination). However, the destination *jndi* name is allowed to have forward
+ * slashes. So create a proper destination name out of the destination *jndi* name.
+ * See https://jira.jboss.org/jira/browse/JBPAPP-3026 for more details
+ *
+ * This method, just replaces all the forward slashes with a dot.
+ *
+ * @param destinationJNDIName The jndi name of the destination
+ * @return Returns the destination name, created out of the destination jndi name.
+ * Returns null if the <code>destinationJNDIName</code> is null.
+ */
+ private String createDestinationNameFromJNDIName(String destinationJNDIName)
+ {
+ if (destinationJNDIName == null)
+ {
+ return null;
+ }
+ return destinationJNDIName.replace('/', '.');
+ }
}
Modified: branches/vfs3-int/pom.xml
===================================================================
--- branches/vfs3-int/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -68,7 +68,7 @@
</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
- <Implementation-URL>${pom.url}</Implementation-URL>
+ <Implementation-URL>${project.url}</Implementation-URL>
</manifestEntries>
<manifestSections>
<manifestSection>
@@ -104,7 +104,7 @@
</addDefaultImplementationEntries>
</manifest>
<manifestEntries>
- <Implementation-URL>${pom.url}</Implementation-URL>
+ <Implementation-URL>${project.url}</Implementation-URL>
</manifestEntries>
<manifestSections>
<manifestSection>
@@ -358,11 +358,6 @@
</dependency>
<dependency>
<groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-jmx-remoting</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
<artifactId>jboss-as-main</artifactId>
<version>${project.version}</version>
</dependency>
@@ -551,6 +546,7 @@
</releases>
<snapshots>
<enabled>true</enabled>
+ <updatePolicy>never</updatePolicy>
</snapshots>
</pluginRepository>
</pluginRepositories>
@@ -574,7 +570,6 @@
<module>server</module>
<module>deployment</module>
<module>jbossas-remoting</module>
- <module>jmx-remoting</module>
<module>jbossas-jmx-remoting</module>
<module>messaging</module>
<module>cluster</module>
Modified: branches/vfs3-int/profileservice/pom.xml
===================================================================
--- branches/vfs3-int/profileservice/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/profileservice/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -13,7 +13,7 @@
<url>http://www.jboss.org/jbossas</url>
<description>JBoss Application Server (profileservice module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
Modified: branches/vfs3-int/profileservice/src/main/java/org/jboss/profileservice/web/DebugServlet.java
===================================================================
--- branches/vfs3-int/profileservice/src/main/java/org/jboss/profileservice/web/DebugServlet.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/profileservice/src/main/java/org/jboss/profileservice/web/DebugServlet.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -23,7 +23,6 @@
import java.io.IOException;
import java.io.PrintWriter;
-import java.util.Arrays;
import java.util.Map;
import java.util.Set;
@@ -39,6 +38,7 @@
import org.jboss.deployers.spi.management.ManagementView;
import org.jboss.managed.api.ManagedComponent;
import org.jboss.managed.api.ManagedDeployment;
+import org.jboss.profileservice.spi.ProfileService;
/**
* @author Scott.Stark at jboss.org
@@ -47,8 +47,11 @@
public class DebugServlet extends HttpServlet
{
private static final long serialVersionUID = 1;
- @Resource(mappedName="java:ManagementView")
+ @Resource(mappedName = "java:ProfileService")
+ private ProfileService ps;
+
private ManagementView mgtView;
+
enum Operations {
listDeploymentTree,
listOperations
@@ -61,15 +64,20 @@
super.init(config);
if(mgtView == null)
{
- try
+ if(ps == null)
{
- InitialContext ctx = new InitialContext();
- mgtView = (ManagementView) ctx.lookup("java:ManagementView");
+ try
+ {
+ InitialContext ctx = new InitialContext();
+ ps = (ProfileService) ctx.lookup("java:ProfileService");
+ }
+ catch (NamingException e)
+ {
+ throw new ServletException("Failed to lookup java:ProfileService", e);
+ }
}
- catch (NamingException e)
- {
- throw new ServletException("Failed to lookup ManagementView", e);
- }
+ this.mgtView = ps.getViewManager();
+
}
}
Property changes on: branches/vfs3-int/resteasy-int
___________________________________________________________________
Name: svn:ignore
+ target
*.iml
Property changes on: branches/vfs3-int/resteasy-int/jar
___________________________________________________________________
Name: svn:ignore
+ target
*.iml
Modified: branches/vfs3-int/resteasy-int/jar/pom.xml
===================================================================
--- branches/vfs3-int/resteasy-int/jar/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/jar/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,144 +1,144 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-
- <parent>
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <parent>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-parent</artifactId>
+ <version>6.0.0-SNAPSHOT</version>
+ </parent>
+
+ <modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-parent</artifactId>
- <version>6.0.0-SNAPSHOT</version>
- </parent>
-
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-resteasy</artifactId>
- <packaging>jar</packaging>
- <name>JBoss Application Server Resteasy</name>
- <url>http://www.jboss.org/jbossas</url>
- <description>JBoss Application Server (resteasy module)</description>
-
- <build>
- <plugins>
-<plugin>
- <artifactId>maven-jar-plugin</artifactId>
- <configuration>
- <archive>
- <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
- </archive>
- </configuration>
-</plugin>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <version>2.0.1</version>
- <executions>
- <execution>
- <id>bundle-manifest</id>
- <phase>process-classes</phase>
- <goals>
- <goal>manifest</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-
- <!-- Dependencies -->
- <dependencies>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>1.2.1.GA</version>
- <exclusions>
- <exclusion>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.xml.stream</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
+ <artifactId>jboss-as-resteasy</artifactId>
+ <packaging>jar</packaging>
+ <name>JBoss Application Server Resteasy</name>
+ <url>http://www.jboss.org/jbossas</url>
+ <description>JBoss Application Server (resteasy module)</description>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-server</artifactId>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.xml.stream</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>2.0.1</version>
+ <executions>
+ <execution>
+ <id>bundle-manifest</id>
+ <phase>process-classes</phase>
+ <goals>
+ <goal>manifest</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-system</artifactId>
- <scope>provided</scope>
- <exclusions>
- <exclusion>
- <groupId>javax.xml.bind</groupId>
- <artifactId>jaxb-api</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.xml.stream</groupId>
- <artifactId>stax-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
+ <!-- Dependencies -->
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxrs</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
- <!--
- <dependency>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-system-jmx</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.cl</groupId>
- <artifactId>jboss-classloading</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-vfs</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss</groupId>
- <artifactId>jboss-reflect</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.microcontainer</groupId>
- <artifactId>jboss-dependency</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.microcontainer</groupId>
- <artifactId>jboss-kernel</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.metadata</groupId>
- <artifactId>jboss-metadata-common</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.deployers</groupId>
- <artifactId>jboss-deployers-vfs</artifactId>
+ <dependency>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-server</artifactId>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-system</artifactId>
+ <scope>provided</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
+ <!--
+ <dependency>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-system-jmx</artifactId>
<scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.security</groupId>
- <artifactId>jboss-security-spi</artifactId>
- <scope>provided</scope>
- </dependency>
- -->
- </dependencies>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.cl</groupId>
+ <artifactId>jboss-classloading</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-vfs</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss</groupId>
+ <artifactId>jboss-reflect</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.microcontainer</groupId>
+ <artifactId>jboss-dependency</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.microcontainer</groupId>
+ <artifactId>jboss-kernel</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.metadata</groupId>
+ <artifactId>jboss-metadata-common</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.deployers</groupId>
+ <artifactId>jboss-deployers-vfs</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.security</groupId>
+ <artifactId>jboss-security-spi</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ -->
+ </dependencies>
</project>
Copied: branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java (from rev 100917, trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java)
===================================================================
--- branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java (rev 0)
+++ branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyDeploymentData.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,93 @@
+package org.jboss.resteasy.integration.deployers;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
+ * @version $Revision: 1 $
+ */
+public class ResteasyDeploymentData
+{
+ private boolean scanAll;
+ private boolean scanResources;
+ private boolean scanProviders;
+ private boolean createDispatcher;
+ private Set<String> resources = new LinkedHashSet<String>();
+ private Set<String> providers = new LinkedHashSet<String>();
+
+ public boolean shouldScan()
+ {
+ return scanAll || scanResources || scanProviders;
+ }
+
+ public boolean isScanAll()
+ {
+ return scanAll;
+ }
+
+ public void setScanAll(boolean scanAll)
+ {
+ if (scanAll)
+ {
+ scanResources = true;
+ scanProviders = true;
+ }
+ this.scanAll = scanAll;
+ }
+
+ public boolean isScanResources()
+ {
+ return scanResources;
+ }
+
+ public void setScanResources(boolean scanResources)
+ {
+ this.scanResources = scanResources;
+ }
+
+ public boolean isScanProviders()
+ {
+ return scanProviders;
+ }
+
+ public void setScanProviders(boolean scanProviders)
+ {
+ this.scanProviders = scanProviders;
+ }
+
+ public Set<String> getResources()
+ {
+ return resources;
+ }
+
+ public void setResources(Set<String> resources)
+ {
+ this.resources = resources;
+ }
+
+ public Set<String> getProviders()
+ {
+ return providers;
+ }
+
+ public void setProviders(Set<String> providers)
+ {
+ this.providers = providers;
+ }
+
+ /**
+ * A component layer wants a dispatcher created
+ */
+ public void createDispatcher()
+ {
+ this.createDispatcher = true;
+ }
+
+ public boolean shouldCreateDispatcher()
+ {
+ return createDispatcher || !resources.isEmpty() || !providers.isEmpty();
+ }
+
+
+}
Copied: branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java (from rev 100917, trunk/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java)
===================================================================
--- branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java (rev 0)
+++ branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyEjbDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,331 @@
+package org.jboss.resteasy.integration.deployers;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb.deployers.MergedJBossMetaDataDeployer;
+import org.jboss.ejb3.annotation.LocalBinding;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
+import org.jboss.resteasy.util.GetRestful;
+
+import javax.ejb.EJBException;
+import javax.ejb.Local;
+import javax.ejb.LocalHome;
+import javax.ejb.Remote;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
+ * @version $Revision: 1 $
+ */
+public class ResteasyEjbDeployer extends AbstractRealDeployer
+{
+ private static final Logger LOGGER = Logger.getLogger(ResteasyEjbDeployer.class);
+
+ public ResteasyEjbDeployer()
+ {
+ super();
+
+ addRequiredInput(JBossWebMetaData.class);
+ addRequiredInput(ResteasyDeploymentData.class);
+ addRequiredInput(MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME);
+ addOutput(JBossWebMetaData.class);
+ setStage(DeploymentStages.PRE_REAL); // TODO -- right stage?
+ }
+
+ protected void internalDeploy(DeploymentUnit du) throws DeploymentException
+ {
+ ResteasyDeploymentData resteasy = du.getAttachment(ResteasyDeploymentData.class);
+
+ /*
+ log.info("*******************");
+ log.info("*** Attachments ***");
+ log.info("*******************");
+ for (String attachment : du.getAttachments().keySet())
+ {
+ log.info(">>> " + attachment);
+ }
+
+ if (true) return;
+ */
+
+ // right now I only support resources
+ if (!resteasy.isScanResources()) return;
+
+ JBossWebMetaData webdata = du.getAttachment(JBossWebMetaData.class);
+ JBossMetaData ejbs = (JBossMetaData) du
+ .getAttachment(MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME);
+ ClassLoader loader = du.getClassLoader();
+ StringBuffer buf = null;
+ for (final JBossEnterpriseBeanMetaData ejb : ejbs.getEnterpriseBeans())
+ {
+ Class ejbClass = null;
+ try
+ {
+ ejbClass = loader.loadClass(ejb.getEjbClass());
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new RuntimeException(e);
+ }
+ if (!GetRestful.isRootResource(ejbClass)) continue;
+ String jndiName = getLocalJndiName(ejb, ejbClass);
+ log.info("Found JAX-RS EJB: " + ejbClass.getName() + " local jndi name: " + jndiName);
+ if (buf == null)
+ {
+ buf = new StringBuffer();
+ }
+ else
+ {
+ buf.append(",");
+ }
+ buf.append(jndiName).append(";").append(ejbClass.getName()).append(";").append("true");
+
+ // make sure its removed from list
+ resteasy.getResources().remove(ejbClass.getName());
+ }
+ if (buf != null)
+ {
+ resteasy.createDispatcher();
+ String paramValue = buf.toString();
+ ParamValueMetaData param = new ParamValueMetaData();
+ param.setParamName(ResteasyContextParameters.RESTEASY_JNDI_COMPONENT_RESOURCES);
+ param.setParamValue(paramValue);
+ List<ParamValueMetaData> params = webdata.getContextParams();
+ if (params == null)
+ {
+ params = new ArrayList<ParamValueMetaData>();
+ webdata.setContextParams(params);
+ }
+ params.add(param);
+ param = new ParamValueMetaData();
+ param.setParamName(ResteasyContextParameters.RESTEASY_UNWRAPPED_EXCEPTIONS);
+ param.setParamValue(EJBException.class.getName());
+ params.add(param);
+ }
+ }
+
+ private static String getLocalJndiName(JBossEnterpriseBeanMetaData ejb, Class<?> ejbClass)
+ {
+ // See if local binding is explicitly-defined
+ LocalBinding localBinding = ejbClass.getAnnotation(LocalBinding.class);
+
+ // If none specified
+ if (localBinding == null || (localBinding.jndiBinding() != null && localBinding.jndiBinding().trim().length() == 0))
+ {
+ String name = ejb.getLocalJndiName();
+ return name;
+ }
+ // Local Binding was explicitly-specified, use it
+ else
+ {
+ return localBinding.jndiBinding();
+ }
+ }
+
+
+ public static Set<Class<?>> getBusinessInterfaces(Class<?> beanClass)
+ {
+ // Obtain all business interfaces implemented by this bean class and its superclasses
+ return getBusinessInterfaces(beanClass, new HashSet<Class<?>>());
+ }
+
+ /**
+ * Resolve the potential business interfaces on an enterprise bean.
+ * Returns all interfaces implemented by this class and, optionally, its supers which
+ * are potentially a business interface.
+ * <p/>
+ * Note: for normal operation call container.getBusinessInterfaces().
+ *
+ * @param beanClass the EJB implementation class
+ * @param includeSupers Whether or not to include superclasses of the specified beanClass in this check
+ * @return a list of potential business interfaces
+ * @see org.jboss.ejb3.EJBContainer#getBusinessInterfaces()
+ */
+ public static Set<Class<?>> getBusinessInterfaces(Class<?> beanClass, boolean includeSupers)
+ {
+ // Obtain all business interfaces implemented by this bean class and optionally, its superclass
+ return getBusinessInterfaces(beanClass, new HashSet<Class<?>>(), includeSupers);
+ }
+
+ private static Set<Class<?>> getBusinessInterfaces(Class<?> beanClass, Set<Class<?>> interfaces)
+ {
+ return getBusinessInterfaces(beanClass, interfaces, true);
+ }
+
+ private static Set<Class<?>> getBusinessInterfaces(Class<?> beanClass, Set<Class<?>> interfaces,
+ boolean includeSupers)
+ {
+ /*
+ * 4.6.6:
+ * The following interfaces are excluded when determining whether the bean class has
+ * more than one interface: java.io.Serializable; java.io.Externalizable;
+ * any of the interfaces defined by the javax.ejb package.
+ */
+ for (Class<?> intf : beanClass.getInterfaces())
+ {
+ if (intf.equals(java.io.Externalizable.class))
+ continue;
+ if (intf.equals(java.io.Serializable.class))
+ continue;
+ if (intf.getName().startsWith("javax.ejb"))
+ continue;
+
+ // FIXME Other aop frameworks might add other interfaces, this should really be configurable
+ if (intf.getName().startsWith("org.jboss.aop"))
+ continue;
+
+ interfaces.add(intf);
+ }
+
+ // If there's no superclass, or we shouldn't check the superclass, return
+ if (!includeSupers || beanClass.getSuperclass() == null)
+ {
+ return interfaces;
+ }
+ else
+ {
+ // Include any superclasses' interfaces
+ return getBusinessInterfaces(beanClass.getSuperclass(), interfaces);
+ }
+ }
+
+
+ public static Class<?>[] getLocalInterfaces(Class<?> beanClass)
+ {
+ // Initialize
+ Set<Class<?>> localAndBusinessLocalInterfaces = new HashSet<Class<?>>();
+
+ // Obtain @Local
+ Local localAnnotation = beanClass.getAnnotation(Local.class);
+
+ // Obtain @LocalHome
+ LocalHome localHomeAnnotation = beanClass.getAnnotation(LocalHome.class);
+
+ // Obtain @Remote
+ Remote remoteAnnotation = beanClass.getAnnotation(Remote.class);
+
+ // Obtain Remote and Business Remote interfaces
+ //Class<?>[] remoteAndBusinessRemoteInterfaces = ProxyFactoryHelper.getRemoteAndBusinessRemoteInterfaces(container);
+
+ // Obtain all business interfaces from the bean class
+ Set<Class<?>> businessInterfacesImplementedByBeanClass = getBusinessInterfaces(beanClass);
+
+ // Obtain all business interfaces directly implemented by the bean class (not including supers)
+ Set<Class<?>> businessInterfacesDirectlyImplementedByBeanClass = getBusinessInterfaces(
+ beanClass, false);
+
+ // For each of the business interfaces implemented by the bean class
+ for (Class<?> clazz : businessInterfacesImplementedByBeanClass)
+ {
+ // If @Local is on the interface
+ if (clazz.isAnnotationPresent(Local.class))
+ {
+ // Add to the list of locals
+ localAndBusinessLocalInterfaces.add(clazz);
+ }
+ }
+
+ // EJBTHREE-1062
+ // EJB 3 Core Specification 4.6.6
+ // If bean class implements a single interface, that interface is assumed to be the
+ // business interface of the bean. This business interface will be a local interface unless the
+ // interface is designated as a remote business interface by use of the Remote
+ // annotation on the bean class or interface or by means of the deployment descriptor.
+ if (businessInterfacesDirectlyImplementedByBeanClass.size() == 1 && localAndBusinessLocalInterfaces.size() == 0)
+ {
+ // Obtain the implemented interface
+ Class<?> singleInterface = businessInterfacesDirectlyImplementedByBeanClass.iterator().next();
+
+ // If not explicitly marked as @Remote, and is a valid business interface
+ if (remoteAnnotation == null && singleInterface.getAnnotation(Remote.class) == null)
+ {
+ // Return the implemented interface, adding to the container
+ Class<?>[] returnValue = new Class[]
+ {singleInterface};
+ return returnValue;
+ }
+ }
+
+ // @Local was defined
+ if (localAnnotation != null)
+ {
+ // If @Local has no value or empty value
+ if (localAnnotation.value() == null || localAnnotation.value().length == 0)
+ {
+ // If @Local is defined with no value and there are no business interfaces
+ if (businessInterfacesImplementedByBeanClass.size() == 0)
+ {
+ return new Class<?>[]
+ {};
+ }
+ // If more than one business interface is directly implemented by the bean class
+ else if (businessInterfacesImplementedByBeanClass.size() > 1)
+ {
+ return new Class<?>[]
+ {};
+ }
+ // JIRA EJBTHREE-1062
+ // EJB 3 4.6.6
+ // If the bean class implements only one business interface, that
+ //interface is exposed as local business if not denoted as @Remote
+ else
+ {
+ // If not explicitly marked as @Remote
+ if (remoteAnnotation == null)
+ {
+ // Return the implemented interface and add to container
+ Class<?>[] returnValue = businessInterfacesImplementedByBeanClass.toArray(new Class<?>[]
+ {});
+ return returnValue;
+ }
+ }
+ }
+ // @Local has value
+ else
+ {
+ // For each of the interfaces in @Local.value
+ for (Class<?> clazz : localAnnotation.value())
+ {
+ // Add to the list of locals
+ localAndBusinessLocalInterfaces.add(clazz);
+ }
+
+ // For each of the business interfaces implemented by the bean class
+ for (Class<?> clazz : businessInterfacesImplementedByBeanClass)
+ {
+ // If @Local is on the interface
+ if (clazz.isAnnotationPresent(Local.class))
+ {
+ // Add to the list of locals
+ localAndBusinessLocalInterfaces.add(clazz);
+ }
+ }
+ }
+ }
+
+ // If local interfaces have been defined/discovered
+ if (localAndBusinessLocalInterfaces.size() > 0)
+ {
+ // Return local interfaces, first adding to the container
+ Class<?>[] rtn = localAndBusinessLocalInterfaces.toArray(new Class<?>[]
+ {});
+ return rtn;
+ }
+
+ // No local or business local interfaces discovered
+ return new Class<?>[]
+ {};
+ }
+
+
+}
\ No newline at end of file
Modified: branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyIntegrationDeployer.java
===================================================================
--- branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyIntegrationDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyIntegrationDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -6,13 +6,12 @@
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.logging.Logger;
import org.jboss.metadata.javaee.spec.ParamValueMetaData;
-import org.jboss.metadata.web.jboss.JBossServletMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ServletMappingMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
+import org.jboss.metadata.web.spec.FilterMappingMetaData;
+import org.jboss.metadata.web.spec.FilterMetaData;
+import org.jboss.metadata.web.spec.FiltersMetaData;
+import org.jboss.resteasy.plugins.server.servlet.FilterDispatcher;
import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
-import org.jboss.resteasy.spi.ResteasyDeployment;
import java.util.ArrayList;
import java.util.List;
@@ -30,7 +29,7 @@
super();
addRequiredInput(JBossWebMetaData.class);
- addRequiredInput(ResteasyDeployment.class);
+ addRequiredInput(ResteasyDeploymentData.class);
addOutput(JBossWebMetaData.class);
setStage(DeploymentStages.PRE_REAL); // TODO -- right stage?
}
@@ -40,16 +39,16 @@
}
- protected void setInitParam(ServletMetaData servlet, String name, String value)
+ protected void setInitParam(FilterMetaData filter, String name, String value)
{
ParamValueMetaData param = new ParamValueMetaData();
param.setParamName(name);
param.setParamValue(value);
- List<ParamValueMetaData> params = servlet.getInitParam();
+ List<ParamValueMetaData> params = filter.getInitParam();
if (params == null)
{
params = new ArrayList<ParamValueMetaData>();
- servlet.setInitParam(params);
+ filter.setInitParam(params);
}
params.add(param);
@@ -57,23 +56,18 @@
protected void internalDeploy(DeploymentUnit du) throws DeploymentException
{
- if (du.isAttachmentPresent(ResteasyScannerDeployer.JAXRS_APPLICATION_CLASS_DEPLOYMENT))
- {
- // do not do this deployer if there is an application class a previous deployer will handle it
- return;
- }
-
JBossWebMetaData webdata = du.getAttachment(JBossWebMetaData.class);
- ResteasyDeployment resteasy = du.getAttachment(ResteasyDeployment.class);
+ ResteasyDeploymentData resteasy = du.getAttachment(ResteasyDeploymentData.class);
+ if (!resteasy.shouldCreateDispatcher()) return;
- JBossServletMetaData servlet = new JBossServletMetaData();
- servlet.setServletClass(HttpServletDispatcher.class.getName());
- servlet.setName("Resteasy");
+ FilterMetaData filter = new FilterMetaData();
+ filter.setFilterClass(FilterDispatcher.class.getName());
+ filter.setName("Resteasy");
- if (!resteasy.getResourceClasses().isEmpty())
+ if (!resteasy.getResources().isEmpty())
{
StringBuffer buf = null;
- for (String resource : resteasy.getResourceClasses())
+ for (String resource : resteasy.getResources())
{
if (buf == null)
{
@@ -84,14 +78,15 @@
{
buf.append(",").append(resource);
}
+ log.info("******** Adding RESOURCE CLASS: " + resource);
}
String resources = buf.toString();
- setInitParam(servlet, ResteasyContextParameters.RESTEASY_RESOURCES, resources);
+ setInitParam(filter, ResteasyContextParameters.RESTEASY_RESOURCES, resources);
}
- if (!resteasy.getProviderClasses().isEmpty())
+ if (!resteasy.getProviders().isEmpty())
{
StringBuffer buf = null;
- for (String provider : resteasy.getProviderClasses())
+ for (String provider : resteasy.getProviders())
{
if (buf == null)
{
@@ -103,20 +98,24 @@
buf.append(",").append(provider);
}
}
- setInitParam(servlet, ResteasyContextParameters.RESTEASY_PROVIDERS, buf.toString());
+ setInitParam(filter, ResteasyContextParameters.RESTEASY_PROVIDERS, buf.toString());
}
- ServletMappingMetaData mapping = new ServletMappingMetaData();
- mapping.setServletName("Resteasy");
+ FilterMappingMetaData mapping = new FilterMappingMetaData();
+ mapping.setFilterName("Resteasy");
List<String> patterns = new ArrayList<String>();
patterns.add("/*");
mapping.setUrlPatterns(patterns);
- webdata.getServlets().add(servlet);
- List<ServletMappingMetaData> mappings = webdata.getServletMappings();
+ if (webdata.getFilters() == null)
+ {
+ webdata.setFilters(new FiltersMetaData());
+ }
+ webdata.getFilters().add(filter);
+ List<FilterMappingMetaData> mappings = webdata.getFilterMappings();
if (mappings == null)
{
- mappings = new ArrayList<ServletMappingMetaData>();
- webdata.setServletMappings(mappings);
+ mappings = new ArrayList<FilterMappingMetaData>();
+ webdata.setFilterMappings(mappings);
}
mappings.add(mapping);
}
Modified: branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java
===================================================================
--- branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/jar/src/main/java/org/jboss/resteasy/integration/deployers/ResteasyScannerDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -9,15 +9,17 @@
import org.jboss.mcann.Element;
import org.jboss.metadata.javaee.spec.ParamValueMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.FilterMetaData;
import org.jboss.metadata.web.spec.ServletMetaData;
import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;
+import org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrapClasses;
import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
-import org.jboss.resteasy.spi.ResteasyDeployment;
import javax.ws.rs.Path;
import javax.ws.rs.core.Application;
import javax.ws.rs.ext.Provider;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
import java.util.Set;
@@ -28,18 +30,24 @@
public class ResteasyScannerDeployer extends AbstractRealDeployer
{
private static final Logger LOGGER = Logger.getLogger(ResteasyScannerDeployer.class);
- public static final String JAXRS_APPLICATION_CLASS_DEPLOYMENT = ResteasyScannerDeployer.class.getName() + "-JAXRS_APPLICATION_CLASS_DEPLOYMENT";
+ public static final Set<String> BOOT_CLASSES = new HashSet<String>();
+ static
+ {
+ for (String clazz : ResteasyBootstrapClasses.BOOTSTRAP_CLASSES)
+ {
+ BOOT_CLASSES.add(clazz);
+ }
+ }
+
public ResteasyScannerDeployer()
{
super();
addRequiredInput(JBossWebMetaData.class);
addInput(AnnotationRepository.class);
- addInput(ResteasyDeployment.class);
addOutput(JBossWebMetaData.class);
- addOutput(JAXRS_APPLICATION_CLASS_DEPLOYMENT);
- addOutput(ResteasyDeployment.class);
+ addOutput(ResteasyDeploymentData.class);
setStage(DeploymentStages.PRE_REAL); // TODO -- right stage?
}
@@ -55,9 +63,41 @@
}
+ /**
+ * If any servlet/filter classes are declared, then we probably don't want to scan.
+ *
+ * @param du
+ * @param webdata
+ * @return
+ * @throws DeploymentException
+ */
+ protected boolean scannable(DeploymentUnit du, JBossWebMetaData webdata) throws DeploymentException
+ {
+ ClassLoader loader = du.getClassLoader();
+ if (webdata.getServlets() != null)
+ {
+ for (ServletMetaData servlet : webdata.getServlets())
+ {
+ String servletClass = servlet.getServletClass();
+ if (BOOT_CLASSES.contains(servletClass)) return false;
+ }
+ }
+ if (webdata.getFilters() != null)
+ {
+ for (FilterMetaData filter : webdata.getFilters())
+ {
+ if (BOOT_CLASSES.contains(filter.getFilterClass())) return false;
+ }
+ }
+ return true;
+
+ }
+
protected boolean deployApplicationClass(DeploymentUnit du, JBossWebMetaData webdata) throws DeploymentException
{
ClassLoader loader = du.getClassLoader();
+ if (webdata.getServlets() == null) return false;
+
for (ServletMetaData servlet : webdata.getServlets())
{
String servletClass = servlet.getServletClass();
@@ -73,7 +113,6 @@
}
if (Application.class.isAssignableFrom(clazz))
{
- du.addAttachment(JAXRS_APPLICATION_CLASS_DEPLOYMENT, servletClass);
servlet.setServletClass(HttpServletDispatcher.class.getName());
ParamValueMetaData param = new ParamValueMetaData();
param.setParamName("javax.ws.rs.Application");
@@ -95,34 +134,66 @@
protected void scan(DeploymentUnit du, JBossWebMetaData webdata)
throws DeploymentException
{
- boolean scanAll = true;
- boolean scanProviders = true;
- boolean scanResources = true;
+ ResteasyDeploymentData scanningData = new ResteasyDeploymentData();
+ // If there is a resteasy boot class in web.xml, then the default should not be to scan
+ if (scannable(du, webdata) && !webdata.isMetadataComplete())
+ {
+ scanningData.setScanAll(true);
+ scanningData.setScanProviders(true);
+ scanningData.setScanResources(true);
+ }
+
// check resteasy configuration flags
+
List<ParamValueMetaData> contextParams = webdata.getContextParams();
+ boolean hasResourceParam = false;
+ boolean hasProviderParam = false;
+ boolean hasJndiParam = false;
if (contextParams != null)
{
for (ParamValueMetaData param : contextParams)
{
if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN))
{
- scanAll = Boolean.valueOf(param.getParamValue());
+ scanningData.setScanAll(Boolean.valueOf(param.getParamValue()));
}
else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN_PROVIDERS))
{
- scanProviders = Boolean.valueOf(param.getParamValue());
+ scanningData.setScanProviders(Boolean.valueOf(param.getParamValue()));
}
else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_SCAN_RESOURCES))
{
- scanResources = Boolean.valueOf(param.getParamValue());
+ scanningData.setScanResources(Boolean.valueOf(param.getParamValue()));
}
+ else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_RESOURCES))
+ {
+ hasResourceParam = true;
+ }
+ else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_PROVIDERS))
+ {
+ hasProviderParam = true;
+ }
+ else if (param.getParamName().equals(ResteasyContextParameters.RESTEASY_JNDI_RESOURCES))
+ {
+ hasJndiParam = true;
+ }
}
}
- if (scanAll == false) return;
+ if (!scanningData.shouldScan())
+ {
+ if (hasResourceParam || hasProviderParam || hasJndiParam)
+ {
+ scanningData.createDispatcher();
+ du.addAttachment(ResteasyDeploymentData.class, scanningData);
+ }
+ return;
+ }
+ du.addAttachment(ResteasyDeploymentData.class, scanningData);
+
AnnotationRepository env = du.getAttachment(AnnotationRepository.class);
if (env == null)
{
@@ -132,36 +203,31 @@
Set<Element<Path, Class<?>>> resources = null;
Set<Element<Provider, Class<?>>> providers = null;
- if (scanResources)
+ if (scanningData.isScanResources())
{
resources = env.classIsAnnotatedWith(Path.class);
}
- if (scanProviders)
+ if (scanningData.isScanProviders())
{
providers = env.classIsAnnotatedWith(Provider.class);
}
if ((resources == null || resources.isEmpty()) && (providers == null || providers.isEmpty())) return;
- ResteasyDeployment resteasy = du.getAttachment(ResteasyDeployment.class);
- if (resteasy == null)
- {
- resteasy = new ResteasyDeployment();
- du.addAttachment(ResteasyDeployment.class, resteasy);
- }
-
if (resources != null)
{
for (Element e : resources)
{
- resteasy.getResourceClasses().add(e.getOwnerClassName());
+ if (e.getOwner().isInterface()) continue;
+ scanningData.getResources().add(e.getOwnerClassName());
}
}
if (providers != null)
{
for (Element e : providers)
{
- resteasy.getProviderClasses().add(e.getOwnerClassName());
+ if (e.getOwner().isInterface()) continue;
+ scanningData.getResources().add(e.getOwnerClassName());
}
}
}
Modified: branches/vfs3-int/resteasy-int/pom.xml
===================================================================
--- branches/vfs3-int/resteasy-int/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -5,7 +5,7 @@
<artifactId>jboss-as-parent</artifactId>
<version>6.0.0-SNAPSHOT</version>
</parent>
- <name>Resteasy JBoss AS Integration</name>
+ <name>RESTEasy JBoss AS Integration</name>
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.resteasy</groupId>
Modified: branches/vfs3-int/resteasy-int/test/application-war/pom.xml
===================================================================
--- branches/vfs3-int/resteasy-int/test/application-war/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/test/application-war/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -15,16 +15,10 @@
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
- <version>1.2.1.GA</version>
+ <version>${version.org.jboss.resteasy}</version>
<scope>provided</scope>
</dependency>
<dependency>
- <groupId>javax.ejb</groupId>
- <artifactId>ejb-api</artifactId>
- <version>3.0</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.1</version>
Copied: branches/vfs3-int/resteasy-int/test/ejb-war (from rev 100917, trunk/resteasy-int/test/ejb-war)
Deleted: branches/vfs3-int/resteasy-int/test/ejb-war/pom.xml
===================================================================
--- trunk/resteasy-int/test/ejb-war/pom.xml 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,95 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <parent>
- <groupId>org.jboss.jbossas</groupId>
- <artifactId>jboss-as-parent</artifactId>
- <version>6.0.0-SNAPSHOT</version>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.jboss.jbossas.resteasy.test</groupId>
- <artifactId>ejb-test</artifactId>
- <packaging>war</packaging>
- <name>Basic Integration Test</name>
- <url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>${version.org.jboss.resteasy}</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.jboss.javaee</groupId>
- <artifactId>jboss-ejb-api_3.1</artifactId>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- <build>
- <finalName>ejb-test</finalName>
- <plugins>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>jboss-maven-plugin</artifactId>
- <version>1.3.1</version>
- <configuration>
- <jbossHome>${jboss.home}</jbossHome>
- </configuration>
- <executions>
- <execution>
- <id>jboss-deploy</id>
- <phase>pre-integration-test</phase>
- <goals>
- <goal>deploy</goal>
- </goals>
- <configuration>
- <fileName>${basedir}/target/ejb-test.war</fileName>
- </configuration>
- </execution>
- <execution>
- <id>jboss-undeploy</id>
- <phase>post-integration-test</phase>
- <goals>
- <goal>undeploy</goal>
- </goals>
- <configuration>
- <fileName>${basedir}/target/ejb-test.war</fileName>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- <executions>
- <execution>
- <id>surefire-it</id>
- <phase>integration-test</phase>
- <goals>
- <goal>test</goal>
- </goals>
- <configuration>
- <skip>false</skip>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-</project>
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/pom.xml (from rev 100917, trunk/resteasy-int/test/ejb-war/pom.xml)
===================================================================
--- branches/vfs3-int/resteasy-int/test/ejb-war/pom.xml (rev 0)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,95 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <parent>
+ <groupId>org.jboss.jbossas</groupId>
+ <artifactId>jboss-as-parent</artifactId>
+ <version>6.0.0-SNAPSHOT</version>
+ </parent>
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.jbossas.resteasy.test</groupId>
+ <artifactId>ejb-test</artifactId>
+ <packaging>war</packaging>
+ <name>Basic Integration Test</name>
+ <url>http://maven.apache.org</url>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxrs</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.javaee</groupId>
+ <artifactId>jboss-ejb-api_3.1</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <finalName>ejb-test</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>jboss-maven-plugin</artifactId>
+ <version>1.3.1</version>
+ <configuration>
+ <jbossHome>${jboss.home}</jbossHome>
+ </configuration>
+ <executions>
+ <execution>
+ <id>jboss-deploy</id>
+ <phase>pre-integration-test</phase>
+ <goals>
+ <goal>deploy</goal>
+ </goals>
+ <configuration>
+ <fileName>${basedir}/target/ejb-test.war</fileName>
+ </configuration>
+ </execution>
+ <execution>
+ <id>jboss-undeploy</id>
+ <phase>post-integration-test</phase>
+ <goals>
+ <goal>undeploy</goal>
+ </goals>
+ <configuration>
+ <fileName>${basedir}/target/ejb-test.war</fileName>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ <executions>
+ <execution>
+ <id>surefire-it</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <skip>false</skip>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src (from rev 100917, trunk/resteasy-int/test/ejb-war/src)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/java)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/java/org)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/java/org/jboss)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test)
Deleted: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java
===================================================================
--- trunk/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,18 +0,0 @@
-package org.jboss.resteasy.test;
-
-import javax.ws.rs.GET;
-import javax.ws.rs.Produces;
-
-/**
- * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
- * @version $Revision: 1 $
- */
-public interface MyResource
-{
- @GET
- @Produces("text/plain")
- String get();
-
- public String testException();
-
-}
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java)
===================================================================
--- branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java (rev 0)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResource.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,18 @@
+package org.jboss.resteasy.test;
+
+import javax.ws.rs.GET;
+import javax.ws.rs.Produces;
+
+/**
+ * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
+ * @version $Revision: 1 $
+ */
+public interface MyResource
+{
+ @GET
+ @Produces("text/plain")
+ String get();
+
+ public String testException();
+
+}
Deleted: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java
===================================================================
--- trunk/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,42 +0,0 @@
-package org.jboss.resteasy.test;
-
-import javax.ws.rs.Path;
-import javax.ws.rs.GET;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ejb.Stateless;
-import javax.ejb.EJBContext;
-import javax.annotation.Resource;
-
-/**
- * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
- * @version $Revision: 1 $
- */
- at Path("/scan")
- at Stateless
-public class MyResourceBean implements MyResource
-{
- @Resource
- private EJBContext ctx;
-
- @GET
- @Produces("text/plain")
- public String get()
- {
- if (ctx == null)
- {
- System.out.println("NO CONTEXT!!!!!");
- throw new WebApplicationException(500);
- }
- System.out.println("CONTEXT WAS THERE!");
- return "hello world";
- }
-
- @GET
- @Produces("text/plain")
- @Path("exception")
- public String testException()
- {
- throw new WebApplicationException(412);
- }
-}
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java)
===================================================================
--- branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java (rev 0)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/main/java/org/jboss/resteasy/test/MyResourceBean.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,42 @@
+package org.jboss.resteasy.test;
+
+import javax.ws.rs.Path;
+import javax.ws.rs.GET;
+import javax.ws.rs.Produces;
+import javax.ws.rs.WebApplicationException;
+import javax.ejb.Stateless;
+import javax.ejb.EJBContext;
+import javax.annotation.Resource;
+
+/**
+ * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
+ * @version $Revision: 1 $
+ */
+ at Path("/scan")
+ at Stateless
+public class MyResourceBean implements MyResource
+{
+ @Resource
+ private EJBContext ctx;
+
+ @GET
+ @Produces("text/plain")
+ public String get()
+ {
+ if (ctx == null)
+ {
+ System.out.println("NO CONTEXT!!!!!");
+ throw new WebApplicationException(500);
+ }
+ System.out.println("CONTEXT WAS THERE!");
+ return "hello world";
+ }
+
+ @GET
+ @Produces("text/plain")
+ @Path("exception")
+ public String testException()
+ {
+ throw new WebApplicationException(412);
+ }
+}
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/webapp)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF)
Deleted: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,4 +0,0 @@
-<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
-</web-app>
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml)
===================================================================
--- branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml (rev 0)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/WEB-INF/web.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,4 @@
+<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
+</web-app>
Deleted: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/index.jsp
===================================================================
--- trunk/resteasy-int/test/ejb-war/src/main/webapp/index.jsp 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/index.jsp 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,5 +0,0 @@
-<html>
-<body>
-<h2>Hello World!</h2>
-</body>
-</html>
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/index.jsp (from rev 100917, trunk/resteasy-int/test/ejb-war/src/main/webapp/index.jsp)
===================================================================
--- branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/index.jsp (rev 0)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/main/webapp/index.jsp 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,5 @@
+<html>
+<body>
+<h2>Hello World!</h2>
+</body>
+</html>
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/java)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/java/org)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/java/org/jboss)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test)
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss)
Deleted: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java
===================================================================
--- trunk/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,31 +0,0 @@
-package org.jboss.resteasy.test.jboss;
-
-import org.jboss.resteasy.client.ClientRequest;
-import org.jboss.resteasy.client.ClientResponse;
-import org.junit.Test;
-import org.junit.Assert;
-
-/**
- * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
- * @version $Revision: 1 $
- */
-public class EjbTest
-{
- @Test
- public void testIt() throws Exception
- {
- ClientRequest request = new ClientRequest("http://localhost:8080/ejb-test/scan");
- ClientResponse<String> response = request.get(String.class);
- Assert.assertEquals(200, response.getStatus());
- Assert.assertEquals("hello world", response.getEntity());
-
- }
-
- @Test
- public void testException() throws Exception
- {
- ClientRequest request = new ClientRequest("http://localhost:8080/ejb-test/scan/exception");
- ClientResponse<String> response = request.get(String.class);
- Assert.assertEquals(412, response.getStatus());
-
- }}
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java)
===================================================================
--- branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java (rev 0)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/test/java/org/jboss/resteasy/test/jboss/EjbTest.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,31 @@
+package org.jboss.resteasy.test.jboss;
+
+import org.jboss.resteasy.client.ClientRequest;
+import org.jboss.resteasy.client.ClientResponse;
+import org.junit.Test;
+import org.junit.Assert;
+
+/**
+ * @author <a href="mailto:bill at burkecentral.com">Bill Burke</a>
+ * @version $Revision: 1 $
+ */
+public class EjbTest
+{
+ @Test
+ public void testIt() throws Exception
+ {
+ ClientRequest request = new ClientRequest("http://localhost:8080/ejb-test/scan");
+ ClientResponse<String> response = request.get(String.class);
+ Assert.assertEquals(200, response.getStatus());
+ Assert.assertEquals("hello world", response.getEntity());
+
+ }
+
+ @Test
+ public void testException() throws Exception
+ {
+ ClientRequest request = new ClientRequest("http://localhost:8080/ejb-test/scan/exception");
+ ClientResponse<String> response = request.get(String.class);
+ Assert.assertEquals(412, response.getStatus());
+
+ }}
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/resources)
Deleted: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/jndi.properties
===================================================================
--- trunk/resteasy-int/test/ejb-war/src/test/resources/jndi.properties 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/jndi.properties 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,3 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
-java.naming.provider.url=jnp://localhost:1099
\ No newline at end of file
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/jndi.properties (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/resources/jndi.properties)
===================================================================
--- branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/jndi.properties (rev 0)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/jndi.properties 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,3 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
+java.naming.provider.url=jnp://localhost:1099
\ No newline at end of file
Deleted: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/log4j.xml
===================================================================
--- trunk/resteasy-int/test/ejb-war/src/test/resources/log4j.xml 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/log4j.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Log4j Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml 64736 2007-08-21 15:49:48Z anil.saldhana at jboss.com $ -->
-
-<!--
- | For more configuration infromation and examples see the Jakarta Log4j
- | owebsite: http://jakarta.apache.org/log4j
- -->
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- A time/date based rolling appender -->
- <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
- <param name="File" value="${build.testlog}/test.log"/>
- <param name="Append" value="true"/>
-
- <!-- Rollover at midnight each day -->
- <param name="DatePattern" value="'.'yyyy-MM-dd"/>
-
- <!-- Rollover at the top of each hour
- <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
- -->
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
-
- <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
- <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
- -->
- </layout>
- </appender>
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
- <param name="Threshold" value="DEBUG"/>
- <param name="Target" value="System.out"/>
-
- <layout class="org.apache.log4j.PatternLayout">
- <!-- The default pattern: Date Priority [Category] Message\n -->
- <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
- </layout>
- </appender>
-
-
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root>
- <appender-ref ref="CONSOLE"/>
- </root>
-
-</log4j:configuration>
Copied: branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/log4j.xml (from rev 100917, trunk/resteasy-int/test/ejb-war/src/test/resources/log4j.xml)
===================================================================
--- branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/log4j.xml (rev 0)
+++ branches/vfs3-int/resteasy-int/test/ejb-war/src/test/resources/log4j.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Log4j Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml 64736 2007-08-21 15:49:48Z anil.saldhana at jboss.com $ -->
+
+<!--
+ | For more configuration infromation and examples see the Jakarta Log4j
+ | owebsite: http://jakarta.apache.org/log4j
+ -->
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling appender -->
+ <appender name="FILE" class="org.jboss.logging.appender.DailyRollingFileAppender">
+ <param name="File" value="${build.testlog}/test.log"/>
+ <param name="Append" value="true"/>
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd"/>
+
+ <!-- Rollover at the top of each hour
+ <param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
+ -->
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n"/>
+
+ <!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message\n
+ <param name="ConversionPattern" value="%d %-5r %-5p [%c] (%t:%x) %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <param name="Threshold" value="DEBUG"/>
+ <param name="Target" value="System.out"/>
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message\n -->
+ <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%c{1}] %m%n"/>
+ </layout>
+ </appender>
+
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <appender-ref ref="CONSOLE"/>
+ </root>
+
+</log4j:configuration>
Modified: branches/vfs3-int/resteasy-int/test/pom.xml
===================================================================
--- branches/vfs3-int/resteasy-int/test/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/test/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -15,5 +15,6 @@
<modules>
<module>application-war</module>
<module>scanned-war</module>
+ <module>ejb-war</module>
</modules>
</project>
Modified: branches/vfs3-int/resteasy-int/test/scanned-war/pom.xml
===================================================================
--- branches/vfs3-int/resteasy-int/test/scanned-war/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/test/scanned-war/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -11,20 +11,6 @@
<packaging>war</packaging>
<name>Basic Integration Test</name>
<url>http://maven.apache.org</url>
- <dependencies>
- <dependency>
- <groupId>org.jboss.resteasy</groupId>
- <artifactId>resteasy-jaxrs</artifactId>
- <version>1.2.1.GA</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
<build>
<finalName>scanned-test</finalName>
<plugins>
@@ -87,4 +73,18 @@
</plugin>
</plugins>
</build>
+ <dependencies>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxrs</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
Property changes on: branches/vfs3-int/resteasy-int/zip
___________________________________________________________________
Name: svn:ignore
+ target
*.iml
Modified: branches/vfs3-int/resteasy-int/zip/assembly.xml
===================================================================
--- branches/vfs3-int/resteasy-int/zip/assembly.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/zip/assembly.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -11,6 +11,7 @@
<directory></directory>
<includes>
<include>resteasy-jboss-beans.xml</include>
+ <include>resteasy-ejb-jboss-beans.xml</include>
</includes>
<outputDirectory>resteasy.deployer/META-INF</outputDirectory>
</fileSet>
@@ -21,6 +22,14 @@
<useTransitiveFiltering>true</useTransitiveFiltering>
<includes>
<include>org.jboss.jbossas:jboss-as-resteasy</include>
+ <include>org.jboss.resteasy:resteasy-jaxrs</include>
+ <include>org.jboss.resteasy:jaxrs-api</include>
+ <include>org.jboss.resteasy:resteasy-jaxb-provider</include>
+ <include>org.jboss.resteasy:resteasy-jettison-provider</include>
+ <include>org.jboss.resteasy:resteasy-atom-provider</include>
+ <include>org.jboss.resteasy:resteasy-multipart-provider</include>
+ <include>org.jboss.resteasy:resteasy-jackson-provider</include>
+ <include>org.jboss.resteasy:resteasy-yaml-provider</include>
</includes>
<outputDirectory>resteasy.deployer</outputDirectory>
</dependencySet>
Modified: branches/vfs3-int/resteasy-int/zip/pom.xml
===================================================================
--- branches/vfs3-int/resteasy-int/zip/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/resteasy-int/zip/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -42,7 +42,73 @@
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>jaxrs-api</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-atom-provider</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-guice</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jaxb-provider</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.xml.stream</groupId>
+ <artifactId>stax-api</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jettison-provider</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-jackson-provider</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-multipart-provider</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-spring</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.resteasy</groupId>
+ <artifactId>resteasy-yaml-provider</artifactId>
+ <version>${version.org.jboss.resteasy}</version>
+ </dependency>
+
</dependencies>
<build>
@@ -68,7 +134,7 @@
target/assembly/work
</workDirectory>
<finalName>
- resteasy-int-${project.version}
+ resteasy-int
</finalName>
</configuration>
</execution>
Copied: branches/vfs3-int/resteasy-int/zip/resteasy-ejb-jboss-beans.xml (from rev 100917, trunk/resteasy-int/zip/resteasy-ejb-jboss-beans.xml)
===================================================================
--- branches/vfs3-int/resteasy-int/zip/resteasy-ejb-jboss-beans.xml (rev 0)
+++ branches/vfs3-int/resteasy-int/zip/resteasy-ejb-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+ <bean name="ResteasyEjbDeployer" class="org.jboss.resteasy.integration.deployers.ResteasyEjbDeployer"/>
+</deployment>
\ No newline at end of file
Modified: branches/vfs3-int/security/pom.xml
===================================================================
--- branches/vfs3-int/security/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/security/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -13,7 +13,7 @@
<url>http://www.jboss.org/jbossas</url>
<description>JBoss Application Server (security module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<!-- TODO: This resource config is not being copied for some reason.
<resources>
<resource>
Modified: branches/vfs3-int/security/src/etc/bin/password_tool.sh
===================================================================
--- branches/vfs3-int/security/src/etc/bin/password_tool.sh 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/security/src/etc/bin/password_tool.sh 2010-02-12 17:13:14 UTC (rev 100922)
@@ -56,7 +56,8 @@
JBOSSPASS_CLASSPATH="$JBOSSPASS_CLASSPATH:$JAVA_HOME/lib/tools.jar"
JBOSSPASS_CLASSPATH="$JBOSSPASS_CLASSPATH:$JBOSS_HOME/client/commons-logging.jar"
JBOSSPASS_CLASSPATH="$JBOSSPASS_CLASSPATH:$JBOSS_HOME/client/jboss-logging-spi.jar"
-JBOSSPASS_CLASSPATH="$JBOSSPASS_CLASSPATH:$JBOSS_HOME/lib/endorsed/xalan.jar"
+JBOSSPASS_CLASSPATH="$JBOSSPASS_CLASSPATH:$JBOSS_HOME/client/serializer.jar"
+JBOSSPASS_CLASSPATH="$JBOSSPASS_CLASSPATH:$JBOSS_HOME/client/xalan.jar"
# Shared jaxb libs
JBOSSPASS_CLASSPATH="$JBOSSPASS_CLASSPATH:$JBOSS_HOME/client/activation.jar"
Modified: branches/vfs3-int/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomain.java
===================================================================
--- branches/vfs3-int/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomain.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomain.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -24,9 +24,11 @@
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
+import java.lang.reflect.Constructor;
import java.net.MalformedURLException;
import java.net.URL;
import java.security.KeyStore;
+import java.security.Provider;
import java.util.Arrays;
import javax.crypto.Cipher;
@@ -169,6 +171,10 @@
private String keyMgrFactoryAlgorithm;
private String trustMgrFactoryAlgorithm;
+
+ private String keyStoreProviderArgument;
+
+ private String trustStoreProviderArgument;
/** Specify the SecurityManagement instance */
private ISecurityManagement securityManagement = new JNDIBasedSecurityManagement();
@@ -704,6 +710,48 @@
{
this.trustMgrFactoryAlgorithm = algorithm;
}
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.security.plugins.JaasSecurityDomainMBean#getKeyStoreProviderArgument
+ */
+ @ManagementProperty(use = {ViewUse.CONFIGURATION}, description = "The argument of the KeyStore provider constructor")
+ public String getKeyStoreProviderArgument()
+ {
+ return keyStoreProviderArgument;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.security.plugins.JaasSecurityDomainMBean#setKeyStoreProviderArgument(java.lang.String)
+ */
+ public void setKeyStoreProviderArgument(String argument)
+ {
+ this.keyStoreProviderArgument = argument;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.security.plugins.JaasSecurityDomainMBean#getTrustStoreProviderArgument
+ */
+ @ManagementProperty(use = {ViewUse.CONFIGURATION}, description = "The argument of the TrustStore provider constructor")
+ public String getTrustStoreProviderArgument()
+ {
+ return trustStoreProviderArgument;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see org.jboss.security.plugins.JaasSecurityDomainMBean#setTrustStoreProviderArgument(java.lang.String)
+ */
+ public void setTrustStoreProviderArgument(String argument)
+ {
+ this.trustStoreProviderArgument = argument;
+ }
/*
* (non-Javadoc)
@@ -796,7 +844,20 @@
if (keyStorePassword != null)
{
if (keyStoreProvider != null)
- keyStore = KeyStore.getInstance(keyStoreType, keyStoreProvider);
+ {
+ if (keyStoreProviderArgument != null)
+ {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ Class clazz = loader.loadClass(keyStoreProvider);
+ Class[] ctorSig = {String.class};
+ Constructor ctor = clazz.getConstructor(ctorSig);
+ Object[] ctorArgs = {keyStoreProviderArgument};
+ Provider provider = (Provider) ctor.newInstance(ctorArgs);
+ keyStore = KeyStore.getInstance(keyStoreType, provider);
+ }
+ else
+ keyStore = KeyStore.getInstance(keyStoreType, keyStoreProvider);
+ }
else
keyStore = KeyStore.getInstance(keyStoreType);
InputStream is = null;
@@ -831,7 +892,20 @@
if (trustStorePassword != null)
{
if (trustStoreProvider != null)
- trustStore = KeyStore.getInstance(trustStoreType, trustStoreProvider);
+ {
+ if (trustStoreProviderArgument != null)
+ {
+ ClassLoader loader = Thread.currentThread().getContextClassLoader();
+ Class clazz = loader.loadClass(trustStoreProvider);
+ Class[] ctorSig = {String.class};
+ Constructor ctor = clazz.getConstructor(ctorSig);
+ Object[] ctorArgs = {trustStoreProviderArgument};
+ Provider provider = (Provider) ctor.newInstance(ctorArgs);
+ trustStore = KeyStore.getInstance(trustStoreType, provider);
+ }
+ else
+ trustStore = KeyStore.getInstance(trustStoreType, trustStoreProvider);
+ }
else
trustStore = KeyStore.getInstance(trustStoreType);
InputStream is = null;
Modified: branches/vfs3-int/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomainMBean.java
===================================================================
--- branches/vfs3-int/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomainMBean.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomainMBean.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -203,4 +203,28 @@
* @param algorithm algorithm of the TrustManagerFactory
*/
public void setTrustManagerFactoryAlgorithm(String algorithm);
+
+ /**
+ * Returns the argument for the KeyStore provider constructor
+ * @return argument for the KeyStore provider
+ */
+ public String getKeyStoreProviderArgument();
+
+ /**
+ * Sets the argument for the KeyStore provider constructor
+ * @param argument for the KeyStore provider
+ */
+ public void setKeyStoreProviderArgument(String argument);
+
+ /**
+ * Returns the argument for the TrustStore provider constructor
+ * @return argument for the TrustStore provider
+ */
+ public String getTrustStoreProviderArgument();
+
+ /**
+ * Sets the argument for the TrustStore provider constructor
+ * @param argument for the TrustStore provider
+ */
+ public void setTrustStoreProviderArgument(String argument);
}
Modified: branches/vfs3-int/server/.classpath
===================================================================
--- branches/vfs3-int/server/.classpath 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/.classpath 2010-02-12 17:13:14 UTC (rev 100922)
@@ -2,7 +2,7 @@
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java"/>
<classpathentry kind="src" path="target/generated-sources/javacc"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Modified: branches/vfs3-int/server/pom.xml
===================================================================
--- branches/vfs3-int/server/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -14,7 +14,7 @@
<description>JBoss Application Server (server module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
@@ -267,8 +267,8 @@
</dependency>
<dependency>
- <groupId>org.hibernate.java-persistence</groupId>
- <artifactId>jpa-api</artifactId>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
<dependency>
@@ -380,11 +380,6 @@
</dependency>
<dependency>
- <groupId>org.hibernate.java-persistence</groupId>
- <artifactId>jpa-api</artifactId>
- </dependency>
-
- <dependency>
<groupId>org.jboss.javaee</groupId>
<artifactId>jboss-jms-api</artifactId>
</dependency>
Modified: branches/vfs3-int/server/src/etc/conf/all/bootstrap/classloader.xml
===================================================================
--- branches/vfs3-int/server/src/etc/conf/all/bootstrap/classloader.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/conf/all/bootstrap/classloader.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -15,6 +15,22 @@
<constructor factoryClass="org.jboss.classloader.spi.ClassLoaderSystem" factoryMethod="getInstance"/>
</bean>
+ <!--
+ The default classloading domain
+ -->
+ <bean name="ClassLoaderDomain" class="org.jboss.classloader.spi.ClassLoaderDomain">
+ <classloader><null/></classloader>
+ <constructor factoryMethod="getDefaultDomain">
+ <factory bean="ClassLoaderSystem"/>
+ </constructor>
+
+ <!-- Whether to use loadClass directly for the parent classloader.
+ Set to false to first check whether the parent classloader has the class as a resource
+ before locking the classloader to avoid contention (experimental).
+ -->
+ <property name="useLoadClassForParent">true</property>
+ </bean>
+
<!--
ClassLoader management and resolution
-->
Modified: branches/vfs3-int/server/src/etc/conf/all/bootstrap/deployers.xml
===================================================================
--- branches/vfs3-int/server/src/etc/conf/all/bootstrap/deployers.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/conf/all/bootstrap/deployers.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -167,9 +167,6 @@
<property name="suffix">-aop.xml</property>
</bean>
<bean name="AOPAnnotationMetaDataParserDeployer" class="org.jboss.aop.asintegration.jboss5.AOPAnnotationMetaDataParserDeployer">
- <constructor>
- <parameter><inject bean="AOPXMLMetaDataParserDeployer" property="relativeOrder"/></parameter>
- </constructor>
</bean>
<bean name="AOPClassLoaderDeployer" class="org.jboss.aop.asintegration.jboss5.AOPClassLoaderDeployer">
<property name="aspectManager"><inject bean="AspectManager" property="aspectManager"/></property>
Modified: branches/vfs3-int/server/src/etc/conf/all/bootstrap/profile.xml
===================================================================
--- branches/vfs3-int/server/src/etc/conf/all/bootstrap/profile.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/conf/all/bootstrap/profile.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -92,7 +92,7 @@
</bean>
<!-- We just visit wars, but exclude classes, lib, dev dirs -->
- <bean name="WebVisitorAttributes" class="org.jboss.system.server.profile.basic.IncludeExcludeVisitorAttributes">
+ <bean name="WebVisitorAttributes" class="org.jboss.virtual.plugins.vfs.helpers.IncludeExcludeVisitorAttributes">
<constructor>
<parameter>
<set>
Copied: branches/vfs3-int/server/src/etc/conf/all/bootstrap/stdio.xml (from rev 100917, trunk/server/src/etc/conf/all/bootstrap/stdio.xml)
===================================================================
--- branches/vfs3-int/server/src/etc/conf/all/bootstrap/stdio.xml (rev 0)
+++ branches/vfs3-int/server/src/etc/conf/all/bootstrap/stdio.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ JBoss, Home of Professional Open Source.
+ ~ Copyright 2010, Red Hat Middleware LLC, 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.
+ -->
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <classloader><inject bean="stdio-classloader:0.0.0"/></classloader>
+
+ <classloader name="stdio-classloader" xmlns="urn:jboss:classloader:1.0" export-all="NON_EMPTY" import-all="true">
+ <root>${jboss.lib.url}jboss-stdio.jar</root>
+ </classloader>
+
+ <!--
+ ~ These three beans define the Input/OutputStreams required for handling stdio
+ -->
+ <bean name="JBossStdioSystemOutStream" class="org.jboss.stdio.LoggingOutputStream">
+ <constructor>
+ <parameter class="java.lang.String">STDOUT</parameter>
+ <parameter class="java.lang.String">INFO</parameter>
+ </constructor>
+ </bean>
+
+ <bean name="JBossStdioSystemErrStream" class="org.jboss.stdio.LoggingOutputStream">
+ <constructor>
+ <parameter class="java.lang.String">STDERR</parameter>
+ <parameter class="java.lang.String">ERROR</parameter>
+ </constructor>
+ </bean>
+
+ <bean name="JBossStdioSystemInStream" class="org.jboss.stdio.NullInputStream">
+ <constructor factoryMethod="getInstance"/>
+ </bean>
+
+ <!--
+ ~ These three beans install the above streams into the system stdio fields.
+ -->
+ <bean name="JBossStdioContext" class="org.jboss.stdio.StdioContext">
+ <constructor factoryMethod="create">
+ <parameter><inject bean="JBossStdioSystemInStream"/></parameter>
+ <parameter class="java.io.OutputStream"><inject bean="JBossStdioSystemOutStream"/></parameter>
+ <parameter><inject bean="JBossStdioSystemErrStream"/></parameter>
+ </constructor>
+ </bean>
+
+ <bean name="JBossStdioService" class="org.jboss.stdio.StdioService">
+ <depends>JBossStdioContext</depends>
+ </bean>
+
+ <bean name="JBossStdioContextSelector" class="org.jboss.stdio.SimpleStdioContextSelector">
+ <constructor>
+ <parameter><inject bean="JBossStdioContext"/></parameter>
+ </constructor>
+ <start method="install"/>
+ </bean>
+</deployment>
\ No newline at end of file
Modified: branches/vfs3-int/server/src/etc/conf/all/bootstrap.xml
===================================================================
--- branches/vfs3-int/server/src/etc/conf/all/bootstrap.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/conf/all/bootstrap.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -7,6 +7,7 @@
<url>bootstrap/vfs.xml</url>
<url>bootstrap/classloader.xml</url>
+ <url>bootstrap/stdio.xml</url>
<url>bootstrap/kernel.xml</url>
<url>bootstrap/aop.xml</url>
<url>bootstrap/jmx.xml</url>
Modified: branches/vfs3-int/server/src/etc/conf/all/jboss-service.xml
===================================================================
--- branches/vfs3-int/server/src/etc/conf/all/jboss-service.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/conf/all/jboss-service.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,4 +16,18 @@
<classpath codebase="${jboss.server.lib.url}" archives="*"/>
<classpath codebase="${jboss.common.lib.url}" archives="*"/>
+ <!--
+ JBAS-JBAS-7274. Temporary workaround to set java.rmi.server.codebase
+ early in the startup process. Will be removed before AS 6.0.0.CR1
+ -->
+ <mbean code="org.jboss.web.RMICodebaseConfigurer"
+ name="jboss:service=RMICodebaseConfigurer">
+
+ <attribute name="CodebaseHost">${java.rmi.server.hostname}</attribute>
+ <attribute name="CodebasePort">
+ <!-- Get the port to use from ServiceBindingManager. -->
+ <value-factory bean="ServiceBindingManager" method="getIntBinding" parameter="jboss:service=WebService"/>
+ </attribute>
+ </mbean>
+
</server>
Modified: branches/vfs3-int/server/src/etc/conf/default/bootstrap/profile.xml
===================================================================
--- branches/vfs3-int/server/src/etc/conf/default/bootstrap/profile.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/conf/default/bootstrap/profile.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -84,7 +84,7 @@
</bean>
<!-- We just visit wars, but exclude classes, lib, dev dirs -->
- <bean name="WebVisitorAttributes" class="org.jboss.system.server.profile.basic.IncludeExcludeVisitorAttributes">
+ <bean name="WebVisitorAttributes" class="org.jboss.virtual.plugins.vfs.helpers.IncludeExcludeVisitorAttributes">
<constructor>
<parameter>
<set>
Modified: branches/vfs3-int/server/src/etc/conf/minimal/bootstrap.xml
===================================================================
--- branches/vfs3-int/server/src/etc/conf/minimal/bootstrap.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/conf/minimal/bootstrap.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -6,6 +6,7 @@
<bootstrap xmlns="urn:jboss:bootstrap:1.0">
<url>bootstrap/classloader.xml</url>
+ <url>bootstrap/stdio.xml</url>
<url>bootstrap/aop.xml</url>
<url>bootstrap/jmx.xml</url>
<url>bootstrap/deployers.xml</url>
Modified: branches/vfs3-int/server/src/etc/conf/standard/jboss-service.xml
===================================================================
--- branches/vfs3-int/server/src/etc/conf/standard/jboss-service.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/conf/standard/jboss-service.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -14,6 +14,20 @@
-->
<classpath codebase="${jboss.server.lib.url}" archives="*"/>
<classpath codebase="${jboss.common.lib.url}" archives="*"/>
+
+ <!--
+ JBAS-JBAS-7274. Temporary workaround to set java.rmi.server.codebase
+ early in the startup process. Will be removed before AS 6.0.0.CR1
+ -->
+ <mbean code="org.jboss.web.RMICodebaseConfigurer"
+ name="jboss:service=RMICodebaseConfigurer">
+
+ <attribute name="CodebaseHost">${java.rmi.server.hostname}</attribute>
+ <attribute name="CodebasePort">
+ <!-- Get the port to use from ServiceBindingManager. -->
+ <value-factory bean="ServiceBindingManager" method="getIntBinding" parameter="jboss:service=WebService"/>
+ </attribute>
+ </mbean>
</server>
Copied: branches/vfs3-int/server/src/etc/deploy/admin-console-activator-jboss-beans.xml (from rev 100917, trunk/server/src/etc/deploy/admin-console-activator-jboss-beans.xml)
===================================================================
--- branches/vfs3-int/server/src/etc/deploy/admin-console-activator-jboss-beans.xml (rev 0)
+++ branches/vfs3-int/server/src/etc/deploy/admin-console-activator-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="AdminConsoleActivator" class="org.jboss.web.tomcat.service.ondemand.OnDemandContextProfileManager">
+
+ <property name="profileService"><inject bean="ProfileService"/></property>
+ <property name="profileFactory"><inject bean="ProfileFactory"/></property>
+ <property name="onDemandContextIntegrator"><inject bean="WebServer" property="onDemandContextIntegrator"/></property>
+
+ <property name="contextName">admin-console</property>
+
+ <!-- Build a profile from the contents of this single URI -->
+ <property name="singleURI">${jboss.common.base.url}deploy${/}admin-console.war</property>
+
+ <!--
+ Whether activation of the profile (i.e. deployment of the URI contents)
+ should be deferred until the first request (true) or done as part of
+ the start of this bean (false).
+
+ WARNING: This configuration option may be altered in a subsequent AS 6.0
+ milestone release.
+
+ FIXME: https://jira.jboss.org/jira/browse/JBAS-7714
+ -->
+ <property name="activateOnDemand">${jboss.as.deployment.ondemand:true}</property>
+
+ </bean>
+
+</deployment>
Modified: branches/vfs3-int/server/src/etc/deploy/jboss-logging.xml
===================================================================
--- branches/vfs3-int/server/src/etc/deploy/jboss-logging.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/deploy/jboss-logging.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,665 +1,677 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ===================================================================== -->
+<!-- -->
+<!-- Logging System Configuration -->
+<!-- -->
+<!-- ===================================================================== -->
+
+<logging xmlns="urn:jboss:logging:6.0" xmlns:b="urn:jboss:bean-deployer:2.0">
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling handler -->
+
+ <periodic-rotating-file-handler
+ file-name="${jboss.server.log.dir}/server.log"
+ name="FILE"
+ autoflush="true"
+ append="true"
+ suffix=".yyyy-MM-dd"> <!-- To roll over at the top of each hour, use ".yyyy-MM-dd-HH" instead -->
+
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <formatter>
+ <!-- Uncomment this to get the class name in the log as well as the category
+ <pattern-formatter pattern="%d %-5p [%c] %C{1} (%t) %m%n"/>
+ -->
+ <!-- Uncomment this to log without the class name in the log -->
+ <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
+ </formatter>
+ </periodic-rotating-file-handler>
+
+ <!-- A size based file rolling appender
+
+ <size-rotating-file-handler
+ file-name="${jboss.server.log.dir}/server.log"
+ name="FILE"
+ autoflush="true"
+ append="true"
+ rotate-size="500k"
+ max-backup-index="5">
+
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
+ </formatter>
+ </size-rotating-file-handler>
+ -->
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <console-handler name="CONSOLE" autoflush="true" target="System.out">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="INFO"/>
+
+ <formatter>
+ <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %m%n"/>
+ </formatter>
+ </console-handler>
+
+ <!-- ====================== -->
+ <!-- More Appender examples -->
+ <!-- ====================== -->
+
+ <!-- Buffer events and log them asynchronously
+
+ <async-handler name="ASYNC">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <sub-handlers>
+ <handler-ref name="FILE"/>
+ <handler-ref name="CONSOLE"/>
+ <handler-ref name="SMTP"/>
+ </sub-handlers>
+ </async-handler>
+ -->
+
+ <!-- EMail events to an administrator
+
+ <log4j-appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="ERROR"/>
+
+ <properties>
+ <property name="to">admin at myhost.domain.com</property>
+ <property name="from">nobody at myhost.domain.com</property>
+ <property name="subject">JBoss Sever Errors</property>
+ <property name="sMTPHost">localhost</property>
+ <property name="bufferSize">10</property>
+ </properties>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
+ </formatter>
+ </log4j-appender>
+ -->
+
+ <!-- Syslog events
+
+ <log4j-appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <properties>
+ <property name="facility">LOCAL7</property>
+ <property name="facilityPrinting">true</property>
+ <property name="syslogHost">localhost</property>
+ </properties>
+
+ <formatter>
+ <pattern-formatter pattern="[%d,%c{1}] %m%n"/>
+ </formatter>
+ </log4j-appender>
+ -->
+
+ <!-- Log events to JMS (requires a topic to be created)
+
+ <log4j-appender name="JMS" class="org.apache.log4j.net.JMSAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="ERROR"/>
+
+ <properties>
+ <property name="topicConnectionFactoryBindingName">
+ --><!-- Use injection so that an implicit dependency is formed - TODO: get the correct property name --><!--
+ <b:inject bean="myTopicBiding" property="name"/>
+ </property>
+ <property name="topicBindingName">topic/MyErrorsTopic</property>
+ </properties>
+ </log4j-appender>
+ -->
+
+ <!-- Log events through SNMP
+
+ <log4j-appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="DEBUG"/>
+
+ <properties>
+ <property name="implementationClassName">org.apache.log4j.ext.JoeSNMPTrapSender</property>
+ <property name="managementHost">127.0.0.1</property>
+ <property name="managementHostTrapListenPort">162</property>
+ <property name="enterpriseOID">1.3.6.1.4.1.24.0</property>
+ <property name="localIPAddress">127.0.0.1</property>
+ <property name="localTrapSendPort">161</property>
+ <property name="genericTrapType">6</property>
+ <property name="specificTrapType">12345678</property>
+ <property name="communityString">public</property>
+ <property name="forwardStackTraceWithTrap">true</property>
+ <property name="applicationTrapOID">1.3.6.1.4.1.24.12.10.22.64</property>
+ </properties>
+ <formatter>
+ <pattern-formatter pattern="%d,%p,[%t],[%c],%m%n"/>
+ </formatter>
+ </log4j-appender>
+ -->
+
+ <!-- Emit events as JMX notifications
+
+ <log4j-appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <level name="WARN"/>
+
+ <properties>
+ <property name="objectName">jboss.system:service=Logging,type=JMXNotificationAppender</property>
+ </properties>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] %m"/>
+ </formatter>
+ </log4j-appender>
+ -->
+
+ <!-- Security AUDIT Appender
+
+ <periodic-rotating-file-handler
+ name="AUDIT"
+ autoflush="true"
+ file-name="${jboss.server.log.dir}/audit.log"
+ suffix=".yyyy-MM-dd"
+ append="true">
+
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] (%t:%x) %m%n"/>
+ </formatter>
+ </periodic-rotating-file-handler>
+ -->
+
+ <!-- =============================================== -->
+ <!-- Limit categories -->
+ <!-- if enabling "trace" at root logger level, -->
+ <!-- use limit category settings to disable trace -->
+ <!-- for packages that you don't want to trace -->
+ <!-- =============================================== -->
+
+ <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
+ <logger category="org.apache">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the jacorb category to WARN as its INFO is verbose -->
+ <logger category="jacorb">
+ <level name="WARN"/>
+ </logger>
+
+ <!-- Limit JSF to INFO as its FINE is verbose -->
+ <logger category="javax.enterprise.resource.webcontainer.jsf">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
+ <logger category="org.jgroups">
+ <level name="WARN"/>
+ </logger>
+
+ <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
+ <logger category="org.quartz">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the com.sun category to INFO as its FINE is verbose -->
+ <logger category="com.sun">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the sun category to INFO as its FINE is verbose -->
+ <logger category="sun">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the javax.xml.bind category to INFO as its FINE is verbose -->
+ <logger category="javax.xml.bind">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the springframework category to WARN-->
+ <logger category="org.springframework">
+ <level name="WARN"/>
+ </logger>
+
+ <!-- Limit JBoss categories
+ <logger category="org.jboss">
+ <level name="INFO"/>
+ </logger>
+ -->
+
+ <!-- Or limit individual JBoss categories
+ <logger category="org.jboss.web">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.tm">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.jdbc">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.on">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.services">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.bootstrap">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.kernel">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.beans">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.injection">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.annotation">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.system">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.mx">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.jmx">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.invocation">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.classloader">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.classloading">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.deployment">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.deployers">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.dependency">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.metadata">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.detailed">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.logging">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.logbridge">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.aop">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.joinpoint">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.util">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.ha">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.resource">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.varia">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.net">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.security">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.console">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.wsf">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.ejb">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.ejb3">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.jpa">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.virtual">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.xb">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.naming">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.wsf">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.ws">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.mail">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.monitor">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.remoting">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.profileservice">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.cache">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.proxy">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.jms">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.messaging">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.webbeans">
+ <level name="INFO" />
+ </logger>
+
+ <logger category="org.jboss.managed">
+ <level name="INFO" />
+ </logger>
+ -->
+
+ <!-- Limit Arjuna transaction manager -->
+ <logger category="com.arjuna.ats">
+ <level name="INFO" />
+ </logger>
+
+ <!-- Limit Hibernate
+ <logger category="org.hibernate">
+ <level name="INFO" />
+ </logger>
+ -->
+
+ <!-- Limit Ajax4jsf
+ <logger category="org.ajax4jsf">
+ <level name="INFO" />
+ </logger>
+ -->
+
+ <!-- Limit JNP
+ <logger category="org.jnp">
+ <level name="INFO" />
+ </logger>
+ -->
+
+
+ <!-- Limit the JSR77 categories -->
+ <logger category="org.jboss.management">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Limit the verbose facelets compiler -->
+ <!-- Also suppress error with legacy facelets (JBAS-7600) -->
+ <logger category="facelets.compiler">
+ <level name="WARN"/>
+ <filter>
+ <not>
+ <match pattern="jsf-libs/jsf-impl.jar"/>
+ </not>
+ </filter>
+ </logger>
+
+
+ <!-- Limit the verbose ajax4jsf cache initialization
+ <logger category="org.ajax4jsf.cache">
+ <level name="WARN"/>
+ </logger>
+ -->
+ <!-- Limit the verbose embedded jopr categories
+ <logger category="org.rhq">
+ <level name="WARN"/>
+ </logger>
+ -->
+ <!-- Limit the verbose seam categories
+ <logger category="org.jboss.seam">
+ <level name="WARN"/>
+ </logger>
+ -->
+
+ <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
+ <logger category="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
+ <level name="TRACE"/>
+ </logger>
+ -->
+
+ <!-- Category specifically for Security Audit Provider
+ <logger category="org.jboss.security.audit.providers.LogAuditProvider" additivity="false">
+ <level name="TRACE"/>
+ <appender-ref ref="AUDIT"/>
+ </logger>
+ -->
+
+ <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
+ <logger category="org.jboss.serial">
+ <level name="INFO"/>
+ </logger>
+
+ <!-- Decrease the priority threshold for the org.jboss.varia category
+ <logger category="org.jboss.varia">
+ <level name="DEBUG"/>
+ </logger>
+ -->
+
+ <!-- Enable JBossWS message tracing
+ <logger category="org.jboss.ws.core.MessageTrace">
+ <level name="TRACE"/>
+ </logger>
+ -->
+
+ <!-- Enable System log message tracing
+ <logger category="org.jboss.system">
+ <level name="TRACE"/>
+ </logger>
+ <logger category="org.jboss.ejb.plugins">
+ <level name="TRACE"/>
+ </logger>
+ -->
+
+ <!--
+ | Logs these events to SNMP:
+ - server starts/stops
+ - cluster evolution (node death/startup)
+ - When an EJB archive is deployed (and associated verified messages)
+ - When an EAR archive is deployed
+
+ <logger category="org.jboss.system.server.Server">
+ <level name="INFO"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
+ <level name="INFO"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.deployment.MainDeployer">
+ <level name="ERROR"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.ejb.EJBDeployer">
+ <level name="INFO"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.deployment.EARDeployer">
+ <level name="INFO"/>
+ <handlers>
+ <handler-ref name="TRAP_LOG"/>
+ </handlers>
+ </logger>
+ -->
+
+ <!-- Clustering logging -->
+ <!-- Uncomment the following to redirect the org.jgroups and
+ org.jboss.ha categories to a cluster.log file.
+
+ <size-rotating-file-handler
+ file-name="${jboss.server.log.dir}/cluster.log"
+ name="CLUSTER"
+ append="false"
+ rotate-size="500k"
+ max-backup-index="5"
+ autoflush="true">
+
+ <error-manager>
+ <only-once/>
+ </error-manager>
+
+ <formatter>
+ <pattern-formatter pattern="%d %-5p [%c] %m%n"/>
+ </formatter>
+ </size-rotating-file-handler>
+
+ <logger category="org.jgroups">
+ <level name="DEBUG" />
+ <handlers>
+ <handler-ref name="CLUSTER"/>
+ </handlers>
+ </logger>
+
+ <logger category="org.jboss.ha">
+ <level name="DEBUG" />
+ <handlers>
+ <handler-ref name="CLUSTER"/>
+ </handlers>
+ </logger>
+ -->
-<!-- ===================================================================== -->
-<!-- -->
-<!-- Logging System Configuration -->
-<!-- -->
-<!-- ===================================================================== -->
-
-<logging xmlns="urn:jboss:logging:6.0" xmlns:b="urn:jboss:bean-deployer:2.0">
-
- <!-- ================================= -->
- <!-- Preserve messages in a local file -->
- <!-- ================================= -->
-
- <!-- A time/date based rolling handler -->
-
- <periodic-rotating-file-handler
- file-name="${jboss.server.log.dir}/server.log"
- name="FILE"
- autoflush="true"
- append="true"
- suffix=".yyyy-MM-dd"> <!-- To roll over at the top of each hour, use ".yyyy-MM-dd-HH" instead -->
-
- <error-manager>
- <only-once/>
- </error-manager>
-
- <formatter>
- <!-- Uncomment this to get the class name in the log as well as the category
- <pattern-formatter pattern="%d %-5p [%c] %C{1} (%t) %m%n"/>
- -->
- <!-- Uncomment this to log without the class name in the log -->
- <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
- </formatter>
- </periodic-rotating-file-handler>
-
- <!-- A size based file rolling appender
-
- <size-rotating-file-handler
- file-name="${jboss.server.log.dir}/server.log"
- name="FILE"
- autoflush="true"
- append="true"
- rotate-size="500k"
- max-backup-index="5">
-
- <error-manager>
- <only-once/>
- </error-manager>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
- </formatter>
- </size-rotating-file-handler>
- -->
-
- <!-- ============================== -->
- <!-- Append messages to the console -->
- <!-- ============================== -->
-
- <console-handler name="CONSOLE" autoflush="true" target="System.out">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="INFO"/>
-
- <formatter>
- <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] %m%n"/>
- </formatter>
- </console-handler>
-
- <!-- ====================== -->
- <!-- More Appender examples -->
- <!-- ====================== -->
-
- <!-- Buffer events and log them asynchronously
-
- <async-handler name="ASYNC">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <sub-handlers>
- <handler-ref name="FILE"/>
- <handler-ref name="CONSOLE"/>
- <handler-ref name="SMTP"/>
- </sub-handlers>
- </async-handler>
- -->
-
- <!-- EMail events to an administrator
-
- <log4j-appender name="SMTP" class="org.apache.log4j.net.SMTPAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="ERROR"/>
-
- <properties>
- <property name="to">admin at myhost.domain.com</property>
- <property name="from">nobody at myhost.domain.com</property>
- <property name="subject">JBoss Sever Errors</property>
- <property name="sMTPHost">localhost</property>
- <property name="bufferSize">10</property>
- </properties>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] (%t) %m%n"/>
- </formatter>
- </log4j-appender>
- -->
-
- <!-- Syslog events
-
- <log4j-appender name="SYSLOG" class="org.apache.log4j.net.SyslogAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <properties>
- <property name="facility">LOCAL7</property>
- <property name="facilityPrinting">true</property>
- <property name="syslogHost">localhost</property>
- </properties>
-
- <formatter>
- <pattern-formatter pattern="[%d,%c{1}] %m%n"/>
- </formatter>
- </log4j-appender>
- -->
-
- <!-- Log events to JMS (requires a topic to be created)
-
- <log4j-appender name="JMS" class="org.apache.log4j.net.JMSAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="ERROR"/>
-
- <properties>
- <property name="topicConnectionFactoryBindingName">
- --><!-- Use injection so that an implicit dependency is formed - TODO: get the correct property name --><!--
- <b:inject bean="myTopicBiding" property="name"/>
- </property>
- <property name="topicBindingName">topic/MyErrorsTopic</property>
- </properties>
- </log4j-appender>
- -->
-
- <!-- Log events through SNMP
-
- <log4j-appender name="TRAP_LOG" class="org.apache.log4j.ext.SNMPTrapAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="DEBUG"/>
-
- <properties>
- <property name="implementationClassName">org.apache.log4j.ext.JoeSNMPTrapSender</property>
- <property name="managementHost">127.0.0.1</property>
- <property name="managementHostTrapListenPort">162</property>
- <property name="enterpriseOID">1.3.6.1.4.1.24.0</property>
- <property name="localIPAddress">127.0.0.1</property>
- <property name="localTrapSendPort">161</property>
- <property name="genericTrapType">6</property>
- <property name="specificTrapType">12345678</property>
- <property name="communityString">public</property>
- <property name="forwardStackTraceWithTrap">true</property>
- <property name="applicationTrapOID">1.3.6.1.4.1.24.12.10.22.64</property>
- </properties>
- <formatter>
- <pattern-formatter pattern="%d,%p,[%t],[%c],%m%n"/>
- </formatter>
- </log4j-appender>
- -->
-
- <!-- Emit events as JMX notifications
-
- <log4j-appender name="JMX" class="org.jboss.monitor.services.JMXNotificationAppender">
- <error-manager>
- <only-once/>
- </error-manager>
-
- <level name="WARN"/>
-
- <properties>
- <property name="objectName">jboss.system:service=Logging,type=JMXNotificationAppender</property>
- </properties>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] %m"/>
- </formatter>
- </log4j-appender>
- -->
-
- <!-- Security AUDIT Appender
-
- <periodic-rotating-file-handler
- name="AUDIT"
- autoflush="true"
- file-name="${jboss.server.log.dir}/audit.log"
- suffix=".yyyy-MM-dd"
- append="true">
-
- <error-manager>
- <only-once/>
- </error-manager>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] (%t:%x) %m%n"/>
- </formatter>
- </periodic-rotating-file-handler>
- -->
-
- <!-- =============================================== -->
- <!-- Limit categories -->
- <!-- if enabling "trace" at root logger level, -->
- <!-- use limit category settings to disable trace -->
- <!-- for packages that you don't want to trace -->
- <!-- =============================================== -->
-
- <!-- Limit the org.apache category to INFO as its DEBUG is verbose -->
- <logger category="org.apache">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the jacorb category to WARN as its INFO is verbose -->
- <logger category="jacorb">
- <level name="WARN"/>
- </logger>
-
- <!-- Limit JSF to INFO as its FINE is verbose -->
- <logger category="javax.enterprise.resource.webcontainer.jsf">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the org.jgroups category to WARN as its INFO is verbose -->
- <logger category="org.jgroups">
- <level name="WARN"/>
- </logger>
-
- <!-- Limit the org.quartz category to INFO as its DEBUG is verbose -->
- <logger category="org.quartz">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the com.sun category to INFO as its FINE is verbose -->
- <logger category="com.sun">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the sun category to INFO as its FINE is verbose -->
- <logger category="sun">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the javax.xml.bind category to INFO as its FINE is verbose -->
- <logger category="javax.xml.bind">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the springframework category to WARN-->
- <logger category="org.springframework">
- <level name="WARN"/>
- </logger>
-
- <!-- Limit JBoss categories
- <logger category="org.jboss">
- <level name="INFO"/>
- </logger>
- -->
-
- <!-- Or limit individual JBoss categories
- <logger category="org.jboss.web">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.tm">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.jdbc">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.on">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.services">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.bootstrap">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.kernel">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.beans">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.injection">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.annotation">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.system">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.mx">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.jmx">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.invocation">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.classloader">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.classloading">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.deployment">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.deployers">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.dependency">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.metadata">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.detailed">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.logging">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.logbridge">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.aop">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.joinpoint">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.util">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.ha">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.resource">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.varia">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.net">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.security">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.console">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.wsf">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.ejb">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.ejb3">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.jpa">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.vfs">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.xb">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.naming">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.wsf">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.ws">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.mail">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.monitor">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.remoting">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.profileservice">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.cache">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.proxy">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.jms">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.messaging">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.webbeans">
- <level name="INFO" />
- </logger>
-
- <logger category="org.jboss.managed">
- <level name="INFO" />
- </logger>
- -->
-
- <!-- Limit Arjuna transaction manager -->
- <logger category="com.arjuna.ats">
- <level name="INFO" />
- </logger>
-
- <!-- Limit Hibernate
- <logger category="org.hibernate">
- <level name="INFO" />
- </logger>
- -->
-
- <!-- Limit Ajax4jsf
- <logger category="org.ajax4jsf">
- <level name="INFO" />
- </logger>
- -->
-
- <!-- Limit JNP
- <logger category="org.jnp">
- <level name="INFO" />
- </logger>
- -->
-
-
- <!-- Limit the JSR77 categories -->
- <logger category="org.jboss.management">
- <level name="INFO"/>
- </logger>
-
- <!-- Limit the verbose facelets compiler
- <logger category="facelets.compiler">
- <level name="WARN"/>
- </logger>
- -->
-
- <!-- Limit the verbose ajax4jsf cache initialization
- <logger category="org.ajax4jsf.cache">
- <level name="WARN"/>
- </logger>
- -->
- <!-- Limit the verbose embedded jopr categories
- <logger category="org.rhq">
- <level name="WARN"/>
- </logger>
- -->
- <!-- Limit the verbose seam categories
- <logger category="org.jboss.seam">
- <level name="WARN"/>
- </logger>
- -->
-
- <!-- Show the evolution of the DataSource pool in the logs [inUse/Available/Max]
- <logger category="org.jboss.resource.connectionmanager.JBossManagedConnectionPool">
- <level name="TRACE"/>
- </logger>
- -->
-
- <!-- Category specifically for Security Audit Provider
- <logger category="org.jboss.security.audit.providers.LogAuditProvider" additivity="false">
- <level name="TRACE"/>
- <appender-ref ref="AUDIT"/>
- </logger>
- -->
-
- <!-- Limit the org.jboss.serial (jboss-serialization) to INFO as its DEBUG is verbose -->
- <logger category="org.jboss.serial">
- <level name="INFO"/>
- </logger>
-
- <!-- Decrease the priority threshold for the org.jboss.varia category
- <logger category="org.jboss.varia">
- <level name="DEBUG"/>
- </logger>
- -->
-
- <!-- Enable JBossWS message tracing
- <logger category="org.jboss.ws.core.MessageTrace">
- <level name="TRACE"/>
- </logger>
- -->
-
- <!-- Enable System log message tracing
- <logger category="org.jboss.system">
- <level name="TRACE"/>
- </logger>
- <logger category="org.jboss.ejb.plugins">
- <level name="TRACE"/>
- </logger>
- -->
-
- <!--
- | Logs these events to SNMP:
- - server starts/stops
- - cluster evolution (node death/startup)
- - When an EJB archive is deployed (and associated verified messages)
- - When an EAR archive is deployed
-
- <logger category="org.jboss.system.server.Server">
- <level name="INFO"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.ha.framework.interfaces.HAPartition.lifecycle">
- <level name="INFO"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.deployment.MainDeployer">
- <level name="ERROR"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.ejb.EJBDeployer">
- <level name="INFO"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.deployment.EARDeployer">
- <level name="INFO"/>
- <handlers>
- <handler-ref name="TRAP_LOG"/>
- </handlers>
- </logger>
- -->
-
- <!-- Clustering logging -->
- <!-- Uncomment the following to redirect the org.jgroups and
- org.jboss.ha categories to a cluster.log file.
-
- <size-rotating-file-handler
- file-name="${jboss.server.log.dir}/cluster.log"
- name="CLUSTER"
- append="false"
- rotate-size="500k"
- max-backup-index="5"
- autoflush="true">
-
- <error-manager>
- <only-once/>
- </error-manager>
-
- <formatter>
- <pattern-formatter pattern="%d %-5p [%c] %m%n"/>
- </formatter>
- </size-rotating-file-handler>
-
- <logger category="org.jgroups">
- <level name="DEBUG" />
- <handlers>
- <handler-ref name="CLUSTER"/>
- </handlers>
- </logger>
-
- <logger category="org.jboss.ha">
- <level name="DEBUG" />
- <handlers>
- <handler-ref name="CLUSTER"/>
- </handlers>
- </logger>
- -->
-
- <!-- ======================= -->
- <!-- Setup the Root category -->
- <!-- ======================= -->
-
- <root-logger>
- <!-- Set the root logger priority via a system property, with a default value. -->
- <level name="${jboss.server.log.threshold:DEBUG}"/>
- <handlers>
- <handler-ref name="CONSOLE"/>
- <handler-ref name="FILE"/>
- </handlers>
- </root-logger>
-
-</logging>
+ <!-- This is a temporary workaround for https://jira.jboss.org/jira/browse/EMBJOPR-280 and
+ should be removed once that bug if fixed in the bundled admin-console war. -->
+ <logger category="org.rhq.plugins.jbossas5.ApplicationServerComponent">
+ <level name="FATAL"/>
+ </logger>
+
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root-logger>
+ <!-- Set the root logger priority via a system property, with a default value. -->
+ <level name="${jboss.server.log.threshold:INFO}"/>
+ <handlers>
+ <handler-ref name="CONSOLE"/>
+ <handler-ref name="FILE"/>
+ </handlers>
+ </root-logger>
+
+</logging>
Copied: branches/vfs3-int/server/src/etc/deploy/jbossws-console-activator-jboss-beans.xml (from rev 100917, trunk/server/src/etc/deploy/jbossws-console-activator-jboss-beans.xml)
===================================================================
--- branches/vfs3-int/server/src/etc/deploy/jbossws-console-activator-jboss-beans.xml (rev 0)
+++ branches/vfs3-int/server/src/etc/deploy/jbossws-console-activator-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="JBossWSConsoleActivator" class="org.jboss.web.tomcat.service.ondemand.OnDemandContextProfileManager">
+
+ <property name="profileService"><inject bean="ProfileService"/></property>
+ <property name="profileFactory"><inject bean="ProfileFactory"/></property>
+ <property name="onDemandContextIntegrator"><inject bean="WebServer" property="onDemandContextIntegrator"/></property>
+
+ <property name="contextName">jbossws</property>
+
+ <!-- Build a profile from the contents of this single URI -->
+ <property name="singleURI">${jboss.common.base.url}deploy${/}jbossws-console.war</property>
+
+ <!--
+ Whether activation of the profile (i.e. deployment of the URI contents)
+ should be deferred until the first request (true) or done as part of
+ the start of this bean (false).
+
+ WARNING: This configuration option may be altered in a subsequent AS 6.0
+ milestone release.
+
+ FIXME: https://jira.jboss.org/jira/browse/JBAS-7714
+ -->
+ <property name="activateOnDemand">${jboss.as.deployment.ondemand:true}</property>
+
+ </bean>
+
+</deployment>
Copied: branches/vfs3-int/server/src/etc/deploy/jmx-console-activator-jboss-beans.xml (from rev 100917, trunk/server/src/etc/deploy/jmx-console-activator-jboss-beans.xml)
===================================================================
--- branches/vfs3-int/server/src/etc/deploy/jmx-console-activator-jboss-beans.xml (rev 0)
+++ branches/vfs3-int/server/src/etc/deploy/jmx-console-activator-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <bean name="JmxConsoleActivator" class="org.jboss.web.tomcat.service.ondemand.OnDemandContextProfileManager">
+
+ <property name="profileService"><inject bean="ProfileService"/></property>
+ <property name="profileFactory"><inject bean="ProfileFactory"/></property>
+ <property name="onDemandContextIntegrator"><inject bean="WebServer" property="onDemandContextIntegrator"/></property>
+
+ <property name="contextName">jmx-console</property>
+
+ <!-- Build a profile from the contents of this single URI -->
+ <property name="singleURI">${jboss.common.base.url}deploy${/}jmx-console.war</property>
+
+ <!--
+ Whether activation of the profile (i.e. deployment of the URI contents)
+ should be deferred until the first request (true) or done as part of
+ the start of this bean (false).
+
+ WARNING: This configuration option may be altered in a subsequent AS 6.0
+ milestone release.
+
+ FIXME: https://jira.jboss.org/jira/browse/JBAS-7714
+ -->
+ <property name="activateOnDemand">${jboss.as.deployment.ondemand:true}</property>
+
+ </bean>
+
+</deployment>
Modified: branches/vfs3-int/server/src/etc/deploy/legacy-conf-service.xml
===================================================================
--- branches/vfs3-int/server/src/etc/deploy/legacy-conf-service.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/deploy/legacy-conf-service.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -37,14 +37,6 @@
-->
</mbean>
- <!-- ==================================================================== -->
- <!-- JBoss RMI Classloader - only install when available -->
- <!-- ==================================================================== -->
- <mbean code="org.jboss.util.property.jmx.SystemPropertyClassValue"
- name="jboss.rmi:type=RMIClassLoader">
- <attribute name="Property">java.rmi.server.RMIClassLoaderSpi</attribute>
- <attribute name="ClassName">org.jboss.system.JBossRMIClassLoader</attribute>
- </mbean>
<!-- ==================================================================== -->
<!-- Class Loading -->
Modified: branches/vfs3-int/server/src/etc/deployers/core-naming-jboss-beans.xml
===================================================================
--- branches/vfs3-int/server/src/etc/deployers/core-naming-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/deployers/core-naming-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -9,9 +9,11 @@
<!-- Install this bean as the global JVM NamingServer -->
<property name="installGlobalService">true</property>
<property name="useGlobalService">false</property>
- <property name="installJavaComp">false</property>
+ <!-- JBAS-7556: for the moment still done by NamingBeanImpl -->
+ <!-- property name="installJavaComp">false</property -->
</bean>
+ <!-- JBAS-7556: Weld has a hack which claims java:app, so disabled for now
<bean name="NameSpaces" class="org.jboss.reloaded.naming.service.NameSpaces"/>
<bean name="JavaEEModuleIdentifier" class="org.jboss.as.javaee.SimpleJavaEEModuleIdentifier"/>
@@ -31,4 +33,5 @@
<bean name="ComponentNamingDeployer" class="org.jboss.reloaded.naming.deployers.ComponentNamingDeployer">
<constructor><parameter><inject bean="NamingJavaEEComponentInformer"/></parameter></constructor>
</bean>
+ -->
</deployment>
Modified: branches/vfs3-int/server/src/etc/deployers/metadata-deployer-jboss-beans.xml
===================================================================
--- branches/vfs3-int/server/src/etc/deployers/metadata-deployer-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/etc/deployers/metadata-deployer-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -23,7 +23,7 @@
<bean name="JBossCustomDeployDUFilter" class="org.jboss.deployers.vfs.spi.structure.helpers.VirtualFileDeploymentUnitFilter">
<constructor>
<parameter>
- <bean class="org.jboss.deployment.FileNameVirtualFileFilter">
+ <bean class="org.jboss.virtual.plugins.vfs.helpers.FileNameVirtualFileFilter">
<constructor>
<parameter>
<map keyClass="java.lang.String" valueClass="java.util.Set">
@@ -67,6 +67,10 @@
<key>jmx-console.war</key>
<value><null/></value>
</entry>
+ <entry>
+ <key>admin-console.war</key>
+ <value><null/></value>
+ </entry>
</map>
</parameter>
</constructor>
@@ -75,7 +79,7 @@
</constructor>
</bean>
- <bean name="DeploymentProvidedDUFilter" class="org.jboss.deployment.DeploymentProvidedDeploymentUnitFilter" />
+ <bean name="DeploymentProvidedDUFilter" class="org.jboss.deployers.vfs.spi.structure.helpers.DeploymentProvidedDeploymentUnitFilter" />
<bean name="GenScanDeployer" class="org.jboss.deployers.vfs.plugins.annotations.FilteredAnnotationRepositoryDeployer">
<property name="filter">
Modified: branches/vfs3-int/server/src/main/java/org/jboss/deployment/AnnotationMetaDataDeployer.java
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/deployment/AnnotationMetaDataDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/main/java/org/jboss/deployment/AnnotationMetaDataDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -110,8 +110,7 @@
* @param unit the unit
* @throws DeploymentException for any error
*/
- protected void deploy(VFSDeploymentUnit unit)
- throws DeploymentException
+ protected void deploy(VFSDeploymentUnit unit) throws DeploymentException
{
/* Ignore any spec metadata complete deployments. This expects that a
deployment unit only represents one of the client, ejb or web
@@ -129,6 +128,7 @@
// Any ejb-jar.xml 2.1 or earlier deployment is metadata complete
isComplete = true;
}
+
WebMetaData webMetaData = unit.getAttachment(WebMetaData.class);
if(webMetaData != null)
{
@@ -146,19 +146,28 @@
isComplete = true;
}
}
+
ApplicationClientMetaData clientMetaData = unit.getAttachment(ApplicationClientMetaData.class);
if(clientMetaData != null)
isComplete |= clientMetaData.isMetadataComplete();
+
+ // OSGi bundle deployments are metadata-complete
+ // [TODO] Replace with a check for OSGiMetaData once this becomes generally available in AS
+ String symbolicName = (String) unit.getAttachment("org.jboss.osgi.bundle.symbolic.name");
+ isComplete |= (symbolicName != null);
+
if(isComplete)
{
log.debug("Deployment is metadata-complete, skipping annotation processing"
+ ", ejbJarMetaData="+ejbJarMetaData
+ ", jbossWebMetaData="+webMetaData
+ ", jbossClientMetaData="+clientMetaData
+ + ", bundleSymbolicName="+symbolicName
+ ", metaDataCompleteIsDefault="+metaDataCompleteIsDefault
);
return;
}
+
VirtualFile root = unit.getRoot();
if(root.isLeaf() == true)
return;
Deleted: branches/vfs3-int/server/src/main/java/org/jboss/deployment/DeploymentProvidedDeploymentUnitFilter.java
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/deployment/DeploymentProvidedDeploymentUnitFilter.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/main/java/org/jboss/deployment/DeploymentProvidedDeploymentUnitFilter.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,48 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2006, Red Hat Middleware LLC, 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.deployment;
-
-// $Id$
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.structure.spi.DeploymentUnitFilter;
-import org.jboss.deployers.vfs.spi.structure.helpers.VFS2BaseBridgeDeploymentUnitFilter;
-
-/**
- * A DeploymentUnitFilter that delegates its work the DeploymentUnitFilter that
- * is attached to the DeploymentUnit.
- *
- * A Deployer can attach a DeploymentUnitFilter to a DeploymentUnit which controlls whether
- * the DeploymentUnit is to be processed by following Deployers
- *
- * @author Thomas.Diesler at jboss.com
- * @since 04-Mar-2009
- */
-public class DeploymentProvidedDeploymentUnitFilter extends VFS2BaseBridgeDeploymentUnitFilter
-{
- @Override
- protected boolean doAccepts(DeploymentUnit unit)
- {
- DeploymentUnitFilter filter = unit.getTopLevel().getAttachment(DeploymentUnitFilter.class);
- return filter == null || filter.accepts(unit);
- }
-}
\ No newline at end of file
Modified: branches/vfs3-int/server/src/main/java/org/jboss/deployment/EARStructure.java
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/deployment/EARStructure.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/main/java/org/jboss/deployment/EARStructure.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -30,10 +30,11 @@
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.spi.structure.ContextInfo;
import org.jboss.deployers.vfs.plugins.structure.AbstractVFSArchiveStructureDeployer;
-import org.jboss.deployers.vfs.plugins.structure.AbstractVFSStructureDeployer;
+import org.jboss.deployers.structure.spi.helpers.RelativeDeploymentContextComparator;
import org.jboss.deployers.vfs.spi.structure.StructureContext;
import org.jboss.metadata.ear.jboss.JBossAppMetaData;
import org.jboss.metadata.ear.jboss.ServiceModuleMetaData;
+import org.jboss.metadata.ear.jboss.JBossAppMetaData.ModuleOrder;
import org.jboss.metadata.ear.spec.AbstractModule;
import org.jboss.metadata.ear.spec.ConnectorModuleMetaData;
import org.jboss.metadata.ear.spec.EarMetaData;
@@ -84,7 +85,7 @@
/**
* Set the relative order to 1000 by default
- */
+ */
public EARStructure()
{
setRelativeOrder(1000);
@@ -200,7 +201,7 @@
{
if (libDir == null)
libDir = "lib";
-
+
// Add the ear lib contents to the classpath
if(trace)
log.trace("Checking for ear lib directory: "+libDir);
@@ -270,6 +271,7 @@
if (module.exists() == false)
{
throw new RuntimeException(fileName + " module listed in application.xml does not exist within .ear " + file.toURI());
+
}
// Ask the deployers to analyze this
if(structureContext.determineChildStructure(module) == false)
@@ -280,12 +282,23 @@
}
}
}
+
+ if (appMetaData.getModuleOrderEnum() == ModuleOrder.STRICT)
+ {
+ context.setComparatorClassName(RelativeDeploymentContextComparator.class.getName());
+ int i = 0;
+ for (ContextInfo ctx : structureContext.getMetaData().getContexts())
+ {
+ ctx.setRelativeOrder(i++);
+ }
+ }
}
+
valid = true;
}
catch(Exception e)
{
- throw new RuntimeException("Error determining structure: " + file.getName(), e);
+ throw new RuntimeException("Error determining structure: " + file.getName(), e);
}
return valid;
@@ -327,7 +340,7 @@
for (VirtualFile vfArchive : archives)
{
String filename = earRelativePath(earPath, vfArchive.getPathName());
- // Check if the module already exists, i.e. it is declared in jboss-app.xml
+ // Check if the module already exists, i.e. it is declared in jboss-app.xml
ModuleMetaData moduleMetaData = appMetaData.getModule(filename);
int type = typeFromSuffix(filename, vfArchive);
if (type >= 0 && moduleMetaData == null)
@@ -409,7 +422,7 @@
type = J2eeModuleMetaData.EJB;
}
}
-
+
return type;
}
@@ -436,12 +449,12 @@
{
this.comparatorClassName = comparatorClassName;
}
-
+
public void setUseValidation(boolean validateXml)
{
this.useValidation = validateXml;
}
-
+
public boolean isUseValidation()
{
return useValidation;
Modified: branches/vfs3-int/server/src/main/java/org/jboss/deployment/EjbParsingDeployer.java
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/deployment/EjbParsingDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/main/java/org/jboss/deployment/EjbParsingDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -23,6 +23,7 @@
import org.jboss.aop.microcontainer.aspects.jmx.JMX;
import org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer;
+import org.jboss.metadata.ear.spec.EarMetaData;
import org.jboss.metadata.ejb.spec.EjbJarMetaData;
/**
@@ -31,6 +32,7 @@
*
* @author Scott.Stark at jboss.org
* @author adrian at jboss.org
+ * @author ales.justin at jboss.org
* @version $Revision$
*/
@SuppressWarnings("deprecation")
@@ -44,6 +46,7 @@
{
super(EjbJarMetaData.class);
setName("ejb-jar.xml");
+ // for alt-dd usage
+ addInput(EarMetaData.class);
}
-
}
Copied: branches/vfs3-int/server/src/main/java/org/jboss/deployment/MetaDataTypeFilterFactory.java (from rev 100917, trunk/server/src/main/java/org/jboss/deployment/MetaDataTypeFilterFactory.java)
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/deployment/MetaDataTypeFilterFactory.java (rev 0)
+++ branches/vfs3-int/server/src/main/java/org/jboss/deployment/MetaDataTypeFilterFactory.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, 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.deployment;
+
+import org.jboss.deployers.spi.structure.MetaDataTypeFilter;
+
+/**
+ * Simplify MetaDataTypeFilter usage.
+ *
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class MetaDataTypeFilterFactory
+{
+ public static MetaDataTypeFilter getDefault()
+ {
+ return MetaDataTypeFilter.DEFAULT;
+ }
+
+ public static MetaDataTypeFilter getAll()
+ {
+ return MetaDataTypeFilter.ALL;
+ }
+}
Copied: branches/vfs3-int/server/src/main/java/org/jboss/deployment/PUHackDeployer.java (from rev 100917, trunk/server/src/main/java/org/jboss/deployment/PUHackDeployer.java)
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/deployment/PUHackDeployer.java (rev 0)
+++ branches/vfs3-int/server/src/main/java/org/jboss/deployment/PUHackDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,497 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, 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.deployment;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.dependency.spi.DependencyInfo;
+import org.jboss.dependency.spi.DependencyItem;
+import org.jboss.deployers.client.spi.main.MainDeployer;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.attachments.MutableAttachments;
+import org.jboss.deployers.spi.deployer.DeploymentStage;
+import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.spi.structure.MetaDataTypeFilter;
+import org.jboss.deployers.structure.spi.ClassLoaderFactory;
+import org.jboss.deployers.structure.spi.DeploymentResourceLoader;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.structure.spi.DeploymentUnitVisitor;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentResourceLoader;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.jpa.spec.PersistenceUnitMetaData;
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.MutableMetaData;
+import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.vfs.VirtualFile;
+import org.jboss.vfs.VirtualFileFilter;
+
+/**
+ * Hack to work around PersistenceUnitDeployment usage of DeploymentUnit::getMetaDataFile
+ *
+ * @author <a href="mailto:ales.justin at jboss.org">Ales Justin</a>
+ */
+public class PUHackDeployer extends AbstractSimpleRealDeployer<PersistenceUnitMetaData>
+{
+ private AbstractSimpleRealDeployer<PersistenceUnitMetaData> delegate;
+
+ public PUHackDeployer(AbstractSimpleRealDeployer<PersistenceUnitMetaData> delegate)
+ {
+ super(PersistenceUnitMetaData.class);
+ if (delegate == null)
+ throw new IllegalArgumentException("Null delegate deployer");
+ this.delegate = delegate;
+
+ setComponentsOnly(delegate.isComponentsOnly());
+ addOutput(BeanMetaData.class);
+ }
+
+ @Override
+ public void deploy(DeploymentUnit unit, PersistenceUnitMetaData deployment) throws DeploymentException
+ {
+ DeploymentUnit wrapper = wrap(unit);
+ delegate.deploy(wrapper, deployment);
+ }
+
+ protected static DeploymentUnit wrap(DeploymentUnit unit)
+ {
+ if (unit instanceof VFSDeploymentUnit)
+ return new VFSDUDelegate((VFSDeploymentUnit)unit);
+ else
+ return new DUDelegate(unit);
+ }
+
+ private static class DUDelegate implements DeploymentUnit
+ {
+ private DeploymentUnit delegate;
+
+ private DUDelegate(DeploymentUnit delegate)
+ {
+ this.delegate = delegate;
+ }
+
+ public String getName()
+ {
+ return delegate.getName();
+ }
+
+ public String getSimpleName()
+ {
+ return delegate.getSimpleName();
+ }
+
+ public String getRelativePath()
+ {
+ return delegate.getRelativePath();
+ }
+
+ public ScopeKey getScope()
+ {
+ return delegate.getScope();
+ }
+
+ public void setScope(ScopeKey key)
+ {
+ delegate.setScope(key);
+ }
+
+ public ScopeKey getMutableScope()
+ {
+ return delegate.getMutableScope();
+ }
+
+ public void setMutableScope(ScopeKey key)
+ {
+ delegate.setMutableScope(key);
+ }
+
+ public MetaData getMetaData()
+ {
+ return delegate.getMetaData();
+ }
+
+ public MutableMetaData getMutableMetaData()
+ {
+ return delegate.getMutableMetaData();
+ }
+
+ public ClassLoader getClassLoader()
+ {
+ return delegate.getClassLoader();
+ }
+
+ public boolean createClassLoader(ClassLoaderFactory factory) throws DeploymentException
+ {
+ return delegate.createClassLoader(factory);
+ }
+
+ public void removeClassLoader(ClassLoaderFactory factory)
+ {
+ delegate.removeClassLoader(factory);
+ }
+
+ public <T> Set<? extends T> getAllMetaData(Class<T> type)
+ {
+ return delegate.getAllMetaData(type);
+ }
+
+ public MutableAttachments getTransientManagedObjects()
+ {
+ return delegate.getTransientManagedObjects();
+ }
+
+ public boolean isTopLevel()
+ {
+ return delegate.isTopLevel();
+ }
+
+ public DeploymentUnit getTopLevel()
+ {
+ DeploymentUnit top = delegate.getTopLevel();
+ return wrap(top);
+ }
+
+ public DeploymentUnit getParent()
+ {
+ DeploymentUnit parent = delegate.getParent();
+ return wrap(parent);
+ }
+
+ public List<DeploymentUnit> getChildren()
+ {
+ return delegate.getChildren();
+ }
+
+ public List<DeploymentUnit> getComponents()
+ {
+ return delegate.getComponents();
+ }
+
+ public boolean isComponent()
+ {
+ return delegate.isComponent();
+ }
+
+ public DeploymentUnit addComponent(String name)
+ {
+ return wrap(delegate.addComponent(name));
+ }
+
+ public DeploymentUnit getComponent(String name)
+ {
+ return wrap(delegate.getComponent(name));
+ }
+
+ public boolean removeComponent(String name)
+ {
+ return delegate.removeComponent(name);
+ }
+
+ public DeploymentResourceLoader getResourceLoader()
+ {
+ return delegate.getResourceLoader();
+ }
+
+ public ClassLoader getResourceClassLoader()
+ {
+ return delegate.getResourceClassLoader();
+ }
+
+ public void visit(DeploymentUnitVisitor visitor) throws DeploymentException
+ {
+ delegate.visit(visitor);
+ }
+
+ public MainDeployer getMainDeployer()
+ {
+ return delegate.getMainDeployer();
+ }
+
+ public Object getControllerContextName()
+ {
+ return delegate.getControllerContextName();
+ }
+
+ public DeploymentStage getRequiredStage()
+ {
+ return delegate.getRequiredStage();
+ }
+
+ public void setRequiredStage(DeploymentStage stage)
+ {
+ delegate.setRequiredStage(stage);
+ }
+
+ public DependencyInfo getDependencyInfo()
+ {
+ return delegate.getDependencyInfo();
+ }
+
+ public void addIDependOn(DependencyItem dependency)
+ {
+ delegate.addIDependOn(dependency);
+ }
+
+ public void removeIDependOn(DependencyItem dependency)
+ {
+ delegate.removeIDependOn(dependency);
+ }
+
+ public Set<Object> getControllerContextNames()
+ {
+ return delegate.getControllerContextNames();
+ }
+
+ public void addControllerContextName(Object name)
+ {
+ delegate.addControllerContextName(name);
+ }
+
+ public void removeControllerContextName(Object name)
+ {
+ delegate.removeControllerContextName(name);
+ }
+
+ public Object addAttachment(String name, Object attachment)
+ {
+ return delegate.addAttachment(name, attachment);
+ }
+
+ public <T> T addAttachment(String name, T attachment, Class<T> expectedType)
+ {
+ return delegate.addAttachment(name, attachment, expectedType);
+ }
+
+ public <T> T addAttachment(Class<T> type, T attachment)
+ {
+ return delegate.addAttachment(type, attachment);
+ }
+
+ public Object removeAttachment(String name)
+ {
+ return delegate.removeAttachment(name);
+ }
+
+ public <T> T removeAttachment(String name, Class<T> expectedType)
+ {
+ return delegate.removeAttachment(name, expectedType);
+ }
+
+ public <T> T removeAttachment(Class<T> type)
+ {
+ return delegate.removeAttachment(type);
+ }
+
+ public void setAttachments(Map<String, Object> map)
+ {
+ delegate.setAttachments(map);
+ }
+
+ public void clear()
+ {
+ delegate.clear();
+ }
+
+ public int getChangeCount()
+ {
+ return delegate.getChangeCount();
+ }
+
+ public void clearChangeCount()
+ {
+ delegate.clearChangeCount();
+ }
+
+ public Map<String, Object> getAttachments()
+ {
+ return delegate.getAttachments();
+ }
+
+ public Object getAttachment(String name)
+ {
+ return delegate.getAttachment(name);
+ }
+
+ public <T> T getAttachment(String name, Class<T> expectedType)
+ {
+ return delegate.getAttachment(name, expectedType);
+ }
+
+ public <T> T getAttachment(Class<T> type)
+ {
+ return delegate.getAttachment(type);
+ }
+
+ public boolean isAttachmentPresent(String name)
+ {
+ return delegate.isAttachmentPresent(name);
+ }
+
+ public boolean isAttachmentPresent(String name, Class<?> expectedType)
+ {
+ return delegate.isAttachmentPresent(name, expectedType);
+ }
+
+ public boolean isAttachmentPresent(Class<?> type)
+ {
+ return delegate.isAttachmentPresent(type);
+ }
+
+ public boolean hasAttachments()
+ {
+ return delegate.hasAttachments();
+ }
+ }
+
+ private static class VFSDUDelegate extends DUDelegate implements VFSDeploymentUnit
+ {
+ private VFSDeploymentUnit delegate;
+
+ private VFSDUDelegate(VFSDeploymentUnit delegate)
+ {
+ super(delegate);
+ this.delegate = delegate;
+ }
+
+ public VFSDeploymentResourceLoader getResourceLoader()
+ {
+ return delegate.getResourceLoader();
+ }
+
+ public VFSDeploymentUnit getParent()
+ {
+ return delegate.getParent();
+ }
+
+ public VFSDeploymentUnit getTopLevel()
+ {
+ return delegate.getTopLevel();
+ }
+
+ public VirtualFile getMetaDataFile(String name)
+ {
+ return getMetaDataFile(name, MetaDataTypeFilter.ALL);
+ }
+
+ public VirtualFile getMetaDataFile(String name, MetaDataTypeFilter filter)
+ {
+ return delegate.getMetaDataFile(name, filter);
+ }
+
+ public List<VirtualFile> getMetaDataFiles(String name, String suffix)
+ {
+ return getMetaDataFiles(name, suffix, MetaDataTypeFilter.ALL);
+ }
+
+ public List<VirtualFile> getMetaDataFiles(String name, String suffix, MetaDataTypeFilter filter)
+ {
+ return delegate.getMetaDataFiles(name, suffix, filter);
+ }
+
+ public List<VirtualFile> getMetaDataFiles(VirtualFileFilter filter)
+ {
+ return getMetaDataFiles(filter, MetaDataTypeFilter.ALL);
+ }
+
+ public List<VirtualFile> getMetaDataFiles(VirtualFileFilter filter, MetaDataTypeFilter mdtf)
+ {
+ return delegate.getMetaDataFiles(filter, mdtf);
+ }
+
+ public void prependMetaDataLocation(VirtualFile... locations)
+ {
+ delegate.prependMetaDataLocation(locations);
+ }
+
+ public void appendMetaDataLocation(VirtualFile... locations)
+ {
+ delegate.appendMetaDataLocation(locations);
+ }
+
+ public void removeMetaDataLocation(VirtualFile... locations)
+ {
+ delegate.removeMetaDataLocation(locations);
+ }
+
+ public VirtualFile getFile(String path)
+ {
+ return delegate.getFile(path);
+ }
+
+ public VirtualFile getRoot()
+ {
+ return delegate.getRoot();
+ }
+
+ public List<VirtualFile> getClassPath()
+ {
+ return delegate.getClassPath();
+ }
+
+ public void setClassPath(List<VirtualFile> classPath)
+ {
+ delegate.setClassPath(classPath);
+ }
+
+ public void prependClassPath(VirtualFile... files)
+ {
+ delegate.prependClassPath(files);
+ }
+
+ public void prependClassPath(List<VirtualFile> files)
+ {
+ delegate.prependClassPath(files);
+ }
+
+ public void appendClassPath(VirtualFile... files)
+ {
+ delegate.appendClassPath(files);
+ }
+
+ public void appendClassPath(List<VirtualFile> files)
+ {
+ delegate.appendClassPath(files);
+ }
+
+ public void addClassPath(VirtualFile... files)
+ {
+ delegate.addClassPath(files);
+ }
+
+ public void addClassPath(List<VirtualFile> files)
+ {
+ delegate.addClassPath(files);
+ }
+
+ public void removeClassPath(VirtualFile... files)
+ {
+ delegate.removeClassPath(files);
+ }
+
+ public List<VFSDeploymentUnit> getVFSChildren()
+ {
+ return delegate.getVFSChildren();
+ }
+ }
+}
\ No newline at end of file
Modified: branches/vfs3-int/server/src/main/java/org/jboss/deployment/WebAppFragmentParsingDeployer.java
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/deployment/WebAppFragmentParsingDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/main/java/org/jboss/deployment/WebAppFragmentParsingDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -24,6 +24,7 @@
import java.util.Set;
import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.structure.MetaDataTypeFilter;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
@@ -45,6 +46,7 @@
super(WebFragmentMetaData.class);
setName("web-fragment.xml");
setAllowMultipleFiles(true);
+ setFilter(MetaDataTypeFilter.ALL);
}
/**
Modified: branches/vfs3-int/server/src/main/java/org/jboss/deployment/WebAppParsingDeployer.java
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/deployment/WebAppParsingDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/main/java/org/jboss/deployment/WebAppParsingDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -22,6 +22,7 @@
package org.jboss.deployment;
import org.jboss.deployers.vfs.spi.deployer.SchemaResolverDeployer;
+import org.jboss.metadata.ear.spec.EarMetaData;
import org.jboss.metadata.web.spec.WebMetaData;
/**
@@ -30,6 +31,7 @@
*
* @author Scott.Stark at jboss.org
* @author adrian at jboss.org
+ * @author ales.justin at jboss.org
* @version $Revision$
*/
public class WebAppParsingDeployer extends SchemaResolverDeployer<WebMetaData>
@@ -38,6 +40,8 @@
{
super(WebMetaData.class);
setName("web.xml");
+ // for alt-dd usage
+ addInput(EarMetaData.class);
}
/**
@@ -50,6 +54,7 @@
{
return getName();
}
+
/**
* Set the virtual file path for the web-app descriptor in the
* DeploymentContext.getMetaDataLocation. The standard path is web.xml
@@ -61,5 +66,4 @@
{
setName(webXmlPath);
}
-
}
Modified: branches/vfs3-int/server/src/main/java/org/jboss/naming/NamingProviderURLWriter.java
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/naming/NamingProviderURLWriter.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/server/src/main/java/org/jboss/naming/NamingProviderURLWriter.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -22,7 +22,9 @@
package org.jboss.naming;
+import java.io.BufferedReader;
import java.io.File;
+import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.Inet6Address;
@@ -54,7 +56,6 @@
private JBossASServer server;
private URI outputDir;
private String filename = DEFAULT_PERSIST_FILE_NAME;
- private File outputFile;
public URI getOutputDirURI()
{
@@ -135,29 +136,36 @@
{
base.mkdirs();
- outputFile = new File(base, getOutputFileName());
- if (outputFile.exists())
+ File file = new File(base, getOutputFileName());
+ if (file.exists())
{
- outputFile.delete();
+ file.delete();
}
- if (log.isTraceEnabled())
- {
- log.trace("Creating file " + outputFile);
- }
- outputFile.createNewFile();
- PrintWriter writer = new PrintWriter(outputFile);
+ PrintWriter writer = null;
try
- {
+ {
+ if (log.isTraceEnabled())
+ {
+ log.trace("Creating file " + file);
+ }
+ file.createNewFile();
+ file.deleteOnExit();
+
+ writer = new PrintWriter(file);
writer.println(bootstrapUrl);
writer.flush();
}
+ catch (Exception e)
+ {
+ handleOutputFileCreationException(file.toURI(), e);
+ }
finally
{
- outputFile.deleteOnExit();
- writer.close();
+ if (writer != null)
+ {
+ writer.close();
+ }
}
-
- outputFile.deleteOnExit();
}
else
{
@@ -172,11 +180,69 @@
}
}
+ /** JBAS-7674 Try to intelligently deal with case where Windows has the file locked */
+ private void handleOutputFileCreationException(URI outputFile, Exception e)
+ {
+ boolean handled = false;
+ FileReader fr = null;
+ try
+ {
+ File f = new File(outputFile);
+ if (f.exists())
+ {
+ fr = new FileReader(f);
+ String existing = new BufferedReader(fr).readLine();
+ if (existing != null && this.bootstrapUrl.equals(existing.trim()))
+ {
+ log.info("Experienced a problem (" + e +
+ ") updating the naming service URL file " + outputFile +
+ " but the current contents are correct.");
+ }
+ else
+ {
+ log.error("Cannot update naming service URL file " + outputFile, e);
+ }
+ handled = true;
+ }
+ }
+ catch (Exception ignored)
+ {
+ ;
+ }
+ finally
+ {
+ if (fr != null)
+ {
+ try
+ {
+ fr.close();
+ }
+ catch (Exception ignored) {}
+ }
+ }
+
+ if (!handled)
+ {
+ log.error("Cannot create a naming service URL file at " + outputFile, e);
+ }
+
+ }
+
public void stop() throws Exception
{
- if (outputFile != null)
+ if (outputDir != null)
{
- outputFile.delete();
+ String outputFile = "";
+ try
+ {
+ File f = new File(new File(outputDir), getOutputFileName());
+ outputFile = f.getAbsolutePath();
+ f.delete();
+ }
+ catch (Exception e)
+ {
+ log.warn("Failed to delete JNP URL file " + outputFile + " due to " + e);
+ }
}
}
Copied: branches/vfs3-int/server/src/main/java/org/jboss/web/RMICodebaseConfigurer.java (from rev 100917, trunk/server/src/main/java/org/jboss/web/RMICodebaseConfigurer.java)
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/web/RMICodebaseConfigurer.java (rev 0)
+++ branches/vfs3-int/server/src/main/java/org/jboss/web/RMICodebaseConfigurer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,105 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.web;
+
+import org.jboss.system.ServiceMBeanSupport;
+
+/**
+ * Sets system property java.rmi.server.codebase to a URL derived from injected
+ * values. Hack temporary fix for https://jira.jboss.org/jira/browse/JBAS-7274
+ * intended to be deployed early in the AS boot, but after ServiceBindingManager
+ * (i.e. in conf/jboss-service.xml).
+ *
+ * @author Brian Stansberry
+ *
+ * @version $Revision$
+ *
+ * @deprecated will be removed before JBoss AS 6.0.0.CR1
+ */
+public class RMICodebaseConfigurer extends ServiceMBeanSupport implements RMICodebaseConfigurerMBean
+{
+ private String host;
+ private int port = -1;
+
+ public String getCodebaseHost()
+ {
+ return host;
+ }
+
+ public int getCodebasePort()
+ {
+ return port;
+ }
+
+ public void setCodebaseHost(String host)
+ {
+ this.host = host;
+ }
+
+ public void setCodebasePort(int port)
+ {
+ this.port = port;
+ }
+
+ /**
+ * Sets property java.rmi.server.codebase if not already set
+ */
+ @Override
+ protected void startService() throws Exception
+ {
+ // Set the rmi codebase if it is not already set
+ String codebase = System.getProperty("java.rmi.server.codebase");
+ if (codebase == null)
+ {
+ if (host != null)
+ {
+ codebase = "http://" + getHostPortion() + getPortPortion() + "/";
+ System.setProperty("java.rmi.server.codebase", codebase);
+ }
+ else
+ {
+ getLog().warn("Property codebaseHost has not been set; cannot set java.rmi.server.codebase");
+ }
+ }
+ }
+
+ private String getHostPortion()
+ {
+ if (host.indexOf(':') > -1 && host.indexOf('[') != 0)
+ {
+ return "[" + host + "]";
+ }
+ return host;
+ }
+
+ private String getPortPortion()
+ {
+ if (port > 0)
+ {
+ return ":" + port;
+ }
+ return "";
+ }
+
+
+}
Copied: branches/vfs3-int/server/src/main/java/org/jboss/web/RMICodebaseConfigurerMBean.java (from rev 100917, trunk/server/src/main/java/org/jboss/web/RMICodebaseConfigurerMBean.java)
===================================================================
--- branches/vfs3-int/server/src/main/java/org/jboss/web/RMICodebaseConfigurerMBean.java (rev 0)
+++ branches/vfs3-int/server/src/main/java/org/jboss/web/RMICodebaseConfigurerMBean.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.web;
+
+import org.jboss.system.ServiceMBean;
+
+
+/**
+ * Standard MBean interface for RMICodebaseConfigurer
+ *
+ * @author Brian Stansberry
+ *
+ * @version $Revision$
+ *
+ * @deprecated will be removed before JBoss AS 6.0.0.CR1
+ */
+public interface RMICodebaseConfigurerMBean extends ServiceMBean
+{
+ /**
+ * Gets the host portion of the codebase URL
+ *
+ * @return the address, or <code>null</code> if not set
+ */
+ String getCodebaseHost();
+
+ /**
+ * Sets the host portion of the codebase URL
+ *
+ * @param host the host
+ */
+ void setCodebaseHost(String host);
+
+ /**
+ * Gets the port portion of the codebase URL
+ *
+ * @return the port, or -1 if not configured
+ */
+ int getCodebasePort();
+
+ /**
+ * Sets the port portion of the codebase URL
+ *
+ * @param port the port
+ */
+ void setCodebasePort(int port);
+}
Modified: branches/vfs3-int/system/pom.xml
===================================================================
--- branches/vfs3-int/system/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/system/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -14,7 +14,7 @@
<description>JBoss Application Server (system module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/resources</directory>
Copied: branches/vfs3-int/system/src/main/java/org/jboss/system/deployers/LegacyPrefixDeploymentContextComparator.java (from rev 100917, trunk/system/src/main/java/org/jboss/system/deployers/LegacyPrefixDeploymentContextComparator.java)
===================================================================
--- branches/vfs3-int/system/src/main/java/org/jboss/system/deployers/LegacyPrefixDeploymentContextComparator.java (rev 0)
+++ branches/vfs3-int/system/src/main/java/org/jboss/system/deployers/LegacyPrefixDeploymentContextComparator.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,118 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.system.deployers;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.deployers.structure.spi.DeploymentContext;
+import org.jboss.deployers.structure.spi.helpers.DefaultDeploymentContextComparator;
+
+/**
+ * Orders deployments based on numeric prefixes.
+ *
+ * <p>This class is a comparator to sort deployment s based on the existence
+ * of a numeric prefix. The name portion of the URL is evaluated for any
+ * leading digits. If they exist, then they will define a numerical ordering
+ * for this comparator. If there is no leading digits, then they will
+ * compare as less than any name with leading digits. In the case of a
+ * tie, the order is determined by the behavior of the
+ * {@link LegacyDeploymentContextComparator} superclass.
+ *
+ * <p>The behavior of this comparator is to reproduce the behavior of the
+ * PrefixDeploymentSorter in JBoss 4.x.
+ *
+ * <p>For example, these names are in ascending order:
+ * <ul>
+ * <li>test.sar</li>
+ * <li>component.ear</li>
+ * <li>001test.jar</li>
+ * <li>5test.rar</li>
+ * <li>5foo.jar</li>
+ * <li>120bar.jar</li>
+ * </ul>
+ *
+ * @author <a href="mailto:miclark at redhat.com">Mike M. Clark</a>
+ *
+ * @version $Revision: $
+ */
+public class LegacyPrefixDeploymentContextComparator extends LegacyDeploymentContextComparator
+{
+ /** The instance */
+ public static final LegacyPrefixDeploymentContextComparator INSTANCE = new LegacyPrefixDeploymentContextComparator();
+
+
+ /**
+ * Get the instance.
+ *
+ * @return the instance
+ */
+ public static LegacyPrefixDeploymentContextComparator getInstance()
+ {
+ return INSTANCE;
+ }
+
+ @Override
+ public int compare(DeploymentContext first, DeploymentContext second)
+ {
+ int firstPrefixValue = getPrefixValue(first);
+ int secondPrefixValue = getPrefixValue(second);
+ int diff = firstPrefixValue - secondPrefixValue;
+ if (diff != 0)
+ {
+ return diff;
+ }
+ else
+ {
+ return super.compare(first, second);
+ }
+ }
+
+ private int getPrefixValue(DeploymentContext deploymentContext)
+ {
+ String name = deploymentContext.getSimpleName();
+
+ // calculate where the digit-prefix ends
+ int prefixEnd = 0;
+ int nameEnd = name.length() - 1;
+
+ while (prefixEnd <= nameEnd && Character.isDigit(name.charAt(prefixEnd)))
+ {
+ ++prefixEnd;
+ }
+
+ // If zero length prefix, return -1
+ if (prefixEnd == 0)
+ {
+ return -1;
+ }
+
+ // Strip leading zeros
+ int nameStart = 0;
+ while (nameStart < prefixEnd && name.charAt(nameStart) == '0')
+ {
+ ++nameStart;
+ }
+
+ return (nameStart == prefixEnd) ? 0 : Integer.parseInt(name.substring(nameStart, prefixEnd));
+ }
+}
Modified: branches/vfs3-int/system/src/main/java/org/jboss/system/server/profileservice/persistence/deployer/PersistenceModificationChecker.java
===================================================================
--- branches/vfs3-int/system/src/main/java/org/jboss/system/server/profileservice/persistence/deployer/PersistenceModificationChecker.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/system/src/main/java/org/jboss/system/server/profileservice/persistence/deployer/PersistenceModificationChecker.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -29,7 +29,7 @@
import org.jboss.deployers.spi.structure.StructureMetaData;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.logging.Logger;
-import org.jboss.system.server.profile.basic.XmlIncludeVirtualFileFilter;
+import org.jboss.vfs.util.SuffixMatchFilter;
import org.jboss.vfs.VirtualFile;
import org.jboss.vfs.VirtualFileFilter;
import org.jboss.vfs.util.SuffixMatchFilter;
@@ -45,7 +45,7 @@
private static final Logger log = Logger.getLogger(PersistenceModificationChecker.class);
/** The filter. */
- private static VirtualFileFilter filter = new XmlIncludeVirtualFileFilter();
+ private static VirtualFileFilter filter = new SuffixMatchFilter(".xml");
public static boolean hasBeenModified(VFSDeploymentUnit unit, long lastModified) throws Exception
{
Modified: branches/vfs3-int/system-jmx/pom.xml
===================================================================
--- branches/vfs3-int/system-jmx/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/system-jmx/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -13,7 +13,7 @@
<url>http://www.jboss.org/jbossas</url>
<description>JBoss Application Server (system-jmx module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Property changes on: branches/vfs3-int/testsuite
___________________________________________________________________
Name: svn:ignore
- .settings
output
build.log
run.tstamp
junit*.properties
20070819
20070821
*.iml
failed.txt
target
+ .settings
output
*.log
run.tstamp
junit*.properties
20070819
20070821
*.iml
failed.txt
target
Modified: branches/vfs3-int/testsuite/.classpath
===================================================================
--- branches/vfs3-int/testsuite/.classpath 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/.classpath 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
- <classpathentry excluding="org/jboss/test/JBossRMIAdaptorHelper.java|org/jboss/test/JBossTestSuite.java|org/jboss/test/SmokeTestSuite.java|org/jboss/test/bank/|org/jboss/test/bankiiop/|org/jboss/test/banknew/|org/jboss/test/bench/|org/jboss/test/binding/|org/jboss/test/bmp/|org/jboss/test/bootstrapdependencies/|org/jboss/test/bpel/|org/jboss/test/cache/|org/jboss/test/classloader/|org/jboss/test/client/|org/jboss/test/cluster/|org/jboss/test/cmp2/|org/jboss/test/common/|org/jboss/test/compatibility/|org/jboss/test/console/|org/jboss/test/cts/|org/jboss/test/dbtest/|org/jboss/test/deadlock/|org/jboss/test/deployers/|org/jboss/test/deployment/|org/jboss/test/ee5client/|org/jboss/test/ejb/|org/jboss/test/ejb3/|org/jboss/test/ejbconf/|org/jboss/test/entity/|org/jboss/test/entitydepends/|org/jboss/test/entityexc/|org/jboss/test/excepiiop/|org/jboss/test/exception/|org/jboss/test/guid/|org/jboss/test/ha/|org/jboss/test/hello/|org/jboss/test/helloiiop/|org/jboss/test/hellojrmpiio!
p/|org/jboss/test/hibernate/|org/jboss/test/idgen/|org/jboss/test/iiop/|org/jboss/test/iiopperf/|org/jboss/test/invokers/|org/jboss/test/isolation/|org/jboss/test/jacc/|org/jboss/test/javassist/|org/jboss/test/jaxr/|org/jboss/test/jbossmessaging/|org/jboss/test/jbossmx/|org/jboss/test/jbossts/|org/jboss/test/jca/|org/jboss/test/jcaprops/|org/jboss/test/jms/|org/jboss/test/jmsra/|org/jboss/test/jmx/|org/jboss/test/jpa/|org/jboss/test/jrmp/|org/jboss/test/jsf/|org/jboss/test/kernel/|org/jboss/test/load/|org/jboss/test/lock/|org/jboss/test/management/|org/jboss/test/marathon/|org/jboss/test/marshal/|org/jboss/test/marshaliiop/|org/jboss/test/mdb/|org/jboss/test/mdbsessionpoolclear/|org/jboss/test/messagedriven/|org/jboss/test/naming/|org/jboss/test/passwordinjection/|org/jboss/test/perf/|org/jboss/test/pooled/|org/jboss/test/profileservice/|org/jboss/test/proxycompiler/|org/jboss/test/readahead/|org/jboss/test/refs/|org/jboss/test/retry/|org/jboss/test/scoped/|org/jboss/test/s!
ecurity/|org/jboss/test/securitymgr/|org/jboss/test/session/|o!
rg/jboss
/test/sessionsync/|org/jboss/test/snmp/|org/jboss/test/spring/|org/jboss/test/stax/|org/jboss/test/testbean/|org/jboss/test/testbean2/|org/jboss/test/testbeancluster/|org/jboss/test/testbyvalue/|org/jboss/test/threading/|org/jboss/test/timer/|org/jboss/test/tm/|org/jboss/test/txiiop/|org/jboss/test/txtimer/|org/jboss/test/varia/|org/jboss/test/web/|org/jboss/test/webservice/|org/jboss/test/ws/|org/jboss/test/xa/|org/jboss/test/xml/|org/jboss/test/xslt/" kind="src" path="src/main"/>
+ <classpathentry excluding="org/jboss/test/cts/ejb/CtsCmp2SessionBean.java|org/jboss/test/cts/interfaces/CtsCmp2LocalHome.java|org/jboss/test/classloader/scoping/singleton/TestService.java" kind="src" path="src/main"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
Modified: branches/vfs3-int/testsuite/build.xml
===================================================================
--- branches/vfs3-int/testsuite/build.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/build.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -181,7 +181,6 @@
<fileset refid="org.jboss.aop:jboss-aop-asintegration-mc:jar"/>
<fileset refid="org.jboss.aop:jboss-aop-aspects:jar"/>
<fileset refid="org.jboss.aop:jboss-aop-deployers:jar"/>
- <fileset refid="org.jboss.aop:jrockit-pluggable-instrumentor:jar"/>
<fileset refid="org.jboss.aop:pluggable-instrumentor:jar"/>
</path>
<path id="org.springframework.classpath">
@@ -273,7 +272,7 @@
<fileset refid="org.jboss.ejb3:jboss-ejb3-proxy-impl:jar"/>
<fileset refid="org.jboss.ejb3:jboss-ejb3-proxy-impl:jar:client"/>
<fileset refid="org.jboss.ejb3:jboss-ejb3-proxy-spi:jar:client"/>
- <fileset refid="org.hibernate.java-persistence:jpa-api:jar"/>
+ <fileset refid="org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar"/>
<fileset refid="org.hibernate:hibernate-annotations:jar"/>
<fileset refid="org.hibernate:hibernate-core:jar"/>
<fileset refid="org.hibernate:hibernate-entitymanager:jar"/>
@@ -305,6 +304,7 @@
<fileset refid="org.jboss.integration:jboss-profileservice-spi:jar"/>
<fileset refid="org.jboss.service.binding:jboss-service-binding-core:jar"/>
<fileset refid="org.jboss.service.binding:jboss-service-binding-mgmt:jar"/>
+ <fileset refid="org.jboss.stdio:jboss-stdio:jar"/>
<fileset refid="stax:stax-api:jar"/>
<!-- needed for messaging JMS provider tests -->
<fileset refid="jboss.messaging:jboss-messaging:jar"/>
@@ -412,7 +412,6 @@
<fileset refid="org.jboss.jbossas:jboss-as-connector:jar:jboss-jca-deployer"/>
<fileset refid="org.jboss.jbossas:jboss-as-connector:jar:jboss-local-jdbc"/>
<fileset refid="org.jboss.jbossas:jboss-as-connector:jar:jboss-common-jdbc-wrapper"/>
- <fileset refid="org.jboss.jbossas:jboss-as-jmx-remoting:jar"/>
<fileset refid="org.jboss.jbossas:jboss-as-management:jar"/>
<fileset refid="org.jboss.jbossas:jboss-as-management:jar:jsr77"/>
<fileset refid="org.jboss.jbossas:jboss-as-management:jar:jsr77-client"/>
@@ -467,7 +466,6 @@
<pathelement path="${project.tools}/ant/lib/ant-junit.jar"/>
<fileset refid="org.jboss.jbossas:jboss-as-ejb3:jar"/>
<fileset refid="org.jboss.jbossas:jboss-as-ejb3:jar:client"/>
- <fileset refid="org.jboss.jbossas:jboss-as-jmx-remoting:jar"/>
<fileset refid="org.jboss.test:jboss-test:jar"/>
<path refid="org.jboss.jbossas.tomcat.classpath"/>
<path refid="thirdparty.classpath"/>
@@ -487,7 +485,6 @@
<pathelement path="${project.tools}/ant/lib/ant-junit.jar"/>
<fileset refid="org.jboss.jbossas:jboss-as-ejb3:jar"/>
<fileset refid="org.jboss.jbossas:jboss-as-ejb3:jar:client"/>
- <fileset refid="org.jboss.jbossas:jboss-as-jmx-remoting:jar"/>
<fileset refid="org.jboss.test:jboss-test:jar"/>
<path refid="thirdparty.classpath"/>
</path>
@@ -1134,6 +1131,13 @@
<patternset id="springdeployer.excludes">
<exclude name="org/jboss/test/spring/test/*TestCase.class"/>
</patternset>
+ <patternset id="jbas7273.excludes">
+ <exclude name="org/jboss/test/ejb3/servlet/unit/ServletUnitTestCase.class"/>
+ <exclude name="org/jboss/test/ejb3/servlet/unit/EarServletUnitTestCase.class" />
+ </patternset>
+ <patternset id="ondemand.war.includes">
+ <include name="org/jboss/test/web/test/BasicOnDemandWarTestCase.class"/>
+ </patternset>
<!-- Tests that are currently broken -->
<patternset id="badtest.excludes">
@@ -1166,6 +1170,9 @@
-->
<!-- JBAS-7569 -->
<exclude name="org/jboss/test/console/jbas3861/JBAS3861UnitTestCase.class"/>
+
+ <!-- JBAS-7703 -->
+ <exclude name="org/jboss/test/web/test/JSPAnnotationENCUnitTestCase.class"/>
</patternset>
<patternset id="aop-with-classloader.excludes">
@@ -1198,6 +1205,7 @@
<patternset refid="profileservice.restart.excludes"/>
<patternset refid="jbossmessaging.excludes"/>
<patternset refid="springdeployer.excludes"/>
+ <patternset refid="jbas7273.excludes"/>
</patternset>
<!-- A target that allows for conditional dependency on the compilation and
@@ -1231,9 +1239,6 @@
<antcall target="tomcat-webctx-tests" inheritRefs="true"/>
<antcall target="tomcat-federation-tests" inheritRefs="true"/>
<antcall target="tests-binding-manager" inheritRefs="true"/>
- <antcall target="tests-jacc-security" inheritRefs="true"/>
- <antcall target="tests-jacc-securitymgr" inheritRefs="true"/>
- <antcall target="tests-jacc-security-allstarrole" inheritRefs="true"/>
<!--
<antcall target="tests-security-jaspi-unit"/>
-->
@@ -1245,9 +1250,17 @@
<antcall target="tests-aop-scoped" inheritRefs="true"/>
<antcall target="jrmp-invoker-tests" inheritRefs="true"/>
<antcall target="tests-clustered-profileservice" inheritRefs="true"/>
+ <!-- JBAS-7680 the current 'web' profile is not an EE6 web profile
+ and doesn't include JPA, so these WebJPA tests are disabled
<antcall target="tests-web-profile" inheritRefs="true"/>
+ -->
+ <antcall target="tests-web-ondemand-disabled" inheritRefs="true"/>
<antcall target="tests-jts" inheritRefs="true"/>
+ <antcall target="tests-jacc-security" inheritRefs="true"/>
+ <antcall target="tests-jacc-security-allstarrole" inheritRefs="true"/>
+ <antcall target="tests-jacc-securitymgr" inheritRefs="true"/>
+
<!-- JBAS-7247 classloader leak tests have been moved out of this
target; see target tests-all-classloader-leak -->
@@ -1499,6 +1512,24 @@
<server:stop name="tomcat-federation"/>
</target>
+ <!-- Tests that on-demand webapps work if started as part of server start -->
+ <target name="tests-web-ondemand-disabled" depends="init"
+ description="Tests that on-demand webapps work if started as part of server start ">
+ <create-config baseconf="default" newconf="web-ondemand-disabled">
+ <patternset>
+ <include name="conf/**"/>
+ <include name="deployers/**"/>
+ <include name="deploy/**"/>
+ <include name="lib/**"/>
+ </patternset>
+ </create-config>
+
+ <server:start name="web-ondemand-disabled"/>
+ <run-junit junit.patternset="ondemand.war.includes"
+ junit.configuration="web-ondemand-disabled" />
+ <server:stop name="web-ondemand-disabled"/>
+ </target>
+
<target name="tests-binding-manager" depends="init"
description="Test for clean startup with service binding manager">
@@ -1703,7 +1734,11 @@
<path refid="tests.classpath"/>
</classpath>
- <formatter type="xml" usefile="${junit.formatter.usefile}" extension="-web-profile.xml"/>
+ <sysproperty key="jboss-junit-configuration" value="web-profile"/>
+ <formatter classname="org.jboss.ant.taskdefs.XMLJUnitMultipleResultFormatter"
+ usefile="${junit.formatter.usefile}"
+ extension="-web-profile.xml"/>
+ <formatter type="plain" usefile="${junit.formatter.usefile}" extension="-web-profile.txt"/>
<batchtest todir="${build.reports}"
haltonerror="${junit.batchtest.haltonerror}"
Modified: branches/vfs3-int/testsuite/imports/sections/cluster.xml
===================================================================
--- branches/vfs3-int/testsuite/imports/sections/cluster.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/imports/sections/cluster.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -95,15 +95,25 @@
file="${build.resources}/cluster/hasingleton/deployer/test-deploy-hasingleton-jboss-beans.xml"
overwrite="true"/>
- <!--beans for testing HASingletonElectionPolicy -->
- <copy todir="${build.lib}"
- file="${build.resources}/cluster/hasingleton/electionpolicy/ha-electionpolicy-jboss-beans.xml"
- overwrite="true"/>
-
+ <!--sar for testing HASingletonElectionPolicy -->
+ <jar destfile="${build.lib}/ha-singleton-election.sar">
+ <metainf dir="${build.resources}/cluster/hasingleton/electionpolicy">
+ <include name="ha-electionpolicy-jboss-beans.xml"/>
+ </metainf>
+ <fileset dir="${build.classes}">
+ <include name="org/jboss/test/cluster/hasingleton/*Example*.class"/>
+ </fileset>
+ </jar>
+
<!--beans for testing HASingletonControllerBeanUnitTestCase -->
- <copy todir="${build.lib}"
- file="${build.resources}/cluster/hasingleton/ha-singleton-jboss-beans.xml"
- overwrite="true"/>
+ <jar destfile="${build.lib}/ha-singleton-pojo.sar">
+ <metainf dir="${build.resources}/cluster/hasingleton/">
+ <include name="ha-singleton-jboss-beans.xml"/>
+ </metainf>
+ <fileset dir="${build.classes}">
+ <include name="org/jboss/test/cluster/hasingleton/*Example*.class"/>
+ </fileset>
+ </jar>
<!--beans for testing HAServiceUnitTestCase, HASingletonUnitTestCase -->
<jar destfile="${build.lib}/ha-service.sar">
Modified: branches/vfs3-int/testsuite/imports/sections/ejb3.xml
===================================================================
--- branches/vfs3-int/testsuite/imports/sections/ejb3.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/imports/sections/ejb3.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -162,11 +162,22 @@
</war>
</target>
+
+ <target name="jbpapp3026" depends="compile">
+ <mkdir dir="${build.lib}" />
+
+ <jar destfile="${build.lib}/createdestination-mdb.jar">
+ <fileset dir="${build.classes}">
+ <include name="org/jboss/test/ejb3/jbpapp3026/**" />
+ </fileset>
+ <fileset dir="${build.resources}/ejb3/jbpapp3026" includes="**"/>
+ </jar>
+ </target>
<target name="_jars-ejb3" depends="ejb3-servlet,jbas6161,jbas6239,
jbas7526,
- ejbthree1597,ejbthree7376, jboss51xsd, ejb31nointerface, ejb3war">
+ ejbthree1597,ejbthree7376, jboss51xsd, ejb31nointerface, ejb3war, jbpapp3026">
<mkdir dir="${build.lib}" />
<!-- A jar with a simple ejb3 session -->
Modified: branches/vfs3-int/testsuite/imports/sections/jmx.xml
===================================================================
--- branches/vfs3-int/testsuite/imports/sections/jmx.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/imports/sections/jmx.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -770,12 +770,6 @@
</fileset>
</jar>
- <copy todir="${build.lib}"
- file="${build.resources}/jmx/jbosstest-urlscanner-service.xml">
- </copy>
-
- <mkdir dir="${build.lib}/urlscannertest"/>
-
<!-- Temp File Creator Service -->
<jar destfile="${build.lib}/tempfilecreator.jar">
<fileset dir="${build.classes}">
Modified: branches/vfs3-int/testsuite/imports/sections/seam.xml
===================================================================
--- branches/vfs3-int/testsuite/imports/sections/seam.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/imports/sections/seam.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,6 +1,8 @@
<project name="tests-seam-jars" xmlns:maven="antlib:org.apache.maven.artifact.ant">
<property name="seam_version" value="2.1.0.GA"/>
+ <property name="seam_dvd_version" value="2.1.0.SP1"/>
+ <property name="seam2_version" value="2.2.0.GA"/>
<target name="_jars-seam" depends="init-maven-ant-tasks">
@@ -8,11 +10,11 @@
<!--
<maven:dependencies filesetId="examples.fileset" versionsId="examples.versions">
- <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-booking" version="${seam_version}" type="ear"/>
- <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-booking" version="${seam_version}" type="xml" classifier="ds"/>
- <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-dvd" version="${seam_version}" type="ear"/>
- <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-dvd" version="${seam_version}" type="xml" classifier="ds"/>
- <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-numberguess" version="${seam_version}" type="ear"/>
+ <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-booking" version="${seam2_version}" type="ear"/>
+ <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-booking" version="${seam2_version}" type="xml" classifier="ds"/>
+ <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-dvd" version="${seam_dvd_version}" type="ear"/>
+ <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-dvd" version="${seam_dvd_version}" type="xml" classifier="ds"/>
+ <dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-numberguess" version="${seam2_version}" type="ear"/>
<dependency groupId="org.jboss.seam.examples" artifactId="jboss-seam-jpa" version="${seam_version}" type="war"/>
<remoterepository id="repository.jboss.org" url="http://repository.jboss.org/maven2"/>
<remoterepository id="snapshots.jboss.org" url="http://snapshots.jboss.org/maven2"/>
@@ -30,7 +32,6 @@
<include name="*/*.*"/>
</fileset>
</copy>
-
</target>
Modified: branches/vfs3-int/testsuite/imports/sections/web.xml
===================================================================
--- branches/vfs3-int/testsuite/imports/sections/web.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/imports/sections/web.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -694,6 +694,9 @@
<fileset dir="${build.resources}/web/jspinjection">
<include name="**/*.jsp"/>
</fileset>
+ <classes dir="${build.classes}">
+ <include name="org/jboss/test/web/servlets/InjectionServlet.class"/>
+ </classes>
</war>
<ear earfile="${build.lib}/jbosstest-jsp-injection.ear"
appxml="${build.resources}/web/jspinjection/META-INF/application.xml">
Modified: branches/vfs3-int/testsuite/imports/server-config.xml
===================================================================
--- branches/vfs3-int/testsuite/imports/server-config.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/imports/server-config.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -778,6 +778,7 @@
</server>
<server name="minimal" host="${node0}" hasWebServer="false">
<sysproperty key="jboss.vfs.forceNoReaper" value="true" />
+ <sysproperty key="jboss.boot.server.log.level" value="DEBUG" />
</server>
<server name="deployment-service" host="${node0}">
<jvmarg value="-Xms128m" />
@@ -1004,6 +1005,18 @@
<sysproperty key="jgroups.udp.ip_ttl" value="${jbosstest.udp.ip_ttl}" />
<sysproperty key="jboss.messaging.ServerPeerID" value="1" />
</server>
+
+ <server name="web-ondemand-disabled" host="${node0}">
+ <jvmarg value="${jpda.cmdline}" />
+ <jvmarg value="-Xms128m" />
+ <jvmarg value="-Xmx256m" />
+ <jvmarg value="-XX:MaxPermSize=512m" />
+ <jvmarg value="-XX:-UseGCOverheadLimit" />
+ <sysproperty key="java.net.preferIPv4Stack" value="true" />
+ <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />
+ <!-- Disable on-demand war deployment -->
+ <sysproperty key="jboss.as.deployment.ondemand" value="false" />
+ </server>
</server:config>
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/DriverManagerPersistentStoreUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/DriverManagerPersistentStoreUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/DriverManagerPersistentStoreUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -419,6 +419,8 @@
{
testee.start();
+ testee.clear();
+
int existing = testee.getSize();
DistributableSessionMetadata md = new DistributableSessionMetadata();
@@ -719,6 +721,8 @@
testee.setMaxUnreplicatedInterval(0);
testee.start();
+ testee.clear();
+
int existing = testee.getSize();
DistributableSessionMetadata md = new DistributableSessionMetadata();
@@ -758,6 +762,8 @@
testee.setMaxUnreplicatedInterval(1);
testee.start();
+ testee.clear();
+
int existing = testee.getSize();
DistributableSessionMetadata md = new DistributableSessionMetadata();
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/CacheManagerUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/CacheManagerUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/CacheManagerUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -185,10 +185,15 @@
// One release does not cause registry to stop cache
assertEquals(CacheStatus.STARTED, cache.getCacheStatus());
-
+
registry.stop();
- // Now it's stopped
+ // Should still not be stopped
+ assertEquals(CacheStatus.STARTED, cache.getCacheStatus());
+
+ registry.releaseCache(configName);
+
+ // Now it should be stopped
assertEquals(CacheStatus.DESTROYED, cache.getCacheStatus());
caches.remove(cache);
@@ -278,10 +283,15 @@
// One release does not cause registry to stop cache
assertEquals(CacheStatus.STARTED, cache.getCache().getCacheStatus());
-
+
registry.stop();
-
- // Now it's stopped
+
+ // Should still not be stopped
+ assertEquals(CacheStatus.STARTED, cache.getCache().getCacheStatus());
+
+ registry.releaseCache(configName);
+
+ // Now it should be stopped
assertEquals(CacheStatus.DESTROYED, cache.getCache().getCacheStatus());
caches.remove(cache);
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/DRMTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/DRMTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/DRMTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -538,6 +538,7 @@
registry1.registerConfiguration("config1", cacheConfig1);
CacheManager cacheManager1 = new CacheManager(registry1, factory1);
+ cacheManager1.start();
HAPartitionCacheHandlerImpl cacheHandler1 = new HAPartitionCacheHandlerImpl();
cacheHandler1.setCacheManager(cacheManager1);
@@ -581,6 +582,7 @@
registry2.registerConfiguration("config2", cacheConfig2);
CacheManager cacheManager2 = new CacheManager(registry2, factory2);
+ cacheManager2.start();
HAPartitionCacheHandlerImpl cacheHandler2 = new HAPartitionCacheHandlerImpl();
cacheHandler2.setCacheManager(cacheManager2);
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/HASingletonControllerBeanUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/HASingletonControllerBeanUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/HASingletonControllerBeanUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -31,8 +31,8 @@
import junit.framework.Test;
-import org.jboss.ha.singleton.examples.HASingletonPojoExample;
import org.jboss.test.JBossClusteredTestCase;
+import org.jboss.test.cluster.hasingleton.HASingletonPojoExample;
/**
* HASingletonControllerBeanUnitTestCase.
@@ -50,7 +50,7 @@
public static Test suite() throws Exception
{
- return getDeploySetup(HASingletonControllerBeanUnitTestCase.class, "ha-singleton-jboss-beans.xml");
+ return getDeploySetup(HASingletonControllerBeanUnitTestCase.class, "ha-singleton-pojo.sar");
}
public void testBeanDeployment() throws Exception
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/HASingletonElectionPolicyTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/HASingletonElectionPolicyTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/HASingletonElectionPolicyTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -31,8 +31,8 @@
import junit.framework.Test;
-import org.jboss.ha.singleton.examples.HASingletonPojoExample;
import org.jboss.test.JBossClusteredTestCase;
+import org.jboss.test.cluster.hasingleton.HASingletonPojoExample;
/**
* Unit tests for HASingletonElectionPolicy.
@@ -58,7 +58,7 @@
public static Test suite() throws Exception
{
// Refer to jboss-service.xml under resources/ha/electionpolicy
- return getDeploySetup(HASingletonElectionPolicyTestCase.class, "ha-electionpolicy-jboss-beans.xml");
+ return getDeploySetup(HASingletonElectionPolicyTestCase.class, "ha-singleton-election.sar");
}
public void testMBeanElectionPolicy() throws Exception
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExample.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExample.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExample.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExample.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, 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.test.cluster.hasingleton;
+
+import org.jboss.logging.Logger;
+
+/**
+ * <p>
+ * An sample singleton MBean.
+ * </p>
+ *
+ * @author Ivelin Ivanov <ivelin at apache.org>
+ * @author Scott.Stark at jboss.org
+ * @version $Revision$
+ */
+public class HASingletonMBeanExample
+ implements HASingletonMBeanExampleMBean
+{
+ private static Logger log = Logger.getLogger(HASingletonMBeanExample.class);
+ private boolean isMasterNode = false;
+
+ public void startSingleton()
+ {
+ isMasterNode = true;
+ log.info("Notified to start as singleton");
+ }
+
+ public boolean isMasterNode()
+ {
+ return isMasterNode;
+ }
+
+ public void stopSingleton( String gracefulShutdown )
+ {
+ isMasterNode = false;
+ log.info("Notified to stop as singleton with argument: " + gracefulShutdown);
+ }
+
+}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExampleMBean.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExampleMBean.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExampleMBean.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonMBeanExampleMBean.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, 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.test.cluster.hasingleton;
+
+/**
+ *
+ * Sample Singleton MBean interface
+ *
+ * @author Ivelin Ivanov <ivelin at apache.org>
+ *
+ */
+public interface HASingletonMBeanExampleMBean
+{
+
+ /**
+ *
+ * @return true if the node that this MBean is registered with
+ * is the master node for the singleton service
+ *
+ */
+ public boolean isMasterNode();
+
+ /**
+ *
+ * Invoked when this mbean is elected to run the singleton service,
+ * or in other words when this node is elected for master.
+ *
+ */
+ public void startSingleton();
+
+ /**
+ *
+ * Invoked when this mbean is elected to no longer run the singleton service,
+ * or in other words when this node is elected for slave.
+ *
+ * @param String gracefulShutdown is an example argument passed on singleton stop
+ *
+ */
+ public void stopSingleton( String gracefulShutdown );
+
+
+}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonPojoExample.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonPojoExample.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonPojoExample.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/cluster/hasingleton/HASingletonPojoExample.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2007, Red Hat Middleware LLC, 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.test.cluster.hasingleton;
+
+import java.io.Serializable;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import org.jboss.logging.Logger;
+import org.jboss.naming.Util;
+
+/**
+ * Ha Singleton Pojo example.
+ *
+ * @author <a href="mailto:galder.zamarreno at jboss.com">Galder Zamarreno</a>
+ */
+public class HASingletonPojoExample implements Serializable
+{
+ /** The serialVersionUID */
+ private static final long serialVersionUID = 6823691561869778917L;
+
+ private static Logger log = Logger.getLogger(HASingletonPojoExample.class);
+
+ private final String jndiName;
+
+ private boolean isMasterNode;
+
+ public HASingletonPojoExample(String jndiName)
+ {
+ this.jndiName = jndiName;
+ }
+
+ public void startSingleton() throws NamingException
+ {
+ isMasterNode = true;
+
+ InitialContext ctx = new InitialContext();
+ Util.rebind(ctx, jndiName, this);
+
+ log.info("Notified to start as singleton and bound to jndi under " + jndiName);
+ }
+
+ public boolean isMasterNode()
+ {
+ return isMasterNode;
+ }
+
+ public void stopSingleton() throws NamingException
+ {
+ isMasterNode = false;
+
+ InitialContext ctx = new InitialContext();
+ Util.unbind(ctx, jndiName);
+
+ log.info("Notified to stop as singleton and unbound from jndi under " + jndiName);
+ }
+
+}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/deployers/LegacyPrefixDeploymentContextComparatorTestCase.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/deployers/LegacyPrefixDeploymentContextComparatorTestCase.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/deployers/LegacyPrefixDeploymentContextComparatorTestCase.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/deployers/LegacyPrefixDeploymentContextComparatorTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,454 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.test.deployers;
+
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.metadata.spi.MetaData;
+import org.jboss.metadata.spi.MutableMetaData;
+import org.jboss.metadata.spi.scope.ScopeKey;
+import org.jboss.system.deployers.LegacyPrefixDeploymentContextComparator;
+import org.jboss.test.JBossTestCase;
+
+import org.jboss.dependency.spi.DependencyInfo;
+import org.jboss.deployers.client.spi.Deployment;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.DeploymentState;
+import org.jboss.deployers.spi.attachments.Attachments;
+import org.jboss.deployers.spi.attachments.MutableAttachments;
+import org.jboss.deployers.spi.deployer.DeploymentStage;
+import org.jboss.deployers.structure.spi.ClassLoaderFactory;
+import org.jboss.deployers.structure.spi.DeploymentContext;
+import org.jboss.deployers.structure.spi.DeploymentContextVisitor;
+import org.jboss.deployers.structure.spi.DeploymentResourceLoader;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+
+/**
+ * Tests for the {@link org.jboss.system.deployers.LegacyPrefixDeploymentContextComparator}.
+ * (Test for JBPAPP-3496.)
+ *
+ * @author <a href="mailto:miclark at redhat.com">Mike M. Clark</a>
+ *
+ * @version $Revision: $
+ */
+public class LegacyPrefixDeploymentContextComparatorTestCase extends JBossTestCase
+{
+ private Comparator<DeploymentContext> comparator = null;
+
+ public LegacyPrefixDeploymentContextComparatorTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void setUp()
+ {
+ LegacyPrefixDeploymentContextComparator prefixComparator = new LegacyPrefixDeploymentContextComparator();
+ prefixComparator.create();
+ comparator = prefixComparator;
+ }
+
+ /**
+ * Verifies leading zeros are ignored.
+ */
+ public void testLeadingZerosIgnored()
+ {
+ DeploymentContext first = new TestDeploymentContext("001test.ear");
+ DeploymentContext second = new TestDeploymentContext("21test.ear");
+ DeploymentContext third = new TestDeploymentContext("0132test.ear");
+
+
+ }
+
+ /**
+ * Verifies straight-forward ordering.
+ */
+ public void testPrefixOrdering()
+ {
+ DeploymentContext first = new TestDeploymentContext("1test.ear");
+ DeploymentContext second = new TestDeploymentContext("21test.ear");
+ DeploymentContext third = new TestDeploymentContext("132test.ear");
+
+ ValidateFirstSecondThird(first, second, third);
+ }
+
+ /**
+ * Verifies that a prefix tie is ordered based on the suffix.
+ */
+ public void testSuffixFallback()
+ {
+ DeploymentContext first = new TestDeploymentContext("123test.sar");
+ DeploymentContext second = new TestDeploymentContext("123test.ear");
+
+ assertTrue("Second comes before first", comparator.compare(first, second) < 0);
+ assertTrue("First comes after second", comparator.compare(second, first) > 0);
+ }
+
+ /**
+ * Verifies suffix configuration.
+ */
+ public void testSuffixOrderChange()
+ {
+ Map<String, Integer> suffixOrder = new HashMap<String, Integer>();
+ suffixOrder.put(".sar", 700);
+ LegacyPrefixDeploymentContextComparator prefixComparator = new LegacyPrefixDeploymentContextComparator();
+ prefixComparator.setSuffixOrder(suffixOrder);
+ prefixComparator.create();
+
+ Comparator<DeploymentContext> changedSuffix = prefixComparator;
+
+ DeploymentContext first = new TestDeploymentContext("test.ear");
+ DeploymentContext second = new TestDeploymentContext("test.sar");
+
+ assertTrue("Second comes before first", changedSuffix.compare(first, second) < 0);
+ assertTrue("First comes after second", changedSuffix.compare(second, first) > 0);
+ }
+
+ /**
+ * Verifies order indicated in
+ * {@link org.jboss.system.deployers.LegacyPrefixDeploymentContextComparator}
+ * javadoc.
+ */
+ public void testJavaDocExample()
+ {
+ DeploymentContext first = new TestDeploymentContext("test.sar");
+ DeploymentContext second = new TestDeploymentContext("component.ear");
+ DeploymentContext third = new TestDeploymentContext("001test.jar");
+ DeploymentContext fourth = new TestDeploymentContext("5test.rar");
+ DeploymentContext fifth = new TestDeploymentContext("5foo.jar");
+ DeploymentContext sixth = new TestDeploymentContext("120bar.jar");
+
+ assertTrue("Second comes before first", comparator.compare(first, second) < 0);
+ assertTrue("Third comes before second", comparator.compare(second, third) < 0);
+ assertTrue("Fourth comes before third", comparator.compare(third, fourth) < 0);
+ assertTrue("Fifth comes before fourth", comparator.compare(fourth, fifth) < 0);
+ assertTrue("Sixth comes before fifth", comparator.compare(fifth, sixth) < 0);
+ }
+
+ /**
+ * Verifies non-prefixed deployments occur before prefixed deployments
+ */
+ public void testNonPrefixPrefixOrdering()
+ {
+ DeploymentContext first = new TestDeploymentContext("test.sar");
+ DeploymentContext second = new TestDeploymentContext("test.ear");
+ DeploymentContext third = new TestDeploymentContext("132test.ear");
+
+ ValidateFirstSecondThird(first, second, third);
+ }
+
+ private void ValidateFirstSecondThird(DeploymentContext first, DeploymentContext second, DeploymentContext third)
+ {
+ assertTrue("Second comes before first", comparator.compare(first, second) < 0);
+ assertTrue("Third comes before first", comparator.compare(first, third) < 0);
+ assertTrue("Third comes before second", comparator.compare(second, third) < 0);
+ assertTrue("First comes after second", comparator.compare(second, first) > 0);
+ assertTrue("First comes after third", comparator.compare(third, first) > 0);
+ assertTrue("Second comes after third", comparator.compare(third, second) > 0);
+ assertTrue("First does not tie itself", comparator.compare(first, first) == 0);
+ }
+
+ private class TestDeploymentContext implements DeploymentContext
+ {
+ private int relativeOrder = 0;
+ private String simpleName = null;
+
+ public TestDeploymentContext(String simpleName)
+ {
+ this.simpleName = simpleName;
+ }
+
+ public void addChild(DeploymentContext child)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addComponent(DeploymentContext component)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void addControllerContextName(Object name)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void cleanup()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean createClassLoader(ClassLoaderFactory factory) throws DeploymentException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void deployed()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public List<DeploymentContext> getChildren()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public ClassLoader getClassLoader()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Comparator<DeploymentContext> getComparator()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public List<DeploymentContext> getComponents()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Object getControllerContextName()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Set<Object> getControllerContextNames()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public DependencyInfo getDependencyInfo()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Deployment getDeployment()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public DeploymentUnit getDeploymentUnit()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public MetaData getMetaData()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public MutableMetaData getMutableMetaData()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public ScopeKey getMutableScope()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getName()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public DeploymentContext getParent()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Throwable getProblem()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public int getRelativeOrder()
+ {
+ return relativeOrder;
+ }
+
+ public String getRelativePath()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public DeploymentStage getRequiredStage()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public ClassLoader getResourceClassLoader()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public DeploymentResourceLoader getResourceLoader()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public ScopeKey getScope()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public String getSimpleName()
+ {
+ return simpleName;
+ }
+
+ public DeploymentState getState()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public DeploymentContext getTopLevel()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isComponent()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isDeployed()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean isTopLevel()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean removeChild(DeploymentContext child)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void removeClassLoader()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void removeClassLoader(ClassLoaderFactory factory)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean removeComponent(DeploymentContext component)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void removeControllerContextName(Object name)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setClassLoader(ClassLoader classLoader)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setComparator(Comparator<DeploymentContext> comparator)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setDeployment(Deployment deployment)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setDeploymentUnit(DeploymentUnit unit)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setMutableScope(ScopeKey key)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setParent(DeploymentContext parent)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setProblem(Throwable problem)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setRelativeOrder(int relativeOrder)
+ {
+ this.relativeOrder = relativeOrder;
+ }
+
+ public void setRequiredStage(DeploymentStage stage)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setScope(ScopeKey key)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setState(DeploymentState state)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void visit(DeploymentContextVisitor visitor) throws DeploymentException
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public MutableAttachments getTransientAttachments()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public MutableAttachments getTransientManagedObjects()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public Attachments getPredeterminedManagedObjects()
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setPredeterminedManagedObjects(Attachments predetermined)
+ {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026 (from rev 100917, trunk/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026)
Deleted: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,52 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, Red Hat Middleware LLC, 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.test.ejb3.jbpapp3026;
-
-import javax.ejb.ActivationConfigProperty;
-import javax.ejb.MessageDriven;
-import javax.jms.Message;
-import javax.jms.MessageListener;
-import org.jboss.logging.Logger;
-
-/**
- * SimpleMDBForQueueCreation
- *
- * @author Jaikiran Pai
- * @version $Revision: $
- */
- at MessageDriven(activationConfig =
-{
- @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
- @ActivationConfigProperty(propertyName="destination", propertyValue="queue/create-destination/testQueue")
-})
-public class SimpleMDBForQueueCreation implements MessageListener
-{
-
- private static Logger logger = Logger.getLogger(SimpleMDBForTopicCreation.class);
-
- public void onMessage(Message arg0)
- {
- logger.info("Received message " + arg0);
-
- }
-
-}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForQueueCreation.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,52 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, 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.test.ejb3.jbpapp3026;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import org.jboss.logging.Logger;
+
+/**
+ * SimpleMDBForQueueCreation
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+ at MessageDriven(activationConfig =
+{
+ @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Queue"),
+ @ActivationConfigProperty(propertyName="destination", propertyValue="queue/create-destination/testQueue")
+})
+public class SimpleMDBForQueueCreation implements MessageListener
+{
+
+ private static Logger logger = Logger.getLogger(SimpleMDBForTopicCreation.class);
+
+ public void onMessage(Message arg0)
+ {
+ logger.info("Received message " + arg0);
+
+ }
+
+}
Deleted: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,51 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, Red Hat Middleware LLC, 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.test.ejb3.jbpapp3026;
-
-import javax.ejb.ActivationConfigProperty;
-import javax.ejb.MessageDriven;
-import javax.jms.Message;
-import javax.jms.MessageListener;
-import org.jboss.logging.Logger;
-
-/**
- * SimpleMDBForTopicCreation
- *
- * @author Jaikiran Pai
- * @version $Revision: $
- */
- at MessageDriven(activationConfig =
-{
- @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Topic"),
- @ActivationConfigProperty(propertyName="destination", propertyValue="topic/create-destination/testTopic")
-})
-public class SimpleMDBForTopicCreation implements MessageListener
-{
- private static Logger logger = Logger.getLogger(SimpleMDBForTopicCreation.class);
-
- public void onMessage(Message arg0)
- {
- logger.info("Received message " + arg0);
-
- }
-
-}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/SimpleMDBForTopicCreation.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,51 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, 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.test.ejb3.jbpapp3026;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import javax.jms.Message;
+import javax.jms.MessageListener;
+import org.jboss.logging.Logger;
+
+/**
+ * SimpleMDBForTopicCreation
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+ at MessageDriven(activationConfig =
+{
+ @ActivationConfigProperty(propertyName="destinationType", propertyValue="javax.jms.Topic"),
+ @ActivationConfigProperty(propertyName="destination", propertyValue="topic/create-destination/testTopic")
+})
+public class SimpleMDBForTopicCreation implements MessageListener
+{
+ private static Logger logger = Logger.getLogger(SimpleMDBForTopicCreation.class);
+
+ public void onMessage(Message arg0)
+ {
+ logger.info("Received message " + arg0);
+
+ }
+
+}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit (from rev 100917, trunk/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit)
Deleted: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,100 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2008, Red Hat Middleware LLC, 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.test.ejb3.jbpapp3026.unit;
-
-import javax.jms.Queue;
-import javax.jms.Topic;
-
-import junit.framework.Test;
-
-import org.jboss.test.JBossTestCase;
-
-/**
- * AutoCreateDestinationForMDBTestCase
- *
- * Tests that destinations which are set to be auto created (through the use of
- * "create-destination" on the MDB) are created successfully, when the
- * destination jndi name has forward slashes.
- *
- * See https://jira.jboss.org/jira/browse/JBPAPP-3026 for details
- *
- * @author Jaikiran Pai
- * @version $Revision: $
- */
-public class AutoCreateDestinationForMDBTestCase extends JBossTestCase
-{
-
- /**
- * Constructor
- * @param name
- */
- public AutoCreateDestinationForMDBTestCase(String name)
- {
- super(name);
- }
-
- /**
- *
- * @return
- * @throws Exception
- */
- public static Test suite() throws Exception
- {
- return getDeploySetup(AutoCreateDestinationForMDBTestCase.class, "createdestination-mdb.jar");
- }
-
- /**
- * Tests that a queue containing forward slashes in it's destination jndi name
- * is correctly created.
- *
- * @throws Exception
- */
- public void testQueueCreationForMDB() throws Exception
- {
- // make sure the deployment was deployed successfully
- serverFound();
- // lookup queue
- // successful lookup, in itself should be sufficient enough to prove that
- // the queue was created by the "create-destination" activation config property
- // of the MDB
- Queue queue = (Queue) this.getInitialContext().lookup("queue/create-destination/testQueue");
- assertNotNull("Queue lookup returned null", queue);
- }
-
- /**
- * Tests that a topic containing forward slashes in it's destination jndi name
- * is correctly created.
- *
- * @throws Exception
- */
- public void testTopicCreationForMDB() throws Exception
- {
- // make sure the deployment was deployed successfully
- serverFound();
- // lookup topic
- // successful lookup, in itself should be sufficient enough to prove that
- // the topic was created by the "create-destination" activation config property
- // of the MDB
- Topic topic = (Topic) this.getInitialContext().lookup("topic/create-destination/testTopic");
- assertNotNull("Topic lookup returned null", topic);
- }
-}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/jbpapp3026/unit/AutoCreateDestinationForMDBTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,100 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, 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.test.ejb3.jbpapp3026.unit;
+
+import javax.jms.Queue;
+import javax.jms.Topic;
+
+import junit.framework.Test;
+
+import org.jboss.test.JBossTestCase;
+
+/**
+ * AutoCreateDestinationForMDBTestCase
+ *
+ * Tests that destinations which are set to be auto created (through the use of
+ * "create-destination" on the MDB) are created successfully, when the
+ * destination jndi name has forward slashes.
+ *
+ * See https://jira.jboss.org/jira/browse/JBPAPP-3026 for details
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class AutoCreateDestinationForMDBTestCase extends JBossTestCase
+{
+
+ /**
+ * Constructor
+ * @param name
+ */
+ public AutoCreateDestinationForMDBTestCase(String name)
+ {
+ super(name);
+ }
+
+ /**
+ *
+ * @return
+ * @throws Exception
+ */
+ public static Test suite() throws Exception
+ {
+ return getDeploySetup(AutoCreateDestinationForMDBTestCase.class, "createdestination-mdb.jar");
+ }
+
+ /**
+ * Tests that a queue containing forward slashes in it's destination jndi name
+ * is correctly created.
+ *
+ * @throws Exception
+ */
+ public void testQueueCreationForMDB() throws Exception
+ {
+ // make sure the deployment was deployed successfully
+ serverFound();
+ // lookup queue
+ // successful lookup, in itself should be sufficient enough to prove that
+ // the queue was created by the "create-destination" activation config property
+ // of the MDB
+ Queue queue = (Queue) this.getInitialContext().lookup("queue/create-destination/testQueue");
+ assertNotNull("Queue lookup returned null", queue);
+ }
+
+ /**
+ * Tests that a topic containing forward slashes in it's destination jndi name
+ * is correctly created.
+ *
+ * @throws Exception
+ */
+ public void testTopicCreationForMDB() throws Exception
+ {
+ // make sure the deployment was deployed successfully
+ serverFound();
+ // lookup topic
+ // successful lookup, in itself should be sufficient enough to prove that
+ // the topic was created by the "create-destination" activation config property
+ // of the MDB
+ Topic topic = (Topic) this.getInitialContext().lookup("topic/create-destination/testTopic");
+ assertNotNull("Topic lookup returned null", topic);
+ }
+}
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/nointerface/AccountManagerBean.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/nointerface/AccountManagerBean.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/nointerface/AccountManagerBean.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -40,7 +40,6 @@
/**
* @see org.jboss.ejb3.nointerface.integration.test.common.AccountManager#credit(int)
*/
- @Override
public int credit(long accountNumber, int amount)
{
// get current account balance of this account number, from DB.
@@ -67,7 +66,6 @@
/**
* @see org.jboss.ejb3.nointerface.integration.test.common.AccountManager#debit(int)
*/
- @Override
public int debit(long accountNumber, int amount)
{
// get current account balance of this account number, from DB.
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/war/deployment/CounterBeanInWEBINFLibJar.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/war/deployment/CounterBeanInWEBINFLibJar.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/war/deployment/CounterBeanInWEBINFLibJar.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -35,14 +35,12 @@
@EJB
private CalculatorInWEBINFClasses calculator;
- @Override
public int decrement()
{
this.count = this.calculator.subtract(this.count, 1);
return this.count;
}
- @Override
public int increment()
{
this.count = this.calculator.add(this.count, 1);
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/war/deployment/CounterDelegateBeanInWarEjbJarXml.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/war/deployment/CounterDelegateBeanInWarEjbJarXml.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/ejb3/war/deployment/CounterDelegateBeanInWarEjbJarXml.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -32,13 +32,11 @@
private Counter counterBean;
- @Override
public int decrement()
{
return this.counterBean.decrement();
}
- @Override
public int increment()
{
return this.counterBean.increment();
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/hibernate/mocks/MockRegionFactory.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/hibernate/mocks/MockRegionFactory.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/hibernate/mocks/MockRegionFactory.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -5,6 +5,7 @@
import java.util.Properties;
+import org.hibernate.cache.access.AccessType;
import org.hibernate.cache.CacheDataDescription;
import org.hibernate.cache.CacheException;
import org.hibernate.cache.CollectionRegion;
@@ -92,4 +93,12 @@
{
}
+ /* (non-Javadoc)
+ * @see org.hibernate.cache.RegionFactory#getDefaultAccessType()
+ */
+ public AccessType getDefaultAccessType()
+ {
+ return null;
+ }
}
+
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/jmx/shutdown/ExitOnShutdown.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/jmx/shutdown/ExitOnShutdown.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/jmx/shutdown/ExitOnShutdown.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -43,13 +43,14 @@
ctx.bind("ExitOnShutdown", Boolean.TRUE);
}
- protected void stopService() throws Exception
+ protected void stopService()
{
+ final Runtime r = Runtime.getRuntime();
Thread thread = new Thread(new Runnable()
{
public void run()
{
- System.exit(0);
+ r.exit(0);
}
}, "ExitOnShutdown");
thread.start();
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/jsf/webapp/ValidatedBean.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/jsf/webapp/ValidatedBean.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/jsf/webapp/ValidatedBean.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/jsf/webapp/ValidatedBean.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, 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.test.jsf.webapp;
+
+import javax.faces.bean.ManagedBean;
+import javax.faces.bean.SessionScoped;
+import javax.validation.constraints.Size;
+
+/**
+ * Simple Managed Bean that uses the Bean Validation framework.
+ *
+ * @author Stan.Silvert at jboss.org
+ */
+ at ManagedBean(name="validatedBean")
+ at SessionScoped
+public class ValidatedBean
+{
+ @Size(min=2)
+ private String name;
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+}
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/messagedriven/test/SimpleQueueMessageDrivenCreateDestinationUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/messagedriven/test/SimpleQueueMessageDrivenCreateDestinationUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/messagedriven/test/SimpleQueueMessageDrivenCreateDestinationUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -43,11 +43,11 @@
static
{
if (isJBossMessaging())
- destinationName = ObjectNameFactory.create("jboss.messaging.destination:service=Queue,name=queue/CreateDestination");
+ destinationName = ObjectNameFactory.create("jboss.messaging.destination:service=Queue,name=CreateDestination");
else
destinationName = ObjectNameFactory.create("jboss.mq.destination:service=Queue,name=queue/CreateDestination");
testProps = (Properties) testQueueProps.clone();
- testProps.put("destination", "queue/CreateDestination");
+ testProps.put("destination", "CreateDestination");
testProps.put("createDestination", "true");
}
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/messagedriven/test/SimpleTopicMessageDrivenCreateDestinationUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/messagedriven/test/SimpleTopicMessageDrivenCreateDestinationUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/messagedriven/test/SimpleTopicMessageDrivenCreateDestinationUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -43,11 +43,11 @@
static
{
if (isJBossMessaging())
- destinationName = ObjectNameFactory.create("jboss.messaging.destination:service=Topic,name=topic/CreateDestination");
+ destinationName = ObjectNameFactory.create("jboss.messaging.destination:service=Topic,name=CreateDestination");
else
destinationName = ObjectNameFactory.create("jboss.mq.destination:service=Topic,name=topic/CreateDestination");
testProps = (Properties) testTopicProps.clone();
- testProps.put("destination", "topic/CreateDestination");
+ testProps.put("destination", "CreateDestination");
testProps.put("createDestination", "true");
}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/naming/test/NamingProviderURLWriterUnitTestCase.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/naming/test/NamingProviderURLWriterUnitTestCase.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/naming/test/NamingProviderURLWriterUnitTestCase.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/naming/test/NamingProviderURLWriterUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,164 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.test.naming.test;
+
+import java.io.File;
+import java.io.PrintWriter;
+import java.net.URI;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
+
+import junit.framework.TestCase;
+
+import org.jboss.naming.NamingProviderURLWriter;
+import org.jboss.util.file.Files;
+
+/**
+ * Unit tests of {@link NamingProviderURLWriter}
+ *
+ * @author Brian Stansberry
+ *
+ * @version $Revision$
+ */
+public class NamingProviderURLWriterUnitTestCase extends TestCase
+{
+ private static long count = System.currentTimeMillis();
+ private URI tempDir;
+ private CountDownLatch tearDownLatch;
+
+ /**
+ * Create a new NamingProviderURLWriterUnitTestCase.
+ *
+ * @param name
+ */
+ public NamingProviderURLWriterUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ protected void setUp() throws Exception
+ {
+ super.setUp();
+
+ File tmp = new File(System.getProperty("java.io.tmpdir"));
+ File dir = new File(tmp, getClass().getSimpleName());
+ tempDir = dir.toURI();
+ dir.mkdirs();
+ dir.deleteOnExit();
+
+ count++;
+ }
+
+ protected void tearDown() throws Exception
+ {
+ try
+ {
+ super.tearDown();
+ }
+ finally
+ {
+ if (tearDownLatch != null)
+ {
+ tearDownLatch.countDown();
+ }
+ if (tempDir != null)
+ {
+ Files.delete(new File(tempDir));
+ }
+ }
+ }
+
+ /**
+ * JBAS-7674 -- try to lock the file that will be written and check
+ * that the NamingProviderURLWriter start/stop methods don't blow up.
+ * Note this test is only meaningful on windows.
+ *
+ * @throws Exception
+ */
+ public void testLifecycleWithLockedFile() throws Exception
+ {
+ String fileName = "jnp-service-" + count + ".url";
+ tearDownLatch = new CountDownLatch(1);
+ CountDownLatch lockedLatch = new CountDownLatch(1);
+ FileLocker locker = new FileLocker(tempDir, fileName, null, tearDownLatch, lockedLatch);
+
+ NamingProviderURLWriter testee = new NamingProviderURLWriter();
+ testee.setOutputDirURL(tempDir);
+ testee.setOutputFileName(fileName);
+ testee.setBootstrapAddress("localhost");
+ testee.setBootstrapPort(9999);
+
+ Thread t = new Thread(locker);
+ t.setDaemon(true);
+ t.start();
+ assertTrue("FileLocker locked file", lockedLatch.await(10, TimeUnit.SECONDS));
+ testee.start();
+ testee.stop();
+ }
+
+ /** Hacky attempt to "lock" a file. */
+ private static class FileLocker implements Runnable
+ {
+ private final File file;
+ private final String serviceURL;
+ private final CountDownLatch tearDownLatch;
+ private final CountDownLatch lockedLatch;
+
+ private FileLocker(URI tempDir, String fileName, String serviceURL, CountDownLatch tearDownLatch, CountDownLatch lockedLatch)
+ {
+ this.file = new File(new File(tempDir), fileName);
+ this.tearDownLatch = tearDownLatch;
+ this.lockedLatch = lockedLatch;
+ this.serviceURL = serviceURL == null ? "jnp://localhost:1099" : serviceURL;
+ }
+
+ public void run()
+ {
+ PrintWriter writer = null;
+ try
+ {
+ writer = new PrintWriter(file);
+ writer.println(serviceURL);
+ writer.flush();
+ // Tell driver thread we're ready
+ lockedLatch.countDown();
+ // Hold lock until test completion
+ tearDownLatch.await();
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ finally
+ {
+ if (writer != null)
+ {
+ writer.close();
+ }
+ }
+
+ }
+
+ }
+
+}
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/JMXMappingUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/JMXMappingUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/JMXMappingUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -22,28 +22,24 @@
package org.jboss.test.profileservice.test;
import java.net.URL;
-import java.util.Collection;
-import java.util.List;
import java.util.Set;
import javax.rmi.PortableRemoteObject;
import junit.framework.Test;
+import junit.framework.TestSuite;
import org.jboss.deployers.spi.management.ManagementView;
import org.jboss.managed.api.ComponentType;
import org.jboss.managed.api.ManagedComponent;
-import org.jboss.managed.api.ManagedOperation;
import org.jboss.managed.api.ManagedProperty;
import org.jboss.managed.api.RunState;
import org.jboss.metatype.api.values.CompositeValue;
import org.jboss.metatype.api.values.MetaValue;
import org.jboss.metatype.api.values.SimpleValue;
-import org.jboss.metatype.api.values.TableValue;
import org.jboss.test.ejb.proxy.beans.StatefulCounter;
import org.jboss.test.ejb.proxy.beans.StatefulCounterHome;
-import org.jboss.test.ejb.proxy.beans.HandleRetrievalStatefulSessionInterceptor.RetrievalMethodHandle;
-import org.jboss.test.ejb.proxy.test.ProxyLogicTestCase;
+import org.jboss.test.util.web.HttpUtils;
/**
* Tests JMX components exposed outside the MC
@@ -59,7 +55,22 @@
public static Test suite() throws Exception
{
- return getDeploySetup(JMXMappingUnitTestCase.class, "ejbproxy-test.jar");
+ final TestSuite suite = new TestSuite();
+
+ suite.addTest(new JMXMappingUnitTestCase("testEjbMetrics"));
+
+ // Make sure the jmx-console is deployed
+ suite.addTest(new JMXMappingUnitTestCase("deployWebApp"));
+
+ suite.addTest(new JMXMappingUnitTestCase("testConnector"));
+ suite.addTest(new JMXMappingUnitTestCase("testContextMO"));
+ suite.addTest(new JMXMappingUnitTestCase("testRunState"));
+ suite.addTest(new JMXMappingUnitTestCase("testServlet"));
+ suite.addTest(new JMXMappingUnitTestCase("testWebApplication"));
+ suite.addTest(new JMXMappingUnitTestCase("testWebApplicationManager"));
+ suite.addTest(new JMXMappingUnitTestCase("testWebHost"));
+
+ return getDeploySetup(suite, "ejbproxy-test.jar");
}
public void testEjbMetrics() throws Exception
@@ -94,6 +105,14 @@
fail("Could not find EJB!");
}
+ public void deployWebApp() throws Exception
+ {
+ // Deploy the jmx-console, in case it's getting deployed on-demand
+ // @see https://jira.jboss.org/jira/browse/JBAS-7713
+ String baseURL = HttpUtils.getBaseURL();
+ HttpUtils.accessURL(new URL(baseURL + "jmx-console"));
+ }
+
public void testWebApplicationManager()
throws Exception
{
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/ProfileServiceUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/ProfileServiceUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/ProfileServiceUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -169,11 +169,9 @@
"deploy/jboss-local-jdbc.rar/",
"deploy/jboss-xa-jdbc.rar/",
"deploy/jca-jboss-beans.xml",
- "deploy/jbossws-console.war/",
"deploy/messaging/connection-factories-service.xml",
"deploy/messaging/destinations-service.xml",
"deploy/jms-ra.rar/",
- "deploy/jmx-console.war/",
"deploy/jmx-invoker-service.xml",
"deploy/jmx-remoting.sar/",
"deploy/jsr88-service.xml",
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/SecurityManagedObjectsTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/SecurityManagedObjectsTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/profileservice/test/SecurityManagedObjectsTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -320,7 +320,7 @@
// verify that the component has the expected managed properties.
Map<String, ManagedProperty> properties = component.getProperties();
assertNotNull(properties);
- assertEquals("Unexpected number of properties", 20, properties.size());
+ assertEquals("Unexpected number of properties", 22, properties.size());
assertTrue("Missing expected property: securityDomain", properties.containsKey("securityDomain"));
assertTrue("Missing expected property: state", properties.containsKey("state"));
// keystore and truststore configuration properties.
@@ -328,9 +328,11 @@
assertTrue("Missing expected property: keyStoreURL", properties.containsKey("keyStoreURL"));
assertTrue("Missing expected property: keyStorePass", properties.containsKey("keyStorePass"));
assertTrue("Missing expected property: keyStoreAlias", properties.containsKey("keyStoreAlias"));
+ assertTrue("Missing expected property: keyStoreProviderArgument", properties.containsKey("keyStoreProviderArgument"));
assertTrue("Missing expected property: trustStoreType", properties.containsKey("trustStoreType"));
assertTrue("Missing expected property: trustStoreURL", properties.containsKey("trustStoreURL"));
assertTrue("Missing expected property: trustStorePass", properties.containsKey("trustStorePass"));
+ assertTrue("Missing expected property: trustStoreProviderArgument", properties.containsKey("trustStoreProviderArgument"));
// security manager service injection properties.
assertTrue("Missing expected property: managerServiceName", properties.containsKey("managerServiceName"));
assertTrue("Missing expected property: securityManagement", properties.containsKey("securityManagement"));
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/tm/resource/MTOperation.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/tm/resource/MTOperation.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/tm/resource/MTOperation.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -80,7 +80,10 @@
/** Set when an exception is expected */
protected Throwable throwable;
-
+
+ /** If a throwable is required, or only *may* occur */
+ private boolean require;
+
// Static Methods ------------------------------------------------
/**
@@ -134,9 +137,15 @@
public MTOperation(int op, int id, Throwable throwable)
{
+ this(op, id, throwable, true);
+ }
+
+ public MTOperation(int op, int id, Throwable throwable, boolean require)
+ {
this.id = new Integer(id);
this.op = op;
this.throwable = throwable;
+ this.require = require;
}
// Public Methods ------------------------------------------------
@@ -189,20 +198,20 @@
caught = t;
}
- // expected an exception but caught none
- if (throwable != null && caught == null)
+ // required an exception but caught none
+ if (require && throwable != null && caught == null)
{
throw new Exception("Expected throwable " + throwable);
}
-
- // expected an exception but caught the wrong one
- if (throwable != null && (throwable.getClass().isAssignableFrom(caught.getClass())) == false)
+
+ // got an exception, but it was the wrong one
+ if (throwable != null && caught != null && !throwable.getClass().isAssignableFrom(caught.getClass()))
{
log.warn("Caught wrong throwable", caught);
throw new Exception("Expected throwable " + throwable + " caught " + caught);
}
-
- // did not expect an exception bug caught one
+
+ // did not expect an exception but caught one
if (throwable == null && caught != null)
{
log.warn("Caught unexpected throwable", caught);
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/tm/test/MTTransactionManagerUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/tm/test/MTTransactionManagerUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/tm/test/MTTransactionManagerUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -191,9 +191,11 @@
new MTOperation(MTOperation.TM_BEGIN, 10),
new MTOperation(MTOperation.TM_GET_STATUS),
new MTOperation(MTOperation.XX_SLEEP_200),
- new MTOperation(MTOperation.TM_GET_STATUS),
- new MTOperation(MTOperation.TM_COMMIT, -1, new IllegalStateException())
-
+ new MTOperation(MTOperation.TM_GET_STATUS),
+
+ // FIXME - JBTM-558
+ new MTOperation(MTOperation.TM_COMMIT, -1, new RollbackException(), false)
+
}
,
{
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/web/servlets/InjectionServlet.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/web/servlets/InjectionServlet.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/web/servlets/InjectionServlet.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/web/servlets/InjectionServlet.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, 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.test.web.servlets;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.rmi.PortableRemoteObject;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.sql.DataSource;
+import javax.ejb.EJB;
+import javax.servlet.annotation.WebServlet;
+
+import org.jboss.test.web.ejb3.SimpleStateful;
+import org.jboss.test.web.ejb3.SimpleStateless;
+import org.jboss.test.web.util.Util;
+
+/** A servlet that accesses an EJB using injection.
+
+ @author Remy Maucherat
+ @version $Revision: 81036 $
+ */
+ at WebServlet("/injection")
+public class InjectionServlet extends HttpServlet
+{
+
+ @EJB(mappedName = "simpleStatefulMappedName")
+ private SimpleStateful simpleStateful;
+
+ @EJB
+ private SimpleStateless simpleStateless;
+
+ protected void processRequest(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException
+ {
+ assert simpleStateful != null : "simpleStateful is null";
+ assert simpleStateless != null : "simpleStateless is null";
+
+ assert simpleStateful.doSomething() == true : "simpleStateful returned false";
+ assert simpleStateless.doSomething() == true : "simpleStateless returned false";
+
+ response.getWriter().print("Test passed. Stateless EJB is " + simpleStateless);
+ }
+
+ protected void doGet(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException
+ {
+ processRequest(request, response);
+ }
+
+ protected void doPost(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException
+ {
+ processRequest(request, response);
+ }
+}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/BasicOnDemandWarTestCase.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/web/test/BasicOnDemandWarTestCase.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/BasicOnDemandWarTestCase.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/BasicOnDemandWarTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.test.web.test;
+
+import java.net.URL;
+
+import org.jboss.test.JBossTestCase;
+import org.jboss.test.util.web.HttpUtils;
+
+/**
+ * Simple test that accessing the "on demand" webapps works.
+ *
+ * This test is meant to be executed with on-demand deployment of webapps enabled
+ * and disabled.
+ *
+ * @author Brian Stansberry
+ *
+ * @version $Revision$
+ */
+public class BasicOnDemandWarTestCase extends JBossTestCase
+{
+ private String baseURL = HttpUtils.getBaseURLNoAuth();
+
+ public BasicOnDemandWarTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testAdminConsole() throws Exception
+ {
+ onDemandWarTest("admin-console");
+ }
+
+ public void testJmxConsole() throws Exception
+ {
+ onDemandWarTest("jmx-console");
+ }
+
+ public void testJBossWSConsole() throws Exception
+ {
+ onDemandWarTest("jbossws");
+ }
+
+ private void onDemandWarTest(String contextName) throws Exception
+ {
+ URL url = new URL(baseURL + contextName);
+ HttpUtils.accessURL(url);
+ }
+}
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/JSFIntegrationUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/JSFIntegrationUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/JSFIntegrationUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -75,7 +75,7 @@
assertTrue(responseBody.contains("JBoss Color selection is PURPLE"));
}
-
+/* Disabled for now. JBAS-7660
public void testJSFAppWithBundledMyFaces() throws Exception
{
String baseURL = HttpUtils.getBaseURL();
@@ -92,7 +92,7 @@
SubmitButton submitButton = form.getSubmitButtonWithID("form1:submit_button");
webResponse = form.submit(submitButton);
assertTrue(webResponse.getText().contains("Hello Stan"));
- }
+ } */
public void testBeanValidationIntegratedWithJSF() throws Exception
{
@@ -148,11 +148,11 @@
{
super.setUp();
deploy("jbosstest-jsf.war");
- deploy("bundled-myfaces-hellojsf.war");
+ // JBAS-7660 deploy("bundled-myfaces-hellojsf.war");
}
protected void tearDown() throws Exception
{
- undeploy("bundled-myfaces-hellojsf.war");
+ // JBAS-7660 undeploy("bundled-myfaces-hellojsf.war");
undeploy("jbosstest-jsf.war");
super.tearDown();
}
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/JSPAnnotationENCUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/JSPAnnotationENCUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/JSPAnnotationENCUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -81,5 +81,16 @@
HttpUtils.accessURL(url);
}
+ /**
+ * Access a nested annotated class in a straight servlet.
+ *
+ * @throws Exception
+ */
+ public void testNestedEjbServletAnnotations() throws Exception
+ {
+ URL url = new URL(baseURL+"simple-jsponly/injection");
+ HttpUtils.accessURL(url);
+ }
+
}
Copied: branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/OnDemandContextProfileManagerUnitTestCase.java (from rev 100917, trunk/testsuite/src/main/org/jboss/test/web/test/OnDemandContextProfileManagerUnitTestCase.java)
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/OnDemandContextProfileManagerUnitTestCase.java (rev 0)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/web/test/OnDemandContextProfileManagerUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,477 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.test.web.test;
+
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.capture;
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.reset;
+import static org.easymock.EasyMock.resetToStrict;
+import static org.easymock.EasyMock.verify;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.easymock.Capture;
+import org.jboss.profileservice.spi.Profile;
+import org.jboss.profileservice.spi.ProfileFactory;
+import org.jboss.profileservice.spi.ProfileKey;
+import org.jboss.profileservice.spi.ProfileService;
+import org.jboss.profileservice.spi.metadata.ProfileMetaData;
+import org.jboss.profileservice.spi.metadata.ProfileSourceMetaData;
+import org.jboss.web.tomcat.service.ondemand.ContextDemandListener;
+import org.jboss.web.tomcat.service.ondemand.OnDemandContextIntegrator;
+import org.jboss.web.tomcat.service.ondemand.OnDemandContextProfileManager;
+
+/**
+ * Unit tests of {@link OnDemandContextProfileManager}
+ *
+ * @author Brian Stansberry
+ *
+ * @version $Revision$
+ */
+public class OnDemandContextProfileManagerUnitTestCase extends TestCase
+{
+
+ /**
+ * Create a new OnDemandContextProfileManagerUnitTestCase.
+ *
+ * @param name
+ */
+ public OnDemandContextProfileManagerUnitTestCase(String name)
+ {
+ super(name);
+ }
+
+ public void testGetProfileKey()
+ {
+ OnDemandContextProfileManager testee = new OnDemandContextProfileManager();
+ try
+ {
+ testee.getProfileKey();
+ fail("getProfileKey() must throw ISE if no profileName or contextName configured");
+ }
+ catch (IllegalStateException good) {}
+
+ testee = new OnDemandContextProfileManager();
+ testee.setContextName("");
+ ProfileKey key = testee.getProfileKey();
+ assertEquals(ProfileKey.DEFAULT, key.getDomain());
+ assertEquals(ProfileKey.DEFAULT, key.getServer());
+ assertEquals(OnDemandContextProfileManager.DEFAULT_ROOT_WAR_PROFILE_NAME, key.getName());
+
+ testee = new OnDemandContextProfileManager();
+ testee.setContextName("context");
+ key = testee.getProfileKey();
+ assertEquals(ProfileKey.DEFAULT, key.getDomain());
+ assertEquals(ProfileKey.DEFAULT, key.getServer());
+ assertEquals("context.war", key.getName());
+
+ testee = new OnDemandContextProfileManager();
+ testee.setProfileName("profile");
+ key = testee.getProfileKey();
+ assertEquals(ProfileKey.DEFAULT, key.getDomain());
+ assertEquals(ProfileKey.DEFAULT, key.getServer());
+ assertEquals("profile", key.getName());
+
+ testee = new OnDemandContextProfileManager();
+ testee.setProfileDomain("domain");
+ testee.setProfileServer("server");
+ testee.setProfileName("profile");
+ key = testee.getProfileKey();
+ assertEquals("domain", key.getDomain());
+ assertEquals("server", key.getServer());
+ assertEquals("profile", key.getName());
+ }
+
+ public void testRequiredInjections() throws Exception
+ {
+ OnDemandContextProfileManager testee = new OnDemandContextProfileManager();
+ try
+ {
+ testee.start();
+ fail("start() must throw ISE if injections are incomplete");
+ }
+ catch (IllegalStateException good) {}
+
+ testee.setProfileFactory(createNiceMock(ProfileFactory.class));
+ try
+ {
+ testee.start();
+ fail("start() must throw ISE if injections are incomplete");
+ }
+ catch (IllegalStateException good) {}
+
+ testee.setProfileService(createNiceMock(ProfileService.class));
+ try
+ {
+ testee.start();
+ fail("start() must throw ISE if injections are incomplete");
+ }
+ catch (IllegalStateException good) {}
+
+ testee.setOnDemandContextIntegrator(createNiceMock(OnDemandContextIntegrator.class));
+ try
+ {
+ testee.start();
+ fail("start() must throw ISE if injections are incomplete");
+ }
+ catch (IllegalStateException good) {}
+
+ testee.setServiceName("service");
+ try
+ {
+ testee.start();
+ fail("start() must throw ISE if injections are incomplete");
+ }
+ catch (IllegalStateException good) {}
+
+ testee.setHostName("host");
+ try
+ {
+ testee.start();
+ fail("start() must throw ISE if injections are incomplete");
+ }
+ catch (IllegalStateException good) {}
+
+ testee.setContextName("context");
+ try
+ {
+ testee.start();
+ fail("start() must throw ISE if injections are incomplete");
+ }
+ catch (IllegalStateException good) {}
+
+ testee.setSingleURI(new URI("file:///tmp"));
+ // Now everything needed is there
+ testee.start();
+
+ }
+
+ public void testURIConfiguration() throws Exception
+ {
+ OnDemandContextProfileManager testee = new OnDemandContextProfileManager();
+ List<URI> list = Arrays.asList(new URI("http://127.0.0.1"), new URI("file:///tmp"));
+ testee.setURIList(list);
+ assertEquals(list, testee.getURIList());
+ assertNull(testee.getSingleURI());
+ URI single = new URI("file://c:/");
+ testee.setSingleURI(single);
+ List<URI> singleList = Arrays.asList(single);
+ assertEquals(singleList, testee.getURIList());
+ assertEquals(single, testee.getSingleURI());
+ testee.setURIList(list);
+ assertEquals(list, testee.getURIList());
+ assertNull(testee.getSingleURI());
+ testee.setURIList(singleList);
+ assertEquals(singleList, testee.getURIList());
+ assertEquals(single, testee.getSingleURI());
+ testee.setURIList(list);
+ assertEquals(list, testee.getURIList());
+ assertNull(testee.getSingleURI());
+
+ try
+ {
+ testee.setURIList(null);
+ fail("Setting null URI list did not throw IAE");
+ }
+ catch (IllegalArgumentException good) {}
+
+ try
+ {
+ testee.setSingleURI(null);
+ fail("Setting null single URI did not throw IAE");
+ }
+ catch (IllegalArgumentException good) {}
+
+ List<URI> spottylist = Arrays.asList(new URI("http://127.0.0.1"), null, new URI("file:///tmp"));
+ testee.setURIList(spottylist);
+ assertEquals(list, testee.getURIList());
+ assertNull(testee.getSingleURI());
+
+ spottylist = Arrays.asList(null, new URI("http://127.0.0.1"), new URI("file:///tmp"));
+ testee.setURIList(spottylist);
+ assertEquals(list, testee.getURIList());
+ assertNull(testee.getSingleURI());
+
+ spottylist = Arrays.asList(new URI("http://127.0.0.1"), new URI("file:///tmp"), null);
+ testee.setURIList(spottylist);
+ assertEquals(list, testee.getURIList());
+ assertNull(testee.getSingleURI());
+ }
+
+ public void testOnDemandEnabledStart() throws Exception
+ {
+ TesteeSet ts = new TesteeSet();
+ Profile profile = createNiceMock(Profile.class);
+ Capture<ProfileMetaData> capture = new Capture<ProfileMetaData>();
+ expect(ts.profileFactory.createProfile(eq(ts.testee.getProfileKey()), capture(capture))).andReturn(profile);
+ ts.profileService.registerProfile(profile);
+ ContextDemandListener cdl = anyObject();
+ ts.integrator.registerContextDemandListener(cdl);
+ ts.integrator.registerOnDemandContext("service", "host", "/context");
+
+ replay(ts.profileFactory);
+ replay(ts.profileService);
+ replay(ts.integrator);
+
+ ts.testee.start();
+
+ ProfileMetaData md = capture.getValue();
+ assertNotNull(md);
+ ProfileSourceMetaData psmd = md.getSource();
+ assertNotNull(psmd);
+ assertEquals(Arrays.asList(ts.testee.getSingleURI().toString()), psmd.getSources());
+
+ verify(ts.profileFactory);
+ verify(ts.profileService);
+ verify(ts.integrator);
+
+ assertFalse(ts.testee.isActivated());
+ }
+
+ public void testOnDemandDisabledStart() throws Exception
+ {
+ TesteeSet ts = new TesteeSet();
+ ProfileKey profKey = ts.testee.getProfileKey();
+ Profile profile = createNiceMock(Profile.class);
+ Capture<ProfileMetaData> capture = new Capture<ProfileMetaData>();
+ expect(ts.profileFactory.createProfile(eq(profKey), capture(capture))).andReturn(profile);
+
+ resetToStrict(ts.profileService);
+ ts.profileService.registerProfile(profile);
+ Collection<ProfileKey> profiles = Collections.emptyList();
+ expect(ts.profileService.getActiveProfileKeys()).andReturn(profiles);
+ ts.profileService.activateProfile(profKey);
+ replay(ts.profileFactory);
+ replay(ts.profileService);
+ replay(ts.integrator);
+
+ ts.testee.setActivateOnDemand(false);
+ ts.testee.start();
+
+ ProfileMetaData md = capture.getValue();
+ assertNotNull(md);
+ ProfileSourceMetaData psmd = md.getSource();
+ assertNotNull(psmd);
+ assertEquals(Arrays.asList(ts.testee.getSingleURI().toString()), psmd.getSources());
+
+ verify(ts.profileFactory);
+ verify(ts.profileService);
+ verify(ts.integrator);
+
+ assertTrue(ts.testee.isActivated());
+
+ }
+
+ public void testStopAfterActivation() throws Exception
+ {
+ TesteeSet ts = new TesteeSet();
+ ts.testee.start();
+
+ assertFalse(ts.testee.isActivated());
+
+ Collection<ProfileKey> profiles = Collections.emptyList();
+ expect(ts.profileService.getActiveProfileKeys()).andReturn(profiles);
+ replay(ts.profileService);
+
+ ts.testee.activateProfile();
+
+ assertTrue(ts.testee.isActivated());
+
+ resetToStrict(ts.profileService);
+ reset(ts.integrator);
+
+ Collection<ProfileKey> keys = Collections.singletonList(ts.testee.getProfileKey());
+ expect(ts.profileService.getActiveProfileKeys()).andReturn(keys);
+ ts.profileService.deactivateProfile(ts.testee.getProfileKey());
+ ts.profileService.unregisterProfile(ts.testee.getProfileKey());
+ ContextDemandListener cdl = anyObject();
+ ts.integrator.removeContextDemandListener(cdl);
+
+ replay(ts.profileService);
+ replay(ts.integrator);
+
+ ts.testee.stop();
+
+ verify(ts.integrator);
+ verify(ts.profileService);
+
+ assertFalse(ts.testee.isActivated());
+ }
+
+ public void testStopWithoutActivation() throws Exception
+ {
+ TesteeSet ts = new TesteeSet();
+ ts.testee.start();
+
+ assertFalse(ts.testee.isActivated());
+
+ resetToStrict(ts.profileService);
+ reset(ts.integrator);
+
+ Collection<ProfileKey> keys = Collections.emptyList();
+ expect(ts.profileService.getActiveProfileKeys()).andReturn(keys);
+ ts.profileService.unregisterProfile(ts.testee.getProfileKey());
+ ContextDemandListener cdl = anyObject();
+ ts.integrator.removeContextDemandListener(cdl);
+
+ replay(ts.profileService);
+ replay(ts.integrator);
+
+ ts.testee.stop();
+
+ verify(ts.integrator);
+ verify(ts.profileService);
+ }
+
+ public void testStopAfterFailedStart() throws Exception
+ {
+ // Case 1: it has a ProfileService and ProfileKey
+ OnDemandContextProfileManager testee = new OnDemandContextProfileManager();
+ ProfileService ps = createNiceMock(ProfileService.class);
+ testee.setProfileService(ps);
+ testee.setContextName("context");
+ ProfileKey key = testee.getProfileKey();
+ try
+ {
+ testee.start();
+ fail("should have thrown ISE");
+ }
+ catch (IllegalStateException expected)
+ {
+ resetToStrict(ps);
+ Collection<ProfileKey> profiles = Collections.emptyList();
+ expect(ps.getActiveProfileKeys()).andReturn(profiles);
+ ps.unregisterProfile(key);
+ replay(ps);
+ testee.stop();
+ verify(ps);
+ }
+
+ // Case 2: it has nothing
+ testee = new OnDemandContextProfileManager();
+ try
+ {
+ testee.start();
+ fail("should have thrown ISE");
+ }
+ catch (IllegalStateException expected)
+ {
+ testee.stop();
+ }
+ }
+
+ public void testActivateProfile() throws Exception
+ {
+ TesteeSet ts = new TesteeSet();
+ Profile profile = createNiceMock(Profile.class);
+ ProfileMetaData md = anyObject();
+ expect(ts.profileFactory.createProfile(eq(ts.testee.getProfileKey()), md)).andReturn(profile);
+
+ replay(ts.profileFactory);
+ replay(ts.profileService);
+ replay(ts.integrator);
+
+ ts.testee.start();
+
+ assertFalse(ts.testee.isActivated());
+
+ resetToStrict(ts.profileService);
+
+ Collection<ProfileKey> profiles = Collections.emptyList();
+ expect(ts.profileService.getActiveProfileKeys()).andReturn(profiles);
+ ts.profileService.activateProfile(ts.testee.getProfileKey());
+ ts.profileService.validateProfile(ts.testee.getProfileKey());
+
+ replay(ts.profileService);
+
+ ts.testee.activateProfile();
+
+ verify(ts.profileService);
+
+ assertTrue(ts.testee.isActivated());
+ }
+
+ public void testActivateAlreadyActiveProfile() throws Exception
+ {
+ TesteeSet ts = new TesteeSet();
+ Profile profile = createNiceMock(Profile.class);
+ ProfileMetaData md = anyObject();
+ expect(ts.profileFactory.createProfile(eq(ts.testee.getProfileKey()), md)).andReturn(profile);
+
+ replay(ts.profileFactory);
+ replay(ts.profileService);
+ replay(ts.integrator);
+
+ ts.testee.start();
+
+ assertFalse(ts.testee.isActivated());
+
+ resetToStrict(ts.profileService);
+
+ Collection<ProfileKey> profiles = Collections.singletonList(ts.testee.getProfileKey());
+ expect(ts.profileService.getActiveProfileKeys()).andReturn(profiles);
+
+ replay(ts.profileService);
+
+ ts.testee.activateProfile();
+
+ verify(ts.profileService);
+
+ assertTrue(ts.testee.isActivated());
+ }
+
+ private static class TesteeSet
+ {
+ private final OnDemandContextProfileManager testee;
+ private final ProfileFactory profileFactory;
+ private final ProfileService profileService;
+ private final OnDemandContextIntegrator integrator;
+
+ private TesteeSet() throws IOException, URISyntaxException
+ {
+ testee = new OnDemandContextProfileManager();
+ profileFactory = createNiceMock(ProfileFactory.class);
+ testee.setProfileFactory(profileFactory);
+ profileService = createNiceMock(ProfileService.class);
+ testee.setProfileService(profileService);
+ integrator = createNiceMock(OnDemandContextIntegrator.class);
+ testee.setOnDemandContextIntegrator(integrator);
+ testee.setServiceName("service");
+ testee.setHostName("host");
+ testee.setContextName("context");
+ testee.setSingleURI(new URI("file:///tmp"));
+ }
+ }
+}
Modified: branches/vfs3-int/testsuite/src/main/org/jboss/test/xml/SingletonSchemaBindingResolverUnitTestCase.java
===================================================================
--- branches/vfs3-int/testsuite/src/main/org/jboss/test/xml/SingletonSchemaBindingResolverUnitTestCase.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/main/org/jboss/test/xml/SingletonSchemaBindingResolverUnitTestCase.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -26,8 +26,8 @@
import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
import org.jboss.test.xml.initializer.Container;
import org.jboss.test.xml.initializer.ContainerInitializer;
+import org.jboss.xb.binding.resolver.MutableSchemaResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SingletonSchemaResolverFactory;
-import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
/**
@@ -40,11 +40,11 @@
{
public static SchemaBindingResolver initResolver() throws Exception
{
- DefaultSchemaResolver resolver = (DefaultSchemaResolver) SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
+ MutableSchemaResolver resolver = SingletonSchemaResolverFactory.getInstance().getSchemaBindingResolver();
Class clazz = SingletonSchemaBindingResolverUnitTestCase.class;
- resolver.addSchemaInitializer(ContainerInitializer.NS, ContainerInitializer.class.getName());
+ resolver.mapSchemaInitializer(ContainerInitializer.NS, ContainerInitializer.class.getName());
String location = getSchemaLocation(clazz, "SchemaBindingInitializerUnitTestCaseContainer.xsd");
- resolver.addSchemaLocation(ContainerInitializer.NS, location);
+ resolver.mapSchemaLocation(ContainerInitializer.NS, location);
return resolver;
}
Modified: branches/vfs3-int/testsuite/src/resources/cluster/hasingleton/electionpolicy/ha-electionpolicy-jboss-beans.xml
===================================================================
--- branches/vfs3-int/testsuite/src/resources/cluster/hasingleton/electionpolicy/ha-electionpolicy-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/resources/cluster/hasingleton/electionpolicy/ha-electionpolicy-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -7,9 +7,9 @@
<!-- ==================================================================== -->
<!-- First HASingleton, Election policy is to choose the oldest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonMBeanExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonMBeanExample"
name="HASingletonMBeanExample_1">
- <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_1", exposedInterface=org.jboss.ha.singleton.examples.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_1", exposedInterface=org.jboss.test.cluster.hasingleton.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
</bean>
<bean class="org.jboss.ha.singleton.HASingletonElectionPolicySimple"
@@ -31,9 +31,9 @@
</bean>
<!-- Second HASingleton, Election policy is to choose the youngest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonMBeanExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonMBeanExample"
name="HASingletonMBeanExample_2">
- <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_2", exposedInterface=org.jboss.ha.singleton.examples.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_2", exposedInterface=org.jboss.test.cluster.hasingleton.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
</bean>
<bean class="org.jboss.ha.singleton.HASingletonElectionPolicySimple"
@@ -55,9 +55,9 @@
</bean>
<!-- Third HASingleton, Election policy is to choose the 2nd oldest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonMBeanExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonMBeanExample"
name="HASingletonMBeanExample_3">
- <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_3", exposedInterface=org.jboss.ha.singleton.examples.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_3", exposedInterface=org.jboss.test.cluster.hasingleton.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
</bean>
<bean class="org.jboss.ha.singleton.HASingletonElectionPolicySimple"
@@ -79,9 +79,9 @@
</bean>
<!-- Fourth HASingleton, No election policy defined. By default, the oldest node is selected -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonMBeanExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonMBeanExample"
name="HASingletonMBeanExample_4">
- <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_4", exposedInterface=org.jboss.ha.singleton.examples.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_4", exposedInterface=org.jboss.test.cluster.hasingleton.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
</bean>
<bean class="org.jboss.ha.singleton.HASingletonController"
@@ -97,9 +97,9 @@
</bean>
<!-- 5th HASingleton, PreferredMaster set to localhost:0. Election policy is to choose the oldest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonMBeanExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonMBeanExample"
name="HASingletonMBeanExample_5">
- <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_5", exposedInterface=org.jboss.ha.singleton.examples.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_5", exposedInterface=org.jboss.test.cluster.hasingleton.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
</bean>
<bean class="org.jboss.ha.singleton.PreferredMasterElectionPolicy"
@@ -122,9 +122,9 @@
</bean>
<!-- 6th HASingleton, PreferredMaster set to localhost:0. Election policy is to choose the youngest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonMBeanExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonMBeanExample"
name="HASingletonMBeanExample_6">
- <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_6", exposedInterface=org.jboss.ha.singleton.examples.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
+ <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.examples:service=HASingletonMBeanExample_6", exposedInterface=org.jboss.test.cluster.hasingleton.HASingletonMBeanExampleMBean.class, registerDirectly=true)</annotation>
</bean>
<bean class="org.jboss.ha.singleton.PreferredMasterElectionPolicy"
@@ -151,7 +151,7 @@
<!-- ==================================================================== -->
<!-- First HASingleton, Election policy is to choose the oldest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonPojoExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonPojoExample"
name="HASingletonPojoExample_1">
<constructor><parameter>test/cluster/hasingleton/simplepojo/1</parameter></constructor>
</bean>
@@ -167,7 +167,7 @@
</bean>
<!-- Second HASingleton, Election policy is to choose the youngest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonPojoExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonPojoExample"
name="HASingletonPojoExample_2">
<constructor><parameter>test/cluster/hasingleton/simplepojo/2</parameter></constructor>
</bean>
@@ -183,7 +183,7 @@
</bean>
<!-- Third HASingleton, Election policy is to choose the 2nd oldest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonPojoExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonPojoExample"
name="HASingletonPojoExample_3">
<constructor><parameter>test/cluster/hasingleton/simplepojo/3</parameter></constructor>
</bean>
@@ -199,7 +199,7 @@
</bean>
<!-- Fourth HASingleton, No election policy defined. By default, the oldest node is selected -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonPojoExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonPojoExample"
name="HASingletonPojoExample_4">
<constructor><parameter>test/cluster/hasingleton/simplepojo/4</parameter></constructor>
</bean>
@@ -214,7 +214,7 @@
</bean>
<!-- 5th HASingleton, PreferredMaster set to localhost:0. Election policy is to choose the oldest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonPojoExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonPojoExample"
name="HASingletonPojoExample_5">
<constructor><parameter>test/cluster/hasingleton/simplepojo/5</parameter></constructor>
</bean>
@@ -231,7 +231,7 @@
<!-- 6th HASingleton, Election policy is to choose the youngest node as master -->
- <bean class="org.jboss.ha.singleton.examples.HASingletonPojoExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonPojoExample"
name="HASingletonPojoExample_6">
<constructor><parameter>test/cluster/hasingleton/simplepojo/6</parameter></constructor>
</bean>
Modified: branches/vfs3-int/testsuite/src/resources/cluster/hasingleton/ha-singleton-jboss-beans.xml
===================================================================
--- branches/vfs3-int/testsuite/src/resources/cluster/hasingleton/ha-singleton-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/resources/cluster/hasingleton/ha-singleton-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -2,7 +2,7 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
- <bean class="org.jboss.ha.singleton.examples.HASingletonPojoExample"
+ <bean class="org.jboss.test.cluster.hasingleton.HASingletonPojoExample"
name="SimpleHaSingletonPojo">
<constructor><parameter>test/cluster/hasingleton/simplepojo</parameter></constructor>
Modified: branches/vfs3-int/testsuite/src/resources/deployers/seam/booking/jboss-seam-booking.ear
===================================================================
(Binary files differ)
Modified: branches/vfs3-int/testsuite/src/resources/deployers/seam/dvd/jboss-seam-dvd.ear
===================================================================
(Binary files differ)
Modified: branches/vfs3-int/testsuite/src/resources/deployers/seam/numberguess/jboss-seam-numberguess.ear
===================================================================
(Binary files differ)
Copied: branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026 (from rev 100917, trunk/testsuite/src/resources/ejb3/jbpapp3026)
Copied: branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF (from rev 100917, trunk/testsuite/src/resources/ejb3/jbpapp3026/META-INF)
Deleted: branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml
===================================================================
--- trunk/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,18 +0,0 @@
-<?xml version="1.0"?>
-<jboss
- xmlns="http://www.jboss.com/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee
- http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
- version="3.0">
- <enterprise-beans>
- <message-driven>
- <ejb-name>SimpleMDBForTopicCreation</ejb-name>
- <create-destination>true</create-destination>
- </message-driven>
- <message-driven>
- <ejb-name>SimpleMDBForQueueCreation</ejb-name>
- <create-destination>true</create-destination>
- </message-driven>
- </enterprise-beans>
-</jboss>
\ No newline at end of file
Copied: branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml (from rev 100917, trunk/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml)
===================================================================
--- branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml (rev 0)
+++ branches/vfs3-int/testsuite/src/resources/ejb3/jbpapp3026/META-INF/jboss.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,18 @@
+<?xml version="1.0"?>
+<jboss
+ xmlns="http://www.jboss.com/xml/ns/javaee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee
+ http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
+ version="3.0">
+ <enterprise-beans>
+ <message-driven>
+ <ejb-name>SimpleMDBForTopicCreation</ejb-name>
+ <create-destination>true</create-destination>
+ </message-driven>
+ <message-driven>
+ <ejb-name>SimpleMDBForQueueCreation</ejb-name>
+ <create-destination>true</create-destination>
+ </message-driven>
+ </enterprise-beans>
+</jboss>
\ No newline at end of file
Deleted: branches/vfs3-int/testsuite/src/resources/jmx/jbosstest-urlscanner-service.xml
===================================================================
--- branches/vfs3-int/testsuite/src/resources/jmx/jbosstest-urlscanner-service.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/resources/jmx/jbosstest-urlscanner-service.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<server>
-
- <!-- An mbean for hot deployment/undeployment of archives.
- -->
- <mbean code="org.jboss.deployment.scanner.URLDeploymentScanner"
- name="jboss.test:type=DeploymentScanner,flavor=URL">
-
- <depends optional-attribute-name="Deployer">jboss.system:service=MainDeployer</depends>
- <attribute name="URLComparator">org.jboss.deployment.DeploymentSorter</attribute>
- <attribute name="FilterInstance"
- attributeClass="org.jboss.deployment.scanner.DeploymentFilter"
- serialDataType="javaBean">
- <!-- Files starting with theses strings are ignored -->
- <property name="prefixes">#,%,\,,.,_$</property>
- <!-- Files ending with theses strings are ignored -->
- <property name="suffixes">#,$,%,~,\,v,.BAK,.bak,.old,.orig,.tmp,.rej,.sh</property>
- <!-- Files matching with theses strings are ignored -->
- <property name="matches">.make.state,.nse_depinfo,CVS,CVS.admin,RCS,RCSLOG,SCCS,TAGS,core,tags</property>
- </attribute>
-
- <!-- Frequency in milliseconds to rescan the URLs for changes -->
- <attribute name="ScanPeriod">500</attribute>
-
- <!-- A flag to disable the scans -->
- <attribute name="ScanEnabled">true</attribute>
-
- <attribute name="URLs">
- </attribute>
-
- <attribute name="RecursiveSearch">True</attribute>
-
- </mbean>
-
-</server>
Modified: branches/vfs3-int/testsuite/src/resources/securitymgr/server.policy
===================================================================
--- branches/vfs3-int/testsuite/src/resources/securitymgr/server.policy 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/resources/securitymgr/server.policy 2010-02-12 17:13:14 UTC (rev 100922)
@@ -101,7 +101,7 @@
permission java.lang.RuntimePermission "getClassLoader";
};
-grant codeBase "file:${jboss.server.home.dir}/deploy/jmx-console.war/-" {
+grant codeBase "file:${jboss.home.dir}/common/deploy/jmx-console.war/-" {
permission java.security.AllPermission;
};
@@ -308,6 +308,9 @@
permission java.lang.RuntimePermission "getProtectionDomain";
};
+grant codeBase "file:${jboss.test.deploy.dir}/cts.jar" {
+ permission org.jboss.naming.JndiPermission "testBadUserTx","bind";
+};
grant codeBase "file:${jboss.test.deploy.dir}/-" {
permission org.jboss.naming.JndiPermission "<<ALL BINDINGS>>","listBindings,lookup";
@@ -351,6 +354,10 @@
permission java.lang.RuntimePermission "getProtectionDomain";
};
+grant codeBase "vfszip:${jboss.test.deploy.dir}/cts.jar" {
+ permission org.jboss.naming.JndiPermission "testBadUserTx","bind";
+};
+
grant codeBase "vfszip:${jboss.test.deploy.dir}/-" {
permission org.jboss.naming.JndiPermission "<<ALL BINDINGS>>","listBindings,lookup";
};
Modified: branches/vfs3-int/testsuite/src/resources/web/jspinjection/nested.jsp
===================================================================
--- branches/vfs3-int/testsuite/src/resources/web/jspinjection/nested.jsp 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/testsuite/src/resources/web/jspinjection/nested.jsp 2010-02-12 17:13:14 UTC (rev 100922)
@@ -47,6 +47,7 @@
%>
<%
Nested nested = new Nested();
+ _jsp_instancemanager.newInstance(nested);
assert nested.getSimpleStateful() != null : "Nested.stateful is null";
assert nested.getSimpleStateful().doSomething() == true : "Nested.stateful returned false";
Modified: branches/vfs3-int/tomcat/pom.xml
===================================================================
--- branches/vfs3-int/tomcat/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (tomcat module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/main/java</directory>
@@ -303,8 +303,8 @@
<artifactId>jboss-ejb-api</artifactId>
</dependency>
<dependency>
- <groupId>org.hibernate.java-persistence</groupId>
- <artifactId>jpa-api</artifactId>
+ <groupId>org.hibernate.javax.persistence</groupId>
+ <artifactId>hibernate-jpa-2.0-api</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.cluster</groupId>
Modified: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/security/GenericHeaderAuthenticator.java
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/security/GenericHeaderAuthenticator.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/security/GenericHeaderAuthenticator.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -29,12 +29,12 @@
import javax.management.ObjectName;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import org.apache.catalina.Realm;
import org.apache.catalina.Session;
import org.apache.catalina.authenticator.Constants;
import org.apache.catalina.connector.Request;
-import org.apache.catalina.connector.Response;
import org.apache.catalina.deploy.LoginConfig;
import org.jboss.logging.Logger;
@@ -131,7 +131,8 @@
super();
}
- public boolean authenticate(Request request, Response response, LoginConfig config) throws IOException
+ @Override
+ public boolean authenticate(Request request, HttpServletResponse response, LoginConfig config) throws IOException
{
log.trace("Authenticating user");
Modified: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -21,13 +21,6 @@
*/
package org.jboss.web.tomcat.service;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NameNotFoundException;
-import javax.naming.NamingException;
-import javax.servlet.Filter;
-import javax.servlet.Servlet;
-
import java.io.IOException;
import java.io.InputStream;
import java.lang.annotation.Annotation;
@@ -37,14 +30,20 @@
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
-import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
-import java.util.Collections;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+
import org.apache.tomcat.InstanceManager;
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
@@ -137,7 +136,7 @@
private PersistenceUnitDependencyResolver persistenceUnitDependencyResolver;
private DeploymentEndpointResolver deploymentEndpointResolver;
private Map<String, ContainerDependencyMetaData> endpointMap;
- private static final Set<String> dynamicClassLoaders = new HashSet<String>();
+ private Set<String> dynamicClassLoaders = null;
private static final Properties restrictedFilters = new Properties();
private static final Properties restrictedListeners = new Properties();
private static final Properties restrictedServlets = new Properties();
@@ -195,13 +194,10 @@
{
log.error("Error reading org/apache/catalina/core/RestrictedFilters.properties", e);
}
-
- //
- dynamicClassLoaders.add("org.apache.jasper.servlet.JasperLoader");
}
public TomcatInjectionContainer(WebApplication appInfo, DeploymentUnit unit, org.apache.catalina.Context catalinaContext,
- PersistenceUnitDependencyResolver resolver)
+ PersistenceUnitDependencyResolver resolver, Set<String> dynamicClassLoaders)
{
super(new SimpleJavaEEModule(appInfo.getName()));
@@ -211,6 +207,7 @@
this.persistenceUnitDependencyResolver = resolver;
this.deploymentEndpointResolver = unit.getAttachment(DeploymentEndpointResolver.class);
this.endpointMap = unit.getTopLevel().getAttachment(MappedReferenceMetaDataResolverDeployer.ENDPOINT_MAP_KEY, Map.class);
+ this.dynamicClassLoaders = dynamicClassLoaders;
this.webDD = unit.getAttachment(JBossWebMetaData.class);
assert this.webDD != null : "webDD is null (no JBossWebMetaData attachment in VFSDeploymentUnit)";
@@ -486,6 +483,8 @@
*/
private boolean isDynamicBean(Object object)
{
+ if (dynamicClassLoaders == null)
+ return false;
if (object == null)
throw new IllegalArgumentException("null class");
Modified: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/DeployerConfig.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -22,6 +22,7 @@
package org.jboss.web.tomcat.service.deployers;
import java.util.List;
+import java.util.Set;
import javax.management.ObjectName;
@@ -109,6 +110,9 @@
/** FQN of the SecurityContext Class */
private String securityContextClassName;
+ /** Dynamic classloaders */
+ private Set<String> dynamicClassloaders;
+
public ClassLoader getServiceClassLoader()
{
return serviceClassLoader;
@@ -269,6 +273,16 @@
public void setSharedTldMetaData(List<TldMetaData> sharedTldMetaData)
{
this.sharedTldMetaData = sharedTldMetaData;
+ }
+
+ public Set<String> getDynamicClassloaders()
+ {
+ return dynamicClassloaders;
+ }
+
+ public void setDynamicClassloaders(Set<String> dynamicClassloaders)
+ {
+ this.dynamicClassloaders = dynamicClassloaders;
}
}
Modified: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -25,6 +25,7 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
+import java.util.Set;
import java.util.StringTokenizer;
import javax.management.ObjectName;
@@ -93,6 +94,9 @@
private boolean deleteWorkDirOnContextDestroy = true;
+ /** Dynamic classloaders */
+ private Set<String> dynamicClassloaders;
+
/**
* JBAS-2283: Provide custom header based auth support
*/
@@ -211,6 +215,16 @@
log.debug("Passed set of authenticators=" + prop);
}
+ public Set<String> getDynamicClassloaders()
+ {
+ return dynamicClassloaders;
+ }
+
+ public void setDynamicClassloaders(Set<String> dynamicClassloaders)
+ {
+ this.dynamicClassloaders = dynamicClassloaders;
+ }
+
public String getTldJars()
{
return tldJars;
@@ -452,6 +466,7 @@
config.setSharedMetaData(sharedMetaData);
config.setSharedTldMetaData(sharedTldMetaData);
config.setDeleteWorkDirs(deleteWorkDirOnContextDestroy);
+ config.setDynamicClassloaders(dynamicClassloaders);
config.setSecurityContextClassName(securityContextClassName);
deployment.setSecurityManagementName(securityManagement);
Modified: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -190,11 +190,22 @@
tldMetaDataMap.put(tldMetaData.toString(), tldMetaData);
}
- TomcatInjectionContainer injectionContainer = new TomcatInjectionContainer(webApp, depUnit, context, getPersistenceUnitDependencyResolver());
+ TomcatInjectionContainer injectionContainer =
+ new TomcatInjectionContainer(webApp, depUnit, context,
+ getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders());
- if (kernel != null) {
- ControllerContext injectorControllerContext = kernel.getController().getInstalledContext(unit.getName() + "_WBInjector");
- if (injectorControllerContext != null) {
+ if (kernel != null)
+ {
+ // Look for a WBInjector bean defined for the current deployment unit. If not found, check the parent.
+ DeploymentUnit inspectedUnit = unit;
+ ControllerContext injectorControllerContext = null;
+ while (inspectedUnit != null && injectorControllerContext == null)
+ {
+ injectorControllerContext = kernel.getController().getInstalledContext(inspectedUnit.getName() + "_WBInjector");
+ inspectedUnit = inspectedUnit.getParent();
+ }
+ if (injectorControllerContext != null)
+ {
injectionContainer.setDefaultInjectors(Collections.singletonList((Injector)injectorControllerContext.getTarget()));
}
}
Modified: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatService.java
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatService.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatService.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -46,7 +46,6 @@
import org.apache.catalina.startup.CatalinaProperties;
import org.apache.tomcat.util.IntrospectionUtils;
import org.apache.tomcat.util.modeler.Registry;
-import org.jboss.bootstrap.api.as.server.JBossASServer;
import org.jboss.bootstrap.api.lifecycle.LifecycleState;
import org.jboss.bootstrap.spi.as.server.JBossASServerProvider;
import org.jboss.kernel.spi.dependency.KernelController;
@@ -65,6 +64,8 @@
import org.jboss.web.tomcat.metadata.ServiceMetaData;
import org.jboss.web.tomcat.metadata.ValveMetaData;
import org.jboss.web.tomcat.security.HttpServletRequestPolicyContextHandler;
+import org.jboss.web.tomcat.service.ondemand.DefaultOnDemandContextIntegrator;
+import org.jboss.web.tomcat.service.ondemand.OnDemandContextIntegrator;
import org.jboss.web.tomcat.service.session.SessionIDGenerator;
import org.jboss.xb.binding.Unmarshaller;
import org.jboss.xb.binding.UnmarshallerFactory;
@@ -97,9 +98,10 @@
// Use a flag because isInShutdown doesn't appear to be correct
private boolean connectorsRunning = false;
+
+ /** Integrate support for on-demand contexts */
+ private DefaultOnDemandContextIntegrator onDemandContextIntegrator = new DefaultOnDemandContextIntegrator();
- // Dependency inject the Executor pojo
-
public Executor getExecutor()
{
return executor;
@@ -121,6 +123,17 @@
{
this.tomcatDeployer = tomcatDeployer;
}
+
+ /**
+ * Gets the object that provides support for on-demand activation of
+ * contexts.
+ *
+ * @return the OnDemandContextIntegrator. Will not return <code>null</code>
+ */
+ public OnDemandContextIntegrator getOnDemandContextIntegrator()
+ {
+ return onDemandContextIntegrator;
+ }
// In our lifecycle, we invoke the webserver lifecycle-related operations
// in the TomcatDeployer
@@ -218,6 +231,9 @@
service.setName(serviceMetaData.getName());
service.setServer(catalinaServer);
catalinaServer.addService(service);
+
+ // Integrate support for on-demand contexts
+ onDemandContextIntegrator.registerMapper(service.getName(), service.getMapper());
// Server/Service/Executor
// Executor is useless in JBoss: the Executor will get injected in the executor field
@@ -474,10 +490,10 @@
// Unregister any remaining jboss.web or Catalina MBeans
ObjectName queryObjectName = new ObjectName(tomcatDeployer.getDomain() + ":*");
- Iterator iterator = server2.queryMBeans(queryObjectName, null).iterator();
+ Iterator<ObjectInstance> iterator = server2.queryMBeans(queryObjectName, null).iterator();
while (iterator.hasNext())
{
- ObjectInstance oi = (ObjectInstance) iterator.next();
+ ObjectInstance oi = iterator.next();
ObjectName toRemove = oi.getObjectName();
// Exception: Don't unregister the service right now
if (!"WebServer".equals(toRemove.getKeyProperty("service")))
Copied: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand (from rev 100917, trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand)
Deleted: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,61 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2009, Red Hat Middleware LLC, 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.web.tomcat.service.ondemand;
-
-/**
- * Interface implemented by listeners that wish to be notified of requests
- * for as-yet-undeployed "on-demand" web applications. It is expected that the
- * typical implementation of this interface would trigger deployment of the web
- * application.
- *
- * @author Brian Stansberry
- *
- * @version $Revision$
- */
-public interface ContextDemandListener
-{
- /**
- * Notification that a request has been received for a web application
- * previously {@link OnDemandContextIntegrator#registerContextDemandListener(ContextDemandListener)
- * registered with JBoss Web} as eligible for on-demand deployment.
- * <p>
- * Implementors of this interface should assume that the notification will be
- * received before the web server has handled the request and that any handling
- * of the request is either being done by the calling thread or will block
- * until the <code>contextDemanded</code> call has returned.
- * </p>
- *
- *
- * @param serviceName the name of the JBoss Web <code>Service</code> that
- * includes the connector that received the request.
- * Will not be <code>null</code>.
- * @param hostName the name of the JBoss Web <code>Host</code> that is the
- * virtual host associated with the request.
- * Will not be <code>null</code>.
- * @param contextName the name of the on-demand web application context, i.e.
- * the context path portion of the request URL, with
- * any leading and trailing / removed.
- * Will not be <code>null</code>.
- */
- void contextDemanded(String serviceName, String hostName, String contextName);
-}
Copied: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java (from rev 100917, trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java)
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java (rev 0)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/ContextDemandListener.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, Red Hat Middleware LLC, 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.web.tomcat.service.ondemand;
+
+/**
+ * Interface implemented by listeners that wish to be notified of requests
+ * for as-yet-undeployed "on-demand" web applications. It is expected that the
+ * typical implementation of this interface would trigger deployment of the web
+ * application.
+ *
+ * @author Brian Stansberry
+ *
+ * @version $Revision$
+ */
+public interface ContextDemandListener
+{
+ /**
+ * Notification that a request has been received for a web application
+ * previously {@link OnDemandContextIntegrator#registerContextDemandListener(ContextDemandListener)
+ * registered with JBoss Web} as eligible for on-demand deployment.
+ * <p>
+ * Implementors of this interface should assume that the notification will be
+ * received before the web server has handled the request and that any handling
+ * of the request is either being done by the calling thread or will block
+ * until the <code>contextDemanded</code> call has returned.
+ * </p>
+ *
+ *
+ * @param serviceName the name of the JBoss Web <code>Service</code> that
+ * includes the connector that received the request.
+ * Will not be <code>null</code>.
+ * @param hostName the name of the JBoss Web <code>Host</code> that is the
+ * virtual host associated with the request.
+ * Will not be <code>null</code>.
+ * @param contextName the name of the on-demand web application context, i.e.
+ * the context path portion of the request URL, with
+ * any leading and trailing / removed.
+ * Will not be <code>null</code>.
+ */
+ void contextDemanded(String serviceName, String hostName, String contextName);
+}
Deleted: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,158 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2010, 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.web.tomcat.service.ondemand;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-
-import org.apache.log4j.Logger;
-import org.apache.tomcat.util.http.mapper.Mapper;
-import org.apache.tomcat.util.http.mapper.OnDemandContextMappingListener;
-
-/**
- * Default implementation of OnDemandContextIntegrator.
- *
- * @author Brian Stansberry
- * @version $Revision: 1.1 $
- */
-public class DefaultOnDemandContextIntegrator implements OnDemandContextIntegrator
-{
- private static final Logger log = Logger.getLogger(DefaultOnDemandContextIntegrator.class);
-
- private final Set<ContextDemandAdapter> adapters = Collections.synchronizedSet(new HashSet<ContextDemandAdapter>());
-
- private final Map<String, Mapper> mappers = Collections.synchronizedMap(new HashMap<String, Mapper>());
-
- // ----------------------------------------------------------------- Public
-
- /**
- * Makes this object aware of the given {@link Mapper}, allowing on-demand
- * contexts to be registered with it.
- *
- * @param serviceName name of the JBoss Web <code>Service</code> with
- * which the service is associated. Cannot be <code>null</code>
- * @param mapper the mapper. Cannot be <code>null</code>
- */
- public void registerMapper(String serviceName, Mapper mapper)
- {
- if (serviceName == null)
- {
- throw new IllegalArgumentException("Argument serviceName is null");
- }
- if (mapper == null)
- {
- throw new IllegalArgumentException("Argument mapper is null");
- }
- mappers.put(serviceName, mapper);
- ContextDemandAdapter adapter = new ContextDemandAdapter(serviceName);
- mapper.registerOnDemandContextMappingListener(adapter);
- adapters.add(adapter);
- }
-
- // ------------------------------------------------ OnDemandContextListener
-
- public void registerContextDemandListener(ContextDemandListener listener)
- {
- for (ContextDemandAdapter adapter : adapters)
- {
- adapter.registerContextDemandListener(listener);
- }
- }
-
- public void removeContextDemandListener(ContextDemandListener listener)
- {
- for (ContextDemandAdapter adapter : adapters)
- {
- adapter.removeContextDemandListener(listener);
- }
- }
-
- public void registerOnDemandContext(String serviceName, String hostName, String contextName)
- {
- Mapper mapper = mappers.get(serviceName);
- if (mapper != null)
- {
- // ensure the path starts w/ slash or Mapper won't match it correctly
- if (contextName.length() > 0 && ('/' != contextName.charAt(0)))
- {
- contextName = "/" + contextName;
- }
- mapper.addOnDemandContext(hostName, contextName);
- }
- else
- {
- log.warn("Cannot register on-demand context for unknown engine " + serviceName);
- }
- }
-
- public void removeOnDemandContext(String serviceName, String hostName, String contextName)
- {
- Mapper mapper = mappers.get(serviceName);
- if (mapper != null)
- {
- mapper.removeContext(hostName, contextName);
- }
- else
- {
- log.warn("Cannot remove on-demand context for unknown engine " + serviceName);
- }
- }
-
- private class ContextDemandAdapter implements OnDemandContextMappingListener
- {
- private final String engineName;
- private final Set<ContextDemandListener> contextDemandListeners =
- Collections.synchronizedSet(new HashSet<ContextDemandListener>());
-
- private ContextDemandAdapter(String engineName)
- {
- this.engineName = engineName;
- }
-
- public void onDemandContextMapped(String hostName, String contextName)
- {
- for (ContextDemandListener listener : contextDemandListeners)
- {
- listener.contextDemanded(this.engineName, hostName, contextName);
- }
- }
-
- private void registerContextDemandListener(ContextDemandListener listener)
- {
- if (listener != null )
- {
- contextDemandListeners.add(listener);
- }
- }
-
- private void removeContextDemandListener(ContextDemandListener listener)
- {
- if (listener != null )
- {
- contextDemandListeners.remove(listener);
- }
- }
- }
-}
\ No newline at end of file
Copied: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java (from rev 100917, trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java)
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java (rev 0)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/DefaultOnDemandContextIntegrator.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,158 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.web.tomcat.service.ondemand;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.apache.log4j.Logger;
+import org.apache.tomcat.util.http.mapper.Mapper;
+import org.apache.tomcat.util.http.mapper.OnDemandContextMappingListener;
+
+/**
+ * Default implementation of OnDemandContextIntegrator.
+ *
+ * @author Brian Stansberry
+ * @version $Revision: 1.1 $
+ */
+public class DefaultOnDemandContextIntegrator implements OnDemandContextIntegrator
+{
+ private static final Logger log = Logger.getLogger(DefaultOnDemandContextIntegrator.class);
+
+ private final Set<ContextDemandAdapter> adapters = Collections.synchronizedSet(new HashSet<ContextDemandAdapter>());
+
+ private final Map<String, Mapper> mappers = Collections.synchronizedMap(new HashMap<String, Mapper>());
+
+ // ----------------------------------------------------------------- Public
+
+ /**
+ * Makes this object aware of the given {@link Mapper}, allowing on-demand
+ * contexts to be registered with it.
+ *
+ * @param serviceName name of the JBoss Web <code>Service</code> with
+ * which the service is associated. Cannot be <code>null</code>
+ * @param mapper the mapper. Cannot be <code>null</code>
+ */
+ public void registerMapper(String serviceName, Mapper mapper)
+ {
+ if (serviceName == null)
+ {
+ throw new IllegalArgumentException("Argument serviceName is null");
+ }
+ if (mapper == null)
+ {
+ throw new IllegalArgumentException("Argument mapper is null");
+ }
+ mappers.put(serviceName, mapper);
+ ContextDemandAdapter adapter = new ContextDemandAdapter(serviceName);
+ mapper.registerOnDemandContextMappingListener(adapter);
+ adapters.add(adapter);
+ }
+
+ // ------------------------------------------------ OnDemandContextListener
+
+ public void registerContextDemandListener(ContextDemandListener listener)
+ {
+ for (ContextDemandAdapter adapter : adapters)
+ {
+ adapter.registerContextDemandListener(listener);
+ }
+ }
+
+ public void removeContextDemandListener(ContextDemandListener listener)
+ {
+ for (ContextDemandAdapter adapter : adapters)
+ {
+ adapter.removeContextDemandListener(listener);
+ }
+ }
+
+ public void registerOnDemandContext(String serviceName, String hostName, String contextName)
+ {
+ Mapper mapper = mappers.get(serviceName);
+ if (mapper != null)
+ {
+ // ensure the path starts w/ slash or Mapper won't match it correctly
+ if (contextName.length() > 0 && ('/' != contextName.charAt(0)))
+ {
+ contextName = "/" + contextName;
+ }
+ mapper.addOnDemandContext(hostName, contextName);
+ }
+ else
+ {
+ log.warn("Cannot register on-demand context for unknown engine " + serviceName);
+ }
+ }
+
+ public void removeOnDemandContext(String serviceName, String hostName, String contextName)
+ {
+ Mapper mapper = mappers.get(serviceName);
+ if (mapper != null)
+ {
+ mapper.removeContext(hostName, contextName);
+ }
+ else
+ {
+ log.warn("Cannot remove on-demand context for unknown engine " + serviceName);
+ }
+ }
+
+ private class ContextDemandAdapter implements OnDemandContextMappingListener
+ {
+ private final String engineName;
+ private final Set<ContextDemandListener> contextDemandListeners =
+ Collections.synchronizedSet(new HashSet<ContextDemandListener>());
+
+ private ContextDemandAdapter(String engineName)
+ {
+ this.engineName = engineName;
+ }
+
+ public void onDemandContextMapped(String hostName, String contextName)
+ {
+ for (ContextDemandListener listener : contextDemandListeners)
+ {
+ listener.contextDemanded(this.engineName, hostName, contextName);
+ }
+ }
+
+ private void registerContextDemandListener(ContextDemandListener listener)
+ {
+ if (listener != null )
+ {
+ contextDemandListeners.add(listener);
+ }
+ }
+
+ private void removeContextDemandListener(ContextDemandListener listener)
+ {
+ if (listener != null )
+ {
+ contextDemandListeners.remove(listener);
+ }
+ }
+ }
+}
\ No newline at end of file
Deleted: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,86 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2010, 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.web.tomcat.service.ondemand;
-
-/**
- * Mediates between any {@link ContextDemandListener}s and JBoss Web, allowing
- * JBoss Web to be made aware of the presence of on-demand applications and
- * for the listeners to be notified when a user request for an on-demand
- * application has arrived. An implementation of this interface is responsible
- * for finding and interacting with the relevant JBoss Web components, freeing
- * the listeners from that responsibility.
- *
- * @author Brian Stansberry
- *
- * @version $Revision$
- */
-public interface OnDemandContextIntegrator
-{
- /**
- * Registers a listener to receive callbacks when a request is received
- * for an on-demand web application.
- *
- * @param listener the listener
- */
- void registerContextDemandListener(ContextDemandListener listener);
-
- /**
- * Removes a listener from the set of listeners receiving callbacks when a
- * request is received for an on-demand web application.
- *
- * @param listener the listener
- */
- void removeContextDemandListener(ContextDemandListener listener);
-
- /**
- * Configures JBoss Web to recognize requests for the given connectors, virtual
- * host and web application context as being for an as-yet-undeployed
- * "on-demand" web application.
- *
- * @param serviceName the name of the JBoss Web <code>Service</code> that
- * includes the connectors that will receive requests for
- * the on-demand web application. Cannot be <code>null</code>.
- * @param hostName the name of the JBoss Web <code>Host</code> that is the
- * virtual host for on-demand web application.
- * Cannot be <code>null</code>.
- * @param contextName the name of the on-demand web application context, i.e.
- * the context path portion of URLs that target it, with
- * any leading and trailing / removed
- */
- void registerOnDemandContext(String serviceName, String hostName, String contextName);
-
- /**
- * Configures JBoss Web to no longer recognize requests for the given
- * connectors, virtual host and web application context.
- *
- * @param serviceName the name of the JBoss Web <code>Service</code> that
- * includes the connectors that will receive requests for
- * the on-demand web application. Cannot be <code>null</code>.
- * @param hostName the name of the JBoss Web <code>Host</code> that is the
- * virtual host for on-demand web application. Cannot be <code>null</code>.
- * @param contextName the name of the on-demand web application context, i.e.
- * the context path portion of URLs that target it, with
- * any leading and trailing / removed
- */
- void removeOnDemandContext(String serviceName, String hostName, String contextName);
-
-}
\ No newline at end of file
Copied: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java (from rev 100917, trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java)
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java (rev 0)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextIntegrator.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,86 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.web.tomcat.service.ondemand;
+
+/**
+ * Mediates between any {@link ContextDemandListener}s and JBoss Web, allowing
+ * JBoss Web to be made aware of the presence of on-demand applications and
+ * for the listeners to be notified when a user request for an on-demand
+ * application has arrived. An implementation of this interface is responsible
+ * for finding and interacting with the relevant JBoss Web components, freeing
+ * the listeners from that responsibility.
+ *
+ * @author Brian Stansberry
+ *
+ * @version $Revision$
+ */
+public interface OnDemandContextIntegrator
+{
+ /**
+ * Registers a listener to receive callbacks when a request is received
+ * for an on-demand web application.
+ *
+ * @param listener the listener
+ */
+ void registerContextDemandListener(ContextDemandListener listener);
+
+ /**
+ * Removes a listener from the set of listeners receiving callbacks when a
+ * request is received for an on-demand web application.
+ *
+ * @param listener the listener
+ */
+ void removeContextDemandListener(ContextDemandListener listener);
+
+ /**
+ * Configures JBoss Web to recognize requests for the given connectors, virtual
+ * host and web application context as being for an as-yet-undeployed
+ * "on-demand" web application.
+ *
+ * @param serviceName the name of the JBoss Web <code>Service</code> that
+ * includes the connectors that will receive requests for
+ * the on-demand web application. Cannot be <code>null</code>.
+ * @param hostName the name of the JBoss Web <code>Host</code> that is the
+ * virtual host for on-demand web application.
+ * Cannot be <code>null</code>.
+ * @param contextName the name of the on-demand web application context, i.e.
+ * the context path portion of URLs that target it, with
+ * any leading and trailing / removed
+ */
+ void registerOnDemandContext(String serviceName, String hostName, String contextName);
+
+ /**
+ * Configures JBoss Web to no longer recognize requests for the given
+ * connectors, virtual host and web application context.
+ *
+ * @param serviceName the name of the JBoss Web <code>Service</code> that
+ * includes the connectors that will receive requests for
+ * the on-demand web application. Cannot be <code>null</code>.
+ * @param hostName the name of the JBoss Web <code>Host</code> that is the
+ * virtual host for on-demand web application. Cannot be <code>null</code>.
+ * @param contextName the name of the on-demand web application context, i.e.
+ * the context path portion of URLs that target it, with
+ * any leading and trailing / removed
+ */
+ void removeOnDemandContext(String serviceName, String hostName, String contextName);
+
+}
\ No newline at end of file
Deleted: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java 2010-02-12 15:20:11 UTC (rev 100917)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,708 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source.
- * Copyright 2010, 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.web.tomcat.service.ondemand;
-
-import java.io.IOException;
-import java.net.URI;
-import java.security.AccessController;
-import java.security.PrivilegedAction;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import org.jboss.logging.Logger;
-import org.jboss.profileservice.spi.NoSuchProfileException;
-import org.jboss.profileservice.spi.Profile;
-import org.jboss.profileservice.spi.ProfileFactory;
-import org.jboss.profileservice.spi.ProfileKey;
-import org.jboss.profileservice.spi.ProfileService;
-import org.jboss.profileservice.spi.metadata.ProfileMetaData;
-import org.jboss.profileservice.spi.metadata.ProfileSourceMetaData;
-import org.jboss.profileservice.spi.metadata.SubProfileMetaData;
-import org.jboss.system.server.profile.repository.metadata.AbstractProfileSourceMetaData;
-import org.jboss.system.server.profile.repository.metadata.BasicProfileMetaData;
-import org.jboss.system.server.profile.repository.metadata.BasicSubProfileMetaData;
-import org.jboss.system.server.profile.repository.metadata.HotDeploymentProfileSourceMetaData;
-import org.jboss.system.server.profile.repository.metadata.ImmutableProfileSourceMetaData;
-
-/**
- * {@link ContextDemandListener} that creates and registers a {@link ProfileService}
- * {@link Profile} and then {@link #activateProfile() activates it} when
- * it receives a notification that a web request wishes to access a targetted
- * application.
- *
- * TODO: deal with host name aliases and multiple contexts
- *
- * TODO: The ProfileService integration aspect of this class duplicates
- * equivalent functionality used for clustering's deploy-hasingleton directory
- * deployment. Both solve the same conceptual problem of an external event
- * triggering activation of a profile. Abstract this out and put it in a
- * shared location.
- *
- * @author Brian Stansberry
- * @version $Revision$
- */
-public class OnDemandContextProfileManager
-{
- public static final String DEFAULT_SERVICE_NAME = "jboss.web";
- public static final String DEFAULT_HOST_NAME = "localhost";
- public static final String DEFAULT_ROOT_WAR_PROFILE_NAME = "ROOT.war";
-
- /** The profile service */
- private ProfileService profileService;
- /** The factory for creating profiles */
- private ProfileFactory profileFactory;
- /** Integration hook into JBoss Web */
- private OnDemandContextIntegrator contextIntegrator;
-
- /** The list of URIs to scan */
- private List<URI> uriList = new CopyOnWriteArrayList<URI>();
-
- protected final Logger log = Logger.getLogger(getClass());
-
- /** Whether this node has activated its profile */
- private boolean activated;
-
- /** The profile service key domain */
- private String profileDomain;
-
- /** The profile service key server */
- private String profileServer;
-
- /** The profile service key name */
- private String profileName;
-
- /** The profile service key */
- private ProfileKey profileKey;
-
- /** Name of the JBoss Web service we associate with */
- private String serviceName = DEFAULT_SERVICE_NAME;
- /** Name of the JBoss Web virtual host we associate with */
- private String hostName = DEFAULT_HOST_NAME;
- /** Name of the JBoss Web context we associate with */
- private String contextName;
- /** contextName with a preceding / (if not root context) */
- private String contextPath; // TODO do something smarter
-
- private boolean activateOnDemand = true;
-
- private final ContextDemandListener contextDemandListener = new Listener();
-
- // ----------------------------------------------------------- Constructors
-
- /**
- * Create a new OnDemandContextProfileManager.
- */
- public OnDemandContextProfileManager()
- {
- super();
- }
-
- // ---------------------------------------------------------- Properties
-
- /**
- * Gets the list of URIs that will be included as the content of the
- * profile when it is activated.
- *
- * @return the list. Will not be <code>null</code>
- */
- public List<URI> getURIList()
- {
- return new ArrayList<URI>(uriList);
- }
-
- /**
- * Sets the list of URIs that will be included as the content of the
- * profile when it is activated.
- *
- * @param list the list. Cannot be <code>null</code>
- * @throws IOException
- * @throws IllegalArgumentException if <code>list</code> is <code>null</code>
- */
- public void setURIList(final List<URI> list) throws IOException
- {
- if (list == null)
- {
- throw new IllegalArgumentException("list argument cannot be null");
- }
-
- // start out with a fresh list
- uriList.clear();
-
- for(URI uri : list)
- {
- if( uri != null && uriList.add(uri) == true )
- {
- log.debug("Added URI: " + uri);
- }
- }
- log.debug("URI list: " + uriList);
- }
-
- /**
- * Returns the single URI that is to be associated with the profile, or
- * <code>null</code> if there is less than or more than one such URI.
- *
- * @return the URI or <code>null</code>
- */
- public URI getSingleURI()
- {
- List<URI> list = getURIList();
- return list.size() == 1 ? list.get(0) : null;
- }
-
- /**
- * Convenience method for {@link #setURIList(List) setting the list of URIs}
- * to include in the profile to a single URI.
- *
- * @param deploymentURI the URI. Cannot be <code>null</code>
- * @throws IOException
- * @throws IllegalArgumentException if deploymentURI is <code>null</code>
- */
- public void setSingleURI(URI deploymentURI) throws IOException
- {
- if (deploymentURI == null)
- {
- throw new IllegalArgumentException("deploymentURI argument cannot be null");
- }
- List<URI> list = Arrays.asList(deploymentURI);
- setURIList(list);
- }
-
- /**
- * Gets the value that should be used for the
- * {@link ProfileKey#getDomain() domain} portion of
- * the on-demand @{link Profile}'s {@link #getProfileKey() ProfileKey}.
- *
- * @return the domain, or <code>null</code> if not set
- */
- public String getProfileDomain()
- {
- return profileDomain;
- }
-
- /**
- * Sets the value that should be used for the
- * {@link ProfileKey#getDomain() domain} portion of
- * the singleton @{link Profile}'s {@link #getProfileKey() ProfileKey}.
- *
- * @param profileDomain the domain, or <code>null</code>
- */
- public void setProfileDomain(String profileDomain)
- {
- this.profileDomain = profileDomain;
- }
-
- /**
- * Gets the value that should be used for the
- * {@link ProfileKey#getServer() server} portion of
- * the on-demand @{link Profile}'s {@link #getProfileKey() ProfileKey}.
- *
- * @return the server, or <code>null</code> if not set
- */
- public String getProfileServer()
- {
- return profileServer;
- }
-
- /**
- * Sets the value that should be used for the
- * {@link ProfileKey#getServer() server} portion of
- * the on-demand @{link Profile}'s {@link #getProfileKey() ProfileKey}.
- *
- * @param profileServer the server, or <code>null</code>
- */
- public void setProfileServer(String profileServer)
- {
- this.profileServer = profileServer;
- }
-
- /**
- * Gets the value that should be used for the
- * {@link ProfileKey#getName() name} portion of
- * the on-demand @{link Profile}'s {@link #getProfileKey() ProfileKey}.
- *
- * @return the name, or <code>null</code> if not set and
- * {@link #setContextName(String) contextName} is also unset.
- */
- public String getProfileName()
- {
- if (profileName == null)
- {
- if (contextName != null)
- {
- if ("".equals(contextName))
- {
- profileName = DEFAULT_ROOT_WAR_PROFILE_NAME;
- }
- else
- {
- profileName = contextName + ".war";
- }
- }
- }
- return profileName;
- }
-
- /**
- * Sets the value that should be used for the
- * {@link ProfileKey#getName() name} portion of
- * the singleton @{link Profile}'s {@link #getProfileKey() ProfileKey}.
- *
- * @param profileName the name, or <code>null</code>
- */
- public void setProfileName(String profileName)
- {
- this.profileName = profileName;
- }
-
- /**
- * Gets whether this object has activated its profile.
- *
- * @return <code>true</code> if {@link #activateProfile()} has successfully
- * completed and {@link #releaseProfile()} has not been called;
- * <code>false</code> otherwise.
- */
- public boolean isActivated()
- {
- return activated;
- }
-
-
-
- public String getServiceName()
- {
- return serviceName;
- }
-
- public void setServiceName(String serviceName)
- {
- if (serviceName == null)
- {
- throw new IllegalArgumentException("serviceName is null");
- }
- this.serviceName = serviceName;
- }
-
- public String getHostName()
- {
- return hostName;
- }
-
- public void setHostName(String hostName)
- {
- if (hostName == null)
- {
- throw new IllegalArgumentException("hostName is null");
- }
- this.hostName = hostName;
- }
-
- public String getContextName()
- {
- return contextName;
- }
-
- public void setContextName(String contextName)
- {
- if (contextName == null)
- {
- throw new IllegalArgumentException("contextName is null");
- }
- if ("ROOT".equals(contextName) || "/ROOT".equals(contextName))
- {
- contextName = "";
- }
- this.contextName = contextName;
- }
-
- /**
- * Sets the ProfileService reference.
- *
- * @param profileService the profileService. Cannot be <code>null</code>
- *
- * @throws IllegalArgumentException if <code>profileService</code> is <code>null</code>
- */
- public void setProfileService(ProfileService profileService)
- {
- if (profileService == null)
- {
- throw new IllegalArgumentException("profileService is null");
- }
-
- this.profileService = profileService;
- }
-
- /**
- * Sets the factory that should be used to create the on-demand Profile.
- *
- * @param profileFactory the factory Cannot be <code>null</code>
- *
- * @throws IllegalArgumentException if <code>profileFactory</code> is <code>null</code>
- */
- public void setProfileFactory(ProfileFactory profileFactory)
- {
- if (profileFactory == null)
- {
- throw new IllegalArgumentException("profileFactory is null");
- }
- this.profileFactory = profileFactory;
- }
-
- /**
- * Sets the {@link OnDemandContextIntegrator} used to integrate with the
- * web server
- *
- * @param contextManager the manager. Cannot be <code>null</code>
- *
- * @throws IllegalArgumentException if <code>contextManager</code> is <code>null</code>
- */
- public void setOnDemandContextIntegrator(OnDemandContextIntegrator contextManager)
- {
- if (contextManager == null)
- {
- throw new IllegalArgumentException("contextManager is null");
- }
- this.contextIntegrator = contextManager;
- }
-
- /**
- * Gets whether the profile should be activated on during the {@link #start()}
- * phase of this bean's deployment rather than on receipt of an HTTP request.
- * This property allows a simple configuration to turn off the "on-demand"
- * behavior for environments (e.g. production servers) where a more
- * deterministic startup is appropriate.
- *
- * @return <code>false</code> if the profile should be activated as part of
- * startup of this bean; <code>true</code> if activation should
- * be deferred until an HTTP request is received. Default is
- * <code>true</code>
- *
- * @deprecated This is a temporary API for AS 6.0.0.M2; something else
- * may replace it in later releases
- */
- public boolean isActivateOnDemand()
- {
- return activateOnDemand;
- }
-
- /**
- * Sets whether the profile should be activated on during the {@link #start()}
- * phase of this bean's deployment rather than on receipt of an HTTP request.
- * This property allows a simple configuration to turn off the "on-demand"
- * behavior for environments (e.g. production servers) where a more
- * deterministic startup is appropriate.
- *
- * @param activateOnDemand <code>false</code> if the profile should be
- * activated as part of startup of this bean;
- * <code>true</code> if activation should be
- * deferred until an HTTP request is received.
- *
- * @deprecated This is a temporary API for AS 6.0.0.M2; something else
- * may replace it in later releases
- */
- public void setActivateOnDemand(boolean activateOnDemand)
- {
- this.activateOnDemand = activateOnDemand;
- }
-
- // ----------------------------------------------------------------- Public
-
- /**
- * Builds a profile from the {@link #getURIList() URI list} and registers
- * it under the configured {@link #getProfileKey()}.
- */
- public void start() throws Exception
- {
- if (this.profileFactory == null)
- {
- throw new IllegalStateException("Must configure ProfileFactory");
- }
-
- if (profileService == null)
- {
- throw new IllegalStateException("Must configure ProfileService");
- }
-
- if (contextIntegrator == null)
- {
- throw new IllegalStateException("Must configure OnDemandContextManager");
- }
-
- if (serviceName == null)
- {
- throw new IllegalStateException("Must configure serviceName");
- }
-
- if (hostName == null)
- {
- throw new IllegalStateException("Must configure hostName");
- }
-
- if (contextName == null)
- {
- throw new IllegalStateException("Must configure contextName");
- }
-
- if (uriList.size() == 0)
- {
- throw new IllegalStateException("Must configure URIList");
- }
-
- URI[] rootURIs = uriList.toArray(new URI[uriList.size()]);
- // TODO add dependencies on bootstrap profiles
- String[] rootSubProfiles = new String[0];
- // Create a hotdeployment profile
- // FIXME JBAS-7720 restore hot deploy capability (and make it configurable too)
- ProfileMetaData metadata = createProfileMetaData(false, rootURIs, rootSubProfiles);
-
- Profile profile = profileFactory.createProfile(getProfileKey(), metadata);
- profileService.registerProfile(profile);
-
- if (this.activateOnDemand)
- {
- contextIntegrator.registerContextDemandListener(contextDemandListener);
- contextPath = (contextName.length() == 0 || '/' == contextName.charAt(0) ? contextName : "/" + contextName);
- contextIntegrator.registerOnDemandContext(serviceName, hostName, contextPath);
- }
- else
- {
- // FIXME we don't validate as we expect the PS to do it at the end
- // of startup; need to check if this is correct
- activateProfile(false);
- }
- }
-
- /**
- * Unregisters the profile registered in {@link #start()}.
- */
- public void stop() throws Exception
- {
- ProfileKey profKey = null;
- try
- {
- profKey = getProfileKey();
- }
- catch (IllegalStateException e)
- {
- return;
- }
-
- if (profileService != null && profKey != null)
- {
- try
- {
- // Inactivate first if needed
- if (profileService.getActiveProfileKeys().contains(profKey))
- {
- releaseProfile();
- }
-
- profileService.unregisterProfile(profKey);
- }
- catch (NoSuchProfileException e)
- {
- log.warn("Could not unregister unknown profile " + profKey);
- }
- finally
- {
- if (this.contextIntegrator != null)
- {
- this.contextIntegrator.removeContextDemandListener(contextDemandListener);
- }
- }
- }
- }
-
- /**
- * Tells the ProfileService to
- * {@link ProfileService#activateProfile(ProfileKey) activate the on-demand profile}.
- */
- public void activateProfile() throws Exception
- {
- activateProfile(true);
- }
-
- /**
- * Gets the key for the {@link Profile} that we activate and release.
- *
- * @return the key. Will not return <code>null</code>
- *
- * @throws IllegalStateException if {@link #getProfileName()} returns <code>null</code>
- *
- * @see #getProfileDomain()
- * @see #getProfileServer()
- * @see #getProfileName()
- */
- public ProfileKey getProfileKey()
- {
- if (this.profileKey == null)
- {
- String name = getProfileName();
- if (name == null)
- {
- throw new IllegalStateException("Must configure profileName or contextName before calling getProfileKey()");
- }
- this.profileKey = new ProfileKey(getProfileDomain(), getProfileServer(), getProfileName());
- }
- return this.profileKey;
- }
-
- // -------------------------------------------------------------- Protected
-
- /**
- * Create a profile repository source meta data.
- *
- * @param type the repository type.
- * @param uri the uri
- * @return the profile source meta data.
- */
- protected ProfileSourceMetaData createSource(URI[] uris, boolean hotDeployment)
- {
- AbstractProfileSourceMetaData source = null;
- if(hotDeployment)
- {
- source = new HotDeploymentProfileSourceMetaData();
- }
- else
- {
- source = new ImmutableProfileSourceMetaData();
- }
- List<String> sources = new ArrayList<String>();
- for(URI uri : uris)
- sources.add(uri.toString());
- source.setSources(sources);
- return source;
- }
-
- // ---------------------------------------------------------------- Private
-
-
- /**
- * Create a profile meta data.
- *
- * @param name the profile name.
- * @param repositoryType the repository type.
- * @param uris the repository uris.
- * @param subProfiles a list of profile dependencies.
- * @return the profile meta data.
- */
- private ProfileMetaData createProfileMetaData(boolean hotDeployment, URI[] uris, String[] subProfiles)
- {
- // Create profile
- BasicProfileMetaData metaData = new BasicProfileMetaData();
- metaData.setDomain(getProfileDomain());
- metaData.setServer(getProfileServer());
- metaData.setName(getProfileName());
-
- // Create profile sources
- ProfileSourceMetaData source = createSource(uris, hotDeployment);
- metaData.setSource(source);
-
- List<SubProfileMetaData> profileList = new ArrayList<SubProfileMetaData>();
- for(String subProfile : subProfiles)
- {
- BasicSubProfileMetaData md = new BasicSubProfileMetaData();
- md.setName(subProfile);
- profileList.add(md);
- }
- metaData.setSubprofiles(profileList);
-
- return metaData;
- }
-
- private synchronized void activateProfile(boolean validate) throws Exception
- {
- if (this.profileService == null)
- {
- throw new IllegalStateException("Must configure the ProfileService");
- }
- ProfileKey profKey = getProfileKey();
- if (this.profileService.getActiveProfileKeys().contains(profKey) == false)
- {
- this.profileService.activateProfile(profKey);
- if (validate)
- {
- // Validate if the activation was successful
- this.profileService.validateProfile(profKey);
- }
-
- this.activated = true;
- }
- else
- {
- log.warn("Profile " + profKey + " is already activated");
- this.activated = true;
- }
-
- }
-
- /**
- * Tells the ProfileService to {@link ProfileService#releaseProfile(ProfileKey) release the profile}.
- * Called by the HASingletonController when we are no longer the singleton master.
- */
- private synchronized void releaseProfile() throws Exception
- {
- if (this.activated)
- {
- try
- {
- this.profileService.deactivateProfile(getProfileKey());
- }
- catch (NoSuchProfileException e)
- {
- log.warn("No Profile is registered under key " + getProfileKey());
- }
-
- this.activated = false;
- }
- }
-
- private class Listener implements ContextDemandListener
- {
- public void contextDemanded(String serviceName, String hostName, String contextName)
- {
- if (OnDemandContextProfileManager.this.contextPath.equals(contextName)
- && OnDemandContextProfileManager.this.hostName.equals(hostName)
- && OnDemandContextProfileManager.this.serviceName.equals(serviceName))
- {
- AccessController.doPrivileged(new PrivilegedAction<Object>()
- {
- public Object run()
- {
- try
- {
- OnDemandContextProfileManager.this.activateProfile();
- }
- catch (Exception e)
- {
- log.error("Unable to activate profile " + getProfileKey(), e);
- }
- return null;
- }
- });
- }
- }
- }
-
-}
Copied: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java (from rev 100917, trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java)
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java (rev 0)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/ondemand/OnDemandContextProfileManager.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -0,0 +1,708 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.web.tomcat.service.ondemand;
+
+import java.io.IOException;
+import java.net.URI;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+import org.jboss.logging.Logger;
+import org.jboss.profileservice.spi.NoSuchProfileException;
+import org.jboss.profileservice.spi.Profile;
+import org.jboss.profileservice.spi.ProfileFactory;
+import org.jboss.profileservice.spi.ProfileKey;
+import org.jboss.profileservice.spi.ProfileService;
+import org.jboss.profileservice.spi.metadata.ProfileMetaData;
+import org.jboss.profileservice.spi.metadata.ProfileSourceMetaData;
+import org.jboss.profileservice.spi.metadata.SubProfileMetaData;
+import org.jboss.system.server.profile.repository.metadata.AbstractProfileSourceMetaData;
+import org.jboss.system.server.profile.repository.metadata.BasicProfileMetaData;
+import org.jboss.system.server.profile.repository.metadata.BasicSubProfileMetaData;
+import org.jboss.system.server.profile.repository.metadata.HotDeploymentProfileSourceMetaData;
+import org.jboss.system.server.profile.repository.metadata.ImmutableProfileSourceMetaData;
+
+/**
+ * {@link ContextDemandListener} that creates and registers a {@link ProfileService}
+ * {@link Profile} and then {@link #activateProfile() activates it} when
+ * it receives a notification that a web request wishes to access a targetted
+ * application.
+ *
+ * TODO: deal with host name aliases and multiple contexts
+ *
+ * TODO: The ProfileService integration aspect of this class duplicates
+ * equivalent functionality used for clustering's deploy-hasingleton directory
+ * deployment. Both solve the same conceptual problem of an external event
+ * triggering activation of a profile. Abstract this out and put it in a
+ * shared location.
+ *
+ * @author Brian Stansberry
+ * @version $Revision$
+ */
+public class OnDemandContextProfileManager
+{
+ public static final String DEFAULT_SERVICE_NAME = "jboss.web";
+ public static final String DEFAULT_HOST_NAME = "localhost";
+ public static final String DEFAULT_ROOT_WAR_PROFILE_NAME = "ROOT.war";
+
+ /** The profile service */
+ private ProfileService profileService;
+ /** The factory for creating profiles */
+ private ProfileFactory profileFactory;
+ /** Integration hook into JBoss Web */
+ private OnDemandContextIntegrator contextIntegrator;
+
+ /** The list of URIs to scan */
+ private List<URI> uriList = new CopyOnWriteArrayList<URI>();
+
+ protected final Logger log = Logger.getLogger(getClass());
+
+ /** Whether this node has activated its profile */
+ private boolean activated;
+
+ /** The profile service key domain */
+ private String profileDomain;
+
+ /** The profile service key server */
+ private String profileServer;
+
+ /** The profile service key name */
+ private String profileName;
+
+ /** The profile service key */
+ private ProfileKey profileKey;
+
+ /** Name of the JBoss Web service we associate with */
+ private String serviceName = DEFAULT_SERVICE_NAME;
+ /** Name of the JBoss Web virtual host we associate with */
+ private String hostName = DEFAULT_HOST_NAME;
+ /** Name of the JBoss Web context we associate with */
+ private String contextName;
+ /** contextName with a preceding / (if not root context) */
+ private String contextPath; // TODO do something smarter
+
+ private boolean activateOnDemand = true;
+
+ private final ContextDemandListener contextDemandListener = new Listener();
+
+ // ----------------------------------------------------------- Constructors
+
+ /**
+ * Create a new OnDemandContextProfileManager.
+ */
+ public OnDemandContextProfileManager()
+ {
+ super();
+ }
+
+ // ---------------------------------------------------------- Properties
+
+ /**
+ * Gets the list of URIs that will be included as the content of the
+ * profile when it is activated.
+ *
+ * @return the list. Will not be <code>null</code>
+ */
+ public List<URI> getURIList()
+ {
+ return new ArrayList<URI>(uriList);
+ }
+
+ /**
+ * Sets the list of URIs that will be included as the content of the
+ * profile when it is activated.
+ *
+ * @param list the list. Cannot be <code>null</code>
+ * @throws IOException
+ * @throws IllegalArgumentException if <code>list</code> is <code>null</code>
+ */
+ public void setURIList(final List<URI> list) throws IOException
+ {
+ if (list == null)
+ {
+ throw new IllegalArgumentException("list argument cannot be null");
+ }
+
+ // start out with a fresh list
+ uriList.clear();
+
+ for(URI uri : list)
+ {
+ if( uri != null && uriList.add(uri) == true )
+ {
+ log.debug("Added URI: " + uri);
+ }
+ }
+ log.debug("URI list: " + uriList);
+ }
+
+ /**
+ * Returns the single URI that is to be associated with the profile, or
+ * <code>null</code> if there is less than or more than one such URI.
+ *
+ * @return the URI or <code>null</code>
+ */
+ public URI getSingleURI()
+ {
+ List<URI> list = getURIList();
+ return list.size() == 1 ? list.get(0) : null;
+ }
+
+ /**
+ * Convenience method for {@link #setURIList(List) setting the list of URIs}
+ * to include in the profile to a single URI.
+ *
+ * @param deploymentURI the URI. Cannot be <code>null</code>
+ * @throws IOException
+ * @throws IllegalArgumentException if deploymentURI is <code>null</code>
+ */
+ public void setSingleURI(URI deploymentURI) throws IOException
+ {
+ if (deploymentURI == null)
+ {
+ throw new IllegalArgumentException("deploymentURI argument cannot be null");
+ }
+ List<URI> list = Arrays.asList(deploymentURI);
+ setURIList(list);
+ }
+
+ /**
+ * Gets the value that should be used for the
+ * {@link ProfileKey#getDomain() domain} portion of
+ * the on-demand @{link Profile}'s {@link #getProfileKey() ProfileKey}.
+ *
+ * @return the domain, or <code>null</code> if not set
+ */
+ public String getProfileDomain()
+ {
+ return profileDomain;
+ }
+
+ /**
+ * Sets the value that should be used for the
+ * {@link ProfileKey#getDomain() domain} portion of
+ * the singleton @{link Profile}'s {@link #getProfileKey() ProfileKey}.
+ *
+ * @param profileDomain the domain, or <code>null</code>
+ */
+ public void setProfileDomain(String profileDomain)
+ {
+ this.profileDomain = profileDomain;
+ }
+
+ /**
+ * Gets the value that should be used for the
+ * {@link ProfileKey#getServer() server} portion of
+ * the on-demand @{link Profile}'s {@link #getProfileKey() ProfileKey}.
+ *
+ * @return the server, or <code>null</code> if not set
+ */
+ public String getProfileServer()
+ {
+ return profileServer;
+ }
+
+ /**
+ * Sets the value that should be used for the
+ * {@link ProfileKey#getServer() server} portion of
+ * the on-demand @{link Profile}'s {@link #getProfileKey() ProfileKey}.
+ *
+ * @param profileServer the server, or <code>null</code>
+ */
+ public void setProfileServer(String profileServer)
+ {
+ this.profileServer = profileServer;
+ }
+
+ /**
+ * Gets the value that should be used for the
+ * {@link ProfileKey#getName() name} portion of
+ * the on-demand @{link Profile}'s {@link #getProfileKey() ProfileKey}.
+ *
+ * @return the name, or <code>null</code> if not set and
+ * {@link #setContextName(String) contextName} is also unset.
+ */
+ public String getProfileName()
+ {
+ if (profileName == null)
+ {
+ if (contextName != null)
+ {
+ if ("".equals(contextName))
+ {
+ profileName = DEFAULT_ROOT_WAR_PROFILE_NAME;
+ }
+ else
+ {
+ profileName = contextName + ".war";
+ }
+ }
+ }
+ return profileName;
+ }
+
+ /**
+ * Sets the value that should be used for the
+ * {@link ProfileKey#getName() name} portion of
+ * the singleton @{link Profile}'s {@link #getProfileKey() ProfileKey}.
+ *
+ * @param profileName the name, or <code>null</code>
+ */
+ public void setProfileName(String profileName)
+ {
+ this.profileName = profileName;
+ }
+
+ /**
+ * Gets whether this object has activated its profile.
+ *
+ * @return <code>true</code> if {@link #activateProfile()} has successfully
+ * completed and {@link #releaseProfile()} has not been called;
+ * <code>false</code> otherwise.
+ */
+ public boolean isActivated()
+ {
+ return activated;
+ }
+
+
+
+ public String getServiceName()
+ {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName)
+ {
+ if (serviceName == null)
+ {
+ throw new IllegalArgumentException("serviceName is null");
+ }
+ this.serviceName = serviceName;
+ }
+
+ public String getHostName()
+ {
+ return hostName;
+ }
+
+ public void setHostName(String hostName)
+ {
+ if (hostName == null)
+ {
+ throw new IllegalArgumentException("hostName is null");
+ }
+ this.hostName = hostName;
+ }
+
+ public String getContextName()
+ {
+ return contextName;
+ }
+
+ public void setContextName(String contextName)
+ {
+ if (contextName == null)
+ {
+ throw new IllegalArgumentException("contextName is null");
+ }
+ if ("ROOT".equals(contextName) || "/ROOT".equals(contextName))
+ {
+ contextName = "";
+ }
+ this.contextName = contextName;
+ }
+
+ /**
+ * Sets the ProfileService reference.
+ *
+ * @param profileService the profileService. Cannot be <code>null</code>
+ *
+ * @throws IllegalArgumentException if <code>profileService</code> is <code>null</code>
+ */
+ public void setProfileService(ProfileService profileService)
+ {
+ if (profileService == null)
+ {
+ throw new IllegalArgumentException("profileService is null");
+ }
+
+ this.profileService = profileService;
+ }
+
+ /**
+ * Sets the factory that should be used to create the on-demand Profile.
+ *
+ * @param profileFactory the factory Cannot be <code>null</code>
+ *
+ * @throws IllegalArgumentException if <code>profileFactory</code> is <code>null</code>
+ */
+ public void setProfileFactory(ProfileFactory profileFactory)
+ {
+ if (profileFactory == null)
+ {
+ throw new IllegalArgumentException("profileFactory is null");
+ }
+ this.profileFactory = profileFactory;
+ }
+
+ /**
+ * Sets the {@link OnDemandContextIntegrator} used to integrate with the
+ * web server
+ *
+ * @param contextManager the manager. Cannot be <code>null</code>
+ *
+ * @throws IllegalArgumentException if <code>contextManager</code> is <code>null</code>
+ */
+ public void setOnDemandContextIntegrator(OnDemandContextIntegrator contextManager)
+ {
+ if (contextManager == null)
+ {
+ throw new IllegalArgumentException("contextManager is null");
+ }
+ this.contextIntegrator = contextManager;
+ }
+
+ /**
+ * Gets whether the profile should be activated on during the {@link #start()}
+ * phase of this bean's deployment rather than on receipt of an HTTP request.
+ * This property allows a simple configuration to turn off the "on-demand"
+ * behavior for environments (e.g. production servers) where a more
+ * deterministic startup is appropriate.
+ *
+ * @return <code>false</code> if the profile should be activated as part of
+ * startup of this bean; <code>true</code> if activation should
+ * be deferred until an HTTP request is received. Default is
+ * <code>true</code>
+ *
+ * @deprecated This is a temporary API for AS 6.0.0.M2; something else
+ * may replace it in later releases
+ */
+ public boolean isActivateOnDemand()
+ {
+ return activateOnDemand;
+ }
+
+ /**
+ * Sets whether the profile should be activated on during the {@link #start()}
+ * phase of this bean's deployment rather than on receipt of an HTTP request.
+ * This property allows a simple configuration to turn off the "on-demand"
+ * behavior for environments (e.g. production servers) where a more
+ * deterministic startup is appropriate.
+ *
+ * @param activateOnDemand <code>false</code> if the profile should be
+ * activated as part of startup of this bean;
+ * <code>true</code> if activation should be
+ * deferred until an HTTP request is received.
+ *
+ * @deprecated This is a temporary API for AS 6.0.0.M2; something else
+ * may replace it in later releases
+ */
+ public void setActivateOnDemand(boolean activateOnDemand)
+ {
+ this.activateOnDemand = activateOnDemand;
+ }
+
+ // ----------------------------------------------------------------- Public
+
+ /**
+ * Builds a profile from the {@link #getURIList() URI list} and registers
+ * it under the configured {@link #getProfileKey()}.
+ */
+ public void start() throws Exception
+ {
+ if (this.profileFactory == null)
+ {
+ throw new IllegalStateException("Must configure ProfileFactory");
+ }
+
+ if (profileService == null)
+ {
+ throw new IllegalStateException("Must configure ProfileService");
+ }
+
+ if (contextIntegrator == null)
+ {
+ throw new IllegalStateException("Must configure OnDemandContextManager");
+ }
+
+ if (serviceName == null)
+ {
+ throw new IllegalStateException("Must configure serviceName");
+ }
+
+ if (hostName == null)
+ {
+ throw new IllegalStateException("Must configure hostName");
+ }
+
+ if (contextName == null)
+ {
+ throw new IllegalStateException("Must configure contextName");
+ }
+
+ if (uriList.size() == 0)
+ {
+ throw new IllegalStateException("Must configure URIList");
+ }
+
+ URI[] rootURIs = uriList.toArray(new URI[uriList.size()]);
+ // TODO add dependencies on bootstrap profiles
+ String[] rootSubProfiles = new String[0];
+ // Create a hotdeployment profile
+ // FIXME JBAS-7720 restore hot deploy capability (and make it configurable too)
+ ProfileMetaData metadata = createProfileMetaData(false, rootURIs, rootSubProfiles);
+
+ Profile profile = profileFactory.createProfile(getProfileKey(), metadata);
+ profileService.registerProfile(profile);
+
+ if (this.activateOnDemand)
+ {
+ contextIntegrator.registerContextDemandListener(contextDemandListener);
+ contextPath = (contextName.length() == 0 || '/' == contextName.charAt(0) ? contextName : "/" + contextName);
+ contextIntegrator.registerOnDemandContext(serviceName, hostName, contextPath);
+ }
+ else
+ {
+ // FIXME we don't validate as we expect the PS to do it at the end
+ // of startup; need to check if this is correct
+ activateProfile(false);
+ }
+ }
+
+ /**
+ * Unregisters the profile registered in {@link #start()}.
+ */
+ public void stop() throws Exception
+ {
+ ProfileKey profKey = null;
+ try
+ {
+ profKey = getProfileKey();
+ }
+ catch (IllegalStateException e)
+ {
+ return;
+ }
+
+ if (profileService != null && profKey != null)
+ {
+ try
+ {
+ // Inactivate first if needed
+ if (profileService.getActiveProfileKeys().contains(profKey))
+ {
+ releaseProfile();
+ }
+
+ profileService.unregisterProfile(profKey);
+ }
+ catch (NoSuchProfileException e)
+ {
+ log.warn("Could not unregister unknown profile " + profKey);
+ }
+ finally
+ {
+ if (this.contextIntegrator != null)
+ {
+ this.contextIntegrator.removeContextDemandListener(contextDemandListener);
+ }
+ }
+ }
+ }
+
+ /**
+ * Tells the ProfileService to
+ * {@link ProfileService#activateProfile(ProfileKey) activate the on-demand profile}.
+ */
+ public void activateProfile() throws Exception
+ {
+ activateProfile(true);
+ }
+
+ /**
+ * Gets the key for the {@link Profile} that we activate and release.
+ *
+ * @return the key. Will not return <code>null</code>
+ *
+ * @throws IllegalStateException if {@link #getProfileName()} returns <code>null</code>
+ *
+ * @see #getProfileDomain()
+ * @see #getProfileServer()
+ * @see #getProfileName()
+ */
+ public ProfileKey getProfileKey()
+ {
+ if (this.profileKey == null)
+ {
+ String name = getProfileName();
+ if (name == null)
+ {
+ throw new IllegalStateException("Must configure profileName or contextName before calling getProfileKey()");
+ }
+ this.profileKey = new ProfileKey(getProfileDomain(), getProfileServer(), getProfileName());
+ }
+ return this.profileKey;
+ }
+
+ // -------------------------------------------------------------- Protected
+
+ /**
+ * Create a profile repository source meta data.
+ *
+ * @param type the repository type.
+ * @param uri the uri
+ * @return the profile source meta data.
+ */
+ protected ProfileSourceMetaData createSource(URI[] uris, boolean hotDeployment)
+ {
+ AbstractProfileSourceMetaData source = null;
+ if(hotDeployment)
+ {
+ source = new HotDeploymentProfileSourceMetaData();
+ }
+ else
+ {
+ source = new ImmutableProfileSourceMetaData();
+ }
+ List<String> sources = new ArrayList<String>();
+ for(URI uri : uris)
+ sources.add(uri.toString());
+ source.setSources(sources);
+ return source;
+ }
+
+ // ---------------------------------------------------------------- Private
+
+
+ /**
+ * Create a profile meta data.
+ *
+ * @param name the profile name.
+ * @param repositoryType the repository type.
+ * @param uris the repository uris.
+ * @param subProfiles a list of profile dependencies.
+ * @return the profile meta data.
+ */
+ private ProfileMetaData createProfileMetaData(boolean hotDeployment, URI[] uris, String[] subProfiles)
+ {
+ // Create profile
+ BasicProfileMetaData metaData = new BasicProfileMetaData();
+ metaData.setDomain(getProfileDomain());
+ metaData.setServer(getProfileServer());
+ metaData.setName(getProfileName());
+
+ // Create profile sources
+ ProfileSourceMetaData source = createSource(uris, hotDeployment);
+ metaData.setSource(source);
+
+ List<SubProfileMetaData> profileList = new ArrayList<SubProfileMetaData>();
+ for(String subProfile : subProfiles)
+ {
+ BasicSubProfileMetaData md = new BasicSubProfileMetaData();
+ md.setName(subProfile);
+ profileList.add(md);
+ }
+ metaData.setSubprofiles(profileList);
+
+ return metaData;
+ }
+
+ private synchronized void activateProfile(boolean validate) throws Exception
+ {
+ if (this.profileService == null)
+ {
+ throw new IllegalStateException("Must configure the ProfileService");
+ }
+ ProfileKey profKey = getProfileKey();
+ if (this.profileService.getActiveProfileKeys().contains(profKey) == false)
+ {
+ this.profileService.activateProfile(profKey);
+ if (validate)
+ {
+ // Validate if the activation was successful
+ this.profileService.validateProfile(profKey);
+ }
+
+ this.activated = true;
+ }
+ else
+ {
+ log.warn("Profile " + profKey + " is already activated");
+ this.activated = true;
+ }
+
+ }
+
+ /**
+ * Tells the ProfileService to {@link ProfileService#releaseProfile(ProfileKey) release the profile}.
+ * Called by the HASingletonController when we are no longer the singleton master.
+ */
+ private synchronized void releaseProfile() throws Exception
+ {
+ if (this.activated)
+ {
+ try
+ {
+ this.profileService.deactivateProfile(getProfileKey());
+ }
+ catch (NoSuchProfileException e)
+ {
+ log.warn("No Profile is registered under key " + getProfileKey());
+ }
+
+ this.activated = false;
+ }
+ }
+
+ private class Listener implements ContextDemandListener
+ {
+ public void contextDemanded(String serviceName, String hostName, String contextName)
+ {
+ if (OnDemandContextProfileManager.this.contextPath.equals(contextName)
+ && OnDemandContextProfileManager.this.hostName.equals(hostName)
+ && OnDemandContextProfileManager.this.serviceName.equals(serviceName))
+ {
+ AccessController.doPrivileged(new PrivilegedAction<Object>()
+ {
+ public Object run()
+ {
+ try
+ {
+ OnDemandContextProfileManager.this.activateProfile();
+ }
+ catch (Exception e)
+ {
+ log.error("Unable to activate profile " + getProfileKey(), e);
+ }
+ return null;
+ }
+ });
+ }
+ }
+ }
+
+}
Modified: branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/session/ClusteredSession.java
===================================================================
--- branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/session/ClusteredSession.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/main/java/org/jboss/web/tomcat/service/session/ClusteredSession.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1995,7 +1995,7 @@
* Return the <code>isValid</code> flag for this session without any expiration
* check.
*/
- private boolean isValidInternal()
+ public boolean isValidInternal()
{
return (this.isValid || this.expiring);
}
Modified: branches/vfs3-int/tomcat/src/resources/war-deployers-jboss-beans.xml
===================================================================
--- branches/vfs3-int/tomcat/src/resources/war-deployers-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/resources/war-deployers-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -42,6 +42,10 @@
<bean name="WebAnnotationMetaDataDeployer" class="org.jboss.web.deployers.WarAnnotationMetaDataDeployer">
<property name="relativeOrder">2005</property>
<property name="metaDataCompleteIsDefault">false</property>
+ <!-- Order this after AopMetaDataDeployer *if it is present* -->
+ <install method="addInput">
+ <parameter class="java.lang.String">org.jboss.aop.asintegration.jboss5.AopMetaDataDeployerOutput</parameter>
+ </install>
</bean>
<!-- See JBAS-6062 -->
Modified: branches/vfs3-int/tomcat/src/webapps/ROOT.war/index.html
===================================================================
--- branches/vfs3-int/tomcat/src/webapps/ROOT.war/index.html 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/tomcat/src/webapps/ROOT.war/index.html 2010-02-12 17:13:14 UTC (rev 100922)
@@ -2,7 +2,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
- <title>Welcome to JBoss™</title>
+ <title>Welcome to JBoss AS</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="StyleSheet" href="css/jboss.css" type="text/css"/>
</head>
@@ -16,26 +16,28 @@
<div id="navigation_bar"></div>
<!-- header end -->
- <h3>JBoss Online Resources</h3>
+ <h3>Manage this JBoss AS Instance</h3>
<ul>
+ <li><a href="/admin-console/">Administration Console</a></li>
+ <li><a href="/jmx-console/">JMX Console</a></li>
+ <li><a href="/status">Tomcat status</a>
+ <a href="/status?full=true">(full)</a>
+ <a href="/status?XML=true">(XML)</a></li>
+ </ul>
+
+ <h3>JBoss AS Online Resources</h3>
+ <ul>
<li><a href="http://www.jboss.org/jbossas/docs">JBoss AS Documentation</a></li>
<li><a href="http://wiki.jboss.org">JBoss Wiki</a></li>
- <li><a href="http://jira.jboss.org/jira/browse/JBAS">JBoss JIRA</a></li>
+ <li><a href="http://jira.jboss.org/jira/browse/JBAS">JBoss AS JIRA</a></li>
<li><a href="http://www.jboss.org/index.html?module=bb">JBoss Forums</a></li>
+ <li><a href="https://lists.jboss.org/">JBoss Mailing Lists</a></li>
</ul>
- <h3>JBoss Management</h3>
- <ul>
- <li><a href="/status">Tomcat status</a>
- <a href="/status?full=true">(full)</a>
- <a href="/status?XML=true">(XML)</a></li>
- <li><a href="/jmx-console/">JMX Console</a></li>
- </ul>
-
<!-- footer begin -->
<div id="footer">
<div id="credits">
- <a href="http://www.jboss.org/jbossas">JBoss™ Application Server</a>
+ <a href="http://www.jboss.org/jbossas">JBoss Application Server</a>
</div>
<div id="footer_bar"> </div>
</div>
Modified: branches/vfs3-int/varia/.classpath
===================================================================
--- branches/vfs3-int/varia/.classpath 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/varia/.classpath 2010-02-12 17:13:14 UTC (rev 100922)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="org/jboss/varia/stats/DataSourceInterceptorJDK5.java" kind="src" output="target/classes" path="src/main/java"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="target/classes"/>
</classpath>
Modified: branches/vfs3-int/varia/pom.xml
===================================================================
--- branches/vfs3-int/varia/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/varia/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (varia module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Modified: branches/vfs3-int/varia/src/main/java/org/jboss/monitor/services/ScriptingListener.java
===================================================================
--- branches/vfs3-int/varia/src/main/java/org/jboss/monitor/services/ScriptingListener.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/varia/src/main/java/org/jboss/monitor/services/ScriptingListener.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -23,6 +23,7 @@
import java.util.LinkedList;
import java.util.List;
+import java.util.concurrent.atomic.AtomicLong;
import javax.management.MBeanServer;
import javax.management.Notification;
@@ -34,32 +35,30 @@
import org.jboss.monitor.alarm.AlarmManager;
import org.jboss.system.ListenerServiceMBeanSupport;
-import EDU.oswego.cs.dl.util.concurrent.SynchronizedLong;
-
/**
* A simple listener that can subscribe for any combination
* of notifications, and asynchronously process them using
* a script written using any of the languages supported by
* the apache Bean Scripting Framework (BSF).
- *
+ *
* The following variables are setup for the script to use:
- *
+ *
* "log" - service Logger
* "server" - the MBeanServer
* "manager" - alarm manager helper
*
* "notification" - the Notification to be processed
* "handback" - the Object sent with the notification
- *
+ *
* By setting up a Timer using the TimerService to periodicaly
* emit notifications, we can use those notifications as triggers
* for performing any sort of polling operation.
- *
+ *
* One of the intented uses of this service is to use the "manager"
* (see org.jboss.monitor.alarm.AlarmManager) in the script,
* help maintain a list of active system alarms in the
* ActiveAlarmTable service.
- *
+ *
* @author <a href="mailto:dimitris at jboss.org">Dimitris Andreadis</a>
* @version $Revision$
*/
@@ -67,10 +66,10 @@
implements ScriptingListenerMBean
{
// Private Data --------------------------------------------------
-
+
/** The Script */
private String script;
-
+
/** The language the script is written into */
private String language;
@@ -79,47 +78,47 @@
/** Set to deliver notification directly */
private ObjectName targetListener;
-
+
/** The number of notifications received/enqueued */
- private SynchronizedLong notificationsReceived;
-
+ private AtomicLong notificationsReceived;
+
/** The number of notifications processed/dequeued by the script */
- private SynchronizedLong notificationsProcessed;
-
+ private AtomicLong notificationsProcessed;
+
/** The total time (msecs) spent executing the script */
- private SynchronizedLong totalProcessingTime;
-
+ private AtomicLong totalProcessingTime;
+
/** Bean Scripting Framework entry point */
private BSFManager manager;
-
+
/** Enqueued notifications */
private List queue;
-
+
/** Signals stop processing */
private boolean stopRequested;
/** The thread running the script */
private Thread processorThread;
-
+
/** The alarm manager helper */
private AlarmManager alm = new AlarmManager(this);
-
+
// Constructors --------------------------------------------------
-
+
/**
* CTOR
*/
public ScriptingListener()
{
queue = new LinkedList();
-
- notificationsReceived = new SynchronizedLong(0);
- notificationsProcessed = new SynchronizedLong(0);
- totalProcessingTime = new SynchronizedLong(0);
+
+ notificationsReceived = new AtomicLong(0);
+ notificationsProcessed = new AtomicLong(0);
+ totalProcessingTime = new AtomicLong(0);
}
-
+
// ScriptNotificationListenerMBean Implementation ----------------
-
+
/**
* @jmx:managed-attribute
*/
@@ -135,7 +134,7 @@
{
return script;
}
-
+
/**
* @jmx:managed-attribute
*/
@@ -151,7 +150,7 @@
{
return language;
}
-
+
/**
* @jmx:managed-attribute
*/
@@ -167,7 +166,7 @@
{
return this.dynamicSubscriptions;
}
-
+
/**
* @jmx:managed-attribute
*/
@@ -183,7 +182,7 @@
{
return notificationsProcessed.get();
}
-
+
/**
* @jmx:managed-attribute
*/
@@ -191,57 +190,57 @@
{
return totalProcessingTime.get();
}
-
+
/**
* @jmx:managed-attribute
*/
public long getAverageProcessingTime()
{
long processed = notificationsProcessed.get();
-
+
return (processed == 0) ? 0 : totalProcessingTime.get() / processed;
}
-
+
// Lifecycle control (ServiceMBeanSupport) -----------------------
-
+
/**
- * Start
+ * Start
*/
public void startService() throws Exception
{
log.debug("Initializing BSFManager for language '" + language + "'");
-
+
// This is needed until BSF adds it
BSFManager.registerScriptingEngine(
- "groovy",
- "org.codehaus.groovy.bsf.GroovyEngine",
+ "groovy",
+ "org.codehaus.groovy.bsf.GroovyEngine",
new String[] { "groovy", "gy" }
- );
-
+ );
+
// I suppose we need one BSFManager per processing thread
manager = new BSFManager();
-
+
manager.setClassLoader(Thread.currentThread().getContextClassLoader());
manager.loadScriptingEngine(language);
manager.declareBean("log", log, Logger.class);
manager.declareBean("server", server, MBeanServer.class);
manager.declareBean("manager", alm, AlarmManager.class);
-
+
// test with a dummy notification first, to see if the script is valid
Notification testNotification = new Notification("jboss.script.test", serviceName, 0);
manager.declareBean("notification", testNotification, Notification.class);
manager.declareBean("handback", "", Object.class);
-
+
manager.exec(language, "in-memory-script", 0, 0, script);
-
+
// Start the ScriptProcessor in its own thread
processorThread = new Thread(new ScriptProcessor(), "ScriptProcessor[" + serviceName + "]");
processorThread.start();
-
+
// subscribe for notifications
super.subscribe(dynamicSubscriptions);
}
-
+
/**
* Stop
*/
@@ -249,18 +248,18 @@
{
// unsubscribe for notifications
super.unsubscribe();
-
+
log.debug("Stopping " + processorThread.getName());
-
+
// tell the ScriptProcessor to stop
stopRequested = true;
-
+
// notify the processing thread in case it is waiting on the queue
synchronized (queue)
{
- queue.notify();
+ queue.notify();
}
-
+
try
{
// wait for the processor to finish, but not for too long
@@ -271,35 +270,35 @@
// set interrupted status
Thread.currentThread().interrupt();
}
-
+
// cleanup
queue.clear();
manager.terminate();
}
-
+
// ListenerServiceMBeanSupport overrides -------------------------
-
+
/**
* Overriden to add handling!
*/
public void handleNotification2(Notification notification, Object handback)
{
// count the received notifications
- notificationsReceived.increment();
-
+ notificationsReceived.incrementAndGet();
+
// append the received notification to the end of the list,
- // for processing from a different thread
+ // for processing from a different thread
synchronized (queue)
{
queue.add(new QueueEntry(notification, handback));
-
+
// hint to the processing thread to kick-in
queue.notify();
}
}
-
+
// Inner ---------------------------------------------------------
-
+
/**
* Simple data holder
*/
@@ -307,14 +306,14 @@
{
public Notification notification;
public Object handback;
-
+
public QueueEntry(Notification notification, Object handback)
{
this.notification = notification;
this.handback = handback;
}
}
-
+
/**
* Inner class to encapsulate script execution logic
*/
@@ -375,8 +374,8 @@
// measure time spent processing the script
long stop = System.currentTimeMillis();
- totalProcessingTime.add(stop - start);
- notificationsProcessed.increment();
+ totalProcessingTime.addAndGet(stop - start);
+ notificationsProcessed.incrementAndGet();
}
log.debug("Stopped thread: " + name);
}
Modified: branches/vfs3-int/varia/src/resources/logging/logmanager-jboss-beans.xml
===================================================================
--- branches/vfs3-int/varia/src/resources/logging/logmanager-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/varia/src/resources/logging/logmanager-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -71,47 +71,4 @@
<inject bean="JBossLogManagerClassLoaderContextSelector"/>
</property>
</bean>
-
- <!--
- ~ These three beans define the Input/OutputStreams required for handling stdio
- -->
- <bean name="JBossStdioSystemOutStream" class="org.jboss.stdio.LoggingOutputStream">
- <constructor>
- <parameter>STDOUT</parameter>
- <parameter>INFO</parameter>
- </constructor>
- </bean>
-
- <bean name="JBossStdioSystemErrStream" class="org.jboss.stdio.LoggingOutputStream">
- <constructor>
- <parameter>STDERR</parameter>
- <parameter>ERROR</parameter>
- </constructor>
- </bean>
-
- <bean name="JBossStdioSystemInStream" class="org.jboss.stdio.NullInputStream">
- <constructor factoryMethod="getInstance"/>
- </bean>
-
- <!--
- ~ These three beans install the above streams into the system stdio fields.
- -->
- <bean name="JBossStdioContext" class="org.jboss.stdio.StdioContext">
- <constructor factoryMethod="create">
- <parameter><inject bean="JBossStdioSystemInStream"/></parameter>
- <parameter class="java.io.OutputStream"><inject bean="JBossStdioSystemOutStream"/></parameter>
- <parameter><inject bean="JBossStdioSystemErrStream"/></parameter>
- </constructor>
- </bean>
-
- <bean name="JBossStdioService" class="org.jboss.stdio.StdioService">
- <depends>JBossStdioContext</depends>
- </bean>
-
- <bean name="JBossStdioContextSelector" class="org.jboss.stdio.SimpleStdioContextSelector">
- <constructor>
- <parameter><inject bean="JBossStdioContext"/></parameter>
- </constructor>
- <start method="install"/>
- </bean>
</deployment>
Modified: branches/vfs3-int/varia/src/resources/xnio/xnio-jboss-beans.xml
===================================================================
--- branches/vfs3-int/varia/src/resources/xnio/xnio-jboss-beans.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/varia/src/resources/xnio/xnio-jboss-beans.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -2,7 +2,7 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
-<threads xmlns="urn:jboss:threads:2.0">
+ <threads xmlns="urn:jboss:threads:2.0">
<thread-group name="XnioThreadGroup" group-name="xnio">
<parent-thread-group name="SystemThreadGroup"/>
</thread-group>
@@ -14,21 +14,19 @@
<thread-factory name="XnioThreadFactory" thread-name-pattern="xnio-pool%f-%t">
<thread-group name="XnioSelectorThreadGroup"/>
</thread-factory>
-
- <direct-executor name="XnioHandlerExecutor"/>
</threads>
- <bean mode="On Demand" name="XnioProvider" class="org.jboss.xnio.Xnio">
- <constructor factoryClass="org.jboss.xnio.nio.NioXnio" factoryMethod="create">
- <parameter class="java.util.concurrent.Executor">
- <inject bean="XnioHandlerExecutor"/>
- </parameter>
- <parameter class="java.util.concurrent.ThreadFactory">
- <inject bean="XnioThreadFactory"/>
- </parameter>
- <parameter class="int">3</parameter>
- <parameter class="int">1</parameter>
- <parameter class="int">1</parameter>
- </constructor>
- </bean>
+ <xnio xmlns="urn:jboss:xnio:2.1" provider="XnioProvider">
+
+ <provider name="XnioProvider">
+ <thread-factory name="XnioThreadFactory"/>
+
+ <options>
+ <option name="READ_THREADS" value="3"/>
+ <option name="WRITE_THREADS" value="1"/>
+ <option name="CONNECT_THREADS" value="1"/>
+ </options>
+ </provider>
+ </xnio>
+
</deployment>
Modified: branches/vfs3-int/webservices/pom.xml
===================================================================
--- branches/vfs3-int/webservices/pom.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/webservices/pom.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -16,7 +16,7 @@
<description>JBoss Application Server (webservices module)</description>
<build>
- <finalName>${artifactId}</finalName>
+ <finalName>${project.artifactId}</finalName>
<resources>
<resource>
<directory>src/resources/jbossws-jboss.jar</directory>
Modified: branches/vfs3-int/webservices/src/assembly/jbossws-jboss60-deployer.xml
===================================================================
--- branches/vfs3-int/webservices/src/assembly/jbossws-jboss60-deployer.xml 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/webservices/src/assembly/jbossws-jboss60-deployer.xml 2010-02-12 17:13:14 UTC (rev 100922)
@@ -13,20 +13,4 @@
</includes>
</fileSet>
</fileSets>
- <files>
- <file>
- <source>target/${project.build.finalName}.jar</source>
- <outputDirectory>/</outputDirectory>
- <destName>jbossws-jboss60.jar</destName>
- </file>
- </files>
- <dependencySets>
- <dependencySet>
- <outputFileNameMapping>${artifact.artifactId}${dashClassifier?}.${artifact.extension}</outputFileNameMapping>
- <includes>
- <include>org.jboss.ws:jbossws-common</include>
- <include>org.jboss.ws:jbossws-framework</include>
- </includes>
- </dependencySet>
- </dependencySets>
</assembly>
Modified: branches/vfs3-int/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSAspectizedDeployersFactory.java
===================================================================
--- branches/vfs3-int/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSAspectizedDeployersFactory.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSAspectizedDeployersFactory.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -63,7 +63,10 @@
*/
public void addDeployer(final DeploymentAspect aspect)
{
- WSAspectizedDeployersFactory.LOGGER.debug("Adding deployer for: " + aspect);
+ if (WSAspectizedDeployersFactory.LOGGER.isTraceEnabled())
+ {
+ WSAspectizedDeployersFactory.LOGGER.trace("Adding deployer for: " + aspect);
+ }
final Deployer wsAspectizedDeployer = new WSDeploymentAspectDeployer(aspect);
this.delegee.addDeployer(wsAspectizedDeployer);
@@ -77,7 +80,10 @@
*/
public void removeDeployer(final DeploymentAspect aspect)
{
- WSAspectizedDeployersFactory.LOGGER.debug("Removing deployer for: " + aspect);
+ if (WSAspectizedDeployersFactory.LOGGER.isTraceEnabled())
+ {
+ WSAspectizedDeployersFactory.LOGGER.trace("Removing deployer for: " + aspect);
+ }
final Deployer wsAspectizedDeployer = this.deployersRegistry.get(aspect);
this.deployersRegistry.remove(aspect);
Modified: branches/vfs3-int/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentDeployer.java
===================================================================
--- branches/vfs3-int/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentDeployer.java 2010-02-12 17:12:36 UTC (rev 100921)
+++ branches/vfs3-int/webservices/src/main/java/org/jboss/webservices/integration/deployers/WSDeploymentDeployer.java 2010-02-12 17:13:14 UTC (rev 100922)
@@ -62,7 +62,7 @@
@Override
protected void internalDeploy(final DeploymentUnit unit) throws DeploymentException
{
- this.log.debug("Building JBoss agnostic webservices meta data model");
+ this.log.trace("Building JBoss agnostic webservices meta data model");
WSDeploymentBuilder.getInstance().build(unit);
}
More information about the jboss-cvs-commits
mailing list