[jboss-svn-commits] JBL Code SVN: r25072 - in labs/jbossesb/workspace/mlittle/legstar: findbugs and 163 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Feb 3 09:45:16 EST 2009


Author: jim.ma
Date: 2009-02-03 09:45:01 -0500 (Tue, 03 Feb 2009)
New Revision: 25072

Added:
   labs/jbossesb/workspace/mlittle/legstar/findbugs/
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/annotations.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/ant.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-analysis-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-commons-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-tree-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-util-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-xml-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/bcel.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/buggy.icns
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/commons-lang-2.4.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/dom4j-1.6.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/findbugs-ant.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/findbugs.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jFormatString.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jaxen-1.1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jsr305.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/default.xsl
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy-hist.xsl
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy.xsl
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/plain.xsl
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/summary.xsl
   labs/jbossesb/workspace/mlittle/legstar/product/docs/SOASoftwareIntegration.odt
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagator.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagator.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactory.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/NullWriter.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBResponseFilter.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UdpListenerMapper.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/JmsCourierUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagatorUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactoryUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/test_jaas.config
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JMSRouterUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecurityContextPropagator.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/test_jaas.config
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigTestUtil.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityPropagationUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/certtestKeystore
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/lib/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/listener.log
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.project
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbm-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbmq-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jndi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/keystore
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/login-config.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/roles.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/index.jsp
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jndi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/juddi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/publicKeyStore
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jndi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/juddi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/lib/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/callbackCommandUnitTest.xml
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/jackson-lgpl-0.9.3.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/jline-0.9.93.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-commons-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-edisax-parser-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-magger-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-core-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-css-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-csv-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-edi-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-javabean-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-json-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-misc-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-routing-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-scripting-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-servlet-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-templating-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-tinak-1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/lib/jstl.jar
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/lib/standard.jar
Removed:
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/annotations.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/ant.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-analysis-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-commons-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-tree-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-util-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-xml-3.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/bcel.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/buggy.icns
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/commons-lang-2.4.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/dom4j-1.6.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/findbugs-ant.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/findbugs.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jFormatString.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jaxen-1.1.1.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jsr305.jar
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/default.xsl
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy-hist.xsl
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy.xsl
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/plain.xsl
   labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/summary.xsl
   labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jaas.login
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/certtestKeystore
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/helloworld_db_registration/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/parse/edi-orders-parser.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/lib/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/listener.log
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.project
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbm-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbmq-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jndi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/keystore
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/login-config.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/roles.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/index.jsp
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jndi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/juddi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/publicKeyStore
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2XML_date_manipulation/src/org/jboss/soa/esb/samples/quickstart/transformxml2xmldatemanipulation/test/OrderDate.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jndi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/juddi.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/lib/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/SignalFacade.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-commons-1.0.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-edisax-0.3.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-edisax-model-0.3.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-magger-0.1.3.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-core-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-css-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-csv-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-edi-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-javabean-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-misc-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-routing-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-scripting-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-servlet-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-templating-1.0.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-tinak-0.8.1.jar
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksService.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksServiceMBean.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/jbm-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/jbmq-queue-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks-base-configs/
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks-service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks.esb.xml
   labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/src/org/jboss/soa/esb/quickstart/test/HelloWorldDBRegistrationTest.java
Modified:
   labs/jbossesb/workspace/mlittle/legstar/product/.classpath
   labs/jbossesb/workspace/mlittle/legstar/product/.project
   labs/jbossesb/workspace/mlittle/legstar/product/build-distr.xml
   labs/jbossesb/workspace/mlittle/legstar/product/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/docs/GettingStarted.odt
   labs/jbossesb/workspace/mlittle/legstar/product/docs/ProgrammersGuide.odt
   labs/jbossesb/workspace/mlittle/legstar/product/docs/ServicesGuide.odt
   labs/jbossesb/workspace/mlittle/legstar/product/docs/ServicesGuide.pdf
   labs/jbossesb/workspace/mlittle/legstar/product/esb-config.xml
   labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsd
   labs/jbossesb/workspace/mlittle/legstar/product/install/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jbossesb-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/ivy-build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/ivy.xml
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/addressing/eprs/DefaultInVMReplyToEpr.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsXASession.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryInterceptor.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/JAXRRegistryImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/InVMEpr.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Configuration.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Environment.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/http/configurators/HttpProtocol.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionStatusBean.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounter.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterMBean.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageStatusBean.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Body.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/MockCourier.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/InVMCourierUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryInterceptorUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JmsRouterIntegrationTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/InVMUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListenerUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/aggregator/smooks-res.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/jboss-esb-unfiltered.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/src/org/jboss/soa/esb/samples/quickstarts/bpm_orchestration1/esb_actions/MessageSpy.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/src/org/jboss/soa/esb/samples/quickstarts/bpm_orchestration1/esb_actions/ProcessInfo.java
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/smooks-config.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/transforms/from-dvdstore.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/transforms/from-petstore.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_rules_service/jboss-esb.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_rules_service/smooks-res.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/https_2way_ssl/jboss-esb-template.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/bindings.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/database/datasources.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/database/ref-data.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/main.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-02_Low_Price_Service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-03_High_Price_Service.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-04_Reptiles_notify_webservice_proxy.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-05_Database.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.lck
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.log
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.properties
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/README.html
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/SampleOrder.csv
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/smooks-res.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO/smooks-res.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/smooks-config.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/transforms/from-dvdstore.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/transforms/from-petstore.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2XML_date_manipulation/smooks-res.xml
   labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_bpel/readme.txt
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/JBpmObjectMapper.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Mapping.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessor.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommand.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CommandExecutor.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/MessageFacade.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jsf-console.war
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/JBpmObjectMapperUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandlerUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/JBpmObjectMapperCallbackUnitTest.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/upgrade-jbpm.txt
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksInstanceManager.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/META-INF/deployment.xml
   labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/SOAPClient.java
   labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/resources/log4j.xml
   labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/hsqldb/create_database.sql
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/mysql/create_database.sql
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/oracle/create_database.sql
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/postgresql/create_database.sql
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/build.xml
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/attribute.jsp
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/index.jsp
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/invoke.jsp
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/operations.jsp
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/results.jsp
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/web.xml
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/monitoring-mappings.hbm.xml
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/hsqldb/monitoring-mappings.hbm.xml
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/mysql/monitoring-mappings.hbm.xml
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/oracle/monitoring-mappings.hbm.xml
   labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/postgresql/monitoring-mappings.hbm.xml
   labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/resources/META-INF/rhq-plugin.xml
   labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/build.xml
   labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/resources/transformedmessageDateManipulation.log
Log:
Merged trunk(revision 25071) to branch

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs (from rev 25071, labs/jbossesb/trunk/findbugs)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib (from rev 25071, labs/jbossesb/trunk/findbugs/lib)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/annotations.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/annotations.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/annotations.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/ant.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/ant.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/ant.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-3.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-3.1.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/asm-3.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-analysis-3.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-analysis-3.1.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/asm-analysis-3.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-commons-3.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-commons-3.1.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/asm-commons-3.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-tree-3.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-tree-3.1.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/asm-tree-3.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-util-3.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-util-3.1.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/asm-util-3.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-xml-3.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/asm-xml-3.1.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/asm-xml-3.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/bcel.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/bcel.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/bcel.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/buggy.icns
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/buggy.icns (from rev 25071, labs/jbossesb/trunk/findbugs/lib/buggy.icns)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/commons-lang-2.4.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/commons-lang-2.4.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/commons-lang-2.4.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/dom4j-1.6.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/dom4j-1.6.1.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/dom4j-1.6.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/findbugs-ant.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/findbugs-ant.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/findbugs-ant.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/findbugs.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/findbugs.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/findbugs.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jFormatString.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jFormatString.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/jFormatString.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jaxen-1.1.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jaxen-1.1.1.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/jaxen-1.1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jsr305.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/lib/jsr305.jar (from rev 25071, labs/jbossesb/trunk/findbugs/lib/jsr305.jar)
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/src (from rev 25071, labs/jbossesb/trunk/findbugs/src)

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl (from rev 25071, labs/jbossesb/trunk/findbugs/src/xsl)

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/default.xsl
===================================================================
--- labs/jbossesb/trunk/findbugs/src/xsl/default.xsl	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/default.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,376 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
-  FindBugs - Find bugs in Java programs
-  Copyright (C) 2004,2005 University of Maryland
-  Copyright (C) 2005, Chris Nappin
-  
-  This library 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 library 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 library; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
--->
-
-<!--
-  A simple XSLT stylesheet to transform FindBugs XML results
-  annotated with messages into HTML.
-
-  If you want to experiment with modifying this stylesheet,
-  or write your own, you need to generate XML output from FindBugs
-  using a special option which lets it know to include
-  human-readable messages in the XML.  Invoke the findbugs script
-  as follows:
-
-    findbugs -textui -xml:withMessages -project myProject.fb > results.xml
-
-  Then you can use your favorite XSLT implementation to transform
-  the XML output into HTML. (But don't use xsltproc. It generates well-nigh
-  unreadable output, and generates incorrect output for the
-  <script> element.)
-
-  Authors:
-  David Hovemeyer
-  Chris Nappin (summary table)
--->
-
-<xsl:stylesheet
-	version="1.0"
-	xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:output
-	method="xml"
-	indent="yes"
-	omit-xml-declaration="yes"
-	standalone="yes"
-    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-	doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
-	encoding="UTF-8"/>
-
-<xsl:variable name="literalNbsp">&amp;nbsp;</xsl:variable>
-
-<!--xsl:key name="bug-category-key" match="/BugCollection/BugInstance" use="@category"/-->
-
-<xsl:variable name="bugTableHeader">
-	<tr class="tableheader">
-		<th align="left">Code</th>
-		<th align="left">Warning</th>
-	</tr>
-</xsl:variable>
-
-<xsl:template match="/">
-	<html>
-	<head>
-		<title>FindBugs Report</title>
-		<style type="text/css">
-		.tablerow0 {
-			background: #EEEEEE;
-		}
-
-		.tablerow1 {
-			background: white;
-		}
-
-		.detailrow0 {
-			background: #EEEEEE;
-		}
-
-		.detailrow1 {
-			background: white;
-		}
-
-		.tableheader {
-			background: #b9b9fe;
-			font-size: larger;
-		}
-
-		.tablerow0:hover, .tablerow1:hover {
-			background: #aaffaa;
-		}
-
-		.priority-1 {
-		    color: red;
-		    font-weight: bold;
-		}
-		.priority-2 {
-		    color: orange;
-		    font-weight: bold;
-		}
-		.priority-3 {
-		    color: green;
-		    font-weight: bold;
-		}
-		.priority-4 {
-		    color: blue;
-		    font-weight: bold;
-		}
-		</style>
-		<script type="text/javascript">
-			function toggleRow(elid) {
-				if (document.getElementById) {
-					element = document.getElementById(elid);
-					if (element) {
-						if (element.style.display == 'none') {
-							element.style.display = 'block';
-							//window.status = 'Toggle on!';
-						} else {
-							element.style.display = 'none';
-							//window.status = 'Toggle off!';
-						}
-					}
-				}
-			}
-		</script>
-	</head>
-
-	<xsl:variable name="unique-catkey" select="/BugCollection/BugCategory/@category"/>
-	<!--xsl:variable name="unique-catkey" select="/BugCollection/BugInstance[generate-id() = generate-id(key('bug-category-key', at category))]/@category"/-->
-
-	<body>
-
-		<h1><a href="http://findbugs.sourceforge.net">FindBugs</a> Report</h1>
-
-	<h2>Project Information</h2>	
-	<xsl:apply-templates select="/BugCollection/Project"/>
-
-	<h2>Metrics</h2>
-	<xsl:apply-templates select="/BugCollection/FindBugsSummary"/>
-
-	<h2>Contents</h2>
-	<ul>
-		<xsl:for-each select="$unique-catkey">
-			<xsl:sort select="." order="ascending"/>
-			<xsl:variable name="catkey" select="."/>
-			<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
-			
-			<li><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></li>
-		</xsl:for-each>
-
-		<li><a href="#Details">Details</a></li>
-	</ul>
-
-	<h1>Summary</h1>
-	<table width="500" cellpadding="5" cellspacing="2">
-	    <tr class="tableheader">
-			<th align="left">Warning Type</th>
-			<th align="right">Number</th>
-		</tr>
-
-		<xsl:for-each select="$unique-catkey">
-			<xsl:sort select="." order="ascending"/>
-			<xsl:variable name="catkey" select="."/>
-			<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
-			<xsl:variable name="styleclass">
-				<xsl:choose><xsl:when test="position() mod 2 = 1">tablerow0</xsl:when>
-					<xsl:otherwise>tablerow1</xsl:otherwise>
-				</xsl:choose>
-			</xsl:variable>
-			
-		<tr class="{$styleclass}">
-			<td><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></td>
-			<td align="right"><xsl:value-of select="count(/BugCollection/BugInstance[(@category=$catkey) and not(@last)])"/></td>
-		</tr>
-		</xsl:for-each>
-
-		<xsl:variable name="styleclass">
-			<xsl:choose><xsl:when test="count($unique-catkey) mod 2 = 0">tablerow0</xsl:when>
-				<xsl:otherwise>tablerow1</xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>
-		<tr class="{$styleclass}">
-		    <td><b>Total</b></td>
-		    <td align="right"><b><xsl:value-of select="count(/BugCollection/BugInstance[not(@last)])"/></b></td>
-		</tr>
-	</table>
-
-	<h1>Warnings</h1>
-
-	<p>Click on a warning row to see full context information.</p>
-
-	<xsl:for-each select="$unique-catkey">
-		<xsl:sort select="." order="ascending"/>
-		<xsl:variable name="catkey" select="."/>
-		<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
-			
-		<xsl:call-template name="generateWarningTable">
-			<xsl:with-param name="warningSet" select="/BugCollection/BugInstance[(@category=$catkey) and not(@last)]"/>
-			<xsl:with-param name="sectionTitle"><xsl:value-of select="$catdesc"/> Warnings</xsl:with-param>
-			<xsl:with-param name="sectionId">Warnings_<xsl:value-of select="$catkey"/></xsl:with-param>
-		</xsl:call-template>
-	</xsl:for-each>
-
-	<h1><a name="Details">Details</a></h1>
-
-	<xsl:apply-templates select="/BugCollection/BugPattern">
-		<xsl:sort select="@abbrev"/>
-		<xsl:sort select="ShortDescription"/>
-	</xsl:apply-templates>
-
-	</body>
-	</html>
-</xsl:template>
-
-<xsl:template match="Project">
-	<p>Project: 
-		<xsl:choose>
-			<xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
-			<xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
-		</xsl:choose>
-	</p>
-	<p>FindBugs version: <xsl:value-of select="/BugCollection/@version"/></p>
-	
-	<p>Code analyzed:</p>
-	<ul>
-		<xsl:for-each select="./Jar">
-			<li><xsl:value-of select="text()"/></li>
-		</xsl:for-each>
-	</ul>
-	<p><br/><br/></p>
-</xsl:template>
-
-<xsl:template match="BugInstance[not(@last)]">
-	<xsl:variable name="warningId"><xsl:value-of select="generate-id()"/></xsl:variable>
-
-	<tr class="tablerow{position() mod 2}" onclick="toggleRow('{$warningId}');">
-
-	<td>
-	    <span><xsl:attribute name="class">priority-<xsl:value-of select="@priority"/></xsl:attribute>
-	        <xsl:value-of select="@abbrev"/>
-        </span>
-	</td>
-
-	<td>
-	<xsl:value-of select="LongMessage"/>
-	</td>
-
-	</tr>
-
-	<!-- Add bug annotation elements: Class, Method, Field, SourceLine, Field -->
-	<tr class="detailrow{position() mod 2}">
-		<td/>
-		<td>
-			<p id="{$warningId}" style="display: none;">
-				<a href="#{@type}">Bug type <xsl:value-of select="@type"/> (click for details)</a>
-				<xsl:for-each select="./*/Message">
-					<br/><xsl:value-of select="text()" disable-output-escaping="no"/>
-				</xsl:for-each>
-			</p>
-		</td>
-	</tr>
-</xsl:template>
-
-<xsl:template match="BugPattern">
-	<h2><a name="{@type}"><xsl:value-of select="@type"/>: <xsl:value-of select="ShortDescription"/></a></h2>
-	<xsl:value-of select="Details" disable-output-escaping="yes"/>
-</xsl:template>
-
-<xsl:template name="generateWarningTable">
-	<xsl:param name="warningSet"/>
-	<xsl:param name="sectionTitle"/>
-	<xsl:param name="sectionId"/>
-
-	<h2><a name="{$sectionId}"><xsl:value-of select="$sectionTitle"/></a></h2>
-	<table class="warningtable" width="100%" cellspacing="0">
-		<xsl:copy-of select="$bugTableHeader"/>
-		<xsl:apply-templates select="$warningSet">
-			<xsl:sort select="@abbrev"/>
-			<xsl:sort select="Class/@classname"/>
-		</xsl:apply-templates>
-	</table>
-</xsl:template>
-
-<xsl:template match="FindBugsSummary">
-    <xsl:variable name="kloc" select="@total_size div 1000.0"/>
-    <xsl:variable name="format" select="'#######0.00'"/>
-
-	<p><xsl:value-of select="@total_size"/> lines of code analyzed,
-	in <xsl:value-of select="@total_classes"/> classes, 
-	in <xsl:value-of select="@num_packages"/> packages.</p>
-	<table width="500" cellpadding="5" cellspacing="2">
-	    <tr class="tableheader">
-			<th align="left">Metric</th>
-			<th align="right">Total</th>
-			<th align="right">Density*</th>
-		</tr>
-		<tr class="tablerow0">
-			<td>High Priority Warnings</td>
-			<td align="right"><xsl:value-of select="@priority_1"/></td>
-			<td align="right">
-			    <xsl:choose>
-                    <xsl:when test= "number($kloc) &gt; 0.0 and number(@priority_1) &gt; 0.0">
-        			    <xsl:value-of select="format-number(@priority_1 div $kloc, $format)"/>
-                    </xsl:when>
-                    <xsl:otherwise>
-        			    <xsl:value-of select="format-number(0.0, $format)"/>
-                    </xsl:otherwise>
-			    </xsl:choose>
-			</td>
-		</tr>
-		<tr class="tablerow1">
-			<td>Medium Priority Warnings</td>
-			<td align="right"><xsl:value-of select="@priority_2"/></td>
-			<td align="right">
-			    <xsl:choose>
-                    <xsl:when test= "number($kloc) &gt; 0.0 and number(@priority_2) &gt; 0.0">
-        			    <xsl:value-of select="format-number(@priority_2 div $kloc, $format)"/>
-                    </xsl:when>
-                    <xsl:otherwise>
-        			    <xsl:value-of select="format-number(0.0, $format)"/>
-                    </xsl:otherwise>
-			    </xsl:choose>
-			</td>
-		</tr>
-
-    <xsl:choose>
-		<xsl:when test="@priority_3">
-			<tr class="tablerow1">
-				<td>Low Priority Warnings</td>
-				<td align="right"><xsl:value-of select="@priority_3"/></td>
-				<td align="right">
-                    <xsl:choose>
-                        <xsl:when test= "number($kloc) &gt; 0.0 and number(@priority_3) &gt; 0.0">
-        			        <xsl:value-of select="format-number(@priority_3 div $kloc, $format)"/>
-                        </xsl:when>
-                        <xsl:otherwise>
-        		            <xsl:value-of select="format-number(0.0, $format)"/>
-                        </xsl:otherwise>
-			        </xsl:choose>
-				</td>
-			</tr>
-			<xsl:variable name="totalClass" select="tablerow0"/>
-		</xsl:when>
-		<xsl:otherwise>
-		    <xsl:variable name="totalClass" select="tablerow1"/>
-		</xsl:otherwise>
-	</xsl:choose>
-
-		<tr class="$totalClass">
-			<td><b>Total Warnings</b></td>
-			<td align="right"><b><xsl:value-of select="@total_bugs"/></b></td>
-            <xsl:choose>
-                <xsl:when test="number($kloc) &gt; 0.0">
-  					<td align="right"><b><xsl:value-of select="format-number(@total_bugs div $kloc, $format)"/></b></td>
-                </xsl:when>
-                <xsl:otherwise>
-					<td align="right"><b><xsl:value-of select="format-number(0.0, $format)"/></b></td>
-                </xsl:otherwise>
-	        </xsl:choose>
-		</tr>
-	</table>
-	<p><i>(* Defects per Thousand lines of non-commenting source statements)</i></p>
-	<p><br/><br/></p>
-
-</xsl:template>
-
-</xsl:stylesheet>
-
-<!-- vim:set ts=4: -->

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/default.xsl (from rev 25071, labs/jbossesb/trunk/findbugs/src/xsl/default.xsl)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/default.xsl	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/default.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+  FindBugs - Find bugs in Java programs
+  Copyright (C) 2004,2005 University of Maryland
+  Copyright (C) 2005, Chris Nappin
+  
+  This library 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 library 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 library; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+-->
+
+<!--
+  A simple XSLT stylesheet to transform FindBugs XML results
+  annotated with messages into HTML.
+
+  If you want to experiment with modifying this stylesheet,
+  or write your own, you need to generate XML output from FindBugs
+  using a special option which lets it know to include
+  human-readable messages in the XML.  Invoke the findbugs script
+  as follows:
+
+    findbugs -textui -xml:withMessages -project myProject.fb > results.xml
+
+  Then you can use your favorite XSLT implementation to transform
+  the XML output into HTML. (But don't use xsltproc. It generates well-nigh
+  unreadable output, and generates incorrect output for the
+  <script> element.)
+
+  Authors:
+  David Hovemeyer
+  Chris Nappin (summary table)
+-->
+
+<xsl:stylesheet
+	version="1.0"
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output
+	method="xml"
+	indent="yes"
+	omit-xml-declaration="yes"
+	standalone="yes"
+    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
+	doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+	encoding="UTF-8"/>
+
+<xsl:variable name="literalNbsp">&amp;nbsp;</xsl:variable>
+
+<!--xsl:key name="bug-category-key" match="/BugCollection/BugInstance" use="@category"/-->
+
+<xsl:variable name="bugTableHeader">
+	<tr class="tableheader">
+		<th align="left">Code</th>
+		<th align="left">Warning</th>
+	</tr>
+</xsl:variable>
+
+<xsl:template match="/">
+	<html>
+	<head>
+		<title>FindBugs Report</title>
+		<style type="text/css">
+		.tablerow0 {
+			background: #EEEEEE;
+		}
+
+		.tablerow1 {
+			background: white;
+		}
+
+		.detailrow0 {
+			background: #EEEEEE;
+		}
+
+		.detailrow1 {
+			background: white;
+		}
+
+		.tableheader {
+			background: #b9b9fe;
+			font-size: larger;
+		}
+
+		.tablerow0:hover, .tablerow1:hover {
+			background: #aaffaa;
+		}
+
+		.priority-1 {
+		    color: red;
+		    font-weight: bold;
+		}
+		.priority-2 {
+		    color: orange;
+		    font-weight: bold;
+		}
+		.priority-3 {
+		    color: green;
+		    font-weight: bold;
+		}
+		.priority-4 {
+		    color: blue;
+		    font-weight: bold;
+		}
+		</style>
+		<script type="text/javascript">
+			function toggleRow(elid) {
+				if (document.getElementById) {
+					element = document.getElementById(elid);
+					if (element) {
+						if (element.style.display == 'none') {
+							element.style.display = 'block';
+							//window.status = 'Toggle on!';
+						} else {
+							element.style.display = 'none';
+							//window.status = 'Toggle off!';
+						}
+					}
+				}
+			}
+		</script>
+	</head>
+
+	<xsl:variable name="unique-catkey" select="/BugCollection/BugCategory/@category"/>
+	<!--xsl:variable name="unique-catkey" select="/BugCollection/BugInstance[generate-id() = generate-id(key('bug-category-key', at category))]/@category"/-->
+
+	<body>
+
+		<h1><a href="http://findbugs.sourceforge.net">FindBugs</a> Report</h1>
+
+	<h2>Project Information</h2>	
+	<xsl:apply-templates select="/BugCollection/Project"/>
+
+	<h2>Metrics</h2>
+	<xsl:apply-templates select="/BugCollection/FindBugsSummary"/>
+
+	<h2>Contents</h2>
+	<ul>
+		<xsl:for-each select="$unique-catkey">
+			<xsl:sort select="." order="ascending"/>
+			<xsl:variable name="catkey" select="."/>
+			<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
+			
+			<li><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></li>
+		</xsl:for-each>
+
+		<li><a href="#Details">Details</a></li>
+	</ul>
+
+	<h1>Summary</h1>
+	<table width="500" cellpadding="5" cellspacing="2">
+	    <tr class="tableheader">
+			<th align="left">Warning Type</th>
+			<th align="right">Number</th>
+		</tr>
+
+		<xsl:for-each select="$unique-catkey">
+			<xsl:sort select="." order="ascending"/>
+			<xsl:variable name="catkey" select="."/>
+			<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
+			<xsl:variable name="styleclass">
+				<xsl:choose><xsl:when test="position() mod 2 = 1">tablerow0</xsl:when>
+					<xsl:otherwise>tablerow1</xsl:otherwise>
+				</xsl:choose>
+			</xsl:variable>
+			
+		<tr class="{$styleclass}">
+			<td><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></td>
+			<td align="right"><xsl:value-of select="count(/BugCollection/BugInstance[(@category=$catkey) and not(@last)])"/></td>
+		</tr>
+		</xsl:for-each>
+
+		<xsl:variable name="styleclass">
+			<xsl:choose><xsl:when test="count($unique-catkey) mod 2 = 0">tablerow0</xsl:when>
+				<xsl:otherwise>tablerow1</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+		<tr class="{$styleclass}">
+		    <td><b>Total</b></td>
+		    <td align="right"><b><xsl:value-of select="count(/BugCollection/BugInstance[not(@last)])"/></b></td>
+		</tr>
+	</table>
+
+	<h1>Warnings</h1>
+
+	<p>Click on a warning row to see full context information.</p>
+
+	<xsl:for-each select="$unique-catkey">
+		<xsl:sort select="." order="ascending"/>
+		<xsl:variable name="catkey" select="."/>
+		<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
+			
+		<xsl:call-template name="generateWarningTable">
+			<xsl:with-param name="warningSet" select="/BugCollection/BugInstance[(@category=$catkey) and not(@last)]"/>
+			<xsl:with-param name="sectionTitle"><xsl:value-of select="$catdesc"/> Warnings</xsl:with-param>
+			<xsl:with-param name="sectionId">Warnings_<xsl:value-of select="$catkey"/></xsl:with-param>
+		</xsl:call-template>
+	</xsl:for-each>
+
+	<h1><a name="Details">Details</a></h1>
+
+	<xsl:apply-templates select="/BugCollection/BugPattern">
+		<xsl:sort select="@abbrev"/>
+		<xsl:sort select="ShortDescription"/>
+	</xsl:apply-templates>
+
+	</body>
+	</html>
+</xsl:template>
+
+<xsl:template match="Project">
+	<p>Project: 
+		<xsl:choose>
+			<xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
+			<xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
+		</xsl:choose>
+	</p>
+	<p>FindBugs version: <xsl:value-of select="/BugCollection/@version"/></p>
+	
+	<p>Code analyzed:</p>
+	<ul>
+		<xsl:for-each select="./Jar">
+			<li><xsl:value-of select="text()"/></li>
+		</xsl:for-each>
+	</ul>
+	<p><br/><br/></p>
+</xsl:template>
+
+<xsl:template match="BugInstance[not(@last)]">
+	<xsl:variable name="warningId"><xsl:value-of select="generate-id()"/></xsl:variable>
+
+	<tr class="tablerow{position() mod 2}" onclick="toggleRow('{$warningId}');">
+
+	<td>
+	    <span><xsl:attribute name="class">priority-<xsl:value-of select="@priority"/></xsl:attribute>
+	        <xsl:value-of select="@abbrev"/>
+        </span>
+	</td>
+
+	<td>
+	<xsl:value-of select="LongMessage"/>
+	</td>
+
+	</tr>
+
+	<!-- Add bug annotation elements: Class, Method, Field, SourceLine, Field -->
+	<tr class="detailrow{position() mod 2}">
+		<td/>
+		<td>
+			<p id="{$warningId}" style="display: none;">
+				<a href="#{@type}">Bug type <xsl:value-of select="@type"/> (click for details)</a>
+				<xsl:for-each select="./*/Message">
+					<br/><xsl:value-of select="text()" disable-output-escaping="no"/>
+				</xsl:for-each>
+			</p>
+		</td>
+	</tr>
+</xsl:template>
+
+<xsl:template match="BugPattern">
+	<h2><a name="{@type}"><xsl:value-of select="@type"/>: <xsl:value-of select="ShortDescription"/></a></h2>
+	<xsl:value-of select="Details" disable-output-escaping="yes"/>
+</xsl:template>
+
+<xsl:template name="generateWarningTable">
+	<xsl:param name="warningSet"/>
+	<xsl:param name="sectionTitle"/>
+	<xsl:param name="sectionId"/>
+
+	<h2><a name="{$sectionId}"><xsl:value-of select="$sectionTitle"/></a></h2>
+	<table class="warningtable" width="100%" cellspacing="0">
+		<xsl:copy-of select="$bugTableHeader"/>
+		<xsl:apply-templates select="$warningSet">
+			<xsl:sort select="@abbrev"/>
+			<xsl:sort select="Class/@classname"/>
+		</xsl:apply-templates>
+	</table>
+</xsl:template>
+
+<xsl:template match="FindBugsSummary">
+    <xsl:variable name="kloc" select="@total_size div 1000.0"/>
+    <xsl:variable name="format" select="'#######0.00'"/>
+
+	<p><xsl:value-of select="@total_size"/> lines of code analyzed,
+	in <xsl:value-of select="@total_classes"/> classes, 
+	in <xsl:value-of select="@num_packages"/> packages.</p>
+	<table width="500" cellpadding="5" cellspacing="2">
+	    <tr class="tableheader">
+			<th align="left">Metric</th>
+			<th align="right">Total</th>
+			<th align="right">Density*</th>
+		</tr>
+		<tr class="tablerow0">
+			<td>High Priority Warnings</td>
+			<td align="right"><xsl:value-of select="@priority_1"/></td>
+			<td align="right">
+			    <xsl:choose>
+                    <xsl:when test= "number($kloc) &gt; 0.0 and number(@priority_1) &gt; 0.0">
+        			    <xsl:value-of select="format-number(@priority_1 div $kloc, $format)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+        			    <xsl:value-of select="format-number(0.0, $format)"/>
+                    </xsl:otherwise>
+			    </xsl:choose>
+			</td>
+		</tr>
+		<tr class="tablerow1">
+			<td>Medium Priority Warnings</td>
+			<td align="right"><xsl:value-of select="@priority_2"/></td>
+			<td align="right">
+			    <xsl:choose>
+                    <xsl:when test= "number($kloc) &gt; 0.0 and number(@priority_2) &gt; 0.0">
+        			    <xsl:value-of select="format-number(@priority_2 div $kloc, $format)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+        			    <xsl:value-of select="format-number(0.0, $format)"/>
+                    </xsl:otherwise>
+			    </xsl:choose>
+			</td>
+		</tr>
+
+    <xsl:choose>
+		<xsl:when test="@priority_3">
+			<tr class="tablerow1">
+				<td>Low Priority Warnings</td>
+				<td align="right"><xsl:value-of select="@priority_3"/></td>
+				<td align="right">
+                    <xsl:choose>
+                        <xsl:when test= "number($kloc) &gt; 0.0 and number(@priority_3) &gt; 0.0">
+        			        <xsl:value-of select="format-number(@priority_3 div $kloc, $format)"/>
+                        </xsl:when>
+                        <xsl:otherwise>
+        		            <xsl:value-of select="format-number(0.0, $format)"/>
+                        </xsl:otherwise>
+			        </xsl:choose>
+				</td>
+			</tr>
+			<xsl:variable name="totalClass" select="tablerow0"/>
+		</xsl:when>
+		<xsl:otherwise>
+		    <xsl:variable name="totalClass" select="tablerow1"/>
+		</xsl:otherwise>
+	</xsl:choose>
+
+		<tr class="$totalClass">
+			<td><b>Total Warnings</b></td>
+			<td align="right"><b><xsl:value-of select="@total_bugs"/></b></td>
+            <xsl:choose>
+                <xsl:when test="number($kloc) &gt; 0.0">
+  					<td align="right"><b><xsl:value-of select="format-number(@total_bugs div $kloc, $format)"/></b></td>
+                </xsl:when>
+                <xsl:otherwise>
+					<td align="right"><b><xsl:value-of select="format-number(0.0, $format)"/></b></td>
+                </xsl:otherwise>
+	        </xsl:choose>
+		</tr>
+	</table>
+	<p><i>(* Defects per Thousand lines of non-commenting source statements)</i></p>
+	<p><br/><br/></p>
+
+</xsl:template>
+
+</xsl:stylesheet>
+
+<!-- vim:set ts=4: -->

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy-hist.xsl
===================================================================
--- labs/jbossesb/trunk/findbugs/src/xsl/fancy-hist.xsl	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy-hist.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,1127 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
-  Copyright (C) 2005, 2006 Etienne Giraudy, InStranet Inc
-  Copyright (C) 2005, 2007 Etienne Giraudy
-
-  This library 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 library 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 library; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
--->
-
-<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
-   <xsl:output
-         method="xml" indent="yes"
-         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
-         doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
-         encoding="UTF-8"/>
-
-   <xsl:variable name="apos" select="&quot;'&quot;"/>
-   <xsl:key name="lbc-code-key"        match="/BugCollection/BugInstance" use="concat(@category, at abbrev)" />
-   <xsl:key name="lbc-bug-key"         match="/BugCollection/BugInstance" use="concat(@category, at abbrev, at type)" />
-   <xsl:key name="lbp-class-b-t"  match="/BugCollection/BugInstance" use="concat(Class/@classname, at type)" />
-
-<xsl:template match="/" >
-
-<html>
-   <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-      <title>
-         FindBugs (<xsl:value-of select="/BugCollection/@version" />) 
-         Analysis for 
-         <xsl:choose>
-            <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
-            <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
-         </xsl:choose>
-      </title>
-      <style type="text/css">
-         html, body, div, form {
-            margin:0px;
-            padding:0px;
-         }
-         body {
-            padding:3px;
-         }
-         a, a:link , a:active, a:visited, a:hover {
-            text-decoration: none; color: black;
-         }
-         #navlist {
-                 padding: 3px 0;
-                 margin-left: 0;
-                 border-bottom: 1px solid #778;
-                 font: bold 12px Verdana, sans-serif;
-         }
-         #navlist li {
-                 list-style: none;
-                 margin: 0;
-                 display: inline;
-         }
-         #navlist li a {
-                 padding: 3px 0.5em;
-                 margin-left: 3px;
-                 border: 1px solid #778;
-                 border-bottom: none;
-                 background: #DDE;
-                 text-decoration: none;
-         }
-         #navlist li a:link { color: #448; }
-         #navlist li a:visited { color: #667; }
-         #navlist li a:hover {
-                 color: #000;
-                 background: #AAE;
-                 border-color: #227;
-         }
-         #navlist li a.current {
-                 background: white;
-                 border-bottom: 1px solid white;
-         }
-         #filterWrapper {
-            margin-bottom:5px;
-         }
-         #displayWrapper {
-            margin-top:5px;
-         }
-         .message {
-            background:#BBBBBB;
-           border: 1px solid #778;
-         }
-         .displayContainer {
-            border:1px solid #555555;
-            margin-top:3px;
-            padding: 3px;
-            display:none;
-         }
-         #summaryContainer table,
-         #historyContainer table {
-            border:1px solid black;
-         }
-         #summaryContainer th,
-         #historyContainer th {
-            background: #aaaaaa;
-            color: white;
-         }
-         #summaryContainer th, #summaryContainer td,
-         #historyContainer th, #historyContainer td {
-            padding: 2px 4px 2px 4px;
-         }
-         .summary-name {
-            background: #eeeeee;
-            text-align:left;
-         }
-         .summary-size {
-            background: #eeeeee;
-            text-align:center;
-         }
-         .summary-priority-all {
-            background: #dddddd;
-            text-align:center;
-         }
-         .summary-priority-1 {
-            background: red;
-            text-align:center;
-         }
-         .summary-priority-2 {
-            background: orange;
-            text-align:center;
-         }
-         .summary-priority-3 {
-            background: green;
-            text-align:center;
-         }
-         .summary-priority-4 {
-            background: blue;
-            text-align:center;
-         }
-
-         .bugList-level1 {
-            margin-bottom:5px;
-         }
-         .bugList-level1, .bugList-level2, .bugList-level3, .bugList-level4 {
-            background-color: #ffffff;
-            margin-left:15px;
-            padding-left:10px;
-         }
-         .bugList-level1-label, .bugList-level2-label, .bugList-level3-label, .bugList-level4-label {
-            background-color: #bbbbbb;
-            border: 1px solid black;
-            padding: 1px 3px 1px 3px;;
-         }
-         .bugList-level2-label, .bugList-level3-label, .bugList-level4-label {
-            border-width: 0px 1px 1px 1px;
-         }
-         .bugList-level4-label {
-            background-color: #ffffff;
-            border: 0px 0px 1px 0px;
-         }
-         .bugList-level4 {
-            border: 0px 1px 1px 1px;
-         }
-
-         .bugList-level4-inner {
-            border-style: solid;
-            border-color: black;
-            border-width: 0px 1px 1px 1px;
-         }
-         .b-r {
-            font-size: 10pt; font-weight: bold; padding: 0 0 0 60px;
-         }
-         .b-d {
-            font-weight: normal; background: #ccccc0;
-            padding: 0 5px 0 5px; margin: 0px;
-         }
-         .b-1 {
-            background: red; height: 0.5em; width: 1em;
-            margin-right: 0.5em;
-         }
-         .b-2 {
-            background: orange; height: 0.5em; width: 1em;
-            margin-right: 0.5em;
-         }
-         .b-3 {
-            background: green; height: 0.5em; width: 1em;
-            margin-right: 0.5em;
-         }
-         .b-4 {
-            background: blue; height: 0.5em; width: 1em;
-            margin-right: 0.5em;
-         }
-
-      </style>
-      <script type='text/javascript'><xsl:text disable-output-escaping='yes'><![CDATA[
-         var menus            = new Array('summary','info','history','listByCategories','listByPackages');
-         var selectedMenuId   = "summary";
-         var selectedVersion  = -1;
-         var selectedPriority = 4;
-         var lastVersion      = 0;
-
-         var bPackageNamesPopulated = false;
-
-         var filterContainerId              = "filterWrapper";
-         var messageContainerId             = "messageContainer";
-         var summaryContainerId             = "summaryContainer";
-         var infoContainerId                = "infoContainer";
-         var historyContainerId             = "historyContainer";
-         var listByCategoriesContainerId    = "listByCategoriesContainer";
-         var listByPackagesContainerId      = "listByPackagesContainer";
-
-         var idxCatKey = 0; var idxCatDescr = 1; var idxBugCat = 1;
-         var idxCodeKey = 0; var idxCodeDescr = 1; var idxBugCode = 2;
-         var idxPatternKey = 2; var idxPatternDescr = 3; var idxBugPattern = 3;
-         var idxBugKey = 0; var idxBugDescr = 6;
-         var idxBugClass = 6, idxBugPackage = 7;
-
-         // main init function
-         function init() {
-            loadFilter();
-            selectMenu(selectedMenuId);
-            lastVersion = versions.length - 1;
-         }
-
-         // menu callback function
-         function selectMenu(menuId) {
-            document.getElementById(selectedMenuId).className="none";
-            document.getElementById(menuId).className="current";
-            if (menuId!=selectedMenuId) {
-               hideMenu(selectedMenuId);
-               selectedMenuId = menuId;
-            }
-            if (menuId=="summary")           displaySummary();
-            if (menuId=="info")              displayInfo();
-            if (menuId=="history")           displayHistory();
-            if (menuId=="listByCategories")  displayListByCategories();
-            if (menuId=="listByPackages")    displayListByPackages();
-         }
-
-         // display filter
-         function loadFilter() {
-            var versionsBox = document.findbugsForm.versions.options;
-            versionsBox[0] = new Option(" -- All Versions -- ","-1");
-            versionsBox.selectedIndex = 0;
-            if (versions.length>=1) {
-               for (x=0; versions.length>1 && x<versions.length; x++) {
-                  versionsBox[x+1] = new Option(" Bugs at release: "+versions[versions.length-x-1][1], versions[versions.length-x-1][0]);
-               }
-            }
-
-            var prioritiesBox = document.findbugsForm.priorities.options;
-            prioritiesBox[0] = new Option(" -- All priorities -- ", "4");
-            prioritiesBox[1] = new Option(" P1 bugs ", "1");
-            prioritiesBox[2] = new Option(" P1 and P2 bugs ", "2");
-            prioritiesBox[3] = new Option(" P1, P2 and P3 bugs ", "3");
-         }
-
-         // display a message
-         function displayMessage(msg) {
-            var container = document.getElementById(messageContainerId);
-            container.innerHTML = "<div class='message'>"+msg+"</div>";
-         }
-
-         // reset displayed message
-         function resetMessage() {
-            var container = document.getElementById(messageContainerId);
-            container.innerHTML = "";
-         }
-
-         function hideMenu(menuId) {
-            var container = menuId+"Container";
-            document.getElementById(container).style.display="none";
-         }
-
-         // filter callback function
-         function filter() {
-            var versionsBox = document.findbugsForm.versions.options;
-            selectedVersion = versionsBox[versionsBox.selectedIndex].value;
-
-            var prioritiesBox = document.findbugsForm.priorities.options;
-            selectedPriority = prioritiesBox[prioritiesBox.selectedIndex].value;
-
-            selectMenu(selectedMenuId);
-         }
-
-         // display summary tab
-         function displaySummary() {
-            resetMessage();
-            hide(filterContainerId);
-            var container = document.getElementById(summaryContainerId);
-            container.style.display="block";
-         }
-
-         // display info tab
-         function displayInfo() {
-            resetMessage();
-            hide(filterContainerId);
-            var container = document.getElementById(infoContainerId);
-            container.style.display="block";
-         }
-
-         // display history tab
-         function displayHistory() {
-            displayMessage("Loading history...");
-            hide(filterContainerId);
-            var container = document.getElementById(historyContainerId);
-            var content = "";
-            var i=0;
-            var p = [0,0,0,0,0];
-            var f = [0,0,0,0,0];
-
-            content += "<table><tr><th>Release</th><th>Bugs</th><th>Bugs p1</th><th>Bugs p2</th><th>Bugs p3</th><th>Bugs Exp.</th></tr>";
-
-            for (i=(versions.length-1); i>0; i--) {
-               v = countBugsVersion(i, 4);
-               t = countTotalBugsVersion(i);
-               o = countFixedButActiveBugsVersion(i);
-               f = countFixedBugsInVersion(i);
-               content += "<tr>";
-               content += "<td class='summary-name'>" + versions[i][1] + "</td>";
-               content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " (+" + v[0] + " / -" + f[0] + ") </td>";
-               content += "<td class='summary-priority-1'  > " + (t[1] + o[1]) + " (+" + v[1] + " / -" + f[1] + ") </td>";
-               content += "<td class='summary-priority-2'  > " + (t[2] + o[2]) + " (+" + v[2] + " / -" + f[2] + ") </td>";
-               content += "<td class='summary-priority-3'  > " + (t[3] + o[3]) + " (+" + v[3] + " / -" + f[3] + ") </td>";
-               content += "<td class='summary-priority-4'  > " + (t[4] + o[4]) + " (+" + v[4] + " / -" + f[4] + ") </td>";
-               content += "</tr>";
-            }
-
-            t = countTotalBugsVersion(0);
-            o = countFixedButActiveBugsVersion(0);
-            content += "<tr>";
-            content += "<td class='summary-name'>" + versions[0][1] + "</td>";
-            content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " </td>";
-            content += "<td class='summary-priority-1'  > " + (t[1] + o[1]) + " </td>";
-            content += "<td class='summary-priority-2'  > " + (t[2] + o[2]) + " </td>";
-            content += "<td class='summary-priority-3'  > " + (t[3] + o[3]) + " </td>";
-            content += "<td class='summary-priority-4'  > " + (t[4] + o[4]) + " </td>";
-            content += "</tr>";
-
-            content += "</table>";
-            container.innerHTML = content;
-            container.style.display="block";
-            resetMessage();
-         }
-
-         // display list by cat tab
-         function displayListByCategories() {
-            show(filterContainerId);
-            var container = document.getElementById(listByCategoriesContainerId);
-            container.innerHTML = "";
-            container.style.display="block";
-            displayMessage("Loading stats (categories)...");
-            container.innerHTML = displayLevel1("lbc", "Stats by Bug Categories");
-            resetMessage();
-         }
-
-         // display list by package tab
-         function displayListByPackages() {
-            show(filterContainerId);
-            var container = document.getElementById(listByPackagesContainerId);
-            container.style.display="block";
-            if (!bPackageNamesPopulated) {
-               displayMessage("Initializing...");
-               populatePackageNames();
-            }
-            displayMessage("Loading stats (packages)...");
-            container.innerHTML = displayLevel1("lbp", "Stats by Bug Package");
-            resetMessage();
-         }
-
-         // callback function for list item click
-         function toggleList(listType, containerId, id1, id2, id3) {
-            var container = document.getElementById(containerId);
-            if (container.style.display=="block") {
-               container.style.display="none";
-            } else {
-               if (listType=="lbc") {
-                  if (id1.length>0 && id2.length==0 && id3.length==0) {
-                     displayCategoriesCodes(containerId, id1);
-                  } else if (id1.length>0 && id2.length>0 && id3.length==0) {
-                     displayCategoriesCodesPatterns(containerId, id1, id2);
-                  } else if (id1.length>0 && id2.length>0 && id3.length>0) {
-                     displayCategoriesCodesPatternsBugs(containerId, id1, id2, id3);
-                  } else {
-                     // ???
-                  }
-               } else if (listType=="lbp") {
-                  if (id1.length>0 && id2.length==0 && id3.length==0) {
-                     displayPackageCodes(containerId, id1);
-                  } else if (id1.length>0 && id2.length>0 && id3.length==0) {
-                     displayPackageClassPatterns(containerId, id1, id2);
-                  } else if (id1.length>0 && id2.length>0 && id3.length>0) {
-                     displayPackageClassPatternsBugs(containerId, id1, id2, id3);
-                  } else {
-                     // ???
-                  }
-               } else {
-                  // ????
-               }
-            }
-         }
-
-         // list by categories, display bug cat>codes
-         function displayCategoriesCodes(containerId, catId) {
-            displayMessage("Loading stats (codes)...");
-            var container = document.getElementById(containerId);
-            container.style.display="block";
-            if (container.innerHTML=="Loading..." || container.innerHTML=="") {
-               container.innerHTML = displayLevel2("lbc", catId);
-            }
-            resetMessage();
-         }
-
-         // list by categories, display bug package>codes
-         function displayPackageCodes(containerId, packageId) {
-            displayMessage("Loading stats (codes)...");
-            var container = document.getElementById(containerId);
-            container.style.display="block";
-            if (container.innerHTML=="Loading..." || container.innerHTML=="") {
-               container.innerHTML = displayLevel2("lbp", packageId);
-            }
-            resetMessage();
-         }
-
-         // list by categories, display bug cat>codes>patterns
-         function displayCategoriesCodesPatterns(containerId, catId, codeId) {
-            displayMessage("Loading stats (patterns)...");
-            var container = document.getElementById(containerId);
-            container.style.display="block";
-            if (container.innerHTML=="Loading..." || container.innerHTML=="")
-               container.innerHTML = displayLevel3("lbc", catId, codeId);
-            resetMessage();
-         }
-
-         // list by package, display bug package>class>patterns
-         function displayPackageClassPatterns(containerId, packageId, classId) {
-            displayMessage("Loading stats (patterns)...");
-            var container = document.getElementById(containerId);
-            container.style.display="block";
-            if (container.innerHTML=="Loading..." || container.innerHTML=="")
-               container.innerHTML = displayLevel3("lbp", packageId, classId);
-            resetMessage();
-         }
-
-         // list by categories, display bug cat>codes>patterns>bugs
-         function displayCategoriesCodesPatternsBugs(containerId, catId, codeId, patternId) {
-            displayMessage("Loading stats (bugs)...");
-            var container = document.getElementById(containerId);
-            container.style.display="block";
-            if (container.innerHTML=="Loading..." || container.innerHTML=="")
-               container.innerHTML = displayLevel4("lbc", catId, codeId, patternId);
-            resetMessage();
-         }
-
-         // list by package, display bug package>class>patterns>bugs
-         function displayPackageClassPatternsBugs(containerId, packageId, classId, patternId) {
-            displayMessage("Loading stats (bugs)...");
-            var container = document.getElementById(containerId);
-            container.style.display="block";
-            if (container.innerHTML=="Loading..." || container.innerHTML=="")
-               container.innerHTML = displayLevel4("lbp",  packageId, classId, patternId);
-            resetMessage();
-         }
-
-         // generate level 1 list
-         function displayLevel1(list, title) {
-            var content = "";
-            var content2 = "";
-
-            content += "<h3>"+title+"</h3>";
-            content += getPriorityLegend();
-            content2 += "<div class='bugList'>";
-
-            var id = "";
-            var containerId = "";
-            var subContainerId = "";
-            var prefixSub = "";
-            var prefixId = "";
-            var p = [0,0,0,0,0];
-            var numberOfBugs = 0;
-            var label = "";
-            var max = 0;
-            if (list=="lbc") {
-               max = categories.length;
-            } else if (list=="lbp") {
-               max = packageStats.length;
-            }
-
-            for (var x=0; x<max -1; x++) {
-               if (list=="lbp" && packageStats[x][1]=="0") continue;
-
-               if (list=="lbc") {
-                  id = categories[x][idxCatKey];
-                  label = categories[x][idxCatDescr];
-                  containerId = "categories-" + id;
-                  subContainerId = "cat-"+id;
-                  p = countBugsCat(selectedVersion, selectedPriority, id, idxBugCat);
-               }
-               if (list=="lbp") {
-                  id = packageStats[x][0];
-                  label = packageStats[x][0];
-                  containerId = "packages-" + id;
-                  subContainerId = "package-"+id;
-                  p = countBugsPackage(selectedVersion, selectedPriority, id, idxBugPackage);
-               }
-
-               subContainerId = prefixSub+id;
-
-               var total = p[1]+p[2]+p[3]+p[4];
-               if (total > 0) {
-                  content2 += addListItem( 1, containerId, label, total, p, subContainerId,
-                                          "toggleList('" + list + "', '" + subContainerId + "', '"+ id + "', '', '')"
-                                          );
-               }
-               numberOfBugs += total;
-            }
-            content2 += "</div>";
-            content += "<h4>Total number of bugs";
-            if (selectedVersion!=-1) {
-               content += " (introduced in release " + versions[selectedVersion][1] +")";
-            }
-            content += ": "+numberOfBugs+"</h4>";
-            return content+content2;
-         }
-
-         // generate level 2 list
-        function displayLevel2(list, id1) {
-            var content = "";
-            var code = "";
-            var containerId = "";
-            var subContainerId = "";
-            var p = [0,0,0,0,0];
-            var max = 0;
-            var id2 = "";
-            if (list=="lbc") {
-               max = codes.length;
-            } else if (list=="lbp") {
-               max = classStats.length;
-            }
-
-            for (var x=0; x<max -1; x++) {
-               if (list=="lbp" && classStats[x][3]=="0") continue;
-
-               if (list=="lbc") {
-                  id2 = codes[x][idxCodeKey];
-                  label = codes[x][idxCodeDescr];
-                  containerId = "codes-"+id1;
-                  subContainerId = "cat-" + id1 + "-code-" + id2;
-                  p = countBugsCode(selectedVersion, selectedPriority, id1, idxBugCat, id2, idxBugCode);
-               }
-               if (list=="lbp") {
-                  id2 = classStats[x][0];
-                  label = classStats[x][0];
-                  containerId = "packages-"+id1;
-                  subContainerId = "package-" + id1 + "-class-" + id2;
-                  p = countBugsClass(selectedVersion, selectedPriority, id1, idxBugPackage, id2, idxBugClass);
-               }
-
-               var total = p[1]+p[2]+p[3]+p[4];
-               if (total > 0) {
-                  content += addListItem( 2, containerId, label, total, p, subContainerId,
-                                          "toggleList('"+ list + "', '" + subContainerId + "', '"+ id1 + "', '"+ id2 + "', '')"
-                                          );
-               }
-            }
-            return content;
-         }
-
-         // generate level 3 list
-        function displayLevel3(list, id1, id2) {
-            var content = "";
-            var containerId = "";
-            var subContainerId = "";
-            var p = [0,0,0,0,0];
-            var max = 0;
-            var label = "";
-            var id3 = "";
-
-            if (list=="lbc") {
-               max = patterns.length;
-            } else if (list=="lbp") {
-               max = patterns.length;
-            }
-
-            for (var x=0; x<max -1; x++) {
-               //if (list=="lbp" && (patterns[x][0]!=id1 || patterns[x][1]!=id2)) continue;
-               //if (list=="lbp" && classStats[x][3]=="0") continue;
-
-               if (list=="lbc") {
-                  id3 = patterns[x][idxPatternKey];;
-                  label = patterns[x][idxPatternDescr];
-                  containerId = "patterns-"+id1;
-                  subContainerId = "cat-" + id1 + "-code-" + id2 + "-pattern-" + id3;
-                  p = countBugsPattern(selectedVersion, selectedPriority, id1, idxBugCat, id2, idxBugCode, id3, idxBugPattern);
-               }
-               if (list=="lbp") {
-                  id3 = patterns[x][idxPatternKey];;
-                  label = patterns[x][idxPatternDescr];
-                  containerId = "classpatterns-"+id1;
-                  subContainerId = "package-" + id1 + "-class-" + id2 + "-pattern-" + id3;
-                  p = countBugsClassPattern(selectedVersion, selectedPriority, id2, idxBugClass, id3, idxBugPattern);
-               }
-
-               var total = p[1]+p[2]+p[3]+p[4];
-               if (total > 0) {
-                  content += addListItem( 3, containerId, label, total, p, subContainerId,
-                                          "toggleList('" + list + "', '" + subContainerId + "', '"+ id1 + "', '"+ id2 + "', '"+ id3 + "')"
-                                          );
-               }
-            }
-            return content;
-         }
-
-         // generate level 4 list
-        function displayLevel4(list, id1, id2, id3) {
-            var content = "";
-            var bug = "";
-            var bugP = 0;
-            var containerId = "";
-            var subContainerId = "";
-            var bugId = "";
-            var label = "";
-            var p = [0,0,0,0,0];
-            for (var x=0; x<bugs.length -1; x++) {
-               bug = bugs[x];
-               if (list=="lbc") {
-                  if ( bug[1]!=id1 || bug[2]!=id2 || bug[3]!=id3 ) continue;
-                  if ( selectedVersion!=-1
-                     && selectedVersion!=bug[5]) continue;
-                  if ( selectedPriority!=4
-                     && selectedPriority<bug[4]) continue;
-
-                  subContainerId = "cat-" + id1 + "-code-" + id2 + "-pattern-" + id3 + "-bug-" + bug[0];
-               }
-               if (list=="lbp") {
-                  if ( bug[7]!=id1 || bug[6]!=id2 || bug[3]!=id3 ) continue;
-                  if ( selectedVersion!=-1
-                     && selectedVersion!=bug[5]) continue;
-                  if ( selectedPriority!=4
-                     && selectedPriority<bug[4]) continue;
-
-                  subContainerId = "package-" + id1 + "-class-" + id2 + "-pattern-" + id3 + "-bug-" + bug[0];
-               }
-
-               bugId = "b-uid-" + bug[0];
-               label = bug[idxBugDescr];
-               containerId = "bugs-"+bugId;
-               bugP = bug[4];
-               p[bugP]++;
-               var total = p[1]+p[2]+p[3]+p[4];
-               if (total > 0) {
-                  content += addBug(   4, containerId, label, bugP, bug[5], subContainerId,
-                                       "showbug('" + bugId + "', '" + subContainerId + "', '"+id3+"')");
-               }
-            }
-            return content;
-         }
-
-
-         function addListItem(level, id, label, total, p, subId, onclick) {
-            var content = "";
-
-            content += "<div class='bugList-level"+level+"' >";
-            content += "<div class='bugList-level"+level+"-label' id='"+id+"' >";
-            content += "<a href='' onclick=\"" + onclick + ";return false;\" ";
-            content += ">";
-            content += "<strong>"+label+"</strong>";
-            content += " "+total+" bugs";
-            if (selectedPriority>1)
-               content += " <em>("+p[1];
-            if (selectedPriority>=2)
-               content += "/"+p[2];
-            if (selectedPriority>=3)
-               content += "/"+p[3];
-            if (selectedPriority>=4)
-               content += "/"+p[4];
-            if (selectedPriority>1)
-               content += ")</em>";
-            content += "</a>";
-            content += "</div>";
-            content += "<div class='bugList-level"+level+"-inner' id='"+subId+"' style='display:none;'>Loading...</div>";
-            content += "</div>";
-            return content;
-         }
-
-         function addBug( level, id, label, p, version, subId, onclick) {
-            var content = "";
-
-            content += "<div class='bugList-level" + level + "' id='" + id + "'>";
-            content += "<div class='bugList-level" + level + "-label' id='" + id + "'>";
-            content += "<span class='b-" + p + "'>&nbsp;&nbsp;&nbsp;</span>";
-            content += "<a href='' onclick=\"" + onclick + ";return false;\">";
-            if (version==lastVersion) {
-               content += "<span style='color:red;font-weight:bold;'>NEW!</span> ";
-            }
-            content += "<strong>" + label + "</strong>";
-            if (version==0) {
-               content += " <em>since release first historized release</em>";
-            } else {
-               content += " <em>since release " + versions[version][1] + "</em>";
-            }
-            content += "</a>";
-            content += "</div>";
-            content += "<div class='bugList-level" + level + "-inner' id='" + subId + "' style='display:none;'>Loading...</div>";
-            content += "</div>";
-            return content;
-         }
-
-         function countBugsVersion(version, priority) {
-            return countBugs(version, priority, "", -1, "", -1, "", -1, "", -1, "", -1);
-         }
-
-         function countBugsCat(version, priority, cat, idxCat) {
-            return countBugs(version, priority, cat, idxCat, "", -1, "", -1, "", -1, "", -1);
-         }
-
-         function countBugsPackage(version, priority, packageId, idxPackage) {
-            return countBugs(version, priority, "", -1, "", -1, "", -1, packageId, idxPackage, "", -1);
-         }
-
-         function countBugsCode(version, priority, cat, idxCat, code, idxCode) {
-            return countBugs(version, priority, cat, idxCat, code, idxCode, "", -1, "", -1, "", -1);
-         }
-
-         function countBugsPattern(version, priority, cat, idxCat, code, idxCode, packageId, idxPattern) {
-            return countBugs(version, priority, cat, idxCat, code, idxCode, packageId, idxPattern, "", -1, "", -1);
-         }
-
-         function countBugsClass(version, priority, id1, idxBugPackage, id2, idxBugClass) {
-            return countBugs(version, priority, "", -1, "", -1, "", -1, id1, idxBugPackage, id2, idxBugClass);
-         }
-
-         function countBugsClassPattern(version, priority, id2, idxBugClass, id3, idxBugPattern) {
-            return countBugs(version, priority, "", -1, "", -1, id3, idxBugPattern, "", -1, id2, idxBugClass);
-         }
-
-         function countBugs(version, priority, cat, idxCat, code, idxCode, pattern, idxPattern, packageId, idxPackage, classId, idxClass) {
-            var count = [0,0,0,0,0];
-            var last=1000000;
-            for (var x=0; x<bugs.length-1; x++) {
-               var bug = bugs[x];
-
-               var bugCat = bug[idxCat];
-               var bugP = bug[4];
-               var bugCode = bug[idxCode];
-               var bugPattern = bug[idxPattern];
-
-               if (     (version==-1    || version==bug[5])
-                     && (priority==4    || priority>=bug[4])
-                     && (idxCat==-1     || bug[idxCat]==cat)
-                     && (idxCode==-1    || bug[idxCode]==code)
-                     && (idxPattern==-1 || bug[idxPattern]==pattern)
-                     && (idxPackage==-1 || bug[idxPackage]==packageId)
-                     && (idxClass==-1   || bug[idxClass]==classId)
-                     ) {
-                  count[bug[4]]++;
-               }
-            }
-            count[0] = count[1] + count[2] + count[3] + count[4];
-            return count;
-         }
-
-         function countFixedBugsInVersion(version) {
-            var count = [0,0,0,0,0];
-            var last=1000000;
-            for (var x=0; x<fixedBugs.length-1; x++) {
-               var bug = fixedBugs[x];
-
-               var bugP = bug[4];
-
-               if ( version==-1 || version==(bug[6]+1)) {
-                  count[bug[4]]++;
-               }
-            }
-            count[0] = count[1] + count[2] + count[3] + count[4];
-            return count;
-         }
-
-         function countFixedButActiveBugsVersion(version) {
-            var count = [0,0,0,0,0];
-            var last=1000000;
-            for (var x=0; x<fixedBugs.length-1; x++) {
-               var bug = fixedBugs[x];
-
-               var bugP = bug[4];
-
-               if ( version==-1 || (version >=bug[5] && version<=bug[6]) ) {
-                  count[bug[4]]++;
-               }
-            }
-            count[0] = count[1] + count[2] + count[3] + count[4];
-            return count;
-         }
-
-         function countTotalBugsVersion(version) {
-            var count = [0,0,0,0,0];
-            var last=1000000;
-            for (var x=0; x<bugs.length-1; x++) {
-               var bug = bugs[x];
-
-               var bugP = bug[4];
-
-               if (version==-1 || version>=bug[5]) {
-                  count[bug[4]]++;
-               }
-            }
-            count[0] = count[1] + count[2] + count[3] + count[4];
-            return count;
-         }
-
-         function getPriorityLegend() {
-            var content = "";
-            content += "<h5><span class='b-1'>&nbsp;&nbsp;&nbsp;</span> P1 ";
-            content += "<span class='b-2'>&nbsp;&nbsp;&nbsp;</span> P2 ";
-            content += "<span class='b-3'>&nbsp;&nbsp;&nbsp;</span> P3 ";
-            content += "<span class='b-4'>&nbsp;&nbsp;&nbsp;</span> Exp ";
-            content += "</h5>";
-            return content;
-         }
-
-         function populatePackageNames() {
-            for (var i=0; i<bugs.length; i++) {
-               var classId = bugs[i][6];
-               var idx = classId.lastIndexOf('.');
-               var packageId = "";
-
-               if (idx>0) {
-                  packageId = classId.substring(0, idx);
-               }
-
-               bugs[i][7] = packageId;
-            }
-         }
-
-         function showbug(bugId, containerId, patternId) {
-            var bugplaceholder   = document.getElementById(containerId);
-            var bug              = document.getElementById(bugId);
-
-            if ( bugplaceholder==null) {
-               alert(buguid+'-ph-'+list+' - '+buguid+' - bugplaceholder==null');
-               return;
-            }
-            if ( bug==null) {
-               alert(buguid+'-ph-'+list+' - '+buguid+' - bug==null');
-               return;
-            }
-
-            var newBug = bug.innerHTML;
-            var pattern = document.getElementById('tip-'+patternId).innerHTML;
-            toggle(containerId);
-            bugplaceholder.innerHTML = newBug + pattern;
-         }
-         function toggle(foo) {
-            if( document.getElementById(foo).style.display == "none") {
-               show(foo);
-            } else {
-               if( document.getElementById(foo).style.display == "block") {
-                  hide(foo);
-               } else {
-                  show(foo);
-               }
-            }
-         }
-         function show(foo) {
-            document.getElementById(foo).style.display="block";
-         }
-         function hide(foo) {
-            document.getElementById(foo).style.display="none";
-         }
-
-         window.onload = function(){
-            init();
-         };
-      ]]></xsl:text></script>
-      <script type='text/javascript'>
-         // versions fields: release id, release label
-         var versions = new Array(
-            <xsl:for-each select="/BugCollection/History/AppVersion">
-               [ "<xsl:value-of select="@sequence" />", "<xsl:value-of select="@release" />" ],
-            </xsl:for-each>
-               [ "<xsl:value-of select="/BugCollection/@sequence" />", "<xsl:value-of select="/BugCollection/@release" />" ]
-            );
-
-         // categories fields: category id, category label
-         var categories = new Array(
-            <xsl:for-each select="/BugCollection/BugCategory">
-               <xsl:sort select="@category" order="ascending" />
-               [ "<xsl:value-of select="@category" />", "<xsl:value-of select="Description" />" ],
-            </xsl:for-each>
-               [ "", "" ]
-            );
-
-         // codes fields: code id, code label
-         var codes = new Array(
-            <xsl:for-each select="/BugCollection/BugCode">
-               <xsl:sort select="@abbrev" order="ascending" />
-               [ "<xsl:value-of select="@abbrev" />", "<xsl:value-of select="Description" />" ],
-            </xsl:for-each>
-               [ "", "" ]
-            );
-
-         // patterns fields: category id, code id, pattern id, pattern label
-         var patterns = new Array(
-            <xsl:for-each select="/BugCollection/BugPattern">
-               <xsl:sort select="@type" order="ascending" />
-               [ "<xsl:value-of select="@category" />", "<xsl:value-of select="@abbrev" />", "<xsl:value-of select="@type" />", "<xsl:value-of select="translate(ShortDescription, '&quot;', $apos)" />" ],
-
-            </xsl:for-each>
-               [ "", "", "", "" ]
-            );
-
-         // class stats fields: class name, package name, isInterface, total bugs, bugs p1, bugs p2, bugs p3, bugs p4
-         var classStats = new Array(
-            <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats/ClassStats">
-               <xsl:sort select="@class" order="ascending" />
-               [ "<xsl:value-of select="@class" />", "<xsl:value-of select="../@package" />", "<xsl:value-of select="@interface" />", "<xsl:value-of select="@bugs" />", "<xsl:value-of select="@priority_1" />", "<xsl:value-of select="@priority_2" />", "<xsl:value-of select="@priority_3" />", "<xsl:value-of select="@priority_4" />" ],
-            </xsl:for-each>
-               [ "", "", "", "", "", "", "", "" ]
-            );
-
-         // package stats fields: package name, total bugs, bugs p1, bugs p2, bugs p3, bugs p4
-         var packageStats = new Array(
-            <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats">
-               <xsl:sort select="@package" order="ascending" />
-               [ "<xsl:value-of select="@package" />", "<xsl:value-of select="@total_bugs" />", "<xsl:value-of select="@priority_1" />", "<xsl:value-of select="@priority_2" />", "<xsl:value-of select="@priority_3" />", "<xsl:value-of select="@priority_4" />" ],
-            </xsl:for-each>
-               [ "", "", "", "", "", "" ]
-            );
-
-
-         // bugs fields: bug id, category id, code id, pattern id, priority, release id, class name, packagename (populated by javascript)
-         var bugs = new Array(
-            <xsl:for-each select="/BugCollection/BugInstance[string-length(@last)=0]">
-
-               [ "<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />",
-                 "<xsl:value-of select="@category" />",
-                 "<xsl:value-of select="@abbrev" />",
-                 "<xsl:value-of select="@type" />",
-                 <xsl:value-of select="@priority" />,
-                 <xsl:choose><xsl:when test='string-length(@first)=0'>0</xsl:when><xsl:otherwise><xsl:value-of select="@first" /></xsl:otherwise></xsl:choose>,
-                 "<xsl:value-of select="Class/@classname" />",
-                 ""],
-            </xsl:for-each>
-               [ "", "", "", "", 0, 0, "", "" ]
-            );
-
-         // bugs fields: bug id, category id, code id, pattern id, priority, first release id, fixed release id, class name
-         var fixedBugs = new Array(
-            <xsl:for-each select="/BugCollection/BugInstance[string-length(@last)>0]">
-
-               [ "<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />",
-                 "<xsl:value-of select="@category" />",
-                 "<xsl:value-of select="@abbrev" />",
-                 "<xsl:value-of select="@type" />",
-                 <xsl:value-of select="@priority" />,
-                 <xsl:choose><xsl:when test='string-length(@first)=0'>0</xsl:when><xsl:otherwise><xsl:value-of select="@first" /></xsl:otherwise></xsl:choose>,
-                 <xsl:choose><xsl:when test='string-length(@last)>0'><xsl:value-of select="@last" /></xsl:when><xsl:otherwise>-42</xsl:otherwise></xsl:choose>,
-                 "<xsl:value-of select="Class/@classname" />" ],
-            </xsl:for-each>
-               [ "", "", "", "", 0, 0, 0, "" ]
-            );
-
-      </script>
-   </head>
-   <body>
-      <h3>
-         <a href="http://findbugs.sourceforge.net">FindBugs</a> (<xsl:value-of select="/BugCollection/@version" />) 
-         Analysis for 
-         <xsl:choose>
-            <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
-            <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
-         </xsl:choose>
-      </h3>
-
-      <div id='menuWrapper' style=''>
-         <div id="navcontainer">
-            <ul id="navlist">
-               <li><a id='summary'           class="current" href="#" onclick="selectMenu('summary'); return false;"         >Summary</a></li>
-               <li><a id='history'           class="none"    href="#" onclick="selectMenu('history'); return false;"         >History</a></li>
-               <li><a id='listByCategories'  class="none"    href="#" onclick="selectMenu('listByCategories'); return false;">Browse By Categories</a></li>
-               <li><a id='listByPackages'    class="none"    href="#" onclick="selectMenu('listByPackages'); return false;"  >Browse by Packages</a></li>
-               <li><a id='info'              class="none"    href="#" onclick="selectMenu('info'); return false;"            >Info</a></li>
-            </ul>
-         </div>
-      </div>
-
-      <div id='displayWrapper'>
-
-      <div style='height:25px;'>
-         <div id='messageContainer' style='float:right;'>
-            Computing data...
-         </div>
-         <div id='filterWrapper' style='display:none;'>
-            <form name='findbugsForm'>
-               <div id='filterContainer' >
-                  <select name='versions' onchange='filter()'>
-                     <option value="loading">Loading filter...</option>
-                  </select>
-                  <select name='priorities' onchange='filter()'>
-                     <option value="loading">Loading filter...</option>
-                  </select>
-               </div>
-            </form>
-         </div>
-      </div>
-         <div id='summaryContainer'          class='displayContainer'>
-            <h3>Package Summary</h3>
-            <table>
-               <tr>
-                  <th>Package</th>
-                  <th>Code Size</th>
-                  <th>Bugs</th>
-                  <th>Bugs p1</th>
-                  <th>Bugs p2</th>
-                  <th>Bugs p3</th>
-                  <th>Bugs Exp.</th>
-               </tr>
-               <tr>
-                  <td class='summary-name'>
-                     Overall
-                     (<xsl:value-of select="/BugCollection/FindBugsSummary/@num_packages" /> packages),
-                     (<xsl:value-of select="/BugCollection/FindBugsSummary/@total_classes" /> classes)
-                  </td>
-                  <td class='summary-size'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_size" /></td>
-                  <td class='summary-priority-all'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_bugs" /></td>
-                  <td class='summary-priority-1'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_1" /></td>
-                  <td class='summary-priority-2'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_2" /></td>
-                  <td class='summary-priority-3'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_3" /></td>
-                  <td class='summary-priority-4'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_4" /></td>
-               </tr>
-               <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats">
-                  <xsl:sort select="@package" order="ascending" />
-                  <xsl:if test="@total_bugs!='0'" >
-                     <tr>
-                        <td class='summary-name'><xsl:value-of select="@package" /></td>
-                        <td class='summary-size'><xsl:value-of select="@total_size" /></td>
-                        <td class='summary-priority-all'><xsl:value-of select="@total_bugs" /></td>
-                        <td class='summary-priority-1'><xsl:value-of select="@priority_1" /></td>
-                        <td class='summary-priority-2'><xsl:value-of select="@priority_2" /></td>
-                        <td class='summary-priority-3'><xsl:value-of select="@priority_3" /></td>
-                        <td class='summary-priority-4'><xsl:value-of select="@priority_4" /></td>
-                     </tr>
-                  </xsl:if>
-               </xsl:for-each>
-            </table>
-         </div>
-
-         <div id='infoContainer'             class='displayContainer'>
-            <div id='analyzed-files'>
-               <h3>Analyzed Files:</h3>
-               <ul>
-                  <xsl:for-each select="/BugCollection/Project/Jar">
-                     <li><xsl:apply-templates /></li>
-                  </xsl:for-each>
-               </ul>
-            </div>
-            <div id='used-libraries'>
-               <h3>Used Libraries:</h3>
-               <ul>
-                  <xsl:for-each select="/BugCollection/Project/AuxClasspathEntry">
-                     <li><xsl:apply-templates /></li>
-                  </xsl:for-each>
-                  <xsl:if test="count(/BugCollection/Project/AuxClasspathEntry)=0" >
-                     <li>None</li>
-                  </xsl:if>
-               </ul>
-            </div>
-            <div id='analysis-error'>
-               <h3>Analysis Errors:</h3>
-               <ul>
-                  <xsl:variable name="error-count"
-                                select="count(/BugCollection/Errors/MissingClass)" />
-                  <xsl:if test="$error-count=0" >
-                     <li>None</li>
-                  </xsl:if>
-                  <xsl:if test="$error-count>0" >
-                     <li>Missing ref classes for analysis:
-                        <ul>
-                           <xsl:for-each select="/BugCollection/Errors/MissingClass">
-                              <li><xsl:apply-templates /></li>
-                           </xsl:for-each>
-                        </ul>
-                     </li>
-                  </xsl:if>
-               </ul>
-            </div>
-         </div>
-         <div id='historyContainer'          class='displayContainer'>Loading...</div>
-         <div id='listByCategoriesContainer' class='displayContainer'>Loading...</div>
-         <div id='listByPackagesContainer'   class='displayContainer'>Loading...</div>
-      </div>
-
-      <div id='bug-collection' style='display:none;'>
-      <!-- advanced tooltips -->
-      <xsl:for-each select="/BugCollection/BugPattern">
-         <xsl:variable name="b-t"><xsl:value-of select="@type" /></xsl:variable>
-         <div>
-            <xsl:attribute name="id">tip-<xsl:value-of select="$b-t" /></xsl:attribute>
-            <xsl:attribute name="class">tip</xsl:attribute>
-            <xsl:value-of select="/BugCollection/BugPattern[@type=$b-t]/Details" disable-output-escaping="yes" />
-         </div>
-      </xsl:for-each>
-
-      <!-- bug descriptions - hidden -->
-      <xsl:for-each select="/BugCollection/BugInstance[not(@last)]">
-            <div style="display:none;" class='bug'>
-               <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:attribute>
-               <xsl:for-each select="*/Message">
-                  <div class="b-r"><xsl:apply-templates /></div>
-               </xsl:for-each>
-               <div class="b-d">
-                  <xsl:value-of select="LongMessage" disable-output-escaping="no" />
-               </div>
-            </div>
-      </xsl:for-each>
-      </div>
-   </body>
-</html>
-</xsl:template>
-
-
-</xsl:transform>
-

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy-hist.xsl (from rev 25071, labs/jbossesb/trunk/findbugs/src/xsl/fancy-hist.xsl)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy-hist.xsl	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy-hist.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,1127 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Copyright (C) 2005, 2006 Etienne Giraudy, InStranet Inc
+  Copyright (C) 2005, 2007 Etienne Giraudy
+
+  This library 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 library 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 library; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+-->
+
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
+   <xsl:output
+         method="xml" indent="yes"
+         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
+         doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
+         encoding="UTF-8"/>
+
+   <xsl:variable name="apos" select="&quot;'&quot;"/>
+   <xsl:key name="lbc-code-key"        match="/BugCollection/BugInstance" use="concat(@category, at abbrev)" />
+   <xsl:key name="lbc-bug-key"         match="/BugCollection/BugInstance" use="concat(@category, at abbrev, at type)" />
+   <xsl:key name="lbp-class-b-t"  match="/BugCollection/BugInstance" use="concat(Class/@classname, at type)" />
+
+<xsl:template match="/" >
+
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+      <title>
+         FindBugs (<xsl:value-of select="/BugCollection/@version" />) 
+         Analysis for 
+         <xsl:choose>
+            <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
+            <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
+         </xsl:choose>
+      </title>
+      <style type="text/css">
+         html, body, div, form {
+            margin:0px;
+            padding:0px;
+         }
+         body {
+            padding:3px;
+         }
+         a, a:link , a:active, a:visited, a:hover {
+            text-decoration: none; color: black;
+         }
+         #navlist {
+                 padding: 3px 0;
+                 margin-left: 0;
+                 border-bottom: 1px solid #778;
+                 font: bold 12px Verdana, sans-serif;
+         }
+         #navlist li {
+                 list-style: none;
+                 margin: 0;
+                 display: inline;
+         }
+         #navlist li a {
+                 padding: 3px 0.5em;
+                 margin-left: 3px;
+                 border: 1px solid #778;
+                 border-bottom: none;
+                 background: #DDE;
+                 text-decoration: none;
+         }
+         #navlist li a:link { color: #448; }
+         #navlist li a:visited { color: #667; }
+         #navlist li a:hover {
+                 color: #000;
+                 background: #AAE;
+                 border-color: #227;
+         }
+         #navlist li a.current {
+                 background: white;
+                 border-bottom: 1px solid white;
+         }
+         #filterWrapper {
+            margin-bottom:5px;
+         }
+         #displayWrapper {
+            margin-top:5px;
+         }
+         .message {
+            background:#BBBBBB;
+           border: 1px solid #778;
+         }
+         .displayContainer {
+            border:1px solid #555555;
+            margin-top:3px;
+            padding: 3px;
+            display:none;
+         }
+         #summaryContainer table,
+         #historyContainer table {
+            border:1px solid black;
+         }
+         #summaryContainer th,
+         #historyContainer th {
+            background: #aaaaaa;
+            color: white;
+         }
+         #summaryContainer th, #summaryContainer td,
+         #historyContainer th, #historyContainer td {
+            padding: 2px 4px 2px 4px;
+         }
+         .summary-name {
+            background: #eeeeee;
+            text-align:left;
+         }
+         .summary-size {
+            background: #eeeeee;
+            text-align:center;
+         }
+         .summary-priority-all {
+            background: #dddddd;
+            text-align:center;
+         }
+         .summary-priority-1 {
+            background: red;
+            text-align:center;
+         }
+         .summary-priority-2 {
+            background: orange;
+            text-align:center;
+         }
+         .summary-priority-3 {
+            background: green;
+            text-align:center;
+         }
+         .summary-priority-4 {
+            background: blue;
+            text-align:center;
+         }
+
+         .bugList-level1 {
+            margin-bottom:5px;
+         }
+         .bugList-level1, .bugList-level2, .bugList-level3, .bugList-level4 {
+            background-color: #ffffff;
+            margin-left:15px;
+            padding-left:10px;
+         }
+         .bugList-level1-label, .bugList-level2-label, .bugList-level3-label, .bugList-level4-label {
+            background-color: #bbbbbb;
+            border: 1px solid black;
+            padding: 1px 3px 1px 3px;;
+         }
+         .bugList-level2-label, .bugList-level3-label, .bugList-level4-label {
+            border-width: 0px 1px 1px 1px;
+         }
+         .bugList-level4-label {
+            background-color: #ffffff;
+            border: 0px 0px 1px 0px;
+         }
+         .bugList-level4 {
+            border: 0px 1px 1px 1px;
+         }
+
+         .bugList-level4-inner {
+            border-style: solid;
+            border-color: black;
+            border-width: 0px 1px 1px 1px;
+         }
+         .b-r {
+            font-size: 10pt; font-weight: bold; padding: 0 0 0 60px;
+         }
+         .b-d {
+            font-weight: normal; background: #ccccc0;
+            padding: 0 5px 0 5px; margin: 0px;
+         }
+         .b-1 {
+            background: red; height: 0.5em; width: 1em;
+            margin-right: 0.5em;
+         }
+         .b-2 {
+            background: orange; height: 0.5em; width: 1em;
+            margin-right: 0.5em;
+         }
+         .b-3 {
+            background: green; height: 0.5em; width: 1em;
+            margin-right: 0.5em;
+         }
+         .b-4 {
+            background: blue; height: 0.5em; width: 1em;
+            margin-right: 0.5em;
+         }
+
+      </style>
+      <script type='text/javascript'><xsl:text disable-output-escaping='yes'><![CDATA[
+         var menus            = new Array('summary','info','history','listByCategories','listByPackages');
+         var selectedMenuId   = "summary";
+         var selectedVersion  = -1;
+         var selectedPriority = 4;
+         var lastVersion      = 0;
+
+         var bPackageNamesPopulated = false;
+
+         var filterContainerId              = "filterWrapper";
+         var messageContainerId             = "messageContainer";
+         var summaryContainerId             = "summaryContainer";
+         var infoContainerId                = "infoContainer";
+         var historyContainerId             = "historyContainer";
+         var listByCategoriesContainerId    = "listByCategoriesContainer";
+         var listByPackagesContainerId      = "listByPackagesContainer";
+
+         var idxCatKey = 0; var idxCatDescr = 1; var idxBugCat = 1;
+         var idxCodeKey = 0; var idxCodeDescr = 1; var idxBugCode = 2;
+         var idxPatternKey = 2; var idxPatternDescr = 3; var idxBugPattern = 3;
+         var idxBugKey = 0; var idxBugDescr = 6;
+         var idxBugClass = 6, idxBugPackage = 7;
+
+         // main init function
+         function init() {
+            loadFilter();
+            selectMenu(selectedMenuId);
+            lastVersion = versions.length - 1;
+         }
+
+         // menu callback function
+         function selectMenu(menuId) {
+            document.getElementById(selectedMenuId).className="none";
+            document.getElementById(menuId).className="current";
+            if (menuId!=selectedMenuId) {
+               hideMenu(selectedMenuId);
+               selectedMenuId = menuId;
+            }
+            if (menuId=="summary")           displaySummary();
+            if (menuId=="info")              displayInfo();
+            if (menuId=="history")           displayHistory();
+            if (menuId=="listByCategories")  displayListByCategories();
+            if (menuId=="listByPackages")    displayListByPackages();
+         }
+
+         // display filter
+         function loadFilter() {
+            var versionsBox = document.findbugsForm.versions.options;
+            versionsBox[0] = new Option(" -- All Versions -- ","-1");
+            versionsBox.selectedIndex = 0;
+            if (versions.length>=1) {
+               for (x=0; versions.length>1 && x<versions.length; x++) {
+                  versionsBox[x+1] = new Option(" Bugs at release: "+versions[versions.length-x-1][1], versions[versions.length-x-1][0]);
+               }
+            }
+
+            var prioritiesBox = document.findbugsForm.priorities.options;
+            prioritiesBox[0] = new Option(" -- All priorities -- ", "4");
+            prioritiesBox[1] = new Option(" P1 bugs ", "1");
+            prioritiesBox[2] = new Option(" P1 and P2 bugs ", "2");
+            prioritiesBox[3] = new Option(" P1, P2 and P3 bugs ", "3");
+         }
+
+         // display a message
+         function displayMessage(msg) {
+            var container = document.getElementById(messageContainerId);
+            container.innerHTML = "<div class='message'>"+msg+"</div>";
+         }
+
+         // reset displayed message
+         function resetMessage() {
+            var container = document.getElementById(messageContainerId);
+            container.innerHTML = "";
+         }
+
+         function hideMenu(menuId) {
+            var container = menuId+"Container";
+            document.getElementById(container).style.display="none";
+         }
+
+         // filter callback function
+         function filter() {
+            var versionsBox = document.findbugsForm.versions.options;
+            selectedVersion = versionsBox[versionsBox.selectedIndex].value;
+
+            var prioritiesBox = document.findbugsForm.priorities.options;
+            selectedPriority = prioritiesBox[prioritiesBox.selectedIndex].value;
+
+            selectMenu(selectedMenuId);
+         }
+
+         // display summary tab
+         function displaySummary() {
+            resetMessage();
+            hide(filterContainerId);
+            var container = document.getElementById(summaryContainerId);
+            container.style.display="block";
+         }
+
+         // display info tab
+         function displayInfo() {
+            resetMessage();
+            hide(filterContainerId);
+            var container = document.getElementById(infoContainerId);
+            container.style.display="block";
+         }
+
+         // display history tab
+         function displayHistory() {
+            displayMessage("Loading history...");
+            hide(filterContainerId);
+            var container = document.getElementById(historyContainerId);
+            var content = "";
+            var i=0;
+            var p = [0,0,0,0,0];
+            var f = [0,0,0,0,0];
+
+            content += "<table><tr><th>Release</th><th>Bugs</th><th>Bugs p1</th><th>Bugs p2</th><th>Bugs p3</th><th>Bugs Exp.</th></tr>";
+
+            for (i=(versions.length-1); i>0; i--) {
+               v = countBugsVersion(i, 4);
+               t = countTotalBugsVersion(i);
+               o = countFixedButActiveBugsVersion(i);
+               f = countFixedBugsInVersion(i);
+               content += "<tr>";
+               content += "<td class='summary-name'>" + versions[i][1] + "</td>";
+               content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " (+" + v[0] + " / -" + f[0] + ") </td>";
+               content += "<td class='summary-priority-1'  > " + (t[1] + o[1]) + " (+" + v[1] + " / -" + f[1] + ") </td>";
+               content += "<td class='summary-priority-2'  > " + (t[2] + o[2]) + " (+" + v[2] + " / -" + f[2] + ") </td>";
+               content += "<td class='summary-priority-3'  > " + (t[3] + o[3]) + " (+" + v[3] + " / -" + f[3] + ") </td>";
+               content += "<td class='summary-priority-4'  > " + (t[4] + o[4]) + " (+" + v[4] + " / -" + f[4] + ") </td>";
+               content += "</tr>";
+            }
+
+            t = countTotalBugsVersion(0);
+            o = countFixedButActiveBugsVersion(0);
+            content += "<tr>";
+            content += "<td class='summary-name'>" + versions[0][1] + "</td>";
+            content += "<td class='summary-priority-all'> " + (t[0] + o[0]) + " </td>";
+            content += "<td class='summary-priority-1'  > " + (t[1] + o[1]) + " </td>";
+            content += "<td class='summary-priority-2'  > " + (t[2] + o[2]) + " </td>";
+            content += "<td class='summary-priority-3'  > " + (t[3] + o[3]) + " </td>";
+            content += "<td class='summary-priority-4'  > " + (t[4] + o[4]) + " </td>";
+            content += "</tr>";
+
+            content += "</table>";
+            container.innerHTML = content;
+            container.style.display="block";
+            resetMessage();
+         }
+
+         // display list by cat tab
+         function displayListByCategories() {
+            show(filterContainerId);
+            var container = document.getElementById(listByCategoriesContainerId);
+            container.innerHTML = "";
+            container.style.display="block";
+            displayMessage("Loading stats (categories)...");
+            container.innerHTML = displayLevel1("lbc", "Stats by Bug Categories");
+            resetMessage();
+         }
+
+         // display list by package tab
+         function displayListByPackages() {
+            show(filterContainerId);
+            var container = document.getElementById(listByPackagesContainerId);
+            container.style.display="block";
+            if (!bPackageNamesPopulated) {
+               displayMessage("Initializing...");
+               populatePackageNames();
+            }
+            displayMessage("Loading stats (packages)...");
+            container.innerHTML = displayLevel1("lbp", "Stats by Bug Package");
+            resetMessage();
+         }
+
+         // callback function for list item click
+         function toggleList(listType, containerId, id1, id2, id3) {
+            var container = document.getElementById(containerId);
+            if (container.style.display=="block") {
+               container.style.display="none";
+            } else {
+               if (listType=="lbc") {
+                  if (id1.length>0 && id2.length==0 && id3.length==0) {
+                     displayCategoriesCodes(containerId, id1);
+                  } else if (id1.length>0 && id2.length>0 && id3.length==0) {
+                     displayCategoriesCodesPatterns(containerId, id1, id2);
+                  } else if (id1.length>0 && id2.length>0 && id3.length>0) {
+                     displayCategoriesCodesPatternsBugs(containerId, id1, id2, id3);
+                  } else {
+                     // ???
+                  }
+               } else if (listType=="lbp") {
+                  if (id1.length>0 && id2.length==0 && id3.length==0) {
+                     displayPackageCodes(containerId, id1);
+                  } else if (id1.length>0 && id2.length>0 && id3.length==0) {
+                     displayPackageClassPatterns(containerId, id1, id2);
+                  } else if (id1.length>0 && id2.length>0 && id3.length>0) {
+                     displayPackageClassPatternsBugs(containerId, id1, id2, id3);
+                  } else {
+                     // ???
+                  }
+               } else {
+                  // ????
+               }
+            }
+         }
+
+         // list by categories, display bug cat>codes
+         function displayCategoriesCodes(containerId, catId) {
+            displayMessage("Loading stats (codes)...");
+            var container = document.getElementById(containerId);
+            container.style.display="block";
+            if (container.innerHTML=="Loading..." || container.innerHTML=="") {
+               container.innerHTML = displayLevel2("lbc", catId);
+            }
+            resetMessage();
+         }
+
+         // list by categories, display bug package>codes
+         function displayPackageCodes(containerId, packageId) {
+            displayMessage("Loading stats (codes)...");
+            var container = document.getElementById(containerId);
+            container.style.display="block";
+            if (container.innerHTML=="Loading..." || container.innerHTML=="") {
+               container.innerHTML = displayLevel2("lbp", packageId);
+            }
+            resetMessage();
+         }
+
+         // list by categories, display bug cat>codes>patterns
+         function displayCategoriesCodesPatterns(containerId, catId, codeId) {
+            displayMessage("Loading stats (patterns)...");
+            var container = document.getElementById(containerId);
+            container.style.display="block";
+            if (container.innerHTML=="Loading..." || container.innerHTML=="")
+               container.innerHTML = displayLevel3("lbc", catId, codeId);
+            resetMessage();
+         }
+
+         // list by package, display bug package>class>patterns
+         function displayPackageClassPatterns(containerId, packageId, classId) {
+            displayMessage("Loading stats (patterns)...");
+            var container = document.getElementById(containerId);
+            container.style.display="block";
+            if (container.innerHTML=="Loading..." || container.innerHTML=="")
+               container.innerHTML = displayLevel3("lbp", packageId, classId);
+            resetMessage();
+         }
+
+         // list by categories, display bug cat>codes>patterns>bugs
+         function displayCategoriesCodesPatternsBugs(containerId, catId, codeId, patternId) {
+            displayMessage("Loading stats (bugs)...");
+            var container = document.getElementById(containerId);
+            container.style.display="block";
+            if (container.innerHTML=="Loading..." || container.innerHTML=="")
+               container.innerHTML = displayLevel4("lbc", catId, codeId, patternId);
+            resetMessage();
+         }
+
+         // list by package, display bug package>class>patterns>bugs
+         function displayPackageClassPatternsBugs(containerId, packageId, classId, patternId) {
+            displayMessage("Loading stats (bugs)...");
+            var container = document.getElementById(containerId);
+            container.style.display="block";
+            if (container.innerHTML=="Loading..." || container.innerHTML=="")
+               container.innerHTML = displayLevel4("lbp",  packageId, classId, patternId);
+            resetMessage();
+         }
+
+         // generate level 1 list
+         function displayLevel1(list, title) {
+            var content = "";
+            var content2 = "";
+
+            content += "<h3>"+title+"</h3>";
+            content += getPriorityLegend();
+            content2 += "<div class='bugList'>";
+
+            var id = "";
+            var containerId = "";
+            var subContainerId = "";
+            var prefixSub = "";
+            var prefixId = "";
+            var p = [0,0,0,0,0];
+            var numberOfBugs = 0;
+            var label = "";
+            var max = 0;
+            if (list=="lbc") {
+               max = categories.length;
+            } else if (list=="lbp") {
+               max = packageStats.length;
+            }
+
+            for (var x=0; x<max -1; x++) {
+               if (list=="lbp" && packageStats[x][1]=="0") continue;
+
+               if (list=="lbc") {
+                  id = categories[x][idxCatKey];
+                  label = categories[x][idxCatDescr];
+                  containerId = "categories-" + id;
+                  subContainerId = "cat-"+id;
+                  p = countBugsCat(selectedVersion, selectedPriority, id, idxBugCat);
+               }
+               if (list=="lbp") {
+                  id = packageStats[x][0];
+                  label = packageStats[x][0];
+                  containerId = "packages-" + id;
+                  subContainerId = "package-"+id;
+                  p = countBugsPackage(selectedVersion, selectedPriority, id, idxBugPackage);
+               }
+
+               subContainerId = prefixSub+id;
+
+               var total = p[1]+p[2]+p[3]+p[4];
+               if (total > 0) {
+                  content2 += addListItem( 1, containerId, label, total, p, subContainerId,
+                                          "toggleList('" + list + "', '" + subContainerId + "', '"+ id + "', '', '')"
+                                          );
+               }
+               numberOfBugs += total;
+            }
+            content2 += "</div>";
+            content += "<h4>Total number of bugs";
+            if (selectedVersion!=-1) {
+               content += " (introduced in release " + versions[selectedVersion][1] +")";
+            }
+            content += ": "+numberOfBugs+"</h4>";
+            return content+content2;
+         }
+
+         // generate level 2 list
+        function displayLevel2(list, id1) {
+            var content = "";
+            var code = "";
+            var containerId = "";
+            var subContainerId = "";
+            var p = [0,0,0,0,0];
+            var max = 0;
+            var id2 = "";
+            if (list=="lbc") {
+               max = codes.length;
+            } else if (list=="lbp") {
+               max = classStats.length;
+            }
+
+            for (var x=0; x<max -1; x++) {
+               if (list=="lbp" && classStats[x][3]=="0") continue;
+
+               if (list=="lbc") {
+                  id2 = codes[x][idxCodeKey];
+                  label = codes[x][idxCodeDescr];
+                  containerId = "codes-"+id1;
+                  subContainerId = "cat-" + id1 + "-code-" + id2;
+                  p = countBugsCode(selectedVersion, selectedPriority, id1, idxBugCat, id2, idxBugCode);
+               }
+               if (list=="lbp") {
+                  id2 = classStats[x][0];
+                  label = classStats[x][0];
+                  containerId = "packages-"+id1;
+                  subContainerId = "package-" + id1 + "-class-" + id2;
+                  p = countBugsClass(selectedVersion, selectedPriority, id1, idxBugPackage, id2, idxBugClass);
+               }
+
+               var total = p[1]+p[2]+p[3]+p[4];
+               if (total > 0) {
+                  content += addListItem( 2, containerId, label, total, p, subContainerId,
+                                          "toggleList('"+ list + "', '" + subContainerId + "', '"+ id1 + "', '"+ id2 + "', '')"
+                                          );
+               }
+            }
+            return content;
+         }
+
+         // generate level 3 list
+        function displayLevel3(list, id1, id2) {
+            var content = "";
+            var containerId = "";
+            var subContainerId = "";
+            var p = [0,0,0,0,0];
+            var max = 0;
+            var label = "";
+            var id3 = "";
+
+            if (list=="lbc") {
+               max = patterns.length;
+            } else if (list=="lbp") {
+               max = patterns.length;
+            }
+
+            for (var x=0; x<max -1; x++) {
+               //if (list=="lbp" && (patterns[x][0]!=id1 || patterns[x][1]!=id2)) continue;
+               //if (list=="lbp" && classStats[x][3]=="0") continue;
+
+               if (list=="lbc") {
+                  id3 = patterns[x][idxPatternKey];;
+                  label = patterns[x][idxPatternDescr];
+                  containerId = "patterns-"+id1;
+                  subContainerId = "cat-" + id1 + "-code-" + id2 + "-pattern-" + id3;
+                  p = countBugsPattern(selectedVersion, selectedPriority, id1, idxBugCat, id2, idxBugCode, id3, idxBugPattern);
+               }
+               if (list=="lbp") {
+                  id3 = patterns[x][idxPatternKey];;
+                  label = patterns[x][idxPatternDescr];
+                  containerId = "classpatterns-"+id1;
+                  subContainerId = "package-" + id1 + "-class-" + id2 + "-pattern-" + id3;
+                  p = countBugsClassPattern(selectedVersion, selectedPriority, id2, idxBugClass, id3, idxBugPattern);
+               }
+
+               var total = p[1]+p[2]+p[3]+p[4];
+               if (total > 0) {
+                  content += addListItem( 3, containerId, label, total, p, subContainerId,
+                                          "toggleList('" + list + "', '" + subContainerId + "', '"+ id1 + "', '"+ id2 + "', '"+ id3 + "')"
+                                          );
+               }
+            }
+            return content;
+         }
+
+         // generate level 4 list
+        function displayLevel4(list, id1, id2, id3) {
+            var content = "";
+            var bug = "";
+            var bugP = 0;
+            var containerId = "";
+            var subContainerId = "";
+            var bugId = "";
+            var label = "";
+            var p = [0,0,0,0,0];
+            for (var x=0; x<bugs.length -1; x++) {
+               bug = bugs[x];
+               if (list=="lbc") {
+                  if ( bug[1]!=id1 || bug[2]!=id2 || bug[3]!=id3 ) continue;
+                  if ( selectedVersion!=-1
+                     && selectedVersion!=bug[5]) continue;
+                  if ( selectedPriority!=4
+                     && selectedPriority<bug[4]) continue;
+
+                  subContainerId = "cat-" + id1 + "-code-" + id2 + "-pattern-" + id3 + "-bug-" + bug[0];
+               }
+               if (list=="lbp") {
+                  if ( bug[7]!=id1 || bug[6]!=id2 || bug[3]!=id3 ) continue;
+                  if ( selectedVersion!=-1
+                     && selectedVersion!=bug[5]) continue;
+                  if ( selectedPriority!=4
+                     && selectedPriority<bug[4]) continue;
+
+                  subContainerId = "package-" + id1 + "-class-" + id2 + "-pattern-" + id3 + "-bug-" + bug[0];
+               }
+
+               bugId = "b-uid-" + bug[0];
+               label = bug[idxBugDescr];
+               containerId = "bugs-"+bugId;
+               bugP = bug[4];
+               p[bugP]++;
+               var total = p[1]+p[2]+p[3]+p[4];
+               if (total > 0) {
+                  content += addBug(   4, containerId, label, bugP, bug[5], subContainerId,
+                                       "showbug('" + bugId + "', '" + subContainerId + "', '"+id3+"')");
+               }
+            }
+            return content;
+         }
+
+
+         function addListItem(level, id, label, total, p, subId, onclick) {
+            var content = "";
+
+            content += "<div class='bugList-level"+level+"' >";
+            content += "<div class='bugList-level"+level+"-label' id='"+id+"' >";
+            content += "<a href='' onclick=\"" + onclick + ";return false;\" ";
+            content += ">";
+            content += "<strong>"+label+"</strong>";
+            content += " "+total+" bugs";
+            if (selectedPriority>1)
+               content += " <em>("+p[1];
+            if (selectedPriority>=2)
+               content += "/"+p[2];
+            if (selectedPriority>=3)
+               content += "/"+p[3];
+            if (selectedPriority>=4)
+               content += "/"+p[4];
+            if (selectedPriority>1)
+               content += ")</em>";
+            content += "</a>";
+            content += "</div>";
+            content += "<div class='bugList-level"+level+"-inner' id='"+subId+"' style='display:none;'>Loading...</div>";
+            content += "</div>";
+            return content;
+         }
+
+         function addBug( level, id, label, p, version, subId, onclick) {
+            var content = "";
+
+            content += "<div class='bugList-level" + level + "' id='" + id + "'>";
+            content += "<div class='bugList-level" + level + "-label' id='" + id + "'>";
+            content += "<span class='b-" + p + "'>&nbsp;&nbsp;&nbsp;</span>";
+            content += "<a href='' onclick=\"" + onclick + ";return false;\">";
+            if (version==lastVersion) {
+               content += "<span style='color:red;font-weight:bold;'>NEW!</span> ";
+            }
+            content += "<strong>" + label + "</strong>";
+            if (version==0) {
+               content += " <em>since release first historized release</em>";
+            } else {
+               content += " <em>since release " + versions[version][1] + "</em>";
+            }
+            content += "</a>";
+            content += "</div>";
+            content += "<div class='bugList-level" + level + "-inner' id='" + subId + "' style='display:none;'>Loading...</div>";
+            content += "</div>";
+            return content;
+         }
+
+         function countBugsVersion(version, priority) {
+            return countBugs(version, priority, "", -1, "", -1, "", -1, "", -1, "", -1);
+         }
+
+         function countBugsCat(version, priority, cat, idxCat) {
+            return countBugs(version, priority, cat, idxCat, "", -1, "", -1, "", -1, "", -1);
+         }
+
+         function countBugsPackage(version, priority, packageId, idxPackage) {
+            return countBugs(version, priority, "", -1, "", -1, "", -1, packageId, idxPackage, "", -1);
+         }
+
+         function countBugsCode(version, priority, cat, idxCat, code, idxCode) {
+            return countBugs(version, priority, cat, idxCat, code, idxCode, "", -1, "", -1, "", -1);
+         }
+
+         function countBugsPattern(version, priority, cat, idxCat, code, idxCode, packageId, idxPattern) {
+            return countBugs(version, priority, cat, idxCat, code, idxCode, packageId, idxPattern, "", -1, "", -1);
+         }
+
+         function countBugsClass(version, priority, id1, idxBugPackage, id2, idxBugClass) {
+            return countBugs(version, priority, "", -1, "", -1, "", -1, id1, idxBugPackage, id2, idxBugClass);
+         }
+
+         function countBugsClassPattern(version, priority, id2, idxBugClass, id3, idxBugPattern) {
+            return countBugs(version, priority, "", -1, "", -1, id3, idxBugPattern, "", -1, id2, idxBugClass);
+         }
+
+         function countBugs(version, priority, cat, idxCat, code, idxCode, pattern, idxPattern, packageId, idxPackage, classId, idxClass) {
+            var count = [0,0,0,0,0];
+            var last=1000000;
+            for (var x=0; x<bugs.length-1; x++) {
+               var bug = bugs[x];
+
+               var bugCat = bug[idxCat];
+               var bugP = bug[4];
+               var bugCode = bug[idxCode];
+               var bugPattern = bug[idxPattern];
+
+               if (     (version==-1    || version==bug[5])
+                     && (priority==4    || priority>=bug[4])
+                     && (idxCat==-1     || bug[idxCat]==cat)
+                     && (idxCode==-1    || bug[idxCode]==code)
+                     && (idxPattern==-1 || bug[idxPattern]==pattern)
+                     && (idxPackage==-1 || bug[idxPackage]==packageId)
+                     && (idxClass==-1   || bug[idxClass]==classId)
+                     ) {
+                  count[bug[4]]++;
+               }
+            }
+            count[0] = count[1] + count[2] + count[3] + count[4];
+            return count;
+         }
+
+         function countFixedBugsInVersion(version) {
+            var count = [0,0,0,0,0];
+            var last=1000000;
+            for (var x=0; x<fixedBugs.length-1; x++) {
+               var bug = fixedBugs[x];
+
+               var bugP = bug[4];
+
+               if ( version==-1 || version==(bug[6]+1)) {
+                  count[bug[4]]++;
+               }
+            }
+            count[0] = count[1] + count[2] + count[3] + count[4];
+            return count;
+         }
+
+         function countFixedButActiveBugsVersion(version) {
+            var count = [0,0,0,0,0];
+            var last=1000000;
+            for (var x=0; x<fixedBugs.length-1; x++) {
+               var bug = fixedBugs[x];
+
+               var bugP = bug[4];
+
+               if ( version==-1 || (version >=bug[5] && version<=bug[6]) ) {
+                  count[bug[4]]++;
+               }
+            }
+            count[0] = count[1] + count[2] + count[3] + count[4];
+            return count;
+         }
+
+         function countTotalBugsVersion(version) {
+            var count = [0,0,0,0,0];
+            var last=1000000;
+            for (var x=0; x<bugs.length-1; x++) {
+               var bug = bugs[x];
+
+               var bugP = bug[4];
+
+               if (version==-1 || version>=bug[5]) {
+                  count[bug[4]]++;
+               }
+            }
+            count[0] = count[1] + count[2] + count[3] + count[4];
+            return count;
+         }
+
+         function getPriorityLegend() {
+            var content = "";
+            content += "<h5><span class='b-1'>&nbsp;&nbsp;&nbsp;</span> P1 ";
+            content += "<span class='b-2'>&nbsp;&nbsp;&nbsp;</span> P2 ";
+            content += "<span class='b-3'>&nbsp;&nbsp;&nbsp;</span> P3 ";
+            content += "<span class='b-4'>&nbsp;&nbsp;&nbsp;</span> Exp ";
+            content += "</h5>";
+            return content;
+         }
+
+         function populatePackageNames() {
+            for (var i=0; i<bugs.length; i++) {
+               var classId = bugs[i][6];
+               var idx = classId.lastIndexOf('.');
+               var packageId = "";
+
+               if (idx>0) {
+                  packageId = classId.substring(0, idx);
+               }
+
+               bugs[i][7] = packageId;
+            }
+         }
+
+         function showbug(bugId, containerId, patternId) {
+            var bugplaceholder   = document.getElementById(containerId);
+            var bug              = document.getElementById(bugId);
+
+            if ( bugplaceholder==null) {
+               alert(buguid+'-ph-'+list+' - '+buguid+' - bugplaceholder==null');
+               return;
+            }
+            if ( bug==null) {
+               alert(buguid+'-ph-'+list+' - '+buguid+' - bug==null');
+               return;
+            }
+
+            var newBug = bug.innerHTML;
+            var pattern = document.getElementById('tip-'+patternId).innerHTML;
+            toggle(containerId);
+            bugplaceholder.innerHTML = newBug + pattern;
+         }
+         function toggle(foo) {
+            if( document.getElementById(foo).style.display == "none") {
+               show(foo);
+            } else {
+               if( document.getElementById(foo).style.display == "block") {
+                  hide(foo);
+               } else {
+                  show(foo);
+               }
+            }
+         }
+         function show(foo) {
+            document.getElementById(foo).style.display="block";
+         }
+         function hide(foo) {
+            document.getElementById(foo).style.display="none";
+         }
+
+         window.onload = function(){
+            init();
+         };
+      ]]></xsl:text></script>
+      <script type='text/javascript'>
+         // versions fields: release id, release label
+         var versions = new Array(
+            <xsl:for-each select="/BugCollection/History/AppVersion">
+               [ "<xsl:value-of select="@sequence" />", "<xsl:value-of select="@release" />" ],
+            </xsl:for-each>
+               [ "<xsl:value-of select="/BugCollection/@sequence" />", "<xsl:value-of select="/BugCollection/@release" />" ]
+            );
+
+         // categories fields: category id, category label
+         var categories = new Array(
+            <xsl:for-each select="/BugCollection/BugCategory">
+               <xsl:sort select="@category" order="ascending" />
+               [ "<xsl:value-of select="@category" />", "<xsl:value-of select="Description" />" ],
+            </xsl:for-each>
+               [ "", "" ]
+            );
+
+         // codes fields: code id, code label
+         var codes = new Array(
+            <xsl:for-each select="/BugCollection/BugCode">
+               <xsl:sort select="@abbrev" order="ascending" />
+               [ "<xsl:value-of select="@abbrev" />", "<xsl:value-of select="Description" />" ],
+            </xsl:for-each>
+               [ "", "" ]
+            );
+
+         // patterns fields: category id, code id, pattern id, pattern label
+         var patterns = new Array(
+            <xsl:for-each select="/BugCollection/BugPattern">
+               <xsl:sort select="@type" order="ascending" />
+               [ "<xsl:value-of select="@category" />", "<xsl:value-of select="@abbrev" />", "<xsl:value-of select="@type" />", "<xsl:value-of select="translate(ShortDescription, '&quot;', $apos)" />" ],
+
+            </xsl:for-each>
+               [ "", "", "", "" ]
+            );
+
+         // class stats fields: class name, package name, isInterface, total bugs, bugs p1, bugs p2, bugs p3, bugs p4
+         var classStats = new Array(
+            <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats/ClassStats">
+               <xsl:sort select="@class" order="ascending" />
+               [ "<xsl:value-of select="@class" />", "<xsl:value-of select="../@package" />", "<xsl:value-of select="@interface" />", "<xsl:value-of select="@bugs" />", "<xsl:value-of select="@priority_1" />", "<xsl:value-of select="@priority_2" />", "<xsl:value-of select="@priority_3" />", "<xsl:value-of select="@priority_4" />" ],
+            </xsl:for-each>
+               [ "", "", "", "", "", "", "", "" ]
+            );
+
+         // package stats fields: package name, total bugs, bugs p1, bugs p2, bugs p3, bugs p4
+         var packageStats = new Array(
+            <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats">
+               <xsl:sort select="@package" order="ascending" />
+               [ "<xsl:value-of select="@package" />", "<xsl:value-of select="@total_bugs" />", "<xsl:value-of select="@priority_1" />", "<xsl:value-of select="@priority_2" />", "<xsl:value-of select="@priority_3" />", "<xsl:value-of select="@priority_4" />" ],
+            </xsl:for-each>
+               [ "", "", "", "", "", "" ]
+            );
+
+
+         // bugs fields: bug id, category id, code id, pattern id, priority, release id, class name, packagename (populated by javascript)
+         var bugs = new Array(
+            <xsl:for-each select="/BugCollection/BugInstance[string-length(@last)=0]">
+
+               [ "<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />",
+                 "<xsl:value-of select="@category" />",
+                 "<xsl:value-of select="@abbrev" />",
+                 "<xsl:value-of select="@type" />",
+                 <xsl:value-of select="@priority" />,
+                 <xsl:choose><xsl:when test='string-length(@first)=0'>0</xsl:when><xsl:otherwise><xsl:value-of select="@first" /></xsl:otherwise></xsl:choose>,
+                 "<xsl:value-of select="Class/@classname" />",
+                 ""],
+            </xsl:for-each>
+               [ "", "", "", "", 0, 0, "", "" ]
+            );
+
+         // bugs fields: bug id, category id, code id, pattern id, priority, first release id, fixed release id, class name
+         var fixedBugs = new Array(
+            <xsl:for-each select="/BugCollection/BugInstance[string-length(@last)>0]">
+
+               [ "<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />",
+                 "<xsl:value-of select="@category" />",
+                 "<xsl:value-of select="@abbrev" />",
+                 "<xsl:value-of select="@type" />",
+                 <xsl:value-of select="@priority" />,
+                 <xsl:choose><xsl:when test='string-length(@first)=0'>0</xsl:when><xsl:otherwise><xsl:value-of select="@first" /></xsl:otherwise></xsl:choose>,
+                 <xsl:choose><xsl:when test='string-length(@last)>0'><xsl:value-of select="@last" /></xsl:when><xsl:otherwise>-42</xsl:otherwise></xsl:choose>,
+                 "<xsl:value-of select="Class/@classname" />" ],
+            </xsl:for-each>
+               [ "", "", "", "", 0, 0, 0, "" ]
+            );
+
+      </script>
+   </head>
+   <body>
+      <h3>
+         <a href="http://findbugs.sourceforge.net">FindBugs</a> (<xsl:value-of select="/BugCollection/@version" />) 
+         Analysis for 
+         <xsl:choose>
+            <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
+            <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
+         </xsl:choose>
+      </h3>
+
+      <div id='menuWrapper' style=''>
+         <div id="navcontainer">
+            <ul id="navlist">
+               <li><a id='summary'           class="current" href="#" onclick="selectMenu('summary'); return false;"         >Summary</a></li>
+               <li><a id='history'           class="none"    href="#" onclick="selectMenu('history'); return false;"         >History</a></li>
+               <li><a id='listByCategories'  class="none"    href="#" onclick="selectMenu('listByCategories'); return false;">Browse By Categories</a></li>
+               <li><a id='listByPackages'    class="none"    href="#" onclick="selectMenu('listByPackages'); return false;"  >Browse by Packages</a></li>
+               <li><a id='info'              class="none"    href="#" onclick="selectMenu('info'); return false;"            >Info</a></li>
+            </ul>
+         </div>
+      </div>
+
+      <div id='displayWrapper'>
+
+      <div style='height:25px;'>
+         <div id='messageContainer' style='float:right;'>
+            Computing data...
+         </div>
+         <div id='filterWrapper' style='display:none;'>
+            <form name='findbugsForm'>
+               <div id='filterContainer' >
+                  <select name='versions' onchange='filter()'>
+                     <option value="loading">Loading filter...</option>
+                  </select>
+                  <select name='priorities' onchange='filter()'>
+                     <option value="loading">Loading filter...</option>
+                  </select>
+               </div>
+            </form>
+         </div>
+      </div>
+         <div id='summaryContainer'          class='displayContainer'>
+            <h3>Package Summary</h3>
+            <table>
+               <tr>
+                  <th>Package</th>
+                  <th>Code Size</th>
+                  <th>Bugs</th>
+                  <th>Bugs p1</th>
+                  <th>Bugs p2</th>
+                  <th>Bugs p3</th>
+                  <th>Bugs Exp.</th>
+               </tr>
+               <tr>
+                  <td class='summary-name'>
+                     Overall
+                     (<xsl:value-of select="/BugCollection/FindBugsSummary/@num_packages" /> packages),
+                     (<xsl:value-of select="/BugCollection/FindBugsSummary/@total_classes" /> classes)
+                  </td>
+                  <td class='summary-size'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_size" /></td>
+                  <td class='summary-priority-all'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_bugs" /></td>
+                  <td class='summary-priority-1'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_1" /></td>
+                  <td class='summary-priority-2'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_2" /></td>
+                  <td class='summary-priority-3'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_3" /></td>
+                  <td class='summary-priority-4'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_4" /></td>
+               </tr>
+               <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats">
+                  <xsl:sort select="@package" order="ascending" />
+                  <xsl:if test="@total_bugs!='0'" >
+                     <tr>
+                        <td class='summary-name'><xsl:value-of select="@package" /></td>
+                        <td class='summary-size'><xsl:value-of select="@total_size" /></td>
+                        <td class='summary-priority-all'><xsl:value-of select="@total_bugs" /></td>
+                        <td class='summary-priority-1'><xsl:value-of select="@priority_1" /></td>
+                        <td class='summary-priority-2'><xsl:value-of select="@priority_2" /></td>
+                        <td class='summary-priority-3'><xsl:value-of select="@priority_3" /></td>
+                        <td class='summary-priority-4'><xsl:value-of select="@priority_4" /></td>
+                     </tr>
+                  </xsl:if>
+               </xsl:for-each>
+            </table>
+         </div>
+
+         <div id='infoContainer'             class='displayContainer'>
+            <div id='analyzed-files'>
+               <h3>Analyzed Files:</h3>
+               <ul>
+                  <xsl:for-each select="/BugCollection/Project/Jar">
+                     <li><xsl:apply-templates /></li>
+                  </xsl:for-each>
+               </ul>
+            </div>
+            <div id='used-libraries'>
+               <h3>Used Libraries:</h3>
+               <ul>
+                  <xsl:for-each select="/BugCollection/Project/AuxClasspathEntry">
+                     <li><xsl:apply-templates /></li>
+                  </xsl:for-each>
+                  <xsl:if test="count(/BugCollection/Project/AuxClasspathEntry)=0" >
+                     <li>None</li>
+                  </xsl:if>
+               </ul>
+            </div>
+            <div id='analysis-error'>
+               <h3>Analysis Errors:</h3>
+               <ul>
+                  <xsl:variable name="error-count"
+                                select="count(/BugCollection/Errors/MissingClass)" />
+                  <xsl:if test="$error-count=0" >
+                     <li>None</li>
+                  </xsl:if>
+                  <xsl:if test="$error-count>0" >
+                     <li>Missing ref classes for analysis:
+                        <ul>
+                           <xsl:for-each select="/BugCollection/Errors/MissingClass">
+                              <li><xsl:apply-templates /></li>
+                           </xsl:for-each>
+                        </ul>
+                     </li>
+                  </xsl:if>
+               </ul>
+            </div>
+         </div>
+         <div id='historyContainer'          class='displayContainer'>Loading...</div>
+         <div id='listByCategoriesContainer' class='displayContainer'>Loading...</div>
+         <div id='listByPackagesContainer'   class='displayContainer'>Loading...</div>
+      </div>
+
+      <div id='bug-collection' style='display:none;'>
+      <!-- advanced tooltips -->
+      <xsl:for-each select="/BugCollection/BugPattern">
+         <xsl:variable name="b-t"><xsl:value-of select="@type" /></xsl:variable>
+         <div>
+            <xsl:attribute name="id">tip-<xsl:value-of select="$b-t" /></xsl:attribute>
+            <xsl:attribute name="class">tip</xsl:attribute>
+            <xsl:value-of select="/BugCollection/BugPattern[@type=$b-t]/Details" disable-output-escaping="yes" />
+         </div>
+      </xsl:for-each>
+
+      <!-- bug descriptions - hidden -->
+      <xsl:for-each select="/BugCollection/BugInstance[not(@last)]">
+            <div style="display:none;" class='bug'>
+               <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:attribute>
+               <xsl:for-each select="*/Message">
+                  <div class="b-r"><xsl:apply-templates /></div>
+               </xsl:for-each>
+               <div class="b-d">
+                  <xsl:value-of select="LongMessage" disable-output-escaping="no" />
+               </div>
+            </div>
+      </xsl:for-each>
+      </div>
+   </body>
+</html>
+</xsl:template>
+
+
+</xsl:transform>
+

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy.xsl
===================================================================
--- labs/jbossesb/trunk/findbugs/src/xsl/fancy.xsl	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,847 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" ?>
-<!--
-  Copyright (C) 2005, 2006 Etienne Giraudy, InStranet Inc
-
-  This library 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 library 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 library; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
--->
-
-<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
-   <xsl:output
-         method="xml" indent="yes"
-         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-         doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
-         encoding="UTF-8"/>
-
-    <!-- 
-        Parameter for specifying HTMLized sources location; if current dir, use "./" 
-        If not passed, no links to sources are generated.
-        because of back-compatibility reasons. 
-        The source filename should be package.class.java.html
-        The source can have line no anchors like #11 -->
-    <xsl:param name="htmlsrcpath"></xsl:param>
-
-   <!--xsl:key name="lbc-category-key"    match="/BugCollection/BugInstance" use="@category" /-->
-   <xsl:key name="lbc-code-key"        match="/BugCollection/BugInstance" use="concat(@category, at abbrev)" />
-   <xsl:key name="lbc-bug-key"         match="/BugCollection/BugInstance" use="concat(@category, at abbrev, at type)" />
-   <xsl:key name="lbp-class-b-t"  match="/BugCollection/BugInstance" use="concat(Class/@classname, at type)" />
-<xsl:template match="/" >
-
-<html>
-   <head>
-      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
-      <title>
-        FindBugs (<xsl:value-of select="/BugCollection/@version" />) 
-         Analysis for 
-         <xsl:choose>
-            <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
-            <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
-         </xsl:choose>
-      </title>
-      <script type="text/javascript">
-         function show(foo) {
-            document.getElementById(foo).style.display="block";
-         }
-         function hide(foo) {
-            document.getElementById(foo).style.display="none";
-         }
-         function toggle(foo) {
-            if( document.getElementById(foo).style.display == "none") {
-               show(foo);
-            } else {
-               if( document.getElementById(foo).style.display == "block") {
-                  hide(foo);
-               } else {
-                  show(foo);
-               }
-            }
-         }
-
-         function showmenu(foo) {
-            if( document.getElementById(foo).style.display == "none") {
-               hide("bug-summary");
-               document.getElementById("bug-summary-tab").className="menu-tab";
-               hide("analysis-data");
-               document.getElementById("analysis-data-tab").className="menu-tab";
-               //hide("list-by-b-t");
-               //document.getElementById("list-by-b-t-tab").className="menu-tab";
-               hide("list-by-package");
-               document.getElementById("list-by-package-tab").className="menu-tab";
-               hide("list-by-category");
-               document.getElementById("list-by-category-tab").className="menu-tab";
-               document.getElementById(foo+"-tab").className="menu-tab-selected";
-               show(foo);
-
-            }
-            // else menu already selected!
-         }
-         function showbug(buguid, list) {
-            var bugplaceholder   = document.getElementById(buguid+'-ph-'+list);
-            var bug              = document.getElementById(buguid);
-
-            if ( bugplaceholder==null) {
-               alert(buguid+'-ph-'+list+' - '+buguid+' - bugplaceholder==null');
-               return;
-            }
-            if ( bug==null) {
-               alert(buguid+'-ph-'+list+' - '+buguid+' - bug==null');
-               return;
-            }
-
-            var oldBug = bugplaceholder.innerHTML;
-            var newBug = bug.innerHTML;
-            //alert(oldBug);
-            //alert(newBug);
-            toggle(buguid+'-ph-'+list);
-            bugplaceholder.innerHTML = newBug;
-         }
-      </script>
-      <script type='text/javascript'><xsl:text disable-output-escaping='yes'>
-     /* <![CDATA[ */
-         // Extended Tooltip Javascript
-         // copyright 9th August 2002, 3rd July 2005
-         // by Stephen Chapman, Felgall Pty Ltd
-
-         // permission is granted to use this javascript provided that the below code is not altered
-         var DH = 0;var an = 0;var al = 0;var ai = 0;if (document.getElementById) {ai = 1; DH = 1;}else {if (document.all) {al = 1; DH = 1;} else { browserVersion = parseInt(navigator.appVersion); if (navigator.appName.indexOf('Netscape') != -1) if (browserVersion == 4) {an = 1; DH = 1;}}} 
-         function fd(oi, wS) {if (ai) return wS ? document.getElementById(oi).style:document.getElementById(oi); if (al) return wS ? document.all[oi].style: document.all[oi]; if (an) return document.layers[oi];}
-         function pw() {return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;}
-         function mouseX(evt) {if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return null;}
-         function mouseY(evt) {if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return null;}
-         function popUp(evt,oi) {if (DH) {var wp = pw(); ds = fd(oi,1); dm = fd(oi,0); st = ds.visibility; if (dm.offsetWidth) ew = dm.offsetWidth; else if (dm.clip.width) ew = dm.clip.width; if (st == "visible" || st == "show") { ds.visibility = "hidden"; } else {tv = mouseY(evt) + 20; lv = mouseX(evt) - (ew/4); if (lv < 2) lv = 2; else if (lv + ew > wp) lv -= ew/2; if (!an) {lv += 'px';tv += 'px';} ds.left = lv; ds.top = tv; ds.visibility = "visible";}}}
-  /* ]]> */
-</xsl:text></script>
-      <style type='text/css'>
-         html, body {
-            background-color: #ffffff;
-         }
-         a, a:link , a:active, a:visited, a:hover {
-            text-decoration: none; color: black;
-         }
-         .b-r a {
-            text-decoration: underline; color: blue;
-         }
-         div, span {
-            vertical-align: top;
-         }
-         p {
-            margin: 0px;
-         }
-         h1 {
-            /*font-size: 14pt;*/
-            color: red;
-         }
-         #menu {
-            margin-bottom: 10px;
-         }
-         #menu ul {
-            margin-left: 0;
-            padding-left: 0;
-            display: inline;
-         }
-         #menu ul li {
-            margin-left: 0;
-            margin-bottom: 0;
-            padding: 2px 15px 5px;
-            border: 1px solid #000;
-            list-style: none;
-            display: inline;
-         }
-         #menu ul li.here {
-            border-bottom: 1px solid #ffc;
-            list-style: none;
-            display: inline;
-         }
-         .menu-tab {
-            background: white;
-         }
-         .menu-tab:hover {
-            background: grey;
-         }
-         .menu-tab-selected {
-            background: #aaaaaa;
-         }
-         #analysis-data ul {
-            margin-left: 15px;
-         }
-         #analyzed-files, #used-libraries, #analysis-error {
-           margin: 2px;
-           border: 1px black solid;
-           padding: 2px;
-           float: left;
-           overflow:auto;
-         }
-         #analyzed-files {
-           width: 25%;
-         }
-         #used-libraries {
-           width: 25%;
-         }
-         #analysis-error {
-           width: 40%;
-         }
-         div.summary {
-            width:100%;
-            text-align:left;
-         }
-         .summary table {
-            border:1px solid black;
-         }
-         .summary th {
-            background: #aaaaaa;
-            color: white;
-         }
-         .summary th, .summary td {
-            padding: 2px 4px 2px 4px;
-         }
-         .summary-name {
-            background: #eeeeee;
-            text-align:left;
-         }
-         .summary-size {
-            background: #eeeeee;
-            text-align:center;
-         }
-         .summary-ratio {
-            background: #eeeeee;
-            text-align:center;
-         }
-         .summary-priority-all {
-            background: #dddddd;
-            text-align:center;
-         }
-         .summary-priority-1 {
-            background: red;
-            text-align:center;
-         }
-         .summary-priority-2 {
-            background: orange;
-            text-align:center;
-         }
-         .summary-priority-3 {
-            background: green;
-            text-align:center;
-         }
-         .summary-priority-4 {
-            background: blue;
-            text-align:center;
-         }
-         .ob {
-            border: 1px solid black;
-            margin: 10px;
-         }
-         .ob-t {
-            border-bottom: 1px solid #000000; font-size: 12pt; font-weight: bold;
-            background: #cccccc; margin: 0; padding: 0 5px 0 5px;
-         }
-         .t-h {
-            font-weight: normal;
-         }
-         .ib-1, .ib-2 {
-            margin: 0 0 0 10px;
-         }
-         .ib-1-t, .ib-2-t {
-            border-bottom: 1px solid #000000; border-left: 1px solid #000000;
-            margin: 0; padding: 0 5px 0 5px;
-            font-size: 12pt; font-weight: bold; background: #cccccc;
-         }
-         .bb {
-            border-bottom: 1px solid #000000; border-left: 1px solid #000000;
-         }
-         .b-1 {
-            background: red; height: 0.5em; width: 1em;
-            margin-right: 0.5em;
-         }
-         .b-2 {
-            background: orange; height: 0.5em; width: 1em;
-            margin-right: 0.5em;
-         }
-         .b-3 {
-            background: green; height: 0.5em; width: 1em;
-            margin-right: 0.5em;
-         }
-         .b-4 {
-            background: blue; height: 0.5em; width: 1em;
-            margin-right: 0.5em;
-         }
-         .b-t {
-         }
-         .b-r {
-            font-size: 10pt; font-weight: bold; padding: 0 0 0 60px;
-         }
-         .b-d {
-            font-weight: normal; background: #eeeee0;
-            padding: 0 5px 0 5px; margin: 0px;
-         }
-         .bug-placeholder {
-            top:140px;
-            border:1px solid black;
-            display:none;
-         }
-         .tip {
-            border:solid 1px #666666;
-            width:600px;
-            padding:3px;
-            position:absolute;
-            z-index:100;
-            visibility:hidden;
-            color:#333333;
-            top:20px;
-            left:90px;
-            background-color:#ffffcc;
-            layer-background-color:#ffffcc;
-         }
-
-
-      </style>
-   </head>
-   <body>
-   <div id='content'>
-      <h1>
-         FindBugs (<xsl:value-of select="/BugCollection/@version" />) 
-         Analysis for 
-         <xsl:choose>
-            <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
-            <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
-         </xsl:choose>
-      </h1>
-      <div id="menu">
-         <ul>
-            <li id='bug-summary-tab' class='menu-tab-selected'>
-               <xsl:attribute name="onclick">showmenu('bug-summary');return false;</xsl:attribute>
-               <a href='' onclick='return false;'>Bug Summary</a>
-            </li>
-            <li id='analysis-data-tab' class='menu-tab'>
-               <xsl:attribute name="onclick">showmenu('analysis-data');return false;</xsl:attribute>
-               <a href='' onclick='return false;'>Analysis Information</a>
-            </li>
-            <li id='list-by-category-tab' class='menu-tab'>
-               <xsl:attribute name="onclick">showmenu('list-by-category');return false;</xsl:attribute>
-               <a href='' onclick='return false;'>List bugs by bug category</a>
-            </li>
-            <li id='list-by-package-tab' class='menu-tab'>
-               <xsl:attribute name="onclick">showmenu('list-by-package');return false;</xsl:attribute>
-               <a href='' onclick='return false;'>List bugs by package</a>
-            </li>
-         </ul>
-      </div>
-      <xsl:call-template name="generateSummary" />
-      <xsl:call-template name="analysis-data" />
-      <xsl:call-template name="list-by-category" />
-      <xsl:call-template name="list-by-package" />
-
-
-      <!-- advanced tooltips -->
-      <xsl:for-each select="/BugCollection/BugPattern">
-         <xsl:variable name="b-t"><xsl:value-of select="@type" /></xsl:variable>
-         <div>
-            <xsl:attribute name="id">tip-<xsl:value-of select="$b-t" /></xsl:attribute>
-            <xsl:attribute name="class">tip</xsl:attribute>
-            <b><xsl:value-of select="@abbrev" /> / <xsl:value-of select="@type" /></b><br/>
-            <xsl:value-of select="/BugCollection/BugPattern[@type=$b-t]/Details" disable-output-escaping="yes" />
-         </div>
-      </xsl:for-each>
-
-      <!-- bug descriptions - hidden -->
-      <xsl:for-each select="/BugCollection/BugInstance[not(@last)]">
-            <div style="display:none;">
-               <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:attribute>
-               <xsl:for-each select="*/Message">
-                   <xsl:choose>
-                    <xsl:when test="parent::SourceLine and $htmlsrcpath != '' ">
-                      <div class="b-r"><a>
-                        <xsl:attribute name="href"><xsl:value-of select="$htmlsrcpath"/><xsl:value-of select="../@sourcepath" />.html#<xsl:value-of select="../@start" /></xsl:attribute>
-                        <xsl:apply-templates />
-                      </a></div>
-                    </xsl:when>
-                    <xsl:otherwise>
-                      <div class="b-r"><xsl:apply-templates /></div>
-                    </xsl:otherwise>
-                   </xsl:choose>
-               </xsl:for-each>
-               <div class="b-d">
-                  <xsl:value-of select="LongMessage" disable-output-escaping="no" />
-               </div>
-            </div>
-      </xsl:for-each>
-   </div>
-   <div id='fixedbox'>
-      <div id='bug-placeholder'></div>
-   </div>
-   </body>
-</html>
-</xsl:template>
-
-<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-<!-- generate summary report from stats -->
-<xsl:template name="generateSummary" >
-<div class='summary' id='bug-summary'>
-   <h2>FindBugs Analysis generated at: <xsl:value-of select="/BugCollection/FindBugsSummary/@timestamp" /></h2>
-   <table>
-      <tr>
-         <th>Package</th>
-         <th>Code Size</th>
-         <th>Bugs</th>
-         <th>Bugs p1</th>
-         <th>Bugs p2</th>
-         <th>Bugs p3</th>
-         <th>Bugs Exp.</th>
-         <th>Ratio</th>
-      </tr>
-      <tr>
-         <td class='summary-name'>
-            Overall
-            (<xsl:value-of select="/BugCollection/FindBugsSummary/@num_packages" /> packages),
-            (<xsl:value-of select="/BugCollection/FindBugsSummary/@total_classes" /> classes)
-         </td>
-         <td class='summary-size'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_size" /></td>
-         <td class='summary-priority-all'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_bugs" /></td>
-         <td class='summary-priority-1'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_1" /></td>
-         <td class='summary-priority-2'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_2" /></td>
-         <td class='summary-priority-3'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_3" /></td>
-         <td class='summary-priority-4'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_4" /></td>
-         <td class='summary-ratio'></td>
-      </tr>
-      <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats">
-         <xsl:sort select="@package" />
-         <xsl:if test="@total_bugs!='0'" >
-            <tr>
-               <td class='summary-name'><xsl:value-of select="@package" /></td>
-               <td class='summary-size'><xsl:value-of select="@total_size" /></td>
-               <td class='summary-priority-all'><xsl:value-of select="@total_bugs" /></td>
-               <td class='summary-priority-1'><xsl:value-of select="@priority_1" /></td>
-               <td class='summary-priority-2'><xsl:value-of select="@priority_2" /></td>
-               <td class='summary-priority-3'><xsl:value-of select="@priority_3" /></td>
-               <td class='summary-priority-4'><xsl:value-of select="@priority_4" /></td>
-               <td class='summary-ratio'></td>
-<!--
-               <xsl:for-each select="ClassStats">
-                  <xsl:if test="@bugs!='0'" >
-                  <li>
-                     <xsl:value-of select="@class" /> - total: <xsl:value-of select="@bugs" />
-                  </li>
-                  </xsl:if>
-               </xsl:for-each>
--->
-            </tr>
-         </xsl:if>
-      </xsl:for-each>
-   </table>
-</div>
-</xsl:template>
-
-<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-<!-- display analysis info -->
-<xsl:template name="analysis-data">
-      <div id='analysis-data' style='display:none;'>
-         <div id='analyzed-files'>
-            <h3>Analyzed Files:</h3>
-            <ul>
-               <xsl:for-each select="/BugCollection/Project/Jar">
-                  <li><xsl:apply-templates /></li>
-               </xsl:for-each>
-            </ul>
-         </div>
-         <div id='used-libraries'>
-            <h3>Used Libraries:</h3>
-            <ul>
-               <xsl:for-each select="/BugCollection/Project/AuxClasspathEntry">
-                  <li><xsl:apply-templates /></li>
-               </xsl:for-each>
-               <xsl:if test="count(/BugCollection/Project/AuxClasspathEntry)=0" >
-                  <li>None</li>
-               </xsl:if>
-            </ul>
-         </div>
-         <div id='analysis-error'>
-            <h3>Analysis Errors:</h3>
-            <ul>
-               <xsl:variable name="error-count"
-                             select="count(/BugCollection/Errors/MissingClass)" />
-               <xsl:if test="$error-count=0" >
-                  <li>None</li>
-               </xsl:if>
-               <xsl:if test="$error-count>0" >
-                  <li>Missing ref classes for analysis:
-                     <ul>
-                        <xsl:for-each select="/BugCollection/Errors/MissingClass">
-                           <li><xsl:apply-templates /></li>
-                        </xsl:for-each>
-                     </ul>
-                  </li>
-               </xsl:if>
-            </ul>
-         </div>
-      </div>
-</xsl:template>
-
-<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-<!-- show priorities helper -->
-<xsl:template name="helpPriorities">
-   <span>
-      <xsl:attribute name="class">b-1</xsl:attribute>
-      &#160;&#160;
-   </span> P1
-   <span>
-      <xsl:attribute name="class">b-2</xsl:attribute>
-      &#160;&#160;
-   </span> P2
-   <span>
-      <xsl:attribute name="class">b-3</xsl:attribute>
-      &#160;&#160;
-   </span> P3
-   <span>
-      <xsl:attribute name="class">b-4</xsl:attribute>
-      &#160;&#160;
-   </span> Exp.
-</xsl:template>
-
-<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-<!-- display the details of a bug -->
-<xsl:template name="display-bug" >
-   <xsl:param name="b-t"    select="''" />
-   <xsl:param name="bug-id"      select="''" />
-   <xsl:param name="which-list"  select="''" />
-   <div class="bb">
-      <a>
-         <xsl:attribute name="href"></xsl:attribute>
-         <xsl:attribute name="onclick">showbug('b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />','<xsl:value-of select="$which-list" />');return false;</xsl:attribute>
-         <span>
-            <xsl:attribute name="class">b-<xsl:value-of select="@priority"/></xsl:attribute>
-            &#160;&#160;
-         </span>
-         <span class="b-t"><xsl:value-of select="@abbrev" />: </span> <xsl:value-of select="Class/Message" />
-      </a>
-      <div style="display:none;">
-         <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />-ph-<xsl:value-of select="$which-list" /></xsl:attribute>
-         loading...
-      </div>
-   </div>
-</xsl:template>
-
-<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-<!-- main template for the list by category -->
-<xsl:template name="list-by-category" >
-   <div id='list-by-category' class='data-box' style='display:none;'>
-      <xsl:call-template name="helpPriorities" />
-      <xsl:variable name="unique-category" select="/BugCollection/BugCategory/@category"/>
-      <xsl:for-each select="$unique-category">
-         <xsl:sort select="." order="ascending" />
-            <xsl:call-template name="categories">
-               <xsl:with-param name="category" select="." />
-            </xsl:call-template>
-      </xsl:for-each>
-   </div>
-</xsl:template>
-
-<xsl:template name="categories" >
-   <xsl:param name="category" select="''" />
-   <xsl:variable name="category-count"
-                       select="count(/BugCollection/BugInstance[@category=$category and not(@last)])" />
-   <xsl:variable name="category-count-p1"
-                       select="count(/BugCollection/BugInstance[@category=$category and @priority='1' and not(@last)])" />
-   <xsl:variable name="category-count-p2"
-                       select="count(/BugCollection/BugInstance[@category=$category and @priority='2' and not(@last)])" />
-   <xsl:variable name="category-count-p3"
-                       select="count(/BugCollection/BugInstance[@category=$category and @priority='3' and not(@last)])" />
-   <xsl:variable name="category-count-p4"
-                       select="count(/BugCollection/BugInstance[@category=$category and @priority='4' and not(@last)])" />
-   <div class='ob'>
-      <div class='ob-t'>
-         <a>
-            <xsl:attribute name="href"></xsl:attribute>
-            <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />');return false;</xsl:attribute>
-            <xsl:value-of select="/BugCollection/BugCategory[@category=$category]/Description" />
-            (<xsl:value-of select="$category-count" />:
-            <span class='t-h'><xsl:value-of select="$category-count-p1" />/<xsl:value-of select="$category-count-p2" />/<xsl:value-of select="$category-count-p3" />/<xsl:value-of select="$category-count-p4" /></span>)
-         </a>
-      </div>
-      <div style="display:none;">
-         <xsl:attribute name="id">category-<xsl:value-of select="$category" /></xsl:attribute>
-         <xsl:call-template name="list-by-category-and-code">
-            <xsl:with-param name="category" select="$category" />
-         </xsl:call-template>
-      </div>
-   </div>
-</xsl:template>
-
-<xsl:template name="list-by-category-and-code" >
-   <xsl:param name="category" select="''" />
-   <xsl:variable name="unique-code" select="/BugCollection/BugInstance[@category=$category and not(@last) and generate-id()= generate-id(key('lbc-code-key',concat(@category, at abbrev)))]/@abbrev" />
-   <xsl:for-each select="$unique-code">
-      <xsl:sort select="." order="ascending" />
-         <xsl:call-template name="codes">
-            <xsl:with-param name="category" select="$category" />
-            <xsl:with-param name="code" select="." />
-         </xsl:call-template>
-   </xsl:for-each>
-</xsl:template>
-
-<xsl:template name="codes" >
-   <xsl:param name="category" select="''" />
-   <xsl:param name="code"     select="''" />
-   <xsl:variable name="code-count"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and not(@last)])" />
-   <xsl:variable name="code-count-p1"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='1' and not(@last)])" />
-   <xsl:variable name="code-count-p2"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='2' and not(@last)])" />
-   <xsl:variable name="code-count-p3"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='3' and not(@last)])" />
-   <xsl:variable name="code-count-p4"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='4' and not(@last)])" />
-   <div class='ib-1'>
-      <div class="ib-1-t">
-         <a>
-            <xsl:attribute name="href"></xsl:attribute>
-            <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />');return false;</xsl:attribute>
-            <xsl:value-of select="$code" />: <xsl:value-of select="/BugCollection/BugCode[@abbrev=$code]/Description" />
-            (<xsl:value-of select="$code-count" />:
-            <span class='t-h'><xsl:value-of select="$code-count-p1" />/<xsl:value-of select="$code-count-p2" />/<xsl:value-of select="$code-count-p3" />/<xsl:value-of select="$code-count-p4" /></span>)
-         </a>
-      </div>
-      <div style="display:none;">
-         <xsl:attribute name="id">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" /></xsl:attribute>
-         <xsl:call-template name="list-by-category-and-code-and-bug">
-            <xsl:with-param name="category" select="$category" />
-            <xsl:with-param name="code" select="$code" />
-         </xsl:call-template>
-      </div>
-   </div>
-</xsl:template>
-
-<xsl:template name="list-by-category-and-code-and-bug" >
-   <xsl:param name="category" select="''" />
-   <xsl:param name="code" select="''" />
-   <xsl:variable name="unique-bug" select="/BugCollection/BugInstance[@category=$category and not(@last) and @abbrev=$code and generate-id()= generate-id(key('lbc-bug-key',concat(@category, at abbrev, at type)))]/@type" />
-   <xsl:for-each select="$unique-bug">
-      <xsl:sort select="." order="ascending" />
-         <xsl:call-template name="bugs">
-            <xsl:with-param name="category" select="$category" />
-            <xsl:with-param name="code" select="$code" />
-            <xsl:with-param name="bug" select="." />
-         </xsl:call-template>
-   </xsl:for-each>
-</xsl:template>
-
-<xsl:template name="bugs" >
-   <xsl:param name="category" select="''" />
-   <xsl:param name="code"     select="''" />
-   <xsl:param name="bug"      select="''" />
-   <xsl:variable name="bug-count"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and not(@last)])" />
-   <xsl:variable name="bug-count-p1"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='1' and not(@last)])" />
-   <xsl:variable name="bug-count-p2"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='2' and not(@last)])" />
-   <xsl:variable name="bug-count-p3"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='3' and not(@last)])" />
-   <xsl:variable name="bug-count-p4"
-                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='4' and not(@last)])" />
-   <div class='ib-2'>
-      <div class='ib-2-t'>
-         <a>
-            <xsl:attribute name="href"></xsl:attribute>
-            <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" />');return false;</xsl:attribute>
-            <xsl:attribute name="onmouseout">popUp(event,'tip-<xsl:value-of select="$bug" />');</xsl:attribute>
-            <xsl:attribute name="onmouseover">popUp(event,'tip-<xsl:value-of select="$bug" />');</xsl:attribute>
-            <xsl:value-of select="/BugCollection/BugPattern[@category=$category and @abbrev=$code and @type=$bug]/ShortDescription" />&#160;&#160;
-            (<xsl:value-of select="$bug-count" />:
-            <span class='t-h'><xsl:value-of select="$bug-count-p1" />/<xsl:value-of select="$bug-count-p2" />/<xsl:value-of select="$bug-count-p3" />/<xsl:value-of select="$bug-count-p4" /></span>)
-         </a>
-      </div>
-      <div style="display:none;">
-         <xsl:attribute name="id">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" /></xsl:attribute>
-         <xsl:variable name="cat-code-type">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" /></xsl:variable>
-         <xsl:variable name="bug-id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:variable>
-         <xsl:for-each select="/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and not(@last)]">
-            <xsl:call-template name="display-bug">
-               <xsl:with-param name="b-t"     select="@type" />
-               <xsl:with-param name="bug-id"       select="$bug-id" />
-               <xsl:with-param name="which-list"   select="'c'" />
-            </xsl:call-template>
-         </xsl:for-each>
-      </div>
-   </div>
-</xsl:template>
-
-<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
-<!-- main template for the list by package -->
-<xsl:template name="list-by-package" >
-   <div id='list-by-package' class='data-box' style='display:none;'>
-      <xsl:call-template name="helpPriorities" />
-      <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats[@total_bugs != '0']/@package">
-         <xsl:sort select="." order="ascending" />
-            <xsl:call-template name="packages">
-               <xsl:with-param name="package" select="." />
-            </xsl:call-template>
-      </xsl:for-each>
-   </div>
-</xsl:template>
-
-<xsl:template name="packages" >
-   <xsl:param name="package" select="''" />
-   <xsl:variable name="package-count-p1">
-      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1 != '')">0</xsl:if>
-      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1 != ''">
-         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1" />
-      </xsl:if>
-   </xsl:variable>
-   <xsl:variable name="package-count-p2">
-      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2 != '')">0</xsl:if>
-      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2 != ''">
-         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2" />
-      </xsl:if>
-   </xsl:variable>
-   <xsl:variable name="package-count-p3">
-      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3 != '')">0</xsl:if>
-      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3 != ''">
-         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3" />
-      </xsl:if>
-   </xsl:variable>
-   <xsl:variable name="package-count-p4">
-      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4 != '')">0</xsl:if>
-      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4 != ''">
-         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4" />
-      </xsl:if>
-   </xsl:variable>
-
-   <div class='ob'>
-      <div class='ob-t'>
-         <a>
-            <xsl:attribute name="href"></xsl:attribute>
-            <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />');return false;</xsl:attribute>
-            <xsl:value-of select="$package" />
-            (<xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@total_bugs" />:
-            <span class='t-h'><xsl:value-of select="$package-count-p1" />/<xsl:value-of select="$package-count-p2" />/<xsl:value-of select="$package-count-p3" />/<xsl:value-of select="$package-count-p4" /></span>)
-         </a>
-      </div>
-      <div style="display:none;">
-         <xsl:attribute name="id">package-<xsl:value-of select="$package" /></xsl:attribute>
-         <xsl:call-template name="list-by-package-and-class">
-            <xsl:with-param name="package" select="$package" />
-         </xsl:call-template>
-      </div>
-   </div>
-</xsl:template>
-
-<xsl:template name="list-by-package-and-class" >
-   <xsl:param name="package" select="''" />
-   <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@bugs != '0']/@class">
-      <xsl:sort select="." order="ascending" />
-         <xsl:call-template name="classes">
-            <xsl:with-param name="package" select="$package" />
-            <xsl:with-param name="class" select="." />
-         </xsl:call-template>
-   </xsl:for-each>
-</xsl:template>
-
-<xsl:template name="classes" >
-   <xsl:param name="package" select="''" />
-   <xsl:param name="class"     select="''" />
-   <xsl:variable name="class-count"
-                       select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@bugs" />
-
-   <xsl:variable name="class-count-p1">
-      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1 != '')">0</xsl:if>
-      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1 != ''">
-         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1" />
-      </xsl:if>
-   </xsl:variable>
-   <xsl:variable name="class-count-p2">
-      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2 != '')">0</xsl:if>
-      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2 != ''">
-         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2" />
-      </xsl:if>
-   </xsl:variable>
-   <xsl:variable name="class-count-p3">
-      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3 != '')">0</xsl:if>
-      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3 != ''">
-         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3" />
-      </xsl:if>
-   </xsl:variable>
-   <xsl:variable name="class-count-p4">
-      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4 != '')">0</xsl:if>
-      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4 != ''">
-         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4" />
-      </xsl:if>
-   </xsl:variable>
-
-   <div class='ib-1'>
-      <div class="ib-1-t">
-         <a>
-            <xsl:attribute name="href"></xsl:attribute>
-            <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />');return false;</xsl:attribute>
-            <xsl:value-of select="$class" />  (<xsl:value-of select="$class-count" />:
-            <span class='t-h'><xsl:value-of select="$class-count-p1" />/<xsl:value-of select="$class-count-p2" />/<xsl:value-of select="$class-count-p3" />/<xsl:value-of select="$class-count-p4" /></span>)
-         </a>
-      </div>
-      <div style="display:none;">
-         <xsl:attribute name="id">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" /></xsl:attribute>
-         <xsl:call-template name="list-by-package-and-class-and-bug">
-            <xsl:with-param name="package" select="$package" />
-            <xsl:with-param name="class" select="$class" />
-         </xsl:call-template>
-      </div>
-   </div>
-</xsl:template>
-
-<xsl:template name="list-by-package-and-class-and-bug" >
-   <xsl:param name="package" select="''" />
-   <xsl:param name="class" select="''" />
-   <xsl:variable name="unique-class-bugs" select="/BugCollection/BugInstance[not(@last) and Class[position()=1 and @classname=$class] and generate-id() = generate-id(key('lbp-class-b-t',concat(Class/@classname, at type)))]/@type" />
-
-   <xsl:for-each select="$unique-class-bugs">
-      <xsl:sort select="." order="ascending" />
-         <xsl:call-template name="class-bugs">
-            <xsl:with-param name="package" select="$package" />
-            <xsl:with-param name="class" select="$class" />
-            <xsl:with-param name="type" select="." />
-         </xsl:call-template>
-   </xsl:for-each>
-</xsl:template>
-
-<xsl:template name="class-bugs" >
-   <xsl:param name="package" select="''" />
-   <xsl:param name="class"     select="''" />
-   <xsl:param name="type"      select="''" />
-   <xsl:variable name="bug-count"
-                       select="count(/BugCollection/BugInstance[@type=$type and not(@last) and Class[position()=1 and @classname=$class]])" />
-   <div class='ib-2'>
-      <div class='ib-2-t'>
-         <a>
-            <xsl:attribute name="href"></xsl:attribute>
-            <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" />');return false;</xsl:attribute>
-            <xsl:attribute name="onmouseout">popUp(event,'tip-<xsl:value-of select="$type" />')</xsl:attribute>
-            <xsl:attribute name="onmouseover">popUp(event,'tip-<xsl:value-of select="$type" />')</xsl:attribute>
-            <xsl:value-of select="/BugCollection/BugPattern[@type=$type]/ShortDescription" />&#160;&#160;
-            (<xsl:value-of select="$bug-count" />)
-         </a>
-      </div>
-      <div style="display:none;">
-         <xsl:attribute name="id">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" /></xsl:attribute>
-         <xsl:variable name="package-class-type">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" /></xsl:variable>
-         <xsl:variable name="bug-id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:variable>
-         <xsl:for-each select="/BugCollection/BugInstance[@type=$type and not(@last) and Class[position()=1 and @classname=$class]]">
-            <xsl:call-template name="display-bug">
-               <xsl:with-param name="b-t"     select="@type" />
-               <xsl:with-param name="bug-id"       select="$bug-id" />
-               <xsl:with-param name="which-list"   select="'p'" />
-            </xsl:call-template>
-         </xsl:for-each>
-      </div>
-   </div>
-</xsl:template>
-
-</xsl:transform>

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy.xsl (from rev 25071, labs/jbossesb/trunk/findbugs/src/xsl/fancy.xsl)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy.xsl	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/fancy.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,847 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Copyright (C) 2005, 2006 Etienne Giraudy, InStranet Inc
+
+  This library 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 library 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 library; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+-->
+
+<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
+   <xsl:output
+         method="xml" indent="yes"
+         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
+         doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+         encoding="UTF-8"/>
+
+    <!-- 
+        Parameter for specifying HTMLized sources location; if current dir, use "./" 
+        If not passed, no links to sources are generated.
+        because of back-compatibility reasons. 
+        The source filename should be package.class.java.html
+        The source can have line no anchors like #11 -->
+    <xsl:param name="htmlsrcpath"></xsl:param>
+
+   <!--xsl:key name="lbc-category-key"    match="/BugCollection/BugInstance" use="@category" /-->
+   <xsl:key name="lbc-code-key"        match="/BugCollection/BugInstance" use="concat(@category, at abbrev)" />
+   <xsl:key name="lbc-bug-key"         match="/BugCollection/BugInstance" use="concat(@category, at abbrev, at type)" />
+   <xsl:key name="lbp-class-b-t"  match="/BugCollection/BugInstance" use="concat(Class/@classname, at type)" />
+<xsl:template match="/" >
+
+<html>
+   <head>
+      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+      <title>
+        FindBugs (<xsl:value-of select="/BugCollection/@version" />) 
+         Analysis for 
+         <xsl:choose>
+            <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
+            <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
+         </xsl:choose>
+      </title>
+      <script type="text/javascript">
+         function show(foo) {
+            document.getElementById(foo).style.display="block";
+         }
+         function hide(foo) {
+            document.getElementById(foo).style.display="none";
+         }
+         function toggle(foo) {
+            if( document.getElementById(foo).style.display == "none") {
+               show(foo);
+            } else {
+               if( document.getElementById(foo).style.display == "block") {
+                  hide(foo);
+               } else {
+                  show(foo);
+               }
+            }
+         }
+
+         function showmenu(foo) {
+            if( document.getElementById(foo).style.display == "none") {
+               hide("bug-summary");
+               document.getElementById("bug-summary-tab").className="menu-tab";
+               hide("analysis-data");
+               document.getElementById("analysis-data-tab").className="menu-tab";
+               //hide("list-by-b-t");
+               //document.getElementById("list-by-b-t-tab").className="menu-tab";
+               hide("list-by-package");
+               document.getElementById("list-by-package-tab").className="menu-tab";
+               hide("list-by-category");
+               document.getElementById("list-by-category-tab").className="menu-tab";
+               document.getElementById(foo+"-tab").className="menu-tab-selected";
+               show(foo);
+
+            }
+            // else menu already selected!
+         }
+         function showbug(buguid, list) {
+            var bugplaceholder   = document.getElementById(buguid+'-ph-'+list);
+            var bug              = document.getElementById(buguid);
+
+            if ( bugplaceholder==null) {
+               alert(buguid+'-ph-'+list+' - '+buguid+' - bugplaceholder==null');
+               return;
+            }
+            if ( bug==null) {
+               alert(buguid+'-ph-'+list+' - '+buguid+' - bug==null');
+               return;
+            }
+
+            var oldBug = bugplaceholder.innerHTML;
+            var newBug = bug.innerHTML;
+            //alert(oldBug);
+            //alert(newBug);
+            toggle(buguid+'-ph-'+list);
+            bugplaceholder.innerHTML = newBug;
+         }
+      </script>
+      <script type='text/javascript'><xsl:text disable-output-escaping='yes'>
+     /* <![CDATA[ */
+         // Extended Tooltip Javascript
+         // copyright 9th August 2002, 3rd July 2005
+         // by Stephen Chapman, Felgall Pty Ltd
+
+         // permission is granted to use this javascript provided that the below code is not altered
+         var DH = 0;var an = 0;var al = 0;var ai = 0;if (document.getElementById) {ai = 1; DH = 1;}else {if (document.all) {al = 1; DH = 1;} else { browserVersion = parseInt(navigator.appVersion); if (navigator.appName.indexOf('Netscape') != -1) if (browserVersion == 4) {an = 1; DH = 1;}}} 
+         function fd(oi, wS) {if (ai) return wS ? document.getElementById(oi).style:document.getElementById(oi); if (al) return wS ? document.all[oi].style: document.all[oi]; if (an) return document.layers[oi];}
+         function pw() {return window.innerWidth != null? window.innerWidth: document.body.clientWidth != null? document.body.clientWidth:null;}
+         function mouseX(evt) {if (evt.pageX) return evt.pageX; else if (evt.clientX)return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); else return null;}
+         function mouseY(evt) {if (evt.pageY) return evt.pageY; else if (evt.clientY)return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); else return null;}
+         function popUp(evt,oi) {if (DH) {var wp = pw(); ds = fd(oi,1); dm = fd(oi,0); st = ds.visibility; if (dm.offsetWidth) ew = dm.offsetWidth; else if (dm.clip.width) ew = dm.clip.width; if (st == "visible" || st == "show") { ds.visibility = "hidden"; } else {tv = mouseY(evt) + 20; lv = mouseX(evt) - (ew/4); if (lv < 2) lv = 2; else if (lv + ew > wp) lv -= ew/2; if (!an) {lv += 'px';tv += 'px';} ds.left = lv; ds.top = tv; ds.visibility = "visible";}}}
+  /* ]]> */
+</xsl:text></script>
+      <style type='text/css'>
+         html, body {
+            background-color: #ffffff;
+         }
+         a, a:link , a:active, a:visited, a:hover {
+            text-decoration: none; color: black;
+         }
+         .b-r a {
+            text-decoration: underline; color: blue;
+         }
+         div, span {
+            vertical-align: top;
+         }
+         p {
+            margin: 0px;
+         }
+         h1 {
+            /*font-size: 14pt;*/
+            color: red;
+         }
+         #menu {
+            margin-bottom: 10px;
+         }
+         #menu ul {
+            margin-left: 0;
+            padding-left: 0;
+            display: inline;
+         }
+         #menu ul li {
+            margin-left: 0;
+            margin-bottom: 0;
+            padding: 2px 15px 5px;
+            border: 1px solid #000;
+            list-style: none;
+            display: inline;
+         }
+         #menu ul li.here {
+            border-bottom: 1px solid #ffc;
+            list-style: none;
+            display: inline;
+         }
+         .menu-tab {
+            background: white;
+         }
+         .menu-tab:hover {
+            background: grey;
+         }
+         .menu-tab-selected {
+            background: #aaaaaa;
+         }
+         #analysis-data ul {
+            margin-left: 15px;
+         }
+         #analyzed-files, #used-libraries, #analysis-error {
+           margin: 2px;
+           border: 1px black solid;
+           padding: 2px;
+           float: left;
+           overflow:auto;
+         }
+         #analyzed-files {
+           width: 25%;
+         }
+         #used-libraries {
+           width: 25%;
+         }
+         #analysis-error {
+           width: 40%;
+         }
+         div.summary {
+            width:100%;
+            text-align:left;
+         }
+         .summary table {
+            border:1px solid black;
+         }
+         .summary th {
+            background: #aaaaaa;
+            color: white;
+         }
+         .summary th, .summary td {
+            padding: 2px 4px 2px 4px;
+         }
+         .summary-name {
+            background: #eeeeee;
+            text-align:left;
+         }
+         .summary-size {
+            background: #eeeeee;
+            text-align:center;
+         }
+         .summary-ratio {
+            background: #eeeeee;
+            text-align:center;
+         }
+         .summary-priority-all {
+            background: #dddddd;
+            text-align:center;
+         }
+         .summary-priority-1 {
+            background: red;
+            text-align:center;
+         }
+         .summary-priority-2 {
+            background: orange;
+            text-align:center;
+         }
+         .summary-priority-3 {
+            background: green;
+            text-align:center;
+         }
+         .summary-priority-4 {
+            background: blue;
+            text-align:center;
+         }
+         .ob {
+            border: 1px solid black;
+            margin: 10px;
+         }
+         .ob-t {
+            border-bottom: 1px solid #000000; font-size: 12pt; font-weight: bold;
+            background: #cccccc; margin: 0; padding: 0 5px 0 5px;
+         }
+         .t-h {
+            font-weight: normal;
+         }
+         .ib-1, .ib-2 {
+            margin: 0 0 0 10px;
+         }
+         .ib-1-t, .ib-2-t {
+            border-bottom: 1px solid #000000; border-left: 1px solid #000000;
+            margin: 0; padding: 0 5px 0 5px;
+            font-size: 12pt; font-weight: bold; background: #cccccc;
+         }
+         .bb {
+            border-bottom: 1px solid #000000; border-left: 1px solid #000000;
+         }
+         .b-1 {
+            background: red; height: 0.5em; width: 1em;
+            margin-right: 0.5em;
+         }
+         .b-2 {
+            background: orange; height: 0.5em; width: 1em;
+            margin-right: 0.5em;
+         }
+         .b-3 {
+            background: green; height: 0.5em; width: 1em;
+            margin-right: 0.5em;
+         }
+         .b-4 {
+            background: blue; height: 0.5em; width: 1em;
+            margin-right: 0.5em;
+         }
+         .b-t {
+         }
+         .b-r {
+            font-size: 10pt; font-weight: bold; padding: 0 0 0 60px;
+         }
+         .b-d {
+            font-weight: normal; background: #eeeee0;
+            padding: 0 5px 0 5px; margin: 0px;
+         }
+         .bug-placeholder {
+            top:140px;
+            border:1px solid black;
+            display:none;
+         }
+         .tip {
+            border:solid 1px #666666;
+            width:600px;
+            padding:3px;
+            position:absolute;
+            z-index:100;
+            visibility:hidden;
+            color:#333333;
+            top:20px;
+            left:90px;
+            background-color:#ffffcc;
+            layer-background-color:#ffffcc;
+         }
+
+
+      </style>
+   </head>
+   <body>
+   <div id='content'>
+      <h1>
+         FindBugs (<xsl:value-of select="/BugCollection/@version" />) 
+         Analysis for 
+         <xsl:choose>
+            <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
+            <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
+         </xsl:choose>
+      </h1>
+      <div id="menu">
+         <ul>
+            <li id='bug-summary-tab' class='menu-tab-selected'>
+               <xsl:attribute name="onclick">showmenu('bug-summary');return false;</xsl:attribute>
+               <a href='' onclick='return false;'>Bug Summary</a>
+            </li>
+            <li id='analysis-data-tab' class='menu-tab'>
+               <xsl:attribute name="onclick">showmenu('analysis-data');return false;</xsl:attribute>
+               <a href='' onclick='return false;'>Analysis Information</a>
+            </li>
+            <li id='list-by-category-tab' class='menu-tab'>
+               <xsl:attribute name="onclick">showmenu('list-by-category');return false;</xsl:attribute>
+               <a href='' onclick='return false;'>List bugs by bug category</a>
+            </li>
+            <li id='list-by-package-tab' class='menu-tab'>
+               <xsl:attribute name="onclick">showmenu('list-by-package');return false;</xsl:attribute>
+               <a href='' onclick='return false;'>List bugs by package</a>
+            </li>
+         </ul>
+      </div>
+      <xsl:call-template name="generateSummary" />
+      <xsl:call-template name="analysis-data" />
+      <xsl:call-template name="list-by-category" />
+      <xsl:call-template name="list-by-package" />
+
+
+      <!-- advanced tooltips -->
+      <xsl:for-each select="/BugCollection/BugPattern">
+         <xsl:variable name="b-t"><xsl:value-of select="@type" /></xsl:variable>
+         <div>
+            <xsl:attribute name="id">tip-<xsl:value-of select="$b-t" /></xsl:attribute>
+            <xsl:attribute name="class">tip</xsl:attribute>
+            <b><xsl:value-of select="@abbrev" /> / <xsl:value-of select="@type" /></b><br/>
+            <xsl:value-of select="/BugCollection/BugPattern[@type=$b-t]/Details" disable-output-escaping="yes" />
+         </div>
+      </xsl:for-each>
+
+      <!-- bug descriptions - hidden -->
+      <xsl:for-each select="/BugCollection/BugInstance[not(@last)]">
+            <div style="display:none;">
+               <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:attribute>
+               <xsl:for-each select="*/Message">
+                   <xsl:choose>
+                    <xsl:when test="parent::SourceLine and $htmlsrcpath != '' ">
+                      <div class="b-r"><a>
+                        <xsl:attribute name="href"><xsl:value-of select="$htmlsrcpath"/><xsl:value-of select="../@sourcepath" />.html#<xsl:value-of select="../@start" /></xsl:attribute>
+                        <xsl:apply-templates />
+                      </a></div>
+                    </xsl:when>
+                    <xsl:otherwise>
+                      <div class="b-r"><xsl:apply-templates /></div>
+                    </xsl:otherwise>
+                   </xsl:choose>
+               </xsl:for-each>
+               <div class="b-d">
+                  <xsl:value-of select="LongMessage" disable-output-escaping="no" />
+               </div>
+            </div>
+      </xsl:for-each>
+   </div>
+   <div id='fixedbox'>
+      <div id='bug-placeholder'></div>
+   </div>
+   </body>
+</html>
+</xsl:template>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+<!-- generate summary report from stats -->
+<xsl:template name="generateSummary" >
+<div class='summary' id='bug-summary'>
+   <h2>FindBugs Analysis generated at: <xsl:value-of select="/BugCollection/FindBugsSummary/@timestamp" /></h2>
+   <table>
+      <tr>
+         <th>Package</th>
+         <th>Code Size</th>
+         <th>Bugs</th>
+         <th>Bugs p1</th>
+         <th>Bugs p2</th>
+         <th>Bugs p3</th>
+         <th>Bugs Exp.</th>
+         <th>Ratio</th>
+      </tr>
+      <tr>
+         <td class='summary-name'>
+            Overall
+            (<xsl:value-of select="/BugCollection/FindBugsSummary/@num_packages" /> packages),
+            (<xsl:value-of select="/BugCollection/FindBugsSummary/@total_classes" /> classes)
+         </td>
+         <td class='summary-size'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_size" /></td>
+         <td class='summary-priority-all'><xsl:value-of select="/BugCollection/FindBugsSummary/@total_bugs" /></td>
+         <td class='summary-priority-1'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_1" /></td>
+         <td class='summary-priority-2'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_2" /></td>
+         <td class='summary-priority-3'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_3" /></td>
+         <td class='summary-priority-4'><xsl:value-of select="/BugCollection/FindBugsSummary/@priority_4" /></td>
+         <td class='summary-ratio'></td>
+      </tr>
+      <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats">
+         <xsl:sort select="@package" />
+         <xsl:if test="@total_bugs!='0'" >
+            <tr>
+               <td class='summary-name'><xsl:value-of select="@package" /></td>
+               <td class='summary-size'><xsl:value-of select="@total_size" /></td>
+               <td class='summary-priority-all'><xsl:value-of select="@total_bugs" /></td>
+               <td class='summary-priority-1'><xsl:value-of select="@priority_1" /></td>
+               <td class='summary-priority-2'><xsl:value-of select="@priority_2" /></td>
+               <td class='summary-priority-3'><xsl:value-of select="@priority_3" /></td>
+               <td class='summary-priority-4'><xsl:value-of select="@priority_4" /></td>
+               <td class='summary-ratio'></td>
+<!--
+               <xsl:for-each select="ClassStats">
+                  <xsl:if test="@bugs!='0'" >
+                  <li>
+                     <xsl:value-of select="@class" /> - total: <xsl:value-of select="@bugs" />
+                  </li>
+                  </xsl:if>
+               </xsl:for-each>
+-->
+            </tr>
+         </xsl:if>
+      </xsl:for-each>
+   </table>
+</div>
+</xsl:template>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+<!-- display analysis info -->
+<xsl:template name="analysis-data">
+      <div id='analysis-data' style='display:none;'>
+         <div id='analyzed-files'>
+            <h3>Analyzed Files:</h3>
+            <ul>
+               <xsl:for-each select="/BugCollection/Project/Jar">
+                  <li><xsl:apply-templates /></li>
+               </xsl:for-each>
+            </ul>
+         </div>
+         <div id='used-libraries'>
+            <h3>Used Libraries:</h3>
+            <ul>
+               <xsl:for-each select="/BugCollection/Project/AuxClasspathEntry">
+                  <li><xsl:apply-templates /></li>
+               </xsl:for-each>
+               <xsl:if test="count(/BugCollection/Project/AuxClasspathEntry)=0" >
+                  <li>None</li>
+               </xsl:if>
+            </ul>
+         </div>
+         <div id='analysis-error'>
+            <h3>Analysis Errors:</h3>
+            <ul>
+               <xsl:variable name="error-count"
+                             select="count(/BugCollection/Errors/MissingClass)" />
+               <xsl:if test="$error-count=0" >
+                  <li>None</li>
+               </xsl:if>
+               <xsl:if test="$error-count>0" >
+                  <li>Missing ref classes for analysis:
+                     <ul>
+                        <xsl:for-each select="/BugCollection/Errors/MissingClass">
+                           <li><xsl:apply-templates /></li>
+                        </xsl:for-each>
+                     </ul>
+                  </li>
+               </xsl:if>
+            </ul>
+         </div>
+      </div>
+</xsl:template>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+<!-- show priorities helper -->
+<xsl:template name="helpPriorities">
+   <span>
+      <xsl:attribute name="class">b-1</xsl:attribute>
+      &#160;&#160;
+   </span> P1
+   <span>
+      <xsl:attribute name="class">b-2</xsl:attribute>
+      &#160;&#160;
+   </span> P2
+   <span>
+      <xsl:attribute name="class">b-3</xsl:attribute>
+      &#160;&#160;
+   </span> P3
+   <span>
+      <xsl:attribute name="class">b-4</xsl:attribute>
+      &#160;&#160;
+   </span> Exp.
+</xsl:template>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+<!-- display the details of a bug -->
+<xsl:template name="display-bug" >
+   <xsl:param name="b-t"    select="''" />
+   <xsl:param name="bug-id"      select="''" />
+   <xsl:param name="which-list"  select="''" />
+   <div class="bb">
+      <a>
+         <xsl:attribute name="href"></xsl:attribute>
+         <xsl:attribute name="onclick">showbug('b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />','<xsl:value-of select="$which-list" />');return false;</xsl:attribute>
+         <span>
+            <xsl:attribute name="class">b-<xsl:value-of select="@priority"/></xsl:attribute>
+            &#160;&#160;
+         </span>
+         <span class="b-t"><xsl:value-of select="@abbrev" />: </span> <xsl:value-of select="Class/Message" />
+      </a>
+      <div style="display:none;">
+         <xsl:attribute name="id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" />-ph-<xsl:value-of select="$which-list" /></xsl:attribute>
+         loading...
+      </div>
+   </div>
+</xsl:template>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+<!-- main template for the list by category -->
+<xsl:template name="list-by-category" >
+   <div id='list-by-category' class='data-box' style='display:none;'>
+      <xsl:call-template name="helpPriorities" />
+      <xsl:variable name="unique-category" select="/BugCollection/BugCategory/@category"/>
+      <xsl:for-each select="$unique-category">
+         <xsl:sort select="." order="ascending" />
+            <xsl:call-template name="categories">
+               <xsl:with-param name="category" select="." />
+            </xsl:call-template>
+      </xsl:for-each>
+   </div>
+</xsl:template>
+
+<xsl:template name="categories" >
+   <xsl:param name="category" select="''" />
+   <xsl:variable name="category-count"
+                       select="count(/BugCollection/BugInstance[@category=$category and not(@last)])" />
+   <xsl:variable name="category-count-p1"
+                       select="count(/BugCollection/BugInstance[@category=$category and @priority='1' and not(@last)])" />
+   <xsl:variable name="category-count-p2"
+                       select="count(/BugCollection/BugInstance[@category=$category and @priority='2' and not(@last)])" />
+   <xsl:variable name="category-count-p3"
+                       select="count(/BugCollection/BugInstance[@category=$category and @priority='3' and not(@last)])" />
+   <xsl:variable name="category-count-p4"
+                       select="count(/BugCollection/BugInstance[@category=$category and @priority='4' and not(@last)])" />
+   <div class='ob'>
+      <div class='ob-t'>
+         <a>
+            <xsl:attribute name="href"></xsl:attribute>
+            <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />');return false;</xsl:attribute>
+            <xsl:value-of select="/BugCollection/BugCategory[@category=$category]/Description" />
+            (<xsl:value-of select="$category-count" />:
+            <span class='t-h'><xsl:value-of select="$category-count-p1" />/<xsl:value-of select="$category-count-p2" />/<xsl:value-of select="$category-count-p3" />/<xsl:value-of select="$category-count-p4" /></span>)
+         </a>
+      </div>
+      <div style="display:none;">
+         <xsl:attribute name="id">category-<xsl:value-of select="$category" /></xsl:attribute>
+         <xsl:call-template name="list-by-category-and-code">
+            <xsl:with-param name="category" select="$category" />
+         </xsl:call-template>
+      </div>
+   </div>
+</xsl:template>
+
+<xsl:template name="list-by-category-and-code" >
+   <xsl:param name="category" select="''" />
+   <xsl:variable name="unique-code" select="/BugCollection/BugInstance[@category=$category and not(@last) and generate-id()= generate-id(key('lbc-code-key',concat(@category, at abbrev)))]/@abbrev" />
+   <xsl:for-each select="$unique-code">
+      <xsl:sort select="." order="ascending" />
+         <xsl:call-template name="codes">
+            <xsl:with-param name="category" select="$category" />
+            <xsl:with-param name="code" select="." />
+         </xsl:call-template>
+   </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="codes" >
+   <xsl:param name="category" select="''" />
+   <xsl:param name="code"     select="''" />
+   <xsl:variable name="code-count"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and not(@last)])" />
+   <xsl:variable name="code-count-p1"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='1' and not(@last)])" />
+   <xsl:variable name="code-count-p2"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='2' and not(@last)])" />
+   <xsl:variable name="code-count-p3"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='3' and not(@last)])" />
+   <xsl:variable name="code-count-p4"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @priority='4' and not(@last)])" />
+   <div class='ib-1'>
+      <div class="ib-1-t">
+         <a>
+            <xsl:attribute name="href"></xsl:attribute>
+            <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />');return false;</xsl:attribute>
+            <xsl:value-of select="$code" />: <xsl:value-of select="/BugCollection/BugCode[@abbrev=$code]/Description" />
+            (<xsl:value-of select="$code-count" />:
+            <span class='t-h'><xsl:value-of select="$code-count-p1" />/<xsl:value-of select="$code-count-p2" />/<xsl:value-of select="$code-count-p3" />/<xsl:value-of select="$code-count-p4" /></span>)
+         </a>
+      </div>
+      <div style="display:none;">
+         <xsl:attribute name="id">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" /></xsl:attribute>
+         <xsl:call-template name="list-by-category-and-code-and-bug">
+            <xsl:with-param name="category" select="$category" />
+            <xsl:with-param name="code" select="$code" />
+         </xsl:call-template>
+      </div>
+   </div>
+</xsl:template>
+
+<xsl:template name="list-by-category-and-code-and-bug" >
+   <xsl:param name="category" select="''" />
+   <xsl:param name="code" select="''" />
+   <xsl:variable name="unique-bug" select="/BugCollection/BugInstance[@category=$category and not(@last) and @abbrev=$code and generate-id()= generate-id(key('lbc-bug-key',concat(@category, at abbrev, at type)))]/@type" />
+   <xsl:for-each select="$unique-bug">
+      <xsl:sort select="." order="ascending" />
+         <xsl:call-template name="bugs">
+            <xsl:with-param name="category" select="$category" />
+            <xsl:with-param name="code" select="$code" />
+            <xsl:with-param name="bug" select="." />
+         </xsl:call-template>
+   </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="bugs" >
+   <xsl:param name="category" select="''" />
+   <xsl:param name="code"     select="''" />
+   <xsl:param name="bug"      select="''" />
+   <xsl:variable name="bug-count"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and not(@last)])" />
+   <xsl:variable name="bug-count-p1"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='1' and not(@last)])" />
+   <xsl:variable name="bug-count-p2"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='2' and not(@last)])" />
+   <xsl:variable name="bug-count-p3"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='3' and not(@last)])" />
+   <xsl:variable name="bug-count-p4"
+                       select="count(/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and @priority='4' and not(@last)])" />
+   <div class='ib-2'>
+      <div class='ib-2-t'>
+         <a>
+            <xsl:attribute name="href"></xsl:attribute>
+            <xsl:attribute name="onclick">toggle('category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" />');return false;</xsl:attribute>
+            <xsl:attribute name="onmouseout">popUp(event,'tip-<xsl:value-of select="$bug" />');</xsl:attribute>
+            <xsl:attribute name="onmouseover">popUp(event,'tip-<xsl:value-of select="$bug" />');</xsl:attribute>
+            <xsl:value-of select="/BugCollection/BugPattern[@category=$category and @abbrev=$code and @type=$bug]/ShortDescription" />&#160;&#160;
+            (<xsl:value-of select="$bug-count" />:
+            <span class='t-h'><xsl:value-of select="$bug-count-p1" />/<xsl:value-of select="$bug-count-p2" />/<xsl:value-of select="$bug-count-p3" />/<xsl:value-of select="$bug-count-p4" /></span>)
+         </a>
+      </div>
+      <div style="display:none;">
+         <xsl:attribute name="id">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" /></xsl:attribute>
+         <xsl:variable name="cat-code-type">category-<xsl:value-of select="$category" />-and-code-<xsl:value-of select="$code" />-and-bug-<xsl:value-of select="$bug" /></xsl:variable>
+         <xsl:variable name="bug-id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:variable>
+         <xsl:for-each select="/BugCollection/BugInstance[@category=$category and @abbrev=$code and @type=$bug and not(@last)]">
+            <xsl:call-template name="display-bug">
+               <xsl:with-param name="b-t"     select="@type" />
+               <xsl:with-param name="bug-id"       select="$bug-id" />
+               <xsl:with-param name="which-list"   select="'c'" />
+            </xsl:call-template>
+         </xsl:for-each>
+      </div>
+   </div>
+</xsl:template>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+<!-- main template for the list by package -->
+<xsl:template name="list-by-package" >
+   <div id='list-by-package' class='data-box' style='display:none;'>
+      <xsl:call-template name="helpPriorities" />
+      <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats[@total_bugs != '0']/@package">
+         <xsl:sort select="." order="ascending" />
+            <xsl:call-template name="packages">
+               <xsl:with-param name="package" select="." />
+            </xsl:call-template>
+      </xsl:for-each>
+   </div>
+</xsl:template>
+
+<xsl:template name="packages" >
+   <xsl:param name="package" select="''" />
+   <xsl:variable name="package-count-p1">
+      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1 != '')">0</xsl:if>
+      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1 != ''">
+         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_1" />
+      </xsl:if>
+   </xsl:variable>
+   <xsl:variable name="package-count-p2">
+      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2 != '')">0</xsl:if>
+      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2 != ''">
+         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_2" />
+      </xsl:if>
+   </xsl:variable>
+   <xsl:variable name="package-count-p3">
+      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3 != '')">0</xsl:if>
+      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3 != ''">
+         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_3" />
+      </xsl:if>
+   </xsl:variable>
+   <xsl:variable name="package-count-p4">
+      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4 != '')">0</xsl:if>
+      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4 != ''">
+         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@priority_4" />
+      </xsl:if>
+   </xsl:variable>
+
+   <div class='ob'>
+      <div class='ob-t'>
+         <a>
+            <xsl:attribute name="href"></xsl:attribute>
+            <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />');return false;</xsl:attribute>
+            <xsl:value-of select="$package" />
+            (<xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/@total_bugs" />:
+            <span class='t-h'><xsl:value-of select="$package-count-p1" />/<xsl:value-of select="$package-count-p2" />/<xsl:value-of select="$package-count-p3" />/<xsl:value-of select="$package-count-p4" /></span>)
+         </a>
+      </div>
+      <div style="display:none;">
+         <xsl:attribute name="id">package-<xsl:value-of select="$package" /></xsl:attribute>
+         <xsl:call-template name="list-by-package-and-class">
+            <xsl:with-param name="package" select="$package" />
+         </xsl:call-template>
+      </div>
+   </div>
+</xsl:template>
+
+<xsl:template name="list-by-package-and-class" >
+   <xsl:param name="package" select="''" />
+   <xsl:for-each select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@bugs != '0']/@class">
+      <xsl:sort select="." order="ascending" />
+         <xsl:call-template name="classes">
+            <xsl:with-param name="package" select="$package" />
+            <xsl:with-param name="class" select="." />
+         </xsl:call-template>
+   </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="classes" >
+   <xsl:param name="package" select="''" />
+   <xsl:param name="class"     select="''" />
+   <xsl:variable name="class-count"
+                       select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@bugs" />
+
+   <xsl:variable name="class-count-p1">
+      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1 != '')">0</xsl:if>
+      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1 != ''">
+         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_1" />
+      </xsl:if>
+   </xsl:variable>
+   <xsl:variable name="class-count-p2">
+      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2 != '')">0</xsl:if>
+      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2 != ''">
+         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_2" />
+      </xsl:if>
+   </xsl:variable>
+   <xsl:variable name="class-count-p3">
+      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3 != '')">0</xsl:if>
+      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3 != ''">
+         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_3" />
+      </xsl:if>
+   </xsl:variable>
+   <xsl:variable name="class-count-p4">
+      <xsl:if test="not(/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4 != '')">0</xsl:if>
+      <xsl:if test="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4 != ''">
+         <xsl:value-of select="/BugCollection/FindBugsSummary/PackageStats[@package=$package]/ClassStats[@class=$class and @bugs != '0']/@priority_4" />
+      </xsl:if>
+   </xsl:variable>
+
+   <div class='ib-1'>
+      <div class="ib-1-t">
+         <a>
+            <xsl:attribute name="href"></xsl:attribute>
+            <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />');return false;</xsl:attribute>
+            <xsl:value-of select="$class" />  (<xsl:value-of select="$class-count" />:
+            <span class='t-h'><xsl:value-of select="$class-count-p1" />/<xsl:value-of select="$class-count-p2" />/<xsl:value-of select="$class-count-p3" />/<xsl:value-of select="$class-count-p4" /></span>)
+         </a>
+      </div>
+      <div style="display:none;">
+         <xsl:attribute name="id">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" /></xsl:attribute>
+         <xsl:call-template name="list-by-package-and-class-and-bug">
+            <xsl:with-param name="package" select="$package" />
+            <xsl:with-param name="class" select="$class" />
+         </xsl:call-template>
+      </div>
+   </div>
+</xsl:template>
+
+<xsl:template name="list-by-package-and-class-and-bug" >
+   <xsl:param name="package" select="''" />
+   <xsl:param name="class" select="''" />
+   <xsl:variable name="unique-class-bugs" select="/BugCollection/BugInstance[not(@last) and Class[position()=1 and @classname=$class] and generate-id() = generate-id(key('lbp-class-b-t',concat(Class/@classname, at type)))]/@type" />
+
+   <xsl:for-each select="$unique-class-bugs">
+      <xsl:sort select="." order="ascending" />
+         <xsl:call-template name="class-bugs">
+            <xsl:with-param name="package" select="$package" />
+            <xsl:with-param name="class" select="$class" />
+            <xsl:with-param name="type" select="." />
+         </xsl:call-template>
+   </xsl:for-each>
+</xsl:template>
+
+<xsl:template name="class-bugs" >
+   <xsl:param name="package" select="''" />
+   <xsl:param name="class"     select="''" />
+   <xsl:param name="type"      select="''" />
+   <xsl:variable name="bug-count"
+                       select="count(/BugCollection/BugInstance[@type=$type and not(@last) and Class[position()=1 and @classname=$class]])" />
+   <div class='ib-2'>
+      <div class='ib-2-t'>
+         <a>
+            <xsl:attribute name="href"></xsl:attribute>
+            <xsl:attribute name="onclick">toggle('package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" />');return false;</xsl:attribute>
+            <xsl:attribute name="onmouseout">popUp(event,'tip-<xsl:value-of select="$type" />')</xsl:attribute>
+            <xsl:attribute name="onmouseover">popUp(event,'tip-<xsl:value-of select="$type" />')</xsl:attribute>
+            <xsl:value-of select="/BugCollection/BugPattern[@type=$type]/ShortDescription" />&#160;&#160;
+            (<xsl:value-of select="$bug-count" />)
+         </a>
+      </div>
+      <div style="display:none;">
+         <xsl:attribute name="id">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" /></xsl:attribute>
+         <xsl:variable name="package-class-type">package-<xsl:value-of select="$package" />-and-class-<xsl:value-of select="$class" />-and-type-<xsl:value-of select="$type" /></xsl:variable>
+         <xsl:variable name="bug-id">b-uid-<xsl:value-of select="@instanceHash" />-<xsl:value-of select="@instanceOccurrenceNum" /></xsl:variable>
+         <xsl:for-each select="/BugCollection/BugInstance[@type=$type and not(@last) and Class[position()=1 and @classname=$class]]">
+            <xsl:call-template name="display-bug">
+               <xsl:with-param name="b-t"     select="@type" />
+               <xsl:with-param name="bug-id"       select="$bug-id" />
+               <xsl:with-param name="which-list"   select="'p'" />
+            </xsl:call-template>
+         </xsl:for-each>
+      </div>
+   </div>
+</xsl:template>
+
+</xsl:transform>

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/plain.xsl
===================================================================
--- labs/jbossesb/trunk/findbugs/src/xsl/plain.xsl	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/plain.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,306 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  FindBugs - Find bugs in Java programs
-  Copyright (C) 2004,2005 University of Maryland
-  Copyright (C) 2005, Chris Nappin
-  
-  This library 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 library 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 library; if not, write to the Free Software
-  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
--->
-<xsl:stylesheet version="1.0"
-	xmlns="http://www.w3.org/1999/xhtml"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-<xsl:output
-	method="xml"
-	omit-xml-declaration="yes"
-	standalone="yes"
-         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-         doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
-	indent="yes"
-	encoding="UTF-8"/>
-
-<xsl:variable name="bugTableHeader">
-	<tr class="tableheader">
-		<th align="left">Warning</th>
-		<th align="left">Priority</th>
-		<th align="left">Details</th>
-	</tr>
-</xsl:variable>
-
-<xsl:template match="/">
-	<html>
-	<head>
-		<title>FindBugs Report</title>
-		<style type="text/css">
-		.tablerow0 {
-			background: #EEEEEE;
-		}
-
-		.tablerow1 {
-			background: white;
-		}
-
-		.detailrow0 {
-			background: #EEEEEE;
-		}
-
-		.detailrow1 {
-			background: white;
-		}
-
-		.tableheader {
-			background: #b9b9fe;
-			font-size: larger;
-		}
-		</style>
-	</head>
-
-	<xsl:variable name="unique-catkey" select="/BugCollection/BugCategory/@category"/>
-
-	<body>
-
-	<h1>FindBugs Report</h1>
-		<p>Produced using <a href="http://findbugs.sourceforge.net">FindBugs</a> <xsl:value-of select="/BugCollection/@version"/>.</p>
-		<p>Project: 
-			<xsl:choose>
-				<xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
-				<xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
-			</xsl:choose>
-		</p>
-	<h2>Metrics</h2>
-	<xsl:apply-templates select="/BugCollection/FindBugsSummary"/>
-
-	<h2>Summary</h2>
-	<table width="500" cellpadding="5" cellspacing="2">
-	    <tr class="tableheader">
-			<th align="left">Warning Type</th>
-			<th align="right">Number</th>
-		</tr>
-
-	<xsl:for-each select="$unique-catkey">
-		<xsl:sort select="." order="ascending"/>
-		<xsl:variable name="catkey" select="."/>
-		<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
-		<xsl:variable name="styleclass">
-			<xsl:choose><xsl:when test="position() mod 2 = 1">tablerow0</xsl:when>
-				<xsl:otherwise>tablerow1</xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>
-
-		<tr class="{$styleclass}">
-			<td><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></td>
-			<td align="right"><xsl:value-of select="count(/BugCollection/BugInstance[(@category=$catkey) and (not(@last))])"/></td>
-		</tr>
-	</xsl:for-each>
-
-	<xsl:variable name="styleclass">
-		<xsl:choose><xsl:when test="count($unique-catkey) mod 2 = 0">tablerow0</xsl:when>
-			<xsl:otherwise>tablerow1</xsl:otherwise>
-		</xsl:choose>
-	</xsl:variable>
-		<tr class="{$styleclass}">
-		    <td><b>Total</b></td>
-		    <td align="right"><b><xsl:value-of select="count(/BugCollection/BugInstance[not(@last)])"/></b></td>
-		</tr>
-	</table>
-	<p><br/><br/></p>
-	
-	<h1>Warnings</h1>
-
-	<p>Click on each warning link to see a full description of the issue, and
-	    details of how to resolve it.</p>
-
-	<xsl:for-each select="$unique-catkey">
-		<xsl:sort select="." order="ascending"/>
-		<xsl:variable name="catkey" select="."/>
-		<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
-
-		<xsl:call-template name="generateWarningTable">
-			<xsl:with-param name="warningSet" select="/BugCollection/BugInstance[(@category=$catkey) and (not(@last))]"/>
-			<xsl:with-param name="sectionTitle"><xsl:value-of select="$catdesc"/> Warnings</xsl:with-param>
-			<xsl:with-param name="sectionId">Warnings_<xsl:value-of select="$catkey"/></xsl:with-param>
-		</xsl:call-template>
-	</xsl:for-each>
-
-    <p><br/><br/></p>
-	<h1><a name="Details">Warning Types</a></h1>
-
-	<xsl:apply-templates select="/BugCollection/BugPattern">
-		<xsl:sort select="@abbrev"/>
-		<xsl:sort select="ShortDescription"/>
-	</xsl:apply-templates>
-
-	</body>
-	</html>
-</xsl:template>
-
-<xsl:template match="BugInstance[not(@last)]">
-	<xsl:variable name="warningId"><xsl:value-of select="generate-id()"/></xsl:variable>
-
-	<tr class="tablerow{position() mod 2}">
-		<td width="20%" valign="top">
-			<a href="#{@type}"><xsl:value-of select="ShortMessage"/></a>
-		</td>
-		<td width="10%" valign="top">
-			<xsl:choose>
-				<xsl:when test="@priority = 1">High</xsl:when>
-				<xsl:when test="@priority = 2">Medium</xsl:when>
-				<xsl:when test="@priority = 3">Low</xsl:when>
-				<xsl:otherwise>Unknown</xsl:otherwise>
-			</xsl:choose>
-		</td>
-		<td width="70%">
-		    <p><xsl:value-of select="LongMessage"/><br/><br/>
-		    
-		    	<!--  add source filename and line number(s), if any -->
-				<xsl:if test="SourceLine">
-					<br/>In file <xsl:value-of select="SourceLine/@sourcefile"/>,
-					<xsl:choose>
-						<xsl:when test="SourceLine/@start = SourceLine/@end">
-						line <xsl:value-of select="SourceLine/@start"/>
-						</xsl:when>
-						<xsl:otherwise>
-						lines <xsl:value-of select="SourceLine/@start"/>
-						    to <xsl:value-of select="SourceLine/@end"/>
-						</xsl:otherwise>
-					</xsl:choose>
-				</xsl:if>
-				
-				<xsl:for-each select="./*/Message">
-					<br/><xsl:value-of select="text()"/>
-				</xsl:for-each>
-		    </p>
-		</td>
-	</tr>
-</xsl:template>
-
-<xsl:template match="BugPattern">
-	<h2><a name="{@type}"><xsl:value-of select="ShortDescription"/></a></h2>
-	<xsl:value-of select="Details" disable-output-escaping="yes"/>
-	<p><br/><br/></p>
-</xsl:template>
-
-<xsl:template name="generateWarningTable">
-	<xsl:param name="warningSet"/>
-	<xsl:param name="sectionTitle"/>
-	<xsl:param name="sectionId"/>
-
-	<h2><a name="{$sectionId}"><xsl:value-of select="$sectionTitle"/></a></h2>
-	<table class="warningtable" width="100%" cellspacing="2" cellpadding="5">
-		<xsl:copy-of select="$bugTableHeader"/>
-		<xsl:choose>
-		    <xsl:when test="count($warningSet) &gt; 0">
-				<xsl:apply-templates select="$warningSet">
-					<xsl:sort select="@priority"/>
-					<xsl:sort select="@abbrev"/>
-					<xsl:sort select="Class/@classname"/>
-				</xsl:apply-templates>
-		    </xsl:when>
-		    <xsl:otherwise>
-		        <tr><td colspan="2"><p><i>None</i></p></td></tr>
-		    </xsl:otherwise>
-		</xsl:choose>
-	</table>
-	<p><br/><br/></p>
-</xsl:template>
-
-<xsl:template match="FindBugsSummary">
-    <xsl:variable name="kloc" select="@total_size div 1000.0"/>
-    <xsl:variable name="format" select="'#######0.00'"/>
-
-	<p><xsl:value-of select="@total_size"/> lines of code analyzed,
-	in <xsl:value-of select="@total_classes"/> classes, 
-	in <xsl:value-of select="@num_packages"/> packages.</p>
-	<table width="500" cellpadding="5" cellspacing="2">
-	    <tr class="tableheader">
-			<th align="left">Metric</th>
-			<th align="right">Total</th>
-			<th align="right">Density*</th>
-		</tr>
-		<tr class="tablerow0">
-			<td>High Priority Warnings</td>
-			<td align="right"><xsl:value-of select="@priority_1"/></td>
-			<td align="right">
-                <xsl:choose>
-                    <xsl:when test= "number($kloc) &gt; 0.0">
-       			        <xsl:value-of select="format-number(@priority_1 div $kloc, $format)"/>
-                    </xsl:when>
-                    <xsl:otherwise>
-      		            <xsl:value-of select="format-number(0.0, $format)"/>
-                    </xsl:otherwise>
-		        </xsl:choose>
-			</td>
-		</tr>
-		<tr class="tablerow1">
-			<td>Medium Priority Warnings</td>
-			<td align="right"><xsl:value-of select="@priority_2"/></td>
-			<td align="right">
-                <xsl:choose>
-                    <xsl:when test= "number($kloc) &gt; 0.0">
-       			        <xsl:value-of select="format-number(@priority_2 div $kloc, $format)"/>
-                    </xsl:when>
-                    <xsl:otherwise>
-      		            <xsl:value-of select="format-number(0.0, $format)"/>
-                    </xsl:otherwise>
-		        </xsl:choose>
-			</td>
-		</tr>
-
-    <xsl:choose>
-		<xsl:when test="@priority_3">
-			<tr class="tablerow1">
-				<td>Low Priority Warnings</td>
-				<td align="right"><xsl:value-of select="@priority_3"/></td>
-				<td align="right">
-	                <xsl:choose>
-	                    <xsl:when test= "number($kloc) &gt; 0.0">
-	       			        <xsl:value-of select="format-number(@priority_3 div $kloc, $format)"/>
-	                    </xsl:when>
-	                    <xsl:otherwise>
-	      		            <xsl:value-of select="format-number(0.0, $format)"/>
-	                    </xsl:otherwise>
-			        </xsl:choose>
-				</td>
-			</tr>
-			<xsl:variable name="totalClass" select="tablerow0"/>
-		</xsl:when>
-		<xsl:otherwise>
-		    <xsl:variable name="totalClass" select="tablerow1"/>
-		</xsl:otherwise>
-	</xsl:choose>
-
-		<tr class="$totalClass">
-			<td><b>Total Warnings</b></td>
-			<td align="right"><b><xsl:value-of select="@total_bugs"/></b></td>
-			<td align="right">
-				<b>
-                <xsl:choose>
-                    <xsl:when test= "number($kloc) &gt; 0.0">
-       			        <xsl:value-of select="format-number(@total_bugs div $kloc, $format)"/>
-                    </xsl:when>
-                    <xsl:otherwise>
-      		            <xsl:value-of select="format-number(0.0, $format)"/>
-                    </xsl:otherwise>
-		        </xsl:choose>
-				</b>
-			</td>
-		</tr>
-	</table>
-	<p><i>(* Defects per Thousand lines of non-commenting source statements)</i></p>
-	<p><br/><br/></p>
-
-</xsl:template>
-
-</xsl:stylesheet>

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/plain.xsl (from rev 25071, labs/jbossesb/trunk/findbugs/src/xsl/plain.xsl)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/plain.xsl	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/plain.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  FindBugs - Find bugs in Java programs
+  Copyright (C) 2004,2005 University of Maryland
+  Copyright (C) 2005, Chris Nappin
+  
+  This library 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 library 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 library; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+-->
+<xsl:stylesheet version="1.0"
+	xmlns="http://www.w3.org/1999/xhtml"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:output
+	method="xml"
+	omit-xml-declaration="yes"
+	standalone="yes"
+         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
+         doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+	indent="yes"
+	encoding="UTF-8"/>
+
+<xsl:variable name="bugTableHeader">
+	<tr class="tableheader">
+		<th align="left">Warning</th>
+		<th align="left">Priority</th>
+		<th align="left">Details</th>
+	</tr>
+</xsl:variable>
+
+<xsl:template match="/">
+	<html>
+	<head>
+		<title>FindBugs Report</title>
+		<style type="text/css">
+		.tablerow0 {
+			background: #EEEEEE;
+		}
+
+		.tablerow1 {
+			background: white;
+		}
+
+		.detailrow0 {
+			background: #EEEEEE;
+		}
+
+		.detailrow1 {
+			background: white;
+		}
+
+		.tableheader {
+			background: #b9b9fe;
+			font-size: larger;
+		}
+		</style>
+	</head>
+
+	<xsl:variable name="unique-catkey" select="/BugCollection/BugCategory/@category"/>
+
+	<body>
+
+	<h1>FindBugs Report</h1>
+		<p>Produced using <a href="http://findbugs.sourceforge.net">FindBugs</a> <xsl:value-of select="/BugCollection/@version"/>.</p>
+		<p>Project: 
+			<xsl:choose>
+				<xsl:when test='string-length(/BugCollection/Project/@projectName)>0'><xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
+				<xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
+			</xsl:choose>
+		</p>
+	<h2>Metrics</h2>
+	<xsl:apply-templates select="/BugCollection/FindBugsSummary"/>
+
+	<h2>Summary</h2>
+	<table width="500" cellpadding="5" cellspacing="2">
+	    <tr class="tableheader">
+			<th align="left">Warning Type</th>
+			<th align="right">Number</th>
+		</tr>
+
+	<xsl:for-each select="$unique-catkey">
+		<xsl:sort select="." order="ascending"/>
+		<xsl:variable name="catkey" select="."/>
+		<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
+		<xsl:variable name="styleclass">
+			<xsl:choose><xsl:when test="position() mod 2 = 1">tablerow0</xsl:when>
+				<xsl:otherwise>tablerow1</xsl:otherwise>
+			</xsl:choose>
+		</xsl:variable>
+
+		<tr class="{$styleclass}">
+			<td><a href="#Warnings_{$catkey}"><xsl:value-of select="$catdesc"/> Warnings</a></td>
+			<td align="right"><xsl:value-of select="count(/BugCollection/BugInstance[(@category=$catkey) and (not(@last))])"/></td>
+		</tr>
+	</xsl:for-each>
+
+	<xsl:variable name="styleclass">
+		<xsl:choose><xsl:when test="count($unique-catkey) mod 2 = 0">tablerow0</xsl:when>
+			<xsl:otherwise>tablerow1</xsl:otherwise>
+		</xsl:choose>
+	</xsl:variable>
+		<tr class="{$styleclass}">
+		    <td><b>Total</b></td>
+		    <td align="right"><b><xsl:value-of select="count(/BugCollection/BugInstance[not(@last)])"/></b></td>
+		</tr>
+	</table>
+	<p><br/><br/></p>
+	
+	<h1>Warnings</h1>
+
+	<p>Click on each warning link to see a full description of the issue, and
+	    details of how to resolve it.</p>
+
+	<xsl:for-each select="$unique-catkey">
+		<xsl:sort select="." order="ascending"/>
+		<xsl:variable name="catkey" select="."/>
+		<xsl:variable name="catdesc" select="/BugCollection/BugCategory[@category=$catkey]/Description"/>
+
+		<xsl:call-template name="generateWarningTable">
+			<xsl:with-param name="warningSet" select="/BugCollection/BugInstance[(@category=$catkey) and (not(@last))]"/>
+			<xsl:with-param name="sectionTitle"><xsl:value-of select="$catdesc"/> Warnings</xsl:with-param>
+			<xsl:with-param name="sectionId">Warnings_<xsl:value-of select="$catkey"/></xsl:with-param>
+		</xsl:call-template>
+	</xsl:for-each>
+
+    <p><br/><br/></p>
+	<h1><a name="Details">Warning Types</a></h1>
+
+	<xsl:apply-templates select="/BugCollection/BugPattern">
+		<xsl:sort select="@abbrev"/>
+		<xsl:sort select="ShortDescription"/>
+	</xsl:apply-templates>
+
+	</body>
+	</html>
+</xsl:template>
+
+<xsl:template match="BugInstance[not(@last)]">
+	<xsl:variable name="warningId"><xsl:value-of select="generate-id()"/></xsl:variable>
+
+	<tr class="tablerow{position() mod 2}">
+		<td width="20%" valign="top">
+			<a href="#{@type}"><xsl:value-of select="ShortMessage"/></a>
+		</td>
+		<td width="10%" valign="top">
+			<xsl:choose>
+				<xsl:when test="@priority = 1">High</xsl:when>
+				<xsl:when test="@priority = 2">Medium</xsl:when>
+				<xsl:when test="@priority = 3">Low</xsl:when>
+				<xsl:otherwise>Unknown</xsl:otherwise>
+			</xsl:choose>
+		</td>
+		<td width="70%">
+		    <p><xsl:value-of select="LongMessage"/><br/><br/>
+		    
+		    	<!--  add source filename and line number(s), if any -->
+				<xsl:if test="SourceLine">
+					<br/>In file <xsl:value-of select="SourceLine/@sourcefile"/>,
+					<xsl:choose>
+						<xsl:when test="SourceLine/@start = SourceLine/@end">
+						line <xsl:value-of select="SourceLine/@start"/>
+						</xsl:when>
+						<xsl:otherwise>
+						lines <xsl:value-of select="SourceLine/@start"/>
+						    to <xsl:value-of select="SourceLine/@end"/>
+						</xsl:otherwise>
+					</xsl:choose>
+				</xsl:if>
+				
+				<xsl:for-each select="./*/Message">
+					<br/><xsl:value-of select="text()"/>
+				</xsl:for-each>
+		    </p>
+		</td>
+	</tr>
+</xsl:template>
+
+<xsl:template match="BugPattern">
+	<h2><a name="{@type}"><xsl:value-of select="ShortDescription"/></a></h2>
+	<xsl:value-of select="Details" disable-output-escaping="yes"/>
+	<p><br/><br/></p>
+</xsl:template>
+
+<xsl:template name="generateWarningTable">
+	<xsl:param name="warningSet"/>
+	<xsl:param name="sectionTitle"/>
+	<xsl:param name="sectionId"/>
+
+	<h2><a name="{$sectionId}"><xsl:value-of select="$sectionTitle"/></a></h2>
+	<table class="warningtable" width="100%" cellspacing="2" cellpadding="5">
+		<xsl:copy-of select="$bugTableHeader"/>
+		<xsl:choose>
+		    <xsl:when test="count($warningSet) &gt; 0">
+				<xsl:apply-templates select="$warningSet">
+					<xsl:sort select="@priority"/>
+					<xsl:sort select="@abbrev"/>
+					<xsl:sort select="Class/@classname"/>
+				</xsl:apply-templates>
+		    </xsl:when>
+		    <xsl:otherwise>
+		        <tr><td colspan="2"><p><i>None</i></p></td></tr>
+		    </xsl:otherwise>
+		</xsl:choose>
+	</table>
+	<p><br/><br/></p>
+</xsl:template>
+
+<xsl:template match="FindBugsSummary">
+    <xsl:variable name="kloc" select="@total_size div 1000.0"/>
+    <xsl:variable name="format" select="'#######0.00'"/>
+
+	<p><xsl:value-of select="@total_size"/> lines of code analyzed,
+	in <xsl:value-of select="@total_classes"/> classes, 
+	in <xsl:value-of select="@num_packages"/> packages.</p>
+	<table width="500" cellpadding="5" cellspacing="2">
+	    <tr class="tableheader">
+			<th align="left">Metric</th>
+			<th align="right">Total</th>
+			<th align="right">Density*</th>
+		</tr>
+		<tr class="tablerow0">
+			<td>High Priority Warnings</td>
+			<td align="right"><xsl:value-of select="@priority_1"/></td>
+			<td align="right">
+                <xsl:choose>
+                    <xsl:when test= "number($kloc) &gt; 0.0">
+       			        <xsl:value-of select="format-number(@priority_1 div $kloc, $format)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+      		            <xsl:value-of select="format-number(0.0, $format)"/>
+                    </xsl:otherwise>
+		        </xsl:choose>
+			</td>
+		</tr>
+		<tr class="tablerow1">
+			<td>Medium Priority Warnings</td>
+			<td align="right"><xsl:value-of select="@priority_2"/></td>
+			<td align="right">
+                <xsl:choose>
+                    <xsl:when test= "number($kloc) &gt; 0.0">
+       			        <xsl:value-of select="format-number(@priority_2 div $kloc, $format)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+      		            <xsl:value-of select="format-number(0.0, $format)"/>
+                    </xsl:otherwise>
+		        </xsl:choose>
+			</td>
+		</tr>
+
+    <xsl:choose>
+		<xsl:when test="@priority_3">
+			<tr class="tablerow1">
+				<td>Low Priority Warnings</td>
+				<td align="right"><xsl:value-of select="@priority_3"/></td>
+				<td align="right">
+	                <xsl:choose>
+	                    <xsl:when test= "number($kloc) &gt; 0.0">
+	       			        <xsl:value-of select="format-number(@priority_3 div $kloc, $format)"/>
+	                    </xsl:when>
+	                    <xsl:otherwise>
+	      		            <xsl:value-of select="format-number(0.0, $format)"/>
+	                    </xsl:otherwise>
+			        </xsl:choose>
+				</td>
+			</tr>
+			<xsl:variable name="totalClass" select="tablerow0"/>
+		</xsl:when>
+		<xsl:otherwise>
+		    <xsl:variable name="totalClass" select="tablerow1"/>
+		</xsl:otherwise>
+	</xsl:choose>
+
+		<tr class="$totalClass">
+			<td><b>Total Warnings</b></td>
+			<td align="right"><b><xsl:value-of select="@total_bugs"/></b></td>
+			<td align="right">
+				<b>
+                <xsl:choose>
+                    <xsl:when test= "number($kloc) &gt; 0.0">
+       			        <xsl:value-of select="format-number(@total_bugs div $kloc, $format)"/>
+                    </xsl:when>
+                    <xsl:otherwise>
+      		            <xsl:value-of select="format-number(0.0, $format)"/>
+                    </xsl:otherwise>
+		        </xsl:choose>
+				</b>
+			</td>
+		</tr>
+	</table>
+	<p><i>(* Defects per Thousand lines of non-commenting source statements)</i></p>
+	<p><br/><br/></p>
+
+</xsl:template>
+
+</xsl:stylesheet>

Deleted: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/summary.xsl
===================================================================
--- labs/jbossesb/trunk/findbugs/src/xsl/summary.xsl	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/summary.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,252 +0,0 @@
-<?xml version="1.0"?>
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
-
-<xsl:output
-         method="xml" indent="yes"
-         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
-         doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
- 		encoding="UTF-8"/>
-
-<xsl:param name="PAGE.TITLE" select="'Findbugs Summary Statistics'" />
-<xsl:param name="PAGE.FONT" select="'Arial'" />
-<xsl:param name="SUMMARY.HEADER" select="'Findbugs Summary Report'" />
-<xsl:param name="SUMMARY.LABEL" select="'Summary Analysis Generated at: '" />
-<xsl:param name="PACKAGE.HEADER" select="'Bugs By Package'" />
-<xsl:param name="PACKAGE.SORT.LABEL" select="'Sorted by Total Bugs'" />
-<xsl:param name="PACKAGE.LABEL" select="'Analysis of Package: '" />
-<xsl:param name="DEFAULT.PACKAGE.NAME" select="'default package'" />
-<xsl:param name="PACKAGE.BUGCLASS.LABEL" select="'Most Buggy Class in Package with #1 $1:'" />
-<xsl:param name="TOTAL.PACKAGES.LABEL" select="'#1 $1 Analyzed'" />
-
-<xsl:param name="BUGS.SINGLE.LABEL" select="'Bug'" />
-<xsl:param name="BUGS.PULURAL.LABEL" select="'Bugs'" />
-<xsl:param name="PACKAGE.SINGLE.LABEL" select="'Package'" />
-<xsl:param name="PACKAGE.PULURAL.LABEL" select="'Packages'" />
-
-
-<xsl:param name="TABLE.HEADING.TYPE" select="'Type Checked'" />
-<xsl:param name="TABLE.HEADING.COUNT" select="'Count'" />
-<xsl:param name="TABLE.HEADING.BUGS" select="'Bugs'" />
-<xsl:param name="TABLE.HEADING.PERCENT" select="'Percentage'" />
-<xsl:param name="TABLE.ROW.OUTER" select="'Outer Classes'" />
-<xsl:param name="TABLE.ROW.INNER" select="'Inner Classes'" />
-<xsl:param name="TABLE.ROW.INTERFACE" select="'Interfaces'" />
-<xsl:param name="TABLE.ROW.TOTAL" select="'Total'" />
-<xsl:param name="TABLE.WIDTH" select="'90%'" />
-
-<xsl:param name="PERCENTAGE.FORMAT" select="'#0.00%'" />
-
-<!-- This template drives the rest of the output -->
-<xsl:template match="/" >
-  <html>
-   <!-- JEditorPane gets really angry if it sees this
-	WWP: Sorry, this needs to be explained better. Not a valid HTML document without a head.
-	 -->
-   <head><title><xsl:value-of select="$PAGE.TITLE" /></title></head>
-  <body>
-    <h1 align="center"><a href="http://findbugs.sourceforge.net"><xsl:value-of select="$SUMMARY.HEADER" /></a></h1>
-    <h2 align="center"> Analysis for 
-    <xsl:choose>
-      <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'>
-          <xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
-      <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
-    </xsl:choose>
-      </h2>
-  <h2 align="center"><xsl:value-of select="$SUMMARY.LABEL" /> 
-      <i><xsl:value-of select="//FindBugsSummary/@timestamp" /></i></h2>
-  <xsl:apply-templates select="//FindBugsSummary" />
-  <br/>
-  <p align="center">
-  <font face="{$PAGE.FONT}" size="6"><xsl:value-of select="$PACKAGE.HEADER" /></font>
-    <br/><font face="{$PAGE.FONT}" size="4"><i>(<xsl:value-of select="$PACKAGE.SORT.LABEL"/>)</i></font>
-  </p>
-  <xsl:for-each select="//FindBugsSummary/PackageStats">
-  <xsl:sort select="@total_bugs" data-type="number" order="descending" />
-  <xsl:apply-templates select="." />
-  </xsl:for-each>
-  </body>
-  </html>
-</xsl:template>
-
-<xsl:template name="status_table_row" >
-  <xsl:param name="LABEL" select="''" />
-  <xsl:param name="COUNT" select="1" />
-  <xsl:param name="BUGS" select="0" />
-  <xsl:param name="FONT_SIZE" select="4" />
-  <tr>
-   <td align="left"><font face="{$PAGE.FONT}" size="{$FONT_SIZE}"><xsl:value-of select="$LABEL" /></font></td>
-   <td align="center"><font face="{$PAGE.FONT}" color="green" size="{$FONT_SIZE}"><xsl:value-of select="$COUNT" /></font></td>
-   <td align="center"><font face="{$PAGE.FONT}" color="red" size="{$FONT_SIZE}"><xsl:value-of select="$BUGS" /></font></td>
-   <td align="center"><font face="{$PAGE.FONT}" color="blue" size="{$FONT_SIZE}">
-      <xsl:choose>
-      <xsl:when test="$COUNT &gt; 0">
-       <xsl:value-of select="format-number(number($BUGS div $COUNT), $PERCENTAGE.FORMAT)"/>
-      </xsl:when>
-      <xsl:otherwise>
-       <xsl:value-of select="format-number(0, $PERCENTAGE.FORMAT)"/>
-      </xsl:otherwise>
-      </xsl:choose>
-     </font>
-   </td>
-  </tr>
-</xsl:template>
-
-<xsl:template name="table_header" >
-  <tr>
-  <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.TYPE"/></font></th>
-  <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.COUNT"/></font></th>
-  <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.BUGS"/></font></th>
-  <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.PERCENT"/></font></th>
-  </tr>
-</xsl:template>
-
-<xsl:template match="FindBugsSummary" >
-  <table width="{$TABLE.WIDTH}" border="1" align="center">
-   <xsl:call-template name="table_header" />
-
-   <xsl:call-template name="status_table_row">
-     <xsl:with-param name="LABEL" select="$TABLE.ROW.OUTER" />
-     <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')=''])" />
-     <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')='']/@bugs)" />
-   </xsl:call-template>
-
-   <xsl:call-template name="status_table_row">
-     <xsl:with-param name="LABEL" select="$TABLE.ROW.INNER" />
-     <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')!=''])" />
-     <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')!='']/@bugs)" />
-   </xsl:call-template>
-
-   <xsl:call-template name="status_table_row">
-     <xsl:with-param name="LABEL" select="$TABLE.ROW.INTERFACE" />
-     <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='true'])" />
-     <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='true']/@bugs)" />
-   </xsl:call-template>
-
-   <xsl:call-template name="status_table_row">
-     <xsl:with-param name="LABEL" select="$TABLE.ROW.TOTAL" />
-     <xsl:with-param name="COUNT" select="@total_classes" />
-     <xsl:with-param name="BUGS" select="@total_bugs"/>
-     <xsl:with-param name="FONT_SIZE" select="5"/>
-   </xsl:call-template>
-   <xsl:variable name="num_packages" select="count(PackageStats)" />
-   <tr><td align="center" colspan="4"><font face="{$PAGE.FONT}" size="4">
-     <xsl:call-template name='string_format'>
-     <xsl:with-param name="COUNT" select="$num_packages"/>
-     <xsl:with-param name="STRING" select="$TOTAL.PACKAGES.LABEL"/>
-     <xsl:with-param name="SINGLE" select="$PACKAGE.SINGLE.LABEL"/>
-     <xsl:with-param name="PULURAL" select="$PACKAGE.PULURAL.LABEL"/>
-     </xsl:call-template>
-     </font></td>
-   </tr>
-  </table>
-</xsl:template>
-
-
-<xsl:template name='string_format'>
-  <xsl:param name="COUNT" select="1"/>
-  <xsl:param name="STRING" select="''"/>
-  <xsl:param name="SINGLE" select="''"/>
-  <xsl:param name="PULURAL" select="''"/>
-  <xsl:variable name="count_str" select="concat(substring-before($STRING,'#1'), $COUNT, substring-after($STRING,'#1'))" />
-
-  <xsl:choose>
-    <xsl:when test="$COUNT &gt; 1">
-      <xsl:value-of select="concat(substring-before($count_str,'$1'), $PULURAL, substring-after($count_str,'$1'))" />
-    </xsl:when>
-    <xsl:otherwise>
-    <xsl:value-of select="concat(substring-before($count_str,'$1'), $SINGLE, substring-after($count_str,'$1'))" />
-    </xsl:otherwise>
-  </xsl:choose>
-</xsl:template>
-
-
-<xsl:template match="PackageStats" >
-  <xsl:variable name="package-name">
-    <xsl:choose>
-      <xsl:when test="@package = ''">
-        <xsl:value-of select="$DEFAULT.PACKAGE.NAME"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:value-of select="@package"/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-  <xsl:variable name="package-prefix">
-    <xsl:choose>
-      <xsl:when test="@package = ''">
-        <xsl:text></xsl:text>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:value-of select="concat(@package,'.')"/>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:variable>
-  <h2 align="center"><xsl:value-of select="$PACKAGE.LABEL"/><i><font color='green'><xsl:value-of select="$package-name" /></font></i></h2>
-   <table width="{$TABLE.WIDTH}" border="1" align="center">
-   <xsl:call-template name="table_header" />
-
-   <xsl:call-template name="status_table_row">
-     <xsl:with-param name="LABEL" select="$TABLE.ROW.OUTER" />
-     <xsl:with-param name="COUNT" select="count(ClassStats[@interface='false' and substring-after(@class,'$')=''])" />
-     <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='false' and substring-after(@class,'$')='']/@bugs)" />
-   </xsl:call-template>
-
-   <xsl:call-template name="status_table_row">
-     <xsl:with-param name="LABEL" select="$TABLE.ROW.INNER" />
-     <xsl:with-param name="COUNT" select="count(ClassStats[@interface='false' and substring-after(@class,'$')!=''])" />
-     <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='false' and substring-after(@class,'$')!='']/@bugs)" />
-   </xsl:call-template>
-
-   <xsl:call-template name="status_table_row">
-     <xsl:with-param name="LABEL" select="$TABLE.ROW.INTERFACE" />
-     <xsl:with-param name="COUNT" select="count(ClassStats[@interface='true'])" />
-     <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='true']/@bugs)" />
-   </xsl:call-template>
-
-   <xsl:call-template name="status_table_row">
-     <xsl:with-param name="LABEL" select="$TABLE.ROW.TOTAL" />
-     <xsl:with-param name="COUNT" select="@total_types" />
-     <xsl:with-param name="BUGS" select="@total_bugs" />
-     <xsl:with-param name="FONT_SIZE" select="5"/>
-   </xsl:call-template>
-
-  </table>
-  <xsl:if test="@total_bugs &gt; 0">
-  <table width="{$TABLE.WIDTH}" border="0" align="center">
-     <xsl:variable name="max_bugs">
-       <xsl:for-each select="ClassStats">
-         <xsl:sort select="@bugs" data-type="number" order="descending"/>
-         <xsl:if test="position()=1">
-           <xsl:value-of select="@bugs"/>
-         </xsl:if>
-       </xsl:for-each>
-     </xsl:variable>
-
-     <tr>
-       <td align="left" colspan="2">
-         <font face="{$PAGE.FONT}" size="4">
-     <xsl:call-template name='string_format'>
-     <xsl:with-param name="COUNT" select="$max_bugs"/>
-     <xsl:with-param name="STRING" select="$PACKAGE.BUGCLASS.LABEL"/>
-     <xsl:with-param name="SINGLE" select="$BUGS.SINGLE.LABEL"/>
-     <xsl:with-param name="PULURAL" select="$BUGS.PULURAL.LABEL"/>
-     </xsl:call-template>
-         </font>
-       </td>
-     </tr>
-
-     <xsl:for-each select="ClassStats">
-       <xsl:if test="@bugs = $max_bugs">
-       <tr>
-          <td>&#160;&#160;&#160;&#160;&#160;&#160;&#160;</td>
-          <td align="left"><font face="{$PAGE.FONT}" color="red" size="4"><i><xsl:value-of select="$package-prefix"/><xsl:value-of select="@class" /></i></font></td>
-       </tr>
-       </xsl:if>
-     </xsl:for-each>
-
-   </table>
-  </xsl:if>
-  <br/>
-</xsl:template>
-
-</xsl:stylesheet>

Copied: labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/summary.xsl (from rev 25071, labs/jbossesb/trunk/findbugs/src/xsl/summary.xsl)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/summary.xsl	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/findbugs/src/xsl/summary.xsl	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,252 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
+
+<xsl:output
+         method="xml" indent="yes"
+         doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
+         doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
+ 		encoding="UTF-8"/>
+
+<xsl:param name="PAGE.TITLE" select="'Findbugs Summary Statistics'" />
+<xsl:param name="PAGE.FONT" select="'Arial'" />
+<xsl:param name="SUMMARY.HEADER" select="'Findbugs Summary Report'" />
+<xsl:param name="SUMMARY.LABEL" select="'Summary Analysis Generated at: '" />
+<xsl:param name="PACKAGE.HEADER" select="'Bugs By Package'" />
+<xsl:param name="PACKAGE.SORT.LABEL" select="'Sorted by Total Bugs'" />
+<xsl:param name="PACKAGE.LABEL" select="'Analysis of Package: '" />
+<xsl:param name="DEFAULT.PACKAGE.NAME" select="'default package'" />
+<xsl:param name="PACKAGE.BUGCLASS.LABEL" select="'Most Buggy Class in Package with #1 $1:'" />
+<xsl:param name="TOTAL.PACKAGES.LABEL" select="'#1 $1 Analyzed'" />
+
+<xsl:param name="BUGS.SINGLE.LABEL" select="'Bug'" />
+<xsl:param name="BUGS.PULURAL.LABEL" select="'Bugs'" />
+<xsl:param name="PACKAGE.SINGLE.LABEL" select="'Package'" />
+<xsl:param name="PACKAGE.PULURAL.LABEL" select="'Packages'" />
+
+
+<xsl:param name="TABLE.HEADING.TYPE" select="'Type Checked'" />
+<xsl:param name="TABLE.HEADING.COUNT" select="'Count'" />
+<xsl:param name="TABLE.HEADING.BUGS" select="'Bugs'" />
+<xsl:param name="TABLE.HEADING.PERCENT" select="'Percentage'" />
+<xsl:param name="TABLE.ROW.OUTER" select="'Outer Classes'" />
+<xsl:param name="TABLE.ROW.INNER" select="'Inner Classes'" />
+<xsl:param name="TABLE.ROW.INTERFACE" select="'Interfaces'" />
+<xsl:param name="TABLE.ROW.TOTAL" select="'Total'" />
+<xsl:param name="TABLE.WIDTH" select="'90%'" />
+
+<xsl:param name="PERCENTAGE.FORMAT" select="'#0.00%'" />
+
+<!-- This template drives the rest of the output -->
+<xsl:template match="/" >
+  <html>
+   <!-- JEditorPane gets really angry if it sees this
+	WWP: Sorry, this needs to be explained better. Not a valid HTML document without a head.
+	 -->
+   <head><title><xsl:value-of select="$PAGE.TITLE" /></title></head>
+  <body>
+    <h1 align="center"><a href="http://findbugs.sourceforge.net"><xsl:value-of select="$SUMMARY.HEADER" /></a></h1>
+    <h2 align="center"> Analysis for 
+    <xsl:choose>
+      <xsl:when test='string-length(/BugCollection/Project/@projectName)>0'>
+          <xsl:value-of select="/BugCollection/Project/@projectName" /></xsl:when>
+      <xsl:otherwise><xsl:value-of select="/BugCollection/Project/@filename" /></xsl:otherwise>
+    </xsl:choose>
+      </h2>
+  <h2 align="center"><xsl:value-of select="$SUMMARY.LABEL" /> 
+      <i><xsl:value-of select="//FindBugsSummary/@timestamp" /></i></h2>
+  <xsl:apply-templates select="//FindBugsSummary" />
+  <br/>
+  <p align="center">
+  <font face="{$PAGE.FONT}" size="6"><xsl:value-of select="$PACKAGE.HEADER" /></font>
+    <br/><font face="{$PAGE.FONT}" size="4"><i>(<xsl:value-of select="$PACKAGE.SORT.LABEL"/>)</i></font>
+  </p>
+  <xsl:for-each select="//FindBugsSummary/PackageStats">
+  <xsl:sort select="@total_bugs" data-type="number" order="descending" />
+  <xsl:apply-templates select="." />
+  </xsl:for-each>
+  </body>
+  </html>
+</xsl:template>
+
+<xsl:template name="status_table_row" >
+  <xsl:param name="LABEL" select="''" />
+  <xsl:param name="COUNT" select="1" />
+  <xsl:param name="BUGS" select="0" />
+  <xsl:param name="FONT_SIZE" select="4" />
+  <tr>
+   <td align="left"><font face="{$PAGE.FONT}" size="{$FONT_SIZE}"><xsl:value-of select="$LABEL" /></font></td>
+   <td align="center"><font face="{$PAGE.FONT}" color="green" size="{$FONT_SIZE}"><xsl:value-of select="$COUNT" /></font></td>
+   <td align="center"><font face="{$PAGE.FONT}" color="red" size="{$FONT_SIZE}"><xsl:value-of select="$BUGS" /></font></td>
+   <td align="center"><font face="{$PAGE.FONT}" color="blue" size="{$FONT_SIZE}">
+      <xsl:choose>
+      <xsl:when test="$COUNT &gt; 0">
+       <xsl:value-of select="format-number(number($BUGS div $COUNT), $PERCENTAGE.FORMAT)"/>
+      </xsl:when>
+      <xsl:otherwise>
+       <xsl:value-of select="format-number(0, $PERCENTAGE.FORMAT)"/>
+      </xsl:otherwise>
+      </xsl:choose>
+     </font>
+   </td>
+  </tr>
+</xsl:template>
+
+<xsl:template name="table_header" >
+  <tr>
+  <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.TYPE"/></font></th>
+  <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.COUNT"/></font></th>
+  <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.BUGS"/></font></th>
+  <th><font face="{$PAGE.FONT}" size="4"><xsl:value-of select="$TABLE.HEADING.PERCENT"/></font></th>
+  </tr>
+</xsl:template>
+
+<xsl:template match="FindBugsSummary" >
+  <table width="{$TABLE.WIDTH}" border="1" align="center">
+   <xsl:call-template name="table_header" />
+
+   <xsl:call-template name="status_table_row">
+     <xsl:with-param name="LABEL" select="$TABLE.ROW.OUTER" />
+     <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')=''])" />
+     <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')='']/@bugs)" />
+   </xsl:call-template>
+
+   <xsl:call-template name="status_table_row">
+     <xsl:with-param name="LABEL" select="$TABLE.ROW.INNER" />
+     <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')!=''])" />
+     <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='false' and substring-after(@class,'$')!='']/@bugs)" />
+   </xsl:call-template>
+
+   <xsl:call-template name="status_table_row">
+     <xsl:with-param name="LABEL" select="$TABLE.ROW.INTERFACE" />
+     <xsl:with-param name="COUNT" select="count(PackageStats/ClassStats[@interface='true'])" />
+     <xsl:with-param name="BUGS" select="sum(PackageStats/ClassStats[@interface='true']/@bugs)" />
+   </xsl:call-template>
+
+   <xsl:call-template name="status_table_row">
+     <xsl:with-param name="LABEL" select="$TABLE.ROW.TOTAL" />
+     <xsl:with-param name="COUNT" select="@total_classes" />
+     <xsl:with-param name="BUGS" select="@total_bugs"/>
+     <xsl:with-param name="FONT_SIZE" select="5"/>
+   </xsl:call-template>
+   <xsl:variable name="num_packages" select="count(PackageStats)" />
+   <tr><td align="center" colspan="4"><font face="{$PAGE.FONT}" size="4">
+     <xsl:call-template name='string_format'>
+     <xsl:with-param name="COUNT" select="$num_packages"/>
+     <xsl:with-param name="STRING" select="$TOTAL.PACKAGES.LABEL"/>
+     <xsl:with-param name="SINGLE" select="$PACKAGE.SINGLE.LABEL"/>
+     <xsl:with-param name="PULURAL" select="$PACKAGE.PULURAL.LABEL"/>
+     </xsl:call-template>
+     </font></td>
+   </tr>
+  </table>
+</xsl:template>
+
+
+<xsl:template name='string_format'>
+  <xsl:param name="COUNT" select="1"/>
+  <xsl:param name="STRING" select="''"/>
+  <xsl:param name="SINGLE" select="''"/>
+  <xsl:param name="PULURAL" select="''"/>
+  <xsl:variable name="count_str" select="concat(substring-before($STRING,'#1'), $COUNT, substring-after($STRING,'#1'))" />
+
+  <xsl:choose>
+    <xsl:when test="$COUNT &gt; 1">
+      <xsl:value-of select="concat(substring-before($count_str,'$1'), $PULURAL, substring-after($count_str,'$1'))" />
+    </xsl:when>
+    <xsl:otherwise>
+    <xsl:value-of select="concat(substring-before($count_str,'$1'), $SINGLE, substring-after($count_str,'$1'))" />
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:template>
+
+
+<xsl:template match="PackageStats" >
+  <xsl:variable name="package-name">
+    <xsl:choose>
+      <xsl:when test="@package = ''">
+        <xsl:value-of select="$DEFAULT.PACKAGE.NAME"/>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="@package"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <xsl:variable name="package-prefix">
+    <xsl:choose>
+      <xsl:when test="@package = ''">
+        <xsl:text></xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="concat(@package,'.')"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <h2 align="center"><xsl:value-of select="$PACKAGE.LABEL"/><i><font color='green'><xsl:value-of select="$package-name" /></font></i></h2>
+   <table width="{$TABLE.WIDTH}" border="1" align="center">
+   <xsl:call-template name="table_header" />
+
+   <xsl:call-template name="status_table_row">
+     <xsl:with-param name="LABEL" select="$TABLE.ROW.OUTER" />
+     <xsl:with-param name="COUNT" select="count(ClassStats[@interface='false' and substring-after(@class,'$')=''])" />
+     <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='false' and substring-after(@class,'$')='']/@bugs)" />
+   </xsl:call-template>
+
+   <xsl:call-template name="status_table_row">
+     <xsl:with-param name="LABEL" select="$TABLE.ROW.INNER" />
+     <xsl:with-param name="COUNT" select="count(ClassStats[@interface='false' and substring-after(@class,'$')!=''])" />
+     <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='false' and substring-after(@class,'$')!='']/@bugs)" />
+   </xsl:call-template>
+
+   <xsl:call-template name="status_table_row">
+     <xsl:with-param name="LABEL" select="$TABLE.ROW.INTERFACE" />
+     <xsl:with-param name="COUNT" select="count(ClassStats[@interface='true'])" />
+     <xsl:with-param name="BUGS" select="sum(ClassStats[@interface='true']/@bugs)" />
+   </xsl:call-template>
+
+   <xsl:call-template name="status_table_row">
+     <xsl:with-param name="LABEL" select="$TABLE.ROW.TOTAL" />
+     <xsl:with-param name="COUNT" select="@total_types" />
+     <xsl:with-param name="BUGS" select="@total_bugs" />
+     <xsl:with-param name="FONT_SIZE" select="5"/>
+   </xsl:call-template>
+
+  </table>
+  <xsl:if test="@total_bugs &gt; 0">
+  <table width="{$TABLE.WIDTH}" border="0" align="center">
+     <xsl:variable name="max_bugs">
+       <xsl:for-each select="ClassStats">
+         <xsl:sort select="@bugs" data-type="number" order="descending"/>
+         <xsl:if test="position()=1">
+           <xsl:value-of select="@bugs"/>
+         </xsl:if>
+       </xsl:for-each>
+     </xsl:variable>
+
+     <tr>
+       <td align="left" colspan="2">
+         <font face="{$PAGE.FONT}" size="4">
+     <xsl:call-template name='string_format'>
+     <xsl:with-param name="COUNT" select="$max_bugs"/>
+     <xsl:with-param name="STRING" select="$PACKAGE.BUGCLASS.LABEL"/>
+     <xsl:with-param name="SINGLE" select="$BUGS.SINGLE.LABEL"/>
+     <xsl:with-param name="PULURAL" select="$BUGS.PULURAL.LABEL"/>
+     </xsl:call-template>
+         </font>
+       </td>
+     </tr>
+
+     <xsl:for-each select="ClassStats">
+       <xsl:if test="@bugs = $max_bugs">
+       <tr>
+          <td>&#160;&#160;&#160;&#160;&#160;&#160;&#160;</td>
+          <td align="left"><font face="{$PAGE.FONT}" color="red" size="4"><i><xsl:value-of select="$package-prefix"/><xsl:value-of select="@class" /></i></font></td>
+       </tr>
+       </xsl:if>
+     </xsl:for-each>
+
+   </table>
+  </xsl:if>
+  <br/>
+</xsl:template>
+
+</xsl:stylesheet>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/.classpath
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/.classpath	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/.classpath	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,57 +1,149 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-	<classpathentry kind="lib" path="build/jbossesb/lib/jbossesb-config-model-1.0.1.jar"/>
 	<classpathentry kind="lib" path="build/jbossesb/lib/jbossesb-config-model-1.1.0.jar"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="rosetta/src"/>
-	<classpathentry kind="src" path="services/jbossesb/src/main/java"/>
-	<classpathentry kind="src" path="services/jbrules/src/main/java"/>
-	<classpathentry kind="src" path="services/jbossesb/src/test/java"/>
-	<classpathentry kind="src" path="services/jbpm/src/test/java"/>
-	<classpathentry kind="src" path="services/jbrules/src/test/java"/>
-	<classpathentry kind="src" path="services/jbpm/src/main/java"/>
-	<classpathentry kind="src" path="services/smooks/src/test/java"/>
-	<classpathentry kind="src" path="services/smooks/src/main/java"/>
-	<classpathentry kind="src" path="services/slsb/src/main/java"/>
-	<classpathentry kind="src" path="build/schema-model/src"/>
+	<classpathentry kind="src" path="rosetta/tests/resources"/>
 	<classpathentry excluding="**/.svn/" kind="src" path="rosetta/tests/src"/>
 	<classpathentry kind="src" path="services/soap/src/main/java"/>
 	<classpathentry kind="src" path="services/soap/src/test/java"/>
 	<classpathentry kind="src" path="services/soapui-client/src/main/java"/>
 	<classpathentry kind="lib" path="etc/test/resources/log4j/dev"/>
 	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="lib" path="lib/ext/activation.jar"/>
-	<classpathentry kind="lib" path="lib/ext/antlr-2.7.6.jar"/>
-	<classpathentry kind="lib" path="lib/ext/commons-collections-3.2.jar"/>
-	<classpathentry kind="lib" path="lib/ext/commons-lang-2.1.jar"/>
-	<classpathentry kind="lib" path="lib/ext/commons-codec-1.3.jar"/>
-	<classpathentry kind="lib" path="lib/ext/emma_ant.jar"/>
-	<classpathentry kind="lib" path="lib/ext/emma.jar"/>
-	<classpathentry kind="lib" path="lib/ext/groovy-all-1.0.jar"/>
-	<classpathentry kind="lib" path="lib/ext/hsqldb.jar"/>
-	<classpathentry kind="lib" path="lib/ext/jbossall-client.jar"/>
-	<classpathentry kind="lib" path="lib/ext/jboss-system.jar"/>
-	<classpathentry kind="lib" path="lib/ext/jbossts-common.jar"/>
-	<classpathentry kind="lib" path="lib/ext/jsch-0.1.jar"/>
-	<classpathentry kind="lib" path="lib/ext/juddi-2.0rc5.jar"/>
-	<classpathentry kind="lib" path="lib/ext/juddi-client-2.0rc5.jar"/>
-	<classpathentry kind="lib" path="lib/ext/junit-4.1.jar"/>
-	<classpathentry kind="lib" path="lib/ext/log4j.jar"/>
-	<classpathentry kind="lib" path="lib/ext/mail.jar"/>
-	<classpathentry kind="lib" path="lib/ext/mockejb.jar"/>
-	<classpathentry kind="lib" path="lib/ext/ognl-2.6.9.jar"/>
-	<classpathentry kind="lib" path="lib/ext/opencsv-1.6.jar"/>
-	<classpathentry kind="lib" path="lib/ext/properties-plugin.jar"/>
-	<classpathentry kind="lib" path="lib/ext/stax-api-1.0.1.jar"/>
-	<classpathentry kind="lib" path="lib/ext/xalan-2.7.0.jar"/>
-	<classpathentry kind="lib" path="lib/ext/xbean.jar"/>
-	<classpathentry kind="lib" path="lib/ext/xercesImpl-2.7.1.jar"/>
-	<classpathentry kind="lib" path="lib/ext/xml-apis-1.3.02.jar"/>
-	<classpathentry kind="lib" path="lib/ext/xmlpublic.jar"/>
-	<classpathentry kind="lib" path="lib/ext/xstream-1.2.2.jar"/>
-	<classpathentry kind="lib" path="lib/ext/jboss.jar"/>
-	<classpathentry kind="lib" path="lib/ext/commons-io-1.3.jar"/>
-	<classpathentry kind="lib" path="lib/ext/edtftpj-1.5.4.jar"/>
-	<classpathentry kind="lib" path="ftp/lib/backport-util-concurrent-2.2.jar"/>
+	<classpathentry kind="lib" path="build/lib/activation-1.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/antlr-2.7.7.jar"/>
+	<classpathentry kind="lib" path="build/lib/asm-1.5.3.jar"/>
+	<classpathentry kind="lib" path="build/lib/avalon-framework-4.1.3.jar"/>
+	<classpathentry kind="lib" path="build/lib/bsf-2.3.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/bsh-1.3.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/cglib-nodep-2.1_3.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-beanutils-1.6.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-beanutils-bean-collections-1.7.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-codec-1.3.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-collections-3.2.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-dbcp-1.2.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-digester-1.7.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-discovery-0.2.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-httpclient-3.0.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-io-1.3.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-lang-2.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-logging-1.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/commons-pool-1.2.jar"/>
+	<classpathentry kind="lib" path="build/lib/dom4j-1.6.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/groovy-all-1.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/h2-1.0.68.jar"/>
+	<classpathentry kind="lib" path="build/lib/hibernate3-3.2.4.SP1.jar"/>
+	<classpathentry kind="lib" path="build/lib/javassist-3.6.0.GA.jar"/>
+	<classpathentry kind="lib" path="build/lib/jaxb-xjc-2.1.4.jar"/>
+	<classpathentry kind="lib" path="build/lib/jaxen-1.1-beta-8.jar"/>
+	<classpathentry kind="lib" path="build/lib/jaxr-api-1.0rc2.jar"/>
+	<classpathentry kind="lib" path="build/lib/jbossall-client-4.2.2.GA.jar"/>
+	<classpathentry kind="lib" path="build/lib/jaxws-rt-2.1.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/jaxws-tools-2.1.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/jboss-aop-jdk50-1.5.6.GA.jar"/>
+	<classpathentry kind="lib" path="build/lib/jboss-cache-1.2.4.SP2.jar"/>
+	<classpathentry kind="lib" path="build/lib/jboss-system-4.2.2.GA.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb/lib/ext/jbosssx.jar"/>
+	<classpathentry kind="lib" path="build/lib/jcr-1.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/jdom-1.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/jettison-1.0-RC1.jar"/>
+	<classpathentry kind="lib" path="build/lib/jgroups-2.4.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/jmock-1.0.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/joda-time-1.2.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/jsch-0.1.38.jar"/>
+	<classpathentry kind="lib" path="build/lib/juddi-2.0rc5.jar"/>
+	<classpathentry kind="lib" path="build/lib/juddi-client-2.0rc5.jar"/>
+	<classpathentry kind="lib" path="build/lib/junit-3.8.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/jzlib-1.0.7.jar"/>
+	<classpathentry kind="lib" path="build/lib/log4j-1.2.14.jar"/>
+	<classpathentry kind="lib" path="build/lib/logkit-1.0.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/mail-1.4.jar"/>
+	<classpathentry kind="lib" path="build/lib/milyn-commons-1.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/milyn-smooks-core-1.0.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/milyn-smooks-javabean-1.0.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/mvel-1.3.3-java1.5.jar"/>
+	<classpathentry kind="lib" path="build/lib/ognl-2.6.9.jar"/>
+	<classpathentry kind="lib" path="build/lib/quartz-1.5.2.jar"/>
+	<classpathentry kind="lib" path="build/lib/scout-1.0rc2.jar"/>
+	<classpathentry kind="lib" path="build/lib/servlet-api-2.4.jar"/>
+	<classpathentry kind="lib" path="build/lib/stax-1.2.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/stax-api-1.0.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/stringtemplate-3.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/wstx-asl-3.2.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/xalan-2.7.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/xbean-2.2.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/xercesImpl-2.8.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/xml-writer-0.2.jar"/>
+	<classpathentry kind="lib" path="build/lib/xmlParserAPIs-2.6.2.jar"/>
+	<classpathentry kind="lib" path="build/lib/xmlpublic-2.2.0.jar"/>
+	<classpathentry kind="lib" path="build/lib/xom-1.1.jar"/>
+	<classpathentry kind="lib" path="build/lib/xpp3_min-1.1.3.4.O.jar"/>
+	<classpathentry kind="lib" path="build/lib/xstream-1.2.2.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb/lib/jbossesb.sar/lib/jbossesb-config-model-1.0.1.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb/lib/jbossesb.sar/lib/jbossesb-rosetta.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb/lib/ext/jbossts-common.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb/lib/jbossesb.esb/c3p0-0.9.1-pre9.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/javassist.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jaxb-api.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jaxb-impl.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jaxb-xjc.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jaxws-rt.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jaxws-tools.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-aop-jdk50-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-aspect-jdk50-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-common-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-deployment.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-iiop-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-j2ee.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-jaxrpc.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-jaxws.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-jsr77-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-messaging-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-remoting.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-saaj.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-serialization.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-srp-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-system-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-transaction-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jboss-xml-binding.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossall-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbosscx-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossha-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossjmx-ant.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossmq-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbosssx-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossws-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossws-common.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossws-framework.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossws-jboss42.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jbossws-spi.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jmx-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jmx-invoker-adaptor-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/jnp-client.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/log4j.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/policy.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/stax-ex.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/streambuffer.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/trove.jar"/>
+	<classpathentry kind="lib" path="build/jbossesb-server-4.4.GA/client/wsdl4j.jar"/>
+	<classpathentry kind="lib" path="lib/ext/commons-net-2.0.0-652071.jar"/>
+	<classpathentry kind="lib" path="lib/ext/commons-ssl-0.3.4.jar"/>
+	<classpathentry kind="lib" path="lib/ext/jboss-jaxws.jar"/>
+	<classpathentry kind="lib" path="lib/ext/jbossws-core.jar"/>
+	<classpathentry kind="lib" path="lib/ext/jbossws-spi.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/emma.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/emma_ant.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/hsqldb.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/jakarta-oro-2.0.8.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/jboss-jaxb-intros.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/jboss-remoting.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/jbossweb.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/junit-4.1.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/mockejb.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/opencsv-1.6.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/properties-plugin.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/wsdl4j-1.6.2.jar"/>
+	<classpathentry kind="lib" path="/opt/jboss/esb/JBESB_4_4_GA_CP/testlib/xalan-2.7.0.jar"/>
 	<classpathentry kind="lib" path="ftp/lib/ftplet-api-1.0-incubator-SNAPSHOT.jar"/>
 	<classpathentry kind="lib" path="ftp/lib/ftpserver-admin-gui-1.0-incubator-SNAPSHOT.jar"/>
 	<classpathentry kind="lib" path="ftp/lib/ftpserver-core-1.0-incubator-SNAPSHOT.jar"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/.project
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/.project	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/.project	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-	<name>JBossESB</name>
+	<name>JBossESB-CP4.4_NEW</name>
 	<comment></comment>
 	<projects>
 	</projects>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/build-distr.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/build-distr.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/build-distr.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -82,7 +82,6 @@
                 <include name="jbossesb-properties.xml"/>
                 <include name="esb.juddi.xml"/>
                 <include name="actionArtifactMap.properties"/>
-                <include name="jaas.login"/>
                 <include name="privateKeyStore"/>
                 <include name="publicKeyStore"/>
             </fileset>
@@ -136,6 +135,9 @@
             <fileset dir="${lib.ext.dir}" includes="commons-ssl-*.jar"/>
             <!-- groovy -->
             <fileset dir="${lib.dir}" includes="groovy-*.jar"/>
+			<!-- Mina -->
+            <fileset dir="${lib.dir}" includes="mina-*.jar"/>
+            <fileset dir="${lib.dir}" includes="slf4j-*.jar"/>
         </copy>
     	<copy todir="${build.dir}/jbossesb.sar">
     		<fileset dir="${installation.files.dir}/jUDDI-registry" includes="juddi.war"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -117,6 +117,12 @@
 	<target name="generate-config-model" description="generates the xmlbeans config model">
 		<ant dir="rosetta" target="generate-config-model"/>
 	</target>
+
+	<path id="findbugs.libs">
+	    <fileset dir="../antlib" includes="*.jar"/>
+	    <fileset dir="../findbugs/lib" includes="*.jar"/>
+	</path>
+	<taskdef name="findbugs" classname="edu.umd.cs.findbugs.anttask.FindBugsTask" classpathref="findbugs.libs"/>
 	
 	<!-- Initialisation -->
 	<target name="org.jboss.esb.internal.init" depends="esb.init">
@@ -497,6 +503,7 @@
 	<target name="ci-integration" depends="integration">
 		<antcall target="artifacts"/>
 		<antcall target="instr-report"/>
+		<antcall target="findbugs"/>
 	</target>		
 	
 	<target name="jar" description="will generate all jar files">
@@ -554,7 +561,44 @@
         </emma>
     </target>
 
+    <property name="findbugs.home" value="${basedir}/../findbugs"/>
 
+    <target name="findbugs">
+	<findbugs home="${findbugs.home}"
+	   effort="max"
+	   jvmargs="-Xms128m -Xmx512m"
+           output="html"
+           outputFile="findbugs.html" 
+           projectName="JBoss ESB"
+           styleSheet="${findbugs.home}/src/xsl/fancy.xsl">
+           <auxClasspath>
+           	<fileset dir="${basedir}/build/jbossesb/lib">
+           		<include name="*.jar"/>
+           	</fileset>
+           	<fileset dir="${basedir}/build/jbossesb-server-4.5.GA/client">
+			<include name="*.jar"/>
+           	</fileset>
+           	<fileset dir="${basedir}/build/jbossesb/lib/ext">
+           		<include name="*.jar"/>
+           	</fileset>
+           	<fileset dir="${basedir}/lib/ext/standalone">
+           		<include name="c3p0-0.9.1-pre9.jar"/>
+           	</fileset>
+           </auxClasspath>
+           <sourcePath path="${basedir}/services/jbossesb/src"/>
+           <sourcePath path="${basedir}/services/jbpm/src"/>
+           <sourcePath path="${basedir}/services/jbrules/src"/>
+           <sourcePath path="${basedir}/services/slsb/src"/>
+           <sourcePath path="${basedir}/services/smooks/src"/>
+           <sourcePath path="${basedir}/services/soap/src"/>
+           <sourcePath path="${basedir}/services/soapui-client"/>
+           <sourcePath path="${basedir}/services/spring/src"/>
+           <sourcePath path="${basedir}/rosetta/src"/>
+           <class location="${basedir}/build/jbossesb.sar/lib/jbossesb-rosetta.jar" />
+        </findbugs>
+    </target>
+
+
 	<target name="default" description="will run the 'dist' and 'test' targets">
 		<runant target="org.jboss.esb.default"/>
 	</target>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/GettingStarted.odt
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/ProgrammersGuide.odt
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/docs/SOASoftwareIntegration.odt (from rev 25071, labs/jbossesb/trunk/product/docs/SOASoftwareIntegration.odt)
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/ServicesGuide.odt
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/docs/ServicesGuide.pdf
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/esb-config.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/esb-config.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/esb-config.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -51,6 +51,7 @@
                 dir="@{serverHome}/bin">
                 <classpath refid="server.classpath"/>
                 <jvmarg line="${agent.jvmarg}"/>
+                <jvmarg line="-Djava.endorsed.dirs=${server.endorsed}"/>
                 <arg value="-c"/>
                 <arg value="@{serverConfig}"/>
             	<serverElements/>
@@ -188,6 +189,7 @@
         	<pathelement location="${java.home}/lib/tools.jar"/>
             <pathelement location="${org.jboss.esb.server.home}/bin/run.jar"/>
         </path>
+    	<property name="server.endorsed" location="${org.jboss.esb.server.home}/lib/endorsed"/>
     </target>
 
 	<target name="esb.configure" depends="esb.init, esb.configure-app-server, esb.configure-esb-server, esb.configure-ftp-server"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsd
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsd	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/etc/schemas/xml/jbossesb-1.1.0.xsd	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1781,5 +1781,43 @@
 			</xsd:complexContent>
 		</xsd:complexType>
 	</xsd:element>
+	
+	<!-- 88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888
+        UDP Gateway Type Implementations.
+        88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888-->
+    <xsd:element name="udp-listener" substitutionGroup="jesb:listener">
+        <xsd:annotation>
+            <xsd:documentation xml:lang="en">
+                UDP Listener that uses Mina.
+            </xsd:documentation>
+        </xsd:annotation>
+        <xsd:complexType>
+            <xsd:complexContent>
+                <xsd:extension base="jesb:listener">
+                    <xsd:attribute name="host" type="xsd:string" use="required">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                The host that this listener will listen to.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                    <xsd:attribute name="port" type="xsd:integer" use="required">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                The port that this listener will listen to.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                    <xsd:attribute name="handlerClass" type="xsd:string" use="optional" default="org.jboss.soa.esb.listeners.gateway.mina.DefaultMessageHandler">
+                        <xsd:annotation>
+                            <xsd:documentation xml:lang="en">
+                                The fully qualified name of a org.jboss.soa.esb.listeners.gateway.mina.MessageHandler implementation.
+                            </xsd:documentation>
+                        </xsd:annotation>
+                    </xsd:attribute>
+                </xsd:extension>
+            </xsd:complexContent>
+        </xsd:complexType>
+    </xsd:element>
 
 </xsd:schema>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/install/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -155,9 +155,6 @@
 
           <!-- contracts app -->
           <copy file="${org.jboss.esb.dist}/tools/console/console/jboss-esb-console.ear/contract.war" todir="${deploy.dir}" />
-          <!-- config-editor app -->
-          <copy file="${org.jboss.esb.dist}/tools/configeditor/dist/jbossesb-config-editor.war" todir="${deploy.dir}" />
-          <copy file="${org.jboss.esb.dist}/tools/configeditor/resources/action-templates.xml" todir="${conf.dir}" />
 
           <!-- install h2 jar -->
           <copy file="${org.jboss.esb.dist.lib}/h2-1.0.68.jar" todir="${server.lib.dir}"/>
@@ -190,7 +187,6 @@
         <delete dir="${deploy.dir}/soap.esb" />
         <delete dir="${deploy.dir}/soapui-client.sar" />
         <delete dir="${deploy.dir}/contract.war" />
-        <delete dir="${deploy.dir}/jbossesb-config-editor.war" />
         <delete dir="${conf.dir}/action-templates.xml" />
     </target>
 

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jaas.login
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jaas.login	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jaas.login	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1 +0,0 @@
-// Plase login module configs here 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jbossesb-properties.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/install/conf/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -40,14 +40,16 @@
     <properties name="security">
         <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
         <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
-		<property name="org.jboss.soa.esb.services.security.configUrl" value="/jaas.login"/>
+        
+        <!-- Algorithm and key size for internal sealing of objects -->
+        <property name="org.jboss.soa.esb.services.security.sealAlgorithm" value="TripleDES"/>
+    	<property name="org.jboss.soa.esb.services.security.sealKeySize" value="168"/>
+    	
+        <!-- Timeout in milliseconds. After which the context is considered invalid -->
+    	<property name="org.jboss.soa.esb.services.security.contextTimeout" value="30000"/>
+    	<property name="org.jboss.soa.esb.services.security.contextPropagatorImplementationClass" value="org.jboss.internal.soa.esb.services.security.JBossASContextPropagator"/>
 
-		<property name="org.jboss.soa.esb.services.security.privateKeystore" value="/privateKeyStore"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
-		<property name="org.jboss.soa.esb.services.security.privateKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
-    	
+		<!-- Public keystore configuration used to hold keys for encryption/decryption -->
     	<property name="org.jboss.soa.esb.services.security.publicKeystore" value="/publicKeyStore"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/ivy-build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/ivy-build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/ivy-build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -12,6 +12,12 @@
 
     <target name="retrieve" depends="ivy.init">
         <ivy:retrieve />
+
+        <!-- We have to get the Smooks dependencies manually due to an issue with Ivy.  See ivy.xml. -->
+        <get src="http://repo1.maven.org/maven2/org/milyn/milyn-commons/1.1/milyn-commons-1.1.jar" dest="${ivy.lib.dir}/milyn-commons-1.1.jar" />
+        <get src="http://repo1.maven.org/maven2/org/milyn/milyn-smooks-core/1.1/milyn-smooks-core-1.1.jar" dest="${ivy.lib.dir}/milyn-smooks-core-1.1.jar" />
+        <get src="http://repo1.maven.org/maven2/org/milyn/milyn-smooks-javabean/1.1/milyn-smooks-javabean-1.1.jar" dest="${ivy.lib.dir}/milyn-smooks-javabean-1.1.jar" />
+
     </target>
 
     <target name="clean" depends="ivy.init">

Modified: labs/jbossesb/workspace/mlittle/legstar/product/ivy.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/ivy.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/ivy.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -6,13 +6,19 @@
         <dependency org="asm" name="asm" rev="1.5.3"/>
         <dependency org="commons-codec" name="commons-codec" rev="1.3"/>
         <dependency org="commons-collections" name="commons-collections" rev="3.2"/>
+		
+		<!-- Mina dependencies -->
+        <dependency org="org.apache.mina" name="mina-core" rev="1.1.7"/>
+        <dependency org="org.apache.mina" name="mina-filter-ssl" rev="1.1.7"/>
+        <dependency org="org.slf4j" name="slf4j-api" rev="1.4.3"/>
+        <dependency org="org.slf4j" name="slf4j-log4j12" rev="1.4.3"/>
 
         <dependency org="commons-httpclient" name="commons-httpclient" rev="3.0.1"/>
         <dependency org="commons-io" name="commons-io" rev="1.3"/>
         <dependency org="commons-lang" name="commons-lang" rev="2.1"/>
         <!-- dependency org="commons-net" name="commons-net" rev="2.0.0-652071"/ -->
         <!-- dependency org="org.apache.commons" name="not-yet-commons-ssl" rev="0.3.7"/ -->
-        <dependency org="groovy" name="groovy-all" rev="1.0"/>
+        <dependency org="org.codehaus.groovy" name="groovy-all" rev="1.5.0"/>
         <dependency org="com.h2database" name="h2" rev="1.0.68"/>
         <dependency org="hibernate" name="hibernate3" rev="3.2.4.SP1"/>
         <dependency org="jboss" name="jboss-cache" rev="1.2.4.SP2"/>
@@ -62,9 +68,7 @@
         <dependency org="beanshell" name="bsh" rev="1.3.0"/>
 	
 		<!-- Smooks dependencies -->
-        <dependency org="milyn" name="milyn-smooks-core" 		rev="1.0.1"/>
-        <dependency org="milyn" name="milyn-commons" 			rev="1.0"/>
-        <dependency org="milyn" name="milyn-smooks-javabean" 	rev="1.0.1"/>
+        <!-- See ivy-build.xml: We get the smooks using ant "get". Ivy has issues with parsing POMs that use variables for version numbers.  Not able to resolve them it seems :( -->
 
         <dependency org="javax.jcr" name="jcr" rev="1.0"/>
 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -97,6 +97,7 @@
                 >
         	<fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.groovy"/>
             <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.properties"/>
+            <fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="**/*.ftl"/>
 			<fileset dir="${org.jboss.esb.rosetta.src.dir}" includes="org/jboss/soa/esb/services/security/auth/ws/smooks-ws-security.xml"/>
        	</jar>
     	

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/addressing/eprs/DefaultInVMReplyToEpr.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/addressing/eprs/DefaultInVMReplyToEpr.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/addressing/eprs/DefaultInVMReplyToEpr.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -44,6 +44,7 @@
             try {
                 threadEPR = new InVMEpr(URI.create("invm://thread-" + Thread.currentThread().getId()));
                 invmReplyToEPRTL.set(threadEPR);
+                CourierFactory.getInstance().addInVMCourier(threadEPR);
             } catch (URISyntaxException e) {
                 throw new RuntimeException("Unexpected Exception creating replyTo InVMEpr.", e);
             }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/InVMCourier.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -31,6 +31,7 @@
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.message.ByReferenceMessage;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.Service;
 
 import java.io.IOException;
 import java.util.Queue;
@@ -56,6 +57,7 @@
 
     protected static Logger logger = Logger.getLogger(InVMCourier.class);
 
+    private Service service;
     private Queue<Object> messageQueue = new ConcurrentLinkedQueue<Object>();
 
     private long deliveryTimeout = 0;
@@ -94,6 +96,22 @@
     }
 
     /**
+     * Get the Service name owning this InVMCourier instance.
+     * @return The owning Service name.
+     */
+    public Service getService() {
+        return service;
+    }
+
+    /**
+     * Set the Service name owning this InVMCourier instance.
+     * @param service The owning Service name.
+     */
+    public void setService(Service service) {
+        this.service = service;
+    }
+
+    /**
      * package the ESB message into the queue. If this is a transactional interaction
      * then the deliver will return immediately, but the message may not go into
      * the queue if the transaction subsequently rolls back. The caller must monitor
@@ -107,7 +125,7 @@
      */
     
     public boolean deliver(Message message) throws CourierException {
-        isCourierActive() ;
+        assertCourierActive() ;
 
         if (message == null) {
             return false;
@@ -243,7 +261,7 @@
     // see associated test
     
     public Message pickup(long millis) throws CourierException {
-        isCourierActive() ;
+        assertCourierActive() ;
 
         Message message = null;
 
@@ -306,12 +324,16 @@
     public void cleanup() {
     }
 
-    private void isCourierActive() throws CourierException {
+    private void assertCourierActive() throws CourierException {
         if (!isActive) {
             throw new CourierException("InVMCourier for EPR '" + epr.getAddr().getAddress() + "' is not active.  Cannot pickup/deliver on this courier.");
         }
     }
 
+    public boolean isActive() {
+        return isActive;
+    }
+
     public void setActive(boolean active) {
         isActive = active;
     }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/couriers/JmsCourier.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -240,7 +240,7 @@
         }
 
         synchronized(this) {
-            while (_messageProducer != null) {
+            if (_messageProducer != null) {
                 try {
                     for (KeyValuePair kvp : _messageProperties) {
                         String key = kvp.getKey();
@@ -248,7 +248,11 @@
                             message.setStringProperty(key, kvp.getValue());
                         }
                     }
+                } catch (final JMSException e) {
+                    throw new CourierTransportException("Caught exception initialising properties! ",e);
+                }
                     
+                try {
                     _messageProducer.send(message);
                     
                     return true;
@@ -256,6 +260,15 @@
                 catch (JMSException e) {
                     if (!jmsConnectRetry(e))
                         throw new CourierTransportException("Caught exception during delivery and could not reconnect! ",e);
+                    try {
+                        _messageProducer.send(message);
+                        
+                        return true;
+                    } catch (final JMSException e2) {
+                        throw new CourierTransportException("Caught exception during delivery having successfully recovered! ",e2);
+                    } catch (Exception e2) {
+                        throw new CourierException(e2);
+                    }
                 }
                 catch (Exception e) {
                     throw new CourierException(e);
@@ -409,14 +422,20 @@
 
         javax.jms.Message jmsMessage = null;
         synchronized(this) {
-            while (null != _messageConsumer) {
+            if (null != _messageConsumer) {
                 try {
                     jmsMessage = _messageConsumer.receive(millis);
-                    break;
                 }
                 catch (JMSException e) {
                     if (!jmsConnectRetry(e))
                         throw new CourierTransportException("Caught exception during receive and could not reconnect! ",e);
+                    try {
+                        jmsMessage = _messageConsumer.receive(millis);
+                    } catch (JMSException e2) {
+                        throw new CourierTransportException("Caught exception during delivery having successfully recovered! ",e2);
+                    } catch (Exception e2) {
+                        throw new CourierTransportException(e2);
+                    }
                 }
                 catch (Exception e) {
                     throw new CourierTransportException(e);

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/AttachmentImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -42,7 +42,10 @@
 
 	public Object get(String name)
 	{
-                return SerializedValueImpl.unwrap(_table.get(name));
+		synchronized(_table)
+		{
+			return SerializedValueImpl.unwrap(_table.get(name));
+		}
 	}
 
 	public Object put(String name, Object value) 
@@ -50,30 +53,45 @@
 		if (value instanceof Serializable)
 		{
                     final Serializable wrapped = SerializedValueImpl.wrap((Serializable)value) ;
-                    final Serializable previous = _table.put(name, wrapped) ;
-                    return SerializedValueImpl.unwrap(previous);
+                    synchronized(_table)
+                    {
+                        final Serializable previous = _table.put(name, wrapped) ;
+                        return SerializedValueImpl.unwrap(previous);
+                    }
 		}
 		throw new IllegalArgumentException("value must be Serializable");
 	}
 
 	public Object remove(String name) 
 	{
-		return SerializedValueImpl.unwrap(_table.remove(name));
+		synchronized(_table)
+		{
+			return SerializedValueImpl.unwrap(_table.remove(name));
+		}
 	}
 
 	public String[] getNames() 
 	{
-		return _table.keySet().toArray(new String[_table.size()]);
+		synchronized(_table)
+		{
+			return _table.keySet().toArray(new String[_table.size()]);
+		}
 	}
 
 	public Object itemAt(int index) throws IndexOutOfBoundsException 
 	{
-		return SerializedValueImpl.unwrap(_list.get(index));
+		synchronized(_list)
+		{
+			return SerializedValueImpl.unwrap(_list.get(index));
+		}
 	}
 
 	public Object removeItemAt(int index) throws IndexOutOfBoundsException 
 	{
-		return SerializedValueImpl.unwrap(_list.remove(index));
+		synchronized(_list)
+		{
+			return SerializedValueImpl.unwrap(_list.remove(index));
+		}
 	}
 
 	public Object replaceItemAt(int index, Object value) throws IndexOutOfBoundsException 
@@ -81,8 +99,11 @@
 		if (value instanceof Serializable)
 		{
                     final Serializable wrapped = SerializedValueImpl.wrap((Serializable)value) ;
-                    final Serializable previous = _list.set(index, wrapped) ;
-                    return SerializedValueImpl.unwrap(previous);
+                    synchronized(_list)
+                    {
+                        final Serializable previous = _list.set(index, wrapped) ;
+                        return SerializedValueImpl.unwrap(previous);
+                    }
 		}
 		throw new IllegalArgumentException("value must be Serializable");
 	}
@@ -90,7 +111,10 @@
 	public void addItem(Object value) 
 	{
 		if (value instanceof Serializable)
-		    _list.add(SerializedValueImpl.wrap((Serializable)value)) ;
+			synchronized(_list)
+			{
+				_list.add(SerializedValueImpl.wrap((Serializable)value)) ;
+			}
 		else
 			throw new IllegalArgumentException("value must be Serializable");
 	}
@@ -98,27 +122,43 @@
 	public void addItemAt(int index, Object value) throws IndexOutOfBoundsException 
 	{
 		if (value instanceof Serializable)
-			_list.add(index, SerializedValueImpl.wrap((Serializable)value));
+			synchronized(_list)
+			{
+				_list.add(index, SerializedValueImpl.wrap((Serializable)value));
+			}
 		else
 			throw new IllegalArgumentException("value must be Serializable");
 	}
 
 	public int getNamedCount() 
 	{
-		return _table.size();
+		synchronized(_table)
+		{
+			return _table.size();
+		}
 	}
 	
 	public int getUnnamedCount() 
 	{
-		return _list.size();
+		synchronized(_list)
+		{
+			return _list.size();
+		}
 	}
 	
 	public String toString() 
 	{ 
-		return new StringBuilder()
-		.append("attachments: [ Named:").append(_table.toString())
-		.append(", Unnamed:").append(_list.toString())
-		.toString()+" ]";
+		final String tableVal ;
+		synchronized(_table)
+		{
+			tableVal = _table.toString() ;
+		}
+		final String listVal ;
+		synchronized(_list)
+		{
+			listVal = _list.toString() ;
+		}
+		return "attachments: [ Named:" + tableVal + ", Unnamed:" + listVal +" ]";
 	}
 	
 	private void readObject(final ObjectInputStream stream)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/BodyImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,6 +1,8 @@
 package org.jboss.internal.soa.esb.message.format.serialized;
 
 import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Enumeration;
 import java.util.Hashtable;
 import java.util.Map;
@@ -70,7 +72,7 @@
 		add(Body.DEFAULT_LOCATION, value);
 	}
 
-	public void add(String name, Object value)
+	public synchronized void add(String name, Object value)
 	{
 		AssertArgument.isNotNull(value, "value");
 		AssertArgument.isNotNull(name, "name");
@@ -88,14 +90,14 @@
 		return get(Body.DEFAULT_LOCATION);
 	}
 
-	public Object get(String name)
+	public synchronized Object get(String name)
 	{
 		AssertArgument.isNotNull(name, "name");
 
                 return SerializedValueImpl.unwrap(_objects.get(name));
 	}
 
-	public String[] getNames()
+	public synchronized String[] getNames()
 	{
 	    final Set<String> keys = _objects.keySet() ;
 	    return keys.toArray(new String[0]) ;
@@ -103,14 +105,17 @@
 
         public Enumeration<String> getEnumeratedNames()
         {
-            return _objects.keys() ;
+            return Collections.enumeration(Arrays.asList(getNames())) ;
         }
 
-	public Object remove(String name)
+	public synchronized Object remove(String name)
 	{
             return SerializedValueImpl.unwrap(_objects.remove(name));
 	}
 
+	/**
+	 * This method is not thread safe.
+	 */
 	public void replace(Body b)
 	{
 		if (b == null)
@@ -121,6 +126,9 @@
 		_objects = ((BodyImpl) b)._objects;
 	}
 
+	/**
+	 * This method is not thread safe.
+	 */
 	public void merge(Body b)
 	{
 		if (b == null)
@@ -143,18 +151,18 @@
 
 	public String toString()
 	{
-		String toReturn = "body: [ ";
+		StringBuilder toReturn = new StringBuilder("body: [ ");
 		byte[] content = getByteArray();
 		
 		if (content != null)
-			toReturn += "byte[]: " + Util.format(new String(content));
+			toReturn.append("byte[]: ").append(Util.format(new String(content))).append(", ");
 
-                if (content != null)
-                    toReturn += ", ";
+		synchronized(this)
+		{
+			toReturn.append("objects: ").append(_objects.toString());
+		}
 
-                toReturn += "objects: " + _objects.toString();
-
-		return toReturn + " ]";
+		return toReturn.append(" ]").toString();
 	}
 
 	// copy constructor.
@@ -166,7 +174,7 @@
 	
 	protected void initialiseMap(final Map<String, Serializable> payload)
 	{
-	    synchronized(_objects)
+	    synchronized(this)
 	    {
 	        _objects.clear() ;
 	        _objects.putAll(payload) ;

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/ContextImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -30,6 +30,9 @@
  * @author mark.little at jboss.com
  */
 
+/**
+ * This class is not thread safe and will be duplicated during InVM operations.
+ */
 public class ContextImpl implements Context, java.io.Serializable
 {
     /**

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/HeaderImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -32,6 +32,8 @@
 
 /**
  * The message header. Contains such things as routing information.
+ * 
+ * This class is not thread safe and will be duplicated during InVM operations.
  */
 
 public class HeaderImpl implements Header, Serializable

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/serialized/PropertiesImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -29,7 +29,7 @@
 {
 	private static final long serialVersionUID = 0x0;
 
-	public Object getProperty(String name)
+	public synchronized Object getProperty(String name)
 	{
 		return SerializedValueImpl.unwrap(_table.get(name));
 	}
@@ -45,26 +45,29 @@
 		if (value instanceof Serializable)
 		{
                     final Serializable wrapped = SerializedValueImpl.wrap((Serializable)value) ;
-                    final Serializable previous = _table.put(name, wrapped) ;
-                    return SerializedValueImpl.unwrap(previous);
+                    synchronized(this)
+                    {
+                        final Serializable previous = _table.put(name, wrapped) ;
+                        return SerializedValueImpl.unwrap(previous);
+                    }
 		}
 		else
 			throw new IllegalArgumentException("Value must be serializable");
 	}
 
-	public Object remove(String name)
+	public synchronized Object remove(String name)
 	{
 		return SerializedValueImpl.unwrap(_table.remove(name));
 	}
 	
-	public int size() {return _table.size(); } 
+	public synchronized int size() {return _table.size(); } 
 
-	public String[] getNames()
+	public synchronized String[] getNames()
 	{
 		return _table.keySet().toArray(new String[0]);
 	}
 
-	public String toString()
+	public synchronized String toString()
 	{
 		return "properties: [ "+_table.toString()+" ]";
 	}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/AttachmentImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -23,7 +23,7 @@
 
 import java.io.Serializable;
 import java.util.ArrayList;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.Map.Entry;
 
 import javax.xml.namespace.QName;
@@ -66,70 +66,111 @@
         
 	public Object get(String name)
 	{
-		return unwrap(_table.get(name));
+		synchronized(_table)
+		{
+				return unwrap(_table.get(name));
+		}
 	}
 
 	public Object put(String name, Object value)
 	{
         assertValidAttachment(value);
-		return unwrap(_table.put(name, new SerializedValueImpl((Serializable) value)));
+		synchronized(_table)
+		{
+			return unwrap(_table.put(name, new SerializedValueImpl((Serializable) value)));
+		}
     }
 
     public Object remove(String name)
 	{
-		return unwrap(_table.remove(name));
+		synchronized(_table)
+		{
+			return unwrap(_table.remove(name));
+		}
 	}
 
 	public String[] getNames()
 	{
-		return _table.keySet().toArray(new String[0]);
+		synchronized(_table)
+		{
+			return _table.keySet().toArray(new String[0]);
+		}
 	}
 
 	public Object itemAt(int index) throws IndexOutOfBoundsException
 	{
-		return unwrap(_list.get(index));
+		synchronized(_list)
+		{
+			return unwrap(_list.get(index));
+		}
 	}
 
 	public Object removeItemAt(int index) throws IndexOutOfBoundsException
 	{
-		return unwrap(_list.remove(index));
+		synchronized(_list)
+		{
+			return unwrap(_list.remove(index));
+		}
 	}
 
 	public Object replaceItemAt(int index, Object value)
 			throws IndexOutOfBoundsException
 	{
         assertValidAttachment(value);
-        return unwrap(_list.set(index, new SerializedValueImpl((Serializable) value)));
+        synchronized(_list)
+        {
+            return unwrap(_list.set(index, new SerializedValueImpl((Serializable) value)));
+        }
 	}
 
 	public void addItem(Object value)
 	{
         assertValidAttachment(value);
-        _list.add(new SerializedValueImpl((Serializable) value));
+        synchronized(_list)
+        {
+            _list.add(new SerializedValueImpl((Serializable) value));
+        }
 	}
 
 	public void addItemAt(int index, Object value)
 			throws IndexOutOfBoundsException
 	{
         assertValidAttachment(value);
-        _list.add(index, new SerializedValueImpl((Serializable) value));
+        synchronized(_list)
+        {
+            _list.add(index, new SerializedValueImpl((Serializable) value));
+        }
 	}
 
 	public int getNamedCount()
 	{
-		return _table.size();
+		synchronized(_table)
+		{
+			return _table.size();
+		}
 	}
 
 	public int getUnnamedCount()
 	{
-		return _list.size();
+		synchronized(_list)
+		{
+			return _list.size();
+		}
 	}
 
 	public String toString()
 	{
-		return new StringBuilder().append("attachments: [ Named:").append(
-				_table.toString()).append(", Unnamed:").append(_list.toString())
-				.toString()+" ]";
+		final String tableVal ;
+		synchronized(_table)
+		{
+			tableVal = _table.toString() ;
+		}
+		final String listVal ;
+		synchronized (_list)
+		{
+			listVal = _list.toString() ;
+		}
+		return "attachments: [ Named:" + tableVal + ", Unnamed:" + listVal + " ]";
 	}
 
 	/**
@@ -141,19 +182,25 @@
 	protected void writeChildContent(XMLStreamWriter out)
 	        throws XMLStreamException
 	{
-            for (SerializedValueImpl value : _list)
+            synchronized(_list)
             {
-                final TextElement unnamed = new TextElement(value.getSerialisedForm()) ;
-                StreamHelper.writeElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_UNNAMED, unnamed) ;
+                for (SerializedValueImpl value : _list)
+                {
+                    final TextElement unnamed = new TextElement(value.getSerialisedForm()) ;
+                    StreamHelper.writeElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_UNNAMED, unnamed) ;
+                }
             }
             
-            for (Entry<String, SerializedValueImpl> entry : _table.entrySet())
+            synchronized(_table)
             {
-                final TextElement named = new TextElement(entry.getValue().getSerialisedForm()) ;
-                final String origNamedURI = StreamHelper.writeStartElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_NAMED) ;
-                StreamHelper.writeAttribute(out, XMLUtil.ESB_QNAME_ATTRIBUTE_ATTACHMENT_NAMED_NAME, entry.getKey()) ;
-                named.writeContent(out) ;
-                StreamHelper.writeEndElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_NAMED.getPrefix(), origNamedURI) ;
+                for (Entry<String, SerializedValueImpl> entry : _table.entrySet())
+                {
+                    final TextElement named = new TextElement(entry.getValue().getSerialisedForm()) ;
+                    final String origNamedURI = StreamHelper.writeStartElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_NAMED) ;
+                    StreamHelper.writeAttribute(out, XMLUtil.ESB_QNAME_ATTRIBUTE_ATTACHMENT_NAMED_NAME, entry.getKey()) ;
+                    named.writeContent(out) ;
+                    StreamHelper.writeEndElement(out, XMLUtil.ESB_QNAME_ATTACHMENT_NAMED.getPrefix(), origNamedURI) ;
+                }
             }
 	}
 	    
@@ -200,5 +247,5 @@
     }
 
 	private ArrayList<SerializedValueImpl> _list = new ArrayList<SerializedValueImpl>();
-	private Hashtable<String, SerializedValueImpl> _table = new Hashtable<String, SerializedValueImpl>();
+	private HashMap<String, SerializedValueImpl> _table = new HashMap<String, SerializedValueImpl>();
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/BodyImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,8 +1,10 @@
 package org.jboss.internal.soa.esb.message.format.xml;
 
 import java.io.Serializable;
+import java.util.Arrays;
+import java.util.Collections;
 import java.util.Enumeration;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 import java.util.Map.Entry;
@@ -76,7 +78,7 @@
 		add(Body.DEFAULT_LOCATION, value);
 	}
 
-	public void add(String name, Object value)
+	public synchronized void add(String name, Object value)
 	{
 		AssertArgument.isNotNull(value, "value");
 		AssertArgument.isNotNull(name, "name");
@@ -89,14 +91,14 @@
 		return get(Body.DEFAULT_LOCATION);
 	}
 
-	public Object get(String name)
+	public synchronized Object get(String name)
 	{
 		AssertArgument.isNotNull(name, "name");
 
 		return unwrap(_objects.get(name));
 	}
 
-	public String[] getNames()
+	public synchronized String[] getNames()
 	{
 		Set<String> keys = _objects.keySet();
                 return keys.toArray(new String[0]) ;
@@ -104,10 +106,10 @@
 	
         public Enumeration<String> getEnumeratedNames()
         {
-            return _objects.keys() ;
+            return Collections.enumeration(Arrays.asList(getNames())) ;
         }
 
-	public Object remove(String name)
+	public synchronized Object remove(String name)
 	{
 		return unwrap(_objects.remove(name));
 	}
@@ -118,7 +120,7 @@
          * @throws XMLStreamException For errors during output.
          */
         @Override
-	protected void writeChildContent(XMLStreamWriter out)
+	protected synchronized void writeChildContent(XMLStreamWriter out)
 	        throws XMLStreamException
 	{
             /*
@@ -215,6 +217,9 @@
 		return getByteArray();
 	}
 
+	/**
+	 * This method is not thread safe.
+	 */
 	public void replace(Body b)
 	{
 		if (b == null)
@@ -225,6 +230,9 @@
 		_objects = ((BodyImpl) b)._objects;
 	}
 
+	/**
+	 * This method is not thread safe.
+	 */
 	public void merge(Body b)
 	{
 		if (b == null)
@@ -247,21 +255,18 @@
 
 	public String toString()
 	{
-		String toReturn = "body: [ ";
+		StringBuilder toReturn = new StringBuilder("body: [ ");
 		byte[] content = getByteArray();
 
 		if (content != null)
-			toReturn += "byte[]: " + Util.format(new String(content));
+			toReturn.append("byte[]: ").append(Util.format(new String(content))).append(", ");
 
-		if (_objects != null)
+		synchronized(this)
 		{
-			if (content != null)
-				toReturn += ", ";
-
-			toReturn += "objects: " + _objects.toString();
+			toReturn.append("objects: ").append(_objects);
 		}
 
-		return toReturn + " ]";
+		return toReturn.append(" ]").toString() ;
 	}
 
 	// copy constructor (almost - doesn't copy, just references).
@@ -278,7 +283,7 @@
         
         protected void initialiseMap(final Map<String, Serializable> payload)
         {
-            synchronized(_objects)
+            synchronized(this)
             {
                 _objects.clear() ;
                 for(Entry<String, Serializable> entry: payload.entrySet())
@@ -288,5 +293,5 @@
             }
         }
         
-	private Hashtable<String, MarshalValueImpl> _objects = new Hashtable<String, MarshalValueImpl>();
+	private HashMap<String, MarshalValueImpl> _objects = new HashMap<String, MarshalValueImpl>();
 }
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/ContextImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -40,6 +40,9 @@
  * @author mark.little at jboss.com
  */
 
+/**
+ * This class is not thread safe and will be duplicated during InVM operations.
+ */
 public class ContextImpl extends ElementContent implements Context
 {
     /**

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/HeaderImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -32,6 +32,8 @@
 
 /**
  * The message header. Contains such things as routing information.
+ * 
+ * This class is not thread safe and will be duplicated during InVM operations.
  */
 
 public class HeaderImpl extends ElementContent implements Header

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/message/format/xml/PropertiesImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -21,7 +21,7 @@
 package org.jboss.internal.soa.esb.message.format.xml;
 
 import java.io.Serializable;
-import java.util.Hashtable;
+import java.util.HashMap;
 import java.util.Map.Entry;
 
 import javax.xml.namespace.QName;
@@ -57,7 +57,7 @@
         parse(in) ;
     }
 
-	public Object getProperty(String name)
+	public synchronized Object getProperty(String name)
 	{
 		return unwrap(_table.get(name));
 	}
@@ -68,7 +68,7 @@
 		return (null == oRet) ? defaultVal : oRet;
 	}
 
-	public Object setProperty(String name, Object value)
+	public synchronized Object setProperty(String name, Object value)
 	{
         AssertArgument.isNotNull(name, "name");
         AssertArgument.isNotNull(value, "value");
@@ -80,17 +80,17 @@
         return unwrap(_table.put(name, new SerializedValueImpl((Serializable)value)));
     }
 
-	public Object remove(String name)
+	public synchronized Object remove(String name)
 	{
 		return unwrap(_table.remove(name));
 	}
 
-	public int size()
+	public synchronized int size()
 	{
 		return _table.size();
 	}
 
-	public String[] getNames()
+	public synchronized String[] getNames()
 	{
 		return _table.keySet().toArray(new String[0]);
 	}
@@ -101,7 +101,7 @@
          * @throws XMLStreamException For errors during output.
          */
 	@Override
-	protected void writeChildContent(XMLStreamWriter out)
+	protected synchronized void writeChildContent(XMLStreamWriter out)
 	        throws XMLStreamException
 	{
 	    for (Entry<String, SerializedValueImpl> entry: _table.entrySet())
@@ -150,7 +150,7 @@
             }
         }
         
-	public String toString()
+	public synchronized String toString()
 	{
 		return "properties: [ "+_table.toString()+" ]";
 	}
@@ -160,6 +160,6 @@
 	    return (value == null ? null : value.getValue()) ;
 	}
 	
-	private Hashtable<String, SerializedValueImpl> _table = new Hashtable<String, SerializedValueImpl>();
+	private HashMap<String, SerializedValueImpl> _table = new HashMap<String, SerializedValueImpl>();
 
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsXASession.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsXASession.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/rosetta/pooling/JmsXASession.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -162,7 +162,7 @@
         if (!associated)
         {
             cleanupAction = Cleanup.none ;
-            final XAResource resource = session.getXAResource() ;
+            final XAResource resource = session.getXAResource();
             final TransactionStrategy transactionStrategy = TransactionStrategy.getTransactionStrategy(true) ;
             try
             {

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryInterceptor.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryInterceptor.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryInterceptor.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -19,7 +19,6 @@
  */
 package org.jboss.internal.soa.esb.services.registry;
 
-import org.jboss.internal.soa.esb.couriers.InVMCourier;
 import org.jboss.soa.esb.Service;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.eprs.InVMEpr;
@@ -27,6 +26,7 @@
 import org.jboss.soa.esb.services.registry.AbstractRegistryInterceptor;
 import org.jboss.soa.esb.services.registry.RegistryException;
 import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
+import org.jboss.internal.soa.esb.couriers.InVMCourier;
 
 import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
@@ -45,7 +45,29 @@
             Service service = new Service(serviceCategoryName, serviceName);
             RegsitryEntry regEntry = new RegsitryEntry(service, serviceDescription, epr, eprDescription);
             List<RegsitryEntry> serviceEntries = getServiceEntries(service);
-    
+
+            if(serviceEntries == null) {
+                serviceEntries = new ArrayList<RegsitryEntry>();
+                regEntries.put(service, serviceEntries);
+            }
+
+            if(serviceEntries.isEmpty()) {
+                InVMCourier existingInVMCourier = CourierFactory.getInstance().getInVMCourier((InVMEpr) epr);
+
+                if(existingInVMCourier != null) {
+                    throw new RegistryException("Invalid attempt to register InVM EPR '" + epr + "' for Service '" + service + "'.  This InVM EPR is already registered for Service '" + existingInVMCourier.getService() + "'." );
+                }
+                InVMCourier newInVMCourier = CourierFactory.getInstance().addInVMCourier((InVMEpr) epr);
+                newInVMCourier.setService(service);
+            } else {
+                // Verify that the InVM EPRs on the other registrations for this service
+                // are exactly the same...
+                EPR existingEpr = serviceEntries.get(0).getEpr();
+                if(!epr.equals(existingEpr)) {
+                    throw new RegistryException("Invalid attempt to register different InVM EPRs for Service '" + service + "'.  EPR '" + existingEpr + "' already registered.  Attempt to register '" + epr + "'.");
+                }
+            }
+
             serviceEntries.add(regEntry);
         } else {
             getRegistry().registerEPR(serviceCategoryName, serviceName, serviceDescription, epr, eprDescription) ;
@@ -63,10 +85,9 @@
         }
     }
 
-    protected boolean unRegisterInVMService(String category, String serviceName) throws RegistryException, ServiceNotFoundException {
+    private boolean unRegisterInVMService(String category, String serviceName) throws RegistryException, ServiceNotFoundException {
         if (isValidService(category, serviceName)) {
-            _unRegisterEPR(category, serviceName, null);
-            return (regEntries.remove(new Service(category, serviceName)) != null);
+            return _unRegisterEPR(category, serviceName, true);
         } else {
             return false ;
         }
@@ -74,31 +95,37 @@
 
     public void unRegisterEPR(String serviceCategoryName, String serviceName, EPR epr) throws RegistryException, ServiceNotFoundException {
         if (epr instanceof InVMEpr) {
-            _unRegisterEPR(serviceCategoryName, serviceName, epr);
+            _unRegisterEPR(serviceCategoryName, serviceName, false);
         } else {
             getRegistry().unRegisterEPR(serviceCategoryName, serviceName, epr) ;
         }
     }
 
-    private void _unRegisterEPR(String serviceCategoryName, String serviceName, EPR epr) {
+    private boolean _unRegisterEPR(String serviceCategoryName, String serviceName, boolean removeAll) {
         Service service = new Service(serviceCategoryName, serviceName);
         List<RegsitryEntry> serviceEntries = getServiceEntries(service);
-        Iterator<RegsitryEntry> iterator = serviceEntries.iterator();
 
-        while (iterator.hasNext()) {
-            RegsitryEntry regsitryEntry =  iterator.next();
+        if(serviceEntries != null) {
+            InVMEpr removedInVMEpr = null;
 
-            if(epr == null || regsitryEntry.getEpr().getAddr().getAddress().equals(epr.getAddr().getAddress())) {
-                if(regsitryEntry.getEpr() instanceof InVMEpr) {
-                    InVMCourier courier = CourierFactory.getInstance().getInVMCourier((InVMEpr)regsitryEntry.getEpr());
-                    if(courier != null) {
-                        courier.setActive(false);
-                    }
-                }
+            if(!serviceEntries.isEmpty()) {
+                // Just remove one (decrement the count)...
+                removedInVMEpr = (InVMEpr) serviceEntries.remove(0).getEpr();
+            }
 
-                iterator.remove();
+            if(removeAll) {
+                serviceEntries.clear();
             }
+
+            // Zap the InVM courier if there are no more Services using it...
+            if(removedInVMEpr != null && serviceEntries.isEmpty()) {
+                CourierFactory.getInstance().removeInVMCourier(removedInVMEpr);
+            }
+
+            return (removedInVMEpr != null);
         }
+
+        return false;
     }
 
     public List<String> findAllServices() throws RegistryException {
@@ -156,9 +183,11 @@
         if (isValidService(serviceCategoryName, serviceName)) {
             Service service = new Service(serviceCategoryName, serviceName);
             List<RegsitryEntry> serviceEntries = getServiceEntries(service);
-    
-            for (RegsitryEntry serviceEntry : serviceEntries) {
-                eprs.add(serviceEntry.getEpr());
+
+            if(serviceEntries != null) {
+                for (RegsitryEntry serviceEntry : serviceEntries) {
+                    eprs.add(serviceEntry.getEpr());
+                }
             }
         }
         return eprs ;
@@ -175,11 +204,6 @@
             }
         }
 
-        if(serviceEntries == null) {
-            serviceEntries = new ArrayList<RegsitryEntry>();
-            regEntries.put(service, serviceEntries);
-        }
-
         return serviceEntries;
     }
     

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/JAXRRegistryImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/JAXRRegistryImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/registry/JAXRRegistryImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -52,9 +52,9 @@
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.jboss.internal.soa.esb.addressing.helpers.EPRHelper;
+import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.MarshalException;
 import org.jboss.soa.esb.UnmarshalException;
-import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.services.registry.Registry;
 import org.jboss.soa.esb.services.registry.RegistryException;
@@ -71,11 +71,12 @@
 	private static Logger logger = Logger.getLogger(JAXRRegistryImpl.class);
     private JAXRConnectionFactory jaxrConnectionFactory;
 	private static Organization jbossESBOrganization;
-
+	public static final String JBOSS_ESB_CATEGORY = "org.jboss.soa.esb.:category";
+	
     public JAXRRegistryImpl() throws ConfigurationException {
         jaxrConnectionFactory = new JAXRConnectionFactory();
     }
-
+    
     /**
 	 * Publish an EPR to the Registry
 	 */
@@ -94,7 +95,7 @@
             Collection<String> findQualifiers = new ArrayList<String>();
             findQualifiers.add(FindQualifier.AND_ALL_KEYS);
             findQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
-			ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, "org.jboss.soa.esb.:category");
+			ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, JBOSS_ESB_CATEGORY);
             Classification classification = blm.createClassification(cScheme, "category", category);
 			service.addClassification(classification);
 			organization.addService(service);
@@ -157,7 +158,7 @@
             Collection<String> findQualifiers = new ArrayList<String>();
             findQualifiers.add(FindQualifier.AND_ALL_KEYS);
             findQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
-            ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, "org.jboss.soa.esb.:category");
+            ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, JBOSS_ESB_CATEGORY);
             Classification classification = blm.createClassification(cScheme, "category", category);
             service.addClassification(classification);
 
@@ -420,8 +421,20 @@
             findQualifiers.add(FindQualifier.AND_ALL_KEYS);
             findQualifiers.add(FindQualifier.EXACT_NAME_MATCH);
             findQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
-            ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, "org.jboss.soa.esb.:category");
+            ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, JBOSS_ESB_CATEGORY);
             Collection<Classification> classifications = new ArrayList<Classification>();
+            // If the scheme returned null, then we have to create a org.jboss.soa.esb.:category scheme to use
+            if (cScheme == null) {
+            	try {
+            		ClassificationScheme scheme = blm.createClassificationScheme(JBOSS_ESB_CATEGORY, JBOSS_ESB_CATEGORY);
+            		ArrayList<ClassificationScheme> cSchemes = new ArrayList<ClassificationScheme>();
+                    cSchemes.add(scheme);
+                    BulkResponse br = blm.saveClassificationSchemes(cSchemes);
+            	} catch (Exception e) {
+            		throw new JAXRException(e);
+            	}
+            	cScheme = bqm.findClassificationSchemeByName(findQualifiers, JBOSS_ESB_CATEGORY);
+            }
             Classification classification =
                 blm.createClassification(
                   cScheme,
@@ -477,7 +490,7 @@
             Collection<String> findQualifiers = new ArrayList<String>();
             findQualifiers.add(FindQualifier.AND_ALL_KEYS);
             findQualifiers.add(FindQualifier.SORT_BY_NAME_DESC);
-            ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, "org.jboss.soa.esb.:category");
+            ClassificationScheme cScheme = bqm.findClassificationSchemeByName(findQualifiers, JBOSS_ESB_CATEGORY);
             //Create classification
             Classification classification =
                 blm.createClassification(

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagator.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagator.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagator.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,103 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.internal.soa.esb.services.security;
+
+import java.security.Principal;
+import java.util.Set;
+
+import javax.security.auth.Subject;
+
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.jboss.security.RunAsIdentity;
+import org.jboss.security.SecurityAssociation;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.principals.User;
+
+/**
+ * JBoss Application Server(AS) specifiec security context propagator.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public final class JBossASContextPropagator implements SecurityContextPropagator
+{
+    /**
+     * Pushed the subject by calling {@link SecurityAssociation#pushSubjectContext(Subject, Principal, Object)}.
+     *
+     * @param context The SecurityContext holding the subject to push/propagate. May not be null.
+     * @param config The SecurityConfig which contains the information specified from the security configuration element. Can be null.
+     */
+    public void pushSecurityContext(final SecurityContext context, Set<?> authCredentials, final SecurityConfig config)
+    {
+        AssertArgument.isNotNull(context, "context");
+
+        final Subject subject = context.getSubject();
+        final Principal principal = getPrincipal(subject);
+
+        //  associate the subject with jboss security
+        Object credential = null;
+        if (authCredentials != null)
+        {
+            credential = authCredentials.iterator().next();
+        }
+        SecurityAssociation.pushSubjectContext(subject, principal, credential);
+
+
+        if (isRunAsSet(config))
+        {
+            //  associate the runAs role with jboss security
+            SecurityAssociation.pushRunAsIdentity(new RunAsIdentity(config.getRunAs(), principal.getName()));
+        }
+    }
+
+    /**
+     * Pops the subject by calling {@link SecurityAssociation#pushSubjectContext(Subject, Principal, Object)}.
+     *
+     * @param context The SecurityContext holding the subject to push/propagate. Can be null.
+     * @param config The SecurityConfig which contains the information specified from the security configuration element. Can be null.
+     */
+    public void popSecurityContext(final SecurityContext context, final SecurityConfig config)
+    {
+        //  diassociate the subject with jboss security
+        SecurityAssociation.popSubjectContext();
+
+        if (isRunAsSet(config))
+        {
+            //  associate the runAs role with jboss security
+            SecurityAssociation.popRunAsIdentity();
+        }
+    }
+
+    private Principal getPrincipal( final Subject subject)
+    {
+        for (Principal principal : subject.getPrincipals())
+        {
+            return principal;
+        }
+        return new User("NullPrincipal");
+    }
+
+    private boolean isRunAsSet(final SecurityConfig config)
+    {
+        return config != null && config.getRunAs() != null;
+    }
+
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/JaasSecurityService.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -20,24 +20,17 @@
  */
 package org.jboss.internal.soa.esb.services.security;
 
-import java.net.URL;
 import java.security.Principal;
-import java.security.Security;
 import java.util.List;
-import java.util.Properties;
 import java.util.Set;
 
 import javax.security.auth.Subject;
 import javax.security.auth.login.LoginContext;
 import javax.security.auth.login.LoginException;
 
-import org.apache.log4j.Logger;
 import org.jboss.internal.soa.esb.assertion.AssertArgument;
-import org.jboss.security.RunAsIdentity;
-import org.jboss.security.SecurityAssociation;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.common.Configuration;
-import org.jboss.soa.esb.common.Environment;
 import org.jboss.soa.esb.services.security.SecurityConfig;
 import org.jboss.soa.esb.services.security.SecurityContext;
 import org.jboss.soa.esb.services.security.SecurityService;
@@ -47,8 +40,6 @@
 import org.jboss.soa.esb.services.security.principals.Role;
 import org.jboss.soa.esb.util.ClassUtil;
 
-import com.sun.security.auth.login.ConfigFile;
-
 /**
  * Concrete impl of a SecurityService in JBoss ESB that uses JAAS.
  * <p/>
@@ -60,7 +51,6 @@
  * <properties name="security">
  *     <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
  *     <property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
- *     <property name="org.jboss.soa.esb.services.security.configUrl" value="/jaas.login"/>
  * </properties>
  * </pre>}
  *
@@ -70,39 +60,14 @@
 public final class JaasSecurityService implements SecurityService
 {
 	/*
-	 * 	Property name for login config urls.
-	 */
-	private static final String LOGIN_CONFIG_URL_PREFIX = "login.config.url.";
-
-	/*
 	 *	Callback handler implementation name
 	 */
 	private String callbackHandlerClassName;
 
-	/*
-	 *	Original login configuration e.g JBoss AS login configuration
-	 */
-	private javax.security.auth.login.Configuration containerConfig;
-
-	/*
-	 *	Custom login configuration
-	 */
-	private javax.security.auth.login.Configuration configuration;
-
-	private final Logger log = Logger.getLogger(JaasSecurityService.class);
-
 	/**
 	 * Performs authentication of the passed in SecurityContext.
 	 * </p>
 	 *
-	 * This method will first try to authenticate the authRequest by using a custom <br>
-	 * javax.security.auth.login.Configuration, which would be the case where the <br>
-	 * login module name specified exists in a jaas.login file.
-	 * <br>
-	 * If the login module name cannot be found in jaas.login then this method will <br>
-	 * fall back and try to authenticate using a an underlying Configuration. This would <br>
-	 * be the case when running in an appserver for instance.
-	 *
 	 * @param config - the security configuration. Properties from jboss-esb.xml
 	 * @param securityContext - the security context to be used.
 	 * @param authRequest - the authentication request to be processed.
@@ -114,40 +79,23 @@
 		AssertArgument.isNotNull(config, "config");
 
 		LoginContext loginContext;
-		final String runAs = config.getRunAs();
 		try
 		{
 			final EsbCallbackHandler callbackHandler = createCallbackHandler(config, authRequest);
-			try
+			if (callbackHandler != null)
 			{
-				// try to login with a standalone jaas login configuration file(for example jaas.login file)
-    			loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, getConfiguration());
+    			loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler);
 			}
-			catch (final LoginException ignore)
+			else
 			{
-				// fall back and try using the orginal configuration(for example jboss login-config.xml)
-    			loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject(), callbackHandler, containerConfig);
+    			loginContext = new LoginContext(config.getModuleName(), securityContext.getSubject());
 			}
 
-			//	invoke the login process
     		loginContext.login();
 
-    		final Subject subject = securityContext.getSubject();
-
     		//	add a runAs group if specified
-    		addRunAs(runAs, subject);
+    		addRunAs(config.getRunAs(), securityContext.getSubject());
 
-    		final Principal principal = getPrincipal(subject);
-
-            //  associate the subject with jboss security
-            SecurityAssociation.pushSubjectContext(subject, principal, subject.getPublicCredentials());
-
-            if ( runAs != null )
-            {
-                //  associate the runAs role with jboss security
-                SecurityAssociation.pushRunAsIdentity(new RunAsIdentity(runAs, principal.getName()));
-            }
-
 		}
 		catch (final LoginException e)
 		{
@@ -180,7 +128,7 @@
 	 */
 	public boolean isCallerInRole( final Subject subject, final Principal role)
 	{
-        Set<java.security.acl.Group> principals = subject.getPrincipals(java.security.acl.Group.class);
+        final Set<java.security.acl.Group> principals = subject.getPrincipals(java.security.acl.Group.class);
         for (java.security.acl.Group group : principals)
 		{
     		if ( group.isMember(role) )
@@ -195,31 +143,8 @@
 	 */
 	public void configure() throws ConfigurationException
 	{
-		try
-		{
-    		containerConfig = javax.security.auth.login.Configuration.getConfiguration();
-		}
-		catch(final SecurityException ignore)
-		{
-			log.warn("Could not locate a security configuration");
-		}
-
-		final Properties securityProperties = Configuration.getSecurityServiceProperies();
-		final String loginConfigUrl = securityProperties.getProperty(Environment.SECURITY_SERVICE_CONFIG_URL);
-		if ( loginConfigUrl != null )
-		{
-    		final URL loginUrl = ClassUtil.getResource(loginConfigUrl, getClass());
-    		if ( loginUrl == null )
-    		{
-            	final String invalidPropertyMsg =  "The value for property [" + Environment.SECURITY_SERVICE_CONFIG_URL +
-            	"] must be a valid URL. This property should point to a file on the local file system or on the classpath.";
-    			throw new ConfigurationException(invalidPropertyMsg);
-    		}
-    		addLoginConfig(loginUrl);
-		}
-
 		//	get a EsbCallbackHandler if one is configured in jbossesb-properties.xml
-		callbackHandlerClassName = securityProperties.getProperty(Environment.SECURITY_SERVICE_CALLBACK_HANLDER_CLASS);
+		callbackHandlerClassName = Configuration.getSecurityServiceCallbackHandlerImplClass();
 	}
 
 	public void logout(SecurityConfig config)
@@ -227,24 +152,11 @@
 		//	NoOp
 	}
 
-	public synchronized void refreshSecurityConfig()
-	{
-		if ( configuration != null )
-		{
-			log.info("Refreshing Security configuration");
-			configuration.refresh();
-		}
-	}
+	public void refreshSecurityConfig()
+    {
+        // NoOp
+    }
 
-	private Principal getPrincipal( final Subject subject)
-	{
-		for (Principal principal : subject.getPrincipals())
-		{
-			return principal;
-		}
-		return null;
-	}
-
 	/**
 	 * Creates an instance of EsbCallbackHandler specified in either jboss-esb.xml:
 	 * <pre>
@@ -287,53 +199,12 @@
 		return callbackHandler;
 	}
 
-	private void addLoginConfig(final URL loginConfigUrl) throws ConfigurationException
-	{
-		if (loginConfigUrl == null)
-		{
-			throw new ConfigurationException("Could not locate the login config file at Url [" + loginConfigUrl + "]");
-		}
-
-		int urlIndex = 1;
-		boolean loginUrlRegistered = false;
-		String registeredLoginUrl;
-        while ((registeredLoginUrl = Security.getProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex)) != null)
-        {
-        	loginUrlRegistered = registeredLoginUrl.equals(loginConfigUrl.toString());
-        	if (loginUrlRegistered)
-        	{
-        		break;
-        	}
-        	else
-        	{
-        		urlIndex++;
-        	}
-        }
-
-        if (!loginUrlRegistered)
-        {
-    		log.info("Adding file [ " + loginConfigUrl + "] as [" + LOGIN_CONFIG_URL_PREFIX + urlIndex + "]");
-        	Security.setProperty(LOGIN_CONFIG_URL_PREFIX + urlIndex, loginConfigUrl.toExternalForm());
-        	setConfiguration(new ConfigFile());
-        }
-	}
-
-	private synchronized javax.security.auth.login.Configuration getConfiguration()
-	{
-		return configuration;
-	}
-
-	private synchronized void setConfiguration(final javax.security.auth.login.Configuration configuration)
-	{
-		this.configuration = configuration;
-	}
-
 	private void addRunAs( final String runAs, final Subject subject )
 	{
 		if ( runAs != null )
 		{
 			final Role runAsRole = new Role(runAs);
-			Set<Group> principals = subject.getPrincipals(Group.class);
+			final Set<Group> principals = subject.getPrincipals(Group.class);
 			if ( principals.isEmpty() )
 			{
         		final Group group = new Group("Roles");
@@ -358,7 +229,7 @@
 		try
 		{
 			@SuppressWarnings("unchecked")
-			Class<T> forName = ClassUtil.forName(className, getClass());
+			final Class<T> forName = ClassUtil.forName(className, getClass());
 			return forName.newInstance();
 		}
 		catch (final ClassNotFoundException e)
@@ -374,5 +245,4 @@
 			throw new SecurityServiceException("IllegalAccess while trying to create an impl of [" + className + "]", e);
 		}
 	}
-
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtil.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -20,50 +20,42 @@
  */
 package org.jboss.internal.soa.esb.services.security;
 
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.io.Serializable;
-import java.security.Key;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
+import java.security.InvalidKeyException;
 import java.security.NoSuchAlgorithmException;
-import java.security.PrivateKey;
-import java.security.PublicKey;
-import java.security.UnrecoverableKeyException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.KeyGenerator;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SealedObject;
+import javax.crypto.SecretKey;
 import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.common.Environment;
 import org.jboss.soa.esb.services.security.SecurityServiceException;
-import org.jboss.soa.esb.services.security.util.CryptoUtil;
-import org.jboss.soa.esb.util.ClassUtil;
 
 /**
+ * Util for sealing and unsealing object.
  *
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
- *
  */
 public enum PrivateCryptoUtil
 {
     INSTANCE;
 
     private Logger log;
-    private Key key;
-    private PublicKey publicKey;
-    private String transformation;
+    private Cipher cipher;
+    private SecretKey secretKey;
 
     private PrivateCryptoUtil()
     {
         try
         {
             log = getLogger();
-            init();
+            initSecretKey();
         }
         catch (final Exception e)
         {
@@ -71,189 +63,130 @@
         }
     }
 
-    private void init() throws SecurityServiceException
+    /**
+     * Will create a Sealed object containing the passed in Serializable object.
+     *
+     * @param serializable The serializable object to be sealed.
+     * @return SealedObject The resulting sealed object
+     * @throws SecurityServiceException
+     * @throws IOException
+     * @throws IllegalBlockSizeException
+     */
+    public SealedObject sealObject(final Serializable serializable) throws SecurityServiceException
     {
-        String keystorePath = Configuration.getSecurityServicePrivateKeystore();
-        if (keystorePath == null)
+        AssertArgument.isNotNull(serializable, "serializable");
+        try
         {
-            log.info("No private keystore was specified in jbossesb-properites.xml. Add '" + Environment.SECURITY_SERVICE_PUBLIC_KEYSTORE + "'");
-        }
-        else
-        {
-            try
+            synchronized (cipher)
             {
-                String keystoreType = Configuration.getSecurityServicePrivateKeystoreType();
-                if (keystoreType == null)
-                {
-                    keystoreType = KeyStore.getDefaultType();
-                }
-                String keystorePassword = Configuration.getSecurityServicePrivateKeystorePassword();
-                String privateKeyAlias = Configuration.getSecurityServicePrivateKeyAlias();
-                String privateKeyPass = Configuration.getSecurityServicePrivateKeyPassword();
-
-                try
-                {
-                    KeyStore keystore = KeyStore.getInstance(keystoreType);
-                    InputStream in = ClassUtil.getResourceAsStream(keystorePath, this.getClass());
-                    if (in == null)
-                    {
-                        throw new SecurityServiceException("Could not locate public keystore using '" + keystorePath + "'");
-                    }
-
-                    // load the keystore contents
-                    keystore.load(in, keystorePassword.toCharArray());
-                    key = keystore.getKey(privateKeyAlias, privateKeyPass.toCharArray());
-                    Certificate certificate = keystore.getCertificate(privateKeyAlias);
-                    publicKey = certificate.getPublicKey();
-
-                    // "algorithm/mode/padding" or defaults to "algorithm"
-                    transformation = Configuration.getSecurityServicePrivateKeyTransformation();
-                    if (transformation == null)
-                    {
-                        this.transformation = key.getAlgorithm();
-                    }
-                }
-                finally
-                {
-                    keystorePassword = null;
-                    privateKeyAlias = null;
-                    privateKeyPass = null;
-                }
+                cipher.init(Cipher.ENCRYPT_MODE, secretKey);;
+                return new SealedObject(serializable, cipher);
             }
-            catch (final KeyStoreException e)
-            {
-                throw new SecurityServiceException(e.getMessage(), e);
-            }
-            catch (final NoSuchAlgorithmException e)
-            {
-                throw new SecurityServiceException(e.getMessage(), e);
-            }
-            catch (final CertificateException e)
-            {
-                throw new SecurityServiceException(e.getMessage(), e);
-            }
-            catch (final IOException e)
-            {
-                throw new SecurityServiceException(e.getMessage(), e);
-            }
-            catch (final UnrecoverableKeyException e)
-            {
-                throw new SecurityServiceException(e.getMessage(), e);
-            }
         }
-    }
-
-    private static byte[] getBytes(final Serializable ser) throws IOException
-    {
-        ByteArrayOutputStream bout = new ByteArrayOutputStream();
-        ObjectOutputStream oout = new ObjectOutputStream(bout);
-        oout.writeObject(ser);
-        return bout.toByteArray();
-    }
-
-    public byte[] encrypt(final Serializable object) throws SecurityServiceException
-    {
-        ByteArrayInputStream plainInStream;
-        try
+        catch (final InvalidKeyException e)
         {
-            plainInStream = new ByteArrayInputStream(getBytes(object));
+            throw new SecurityServiceException(e.getMessage(), e);
         }
-        catch (final IOException e)
+        catch (final IllegalBlockSizeException e)
         {
             throw new SecurityServiceException(e.getMessage(), e);
         }
-
-        ByteArrayOutputStream encryptedOutStream = new ByteArrayOutputStream();
-
-        try
-        {
-            byte[] buf = new byte[100];
-            int bufLength;
-            while ( (bufLength = plainInStream.read(buf)) != -1)
-            {
-                byte[] tmp = CryptoUtil.encrypt(copyBytes(buf,bufLength),publicKey, transformation);
-                encryptedOutStream.write(tmp);
-                encryptedOutStream.flush();
-            }
-            return encryptedOutStream.toByteArray();
-        }
         catch (final IOException e)
         {
             throw new SecurityServiceException(e.getMessage(), e);
         }
     }
 
-    public Serializable decrypt(final byte[] bytes) throws SecurityServiceException
+    /**
+     * Unseals a previously sealed object.
+     *
+     * @param sealedObject The object to unseal
+     * @return {@link Serializable} The unsealed Serializeable Object.
+     * @throws SecurityServiceException
+     */
+    public Serializable unSealObject(SealedObject sealedObject) throws SecurityServiceException
     {
-        ByteArrayInputStream encryptedBytesInStream = new ByteArrayInputStream(bytes);
-
-        ByteArrayOutputStream decryptedBytesOutStream = new ByteArrayOutputStream();
-
-        byte[] decryptBytes = null;
+        AssertArgument.isNotNull(sealedObject, "sealedObject");
         try
         {
-            byte[] buf = new byte[128];
-            int bufLenth;
-            while ( (bufLenth = encryptedBytesInStream.read(buf)) != -1)
+            synchronized (cipher)
             {
-                byte[] tmp = CryptoUtil.decrypt( copyBytes(buf,bufLenth),(PrivateKey)key, transformation);
-                decryptedBytesOutStream.write(tmp);
-                decryptedBytesOutStream.flush();
-                decryptBytes = decryptedBytesOutStream.toByteArray();
+                cipher.init(Cipher.DECRYPT_MODE, secretKey);
+                return (Serializable) sealedObject.getObject(cipher);
             }
         }
-        catch (final IOException e)
+        catch (final InvalidKeyException e)
         {
             throw new SecurityServiceException(e.getMessage(), e);
         }
-        finally
+        catch (final IllegalBlockSizeException e)
         {
-            try { decryptedBytesOutStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(),ignore); }
+            throw new SecurityServiceException(e.getMessage(), e);
         }
-
-        return toSerializable(decryptBytes);
-    }
-
-    private Serializable toSerializable(final byte[] decryptBytes) throws SecurityServiceException
-    {
-        ObjectInputStream inputStream = null;
-        try
+        catch (final BadPaddingException e)
         {
-            inputStream = new ObjectInputStream(new ByteArrayInputStream(decryptBytes));
-            return (Serializable) inputStream.readObject();
+            throw new SecurityServiceException(e.getMessage(), e);
         }
-        catch (final IOException e)
+        catch (IOException e)
         {
             throw new SecurityServiceException(e.getMessage(), e);
         }
-        catch (final ClassNotFoundException e)
+        catch (ClassNotFoundException e)
         {
             throw new SecurityServiceException(e.getMessage(), e);
         }
-        finally
-        {
-            try { inputStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(), ignore); }
-        }
     }
 
-    private static byte[] copyBytes(byte[] bytes, int length)
+    /**
+     * Generates a symmetric key used for sealing object.
+     *
+     * @throws SecurityServiceException
+     */
+    private void initSecretKey() throws SecurityServiceException
     {
-        if (bytes.length == length)
+        try
         {
-            return bytes;
-        }
+            final String algorithm = Configuration.getSecurityServiceSealAlgorithm();
+            if (algorithm == null)
+            {
+                throw new SecurityServiceException("'" + Environment.SECURITY_SERVICE_SEAL_ALGORITHM + "' has not been configured. Please set the algorithm to use in jbossesb-properties.xml");
+            }
 
-        byte[] newBytes = new byte[length];
-        for (int i = 0; i < length; i++)
+            final String keySizeStr = Configuration.getSecurityServiceSealKeySize();
+            if (keySizeStr == null)
+            {
+                throw new SecurityServiceException("'" + Environment.SECURITY_SERVICE_SEAL_KEYSIZE + "' has not been configured. Please set the key size to use in jbossesb-properties.xml");
+            }
+
+            int keySize;
+            try
+            {
+                keySize = Integer.parseInt(keySizeStr.trim());
+            }
+            catch(final NumberFormatException e)
+            {
+                throw new SecurityServiceException("'" + Environment.SECURITY_SERVICE_SEAL_KEYSIZE + "' must be a number. Please set the key size correctly in jbossesb-properties.xml");
+            }
+
+            log.debug("SealAlgorithm '" + algorithm + "' keySize '" + keySize + "'");
+
+            final KeyGenerator kpg = KeyGenerator.getInstance(algorithm);
+            kpg.init(keySize);
+            secretKey = kpg.generateKey();
+            cipher = Cipher.getInstance(algorithm);
+        }
+        catch (final NoSuchAlgorithmException e)
         {
-            newBytes[i] = bytes[i];
+            throw new SecurityServiceException(e.getMessage(), e);
         }
-        return newBytes;
+        catch (final NoSuchPaddingException e)
+        {
+            throw new SecurityServiceException(e.getMessage(), e);
+        }
     }
 
     private static Logger getLogger()
     {
         return Logger.getLogger(PrivateCryptoUtil.class);
     }
-
 }

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagator.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagator.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagator.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.internal.soa.esb.services.security;
+
+import java.util.Set;
+
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityContext;
+
+/**
+ * A SecurityContextPropagator can push/propagate and pop/remove security context
+ * information to a specified targets security subsytem.
+ * </p>
+ * For example, a SecurityContextPropagator for JBossAS would propagate a security
+ * context so that it is made available to JBossAS Security subsystem.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public interface SecurityContextPropagator
+{
+    /**
+     * Push/Propagate the Security context information to the destined system.
+     *
+     * @param context The security context to be pushed(propagated)
+     * @param credentials The set of credentials that were provided for authentication.
+     * @param config The SecurityConfig which give access to the service's security configuration.
+     */
+    void pushSecurityContext(final SecurityContext context, final Set<?> credentials, final SecurityConfig config);
+
+    /**
+     * Pop/Remove the Security context information to the destined system.
+     *
+     * @param context The security context to be pushed(propagated)
+     * @param config The SecurityConfig which give access to the service's security configuration.
+     */
+    void popSecurityContext(final SecurityContext context, final SecurityConfig config);
+
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactory.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactory.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactory.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactory.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.internal.soa.esb.services.security;
+
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.util.ClassUtil;
+
+/**
+ * Factory for creating {@link SecurityContextPropagator} instances.
+ * Only contains factory methods.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public final class SecurityContextPropagatorFactory
+{
+    private SecurityContextPropagatorFactory() {}
+
+    public static SecurityContextPropagator createFromConfig() throws SecurityServiceException
+    {
+        return create(Configuration.getSecurityContextPropagatorImplementationClass());
+    }
+
+    /**
+     * Creates an instance of the specified className which must be an instance of {@link SecurityContextPropagator}.
+     *
+     * @param className The fully qualified name of the class to be used.
+     * @return SecurityContextPropagator An instance of the passed in className of if className of null is className was null.
+     * @throws SecurityServiceException If an exception occurs while trying to create the instance.
+     */
+    public static SecurityContextPropagator create(final String className) throws SecurityServiceException
+    {
+        if (className == null)
+        {
+            return null;
+        }
+        return createInstance(className);
+    }
+
+    private static SecurityContextPropagator createInstance(final String className) throws SecurityServiceException
+    {
+        try
+        {
+            final Class<?> propagator = ClassUtil.forName(className, SecurityContextPropagatorFactory.class);
+            Object newInstance = propagator.newInstance();
+            return (SecurityContextPropagator) newInstance;
+        }
+        catch (final ClassNotFoundException e)
+        {
+            throw new SecurityServiceException("SecurityContextPropagator implementation '" + className + "' not found", e);
+        }
+        catch (final InstantiationException e)
+        {
+            throw new SecurityServiceException("Instantiation Exception while trying to create a SecurityContextPropagator of type '" + className + "'", e);
+        }
+        catch (final IllegalAccessException e)
+        {
+            throw new SecurityServiceException("IllegalAccessException while trying to create a SecurityContextPropagator of type '" + className + "'", e);
+        }
+    }
+
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/NullWriter.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/util/NullWriter.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/NullWriter.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/util/NullWriter.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.util;
+
+import java.io.Writer;
+import java.io.IOException;
+
+/**
+ * Null {@link Writer}.
+ * 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NullWriter extends Writer {
+
+    public NullWriter() {
+        super();
+    }
+
+    public NullWriter(Object lock) {
+        super(lock);
+    }
+
+    public void write() throws IOException {
+        
+    }
+
+    public void write(int c) throws IOException {
+        write();
+    }
+
+    public void write(char cbuf[]) throws IOException {
+        write();
+    }
+
+    public void write(String str) throws IOException {
+        write();
+    }
+
+    public void write(String str, int off, int len) throws IOException {
+        write();
+    }
+
+    public Writer append(CharSequence csq) throws IOException {
+        write();
+        return this;
+    }
+
+    public Writer append(CharSequence csq, int start, int end) throws IOException {
+        write();
+        return this;
+    }
+
+    public Writer append(char c) throws IOException {
+        write();
+        return this;
+    }
+
+    public void write(char cbuf[], int off, int len) throws IOException {
+        write();
+    }
+
+    public void flush() throws IOException {
+    }
+
+    public void close() throws IOException {
+    }
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBResponseFilter.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBResponseFilter.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBResponseFilter.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/internal/soa/esb/webservice/ESBResponseFilter.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.internal.soa.esb.webservice;
+
+import org.jboss.internal.soa.esb.util.NullWriter;
+
+import javax.servlet.*;
+import javax.servlet.http.HttpServletResponseWrapper;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.PrintWriter;
+
+/**
+ * Webservice response filter.
+ * 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class ESBResponseFilter implements Filter {
+
+    private boolean isOneWay = false;
+
+    public void init(FilterConfig filterConfig) throws ServletException {
+        String oneWayConfig = filterConfig.getInitParameter("OneWay");
+        isOneWay = "true".equalsIgnoreCase(oneWayConfig);
+    }
+
+    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
+        if(isOneWay) {
+            filterChain.doFilter(servletRequest, new OneWayResponseWrapper((HttpServletResponse) servletResponse));
+            servletResponse.setContentType("text/xml");
+            servletResponse.setContentLength(0);
+        } else {
+            filterChain.doFilter(servletRequest, servletResponse);
+        }
+    }
+
+    public void destroy() {
+    }
+
+    /**
+     * OneWay response wrapper.
+     * <p/>
+     * Filters out the response i.e. ensures that the response body is empty.
+     */
+    private class OneWayResponseWrapper extends HttpServletResponseWrapper {
+
+        public OneWayResponseWrapper(HttpServletResponse httpServletResponse) {
+            super(httpServletResponse);
+        }
+
+        public PrintWriter getWriter() throws IOException {
+            return new PrintWriter(new NullWriter());
+        }
+
+        public ServletOutputStream getOutputStream() throws IOException {
+            return new NullServletOutputStream();
+        }
+    }
+
+    /**
+     * Null {@link ServletOutputStream}.
+     */
+    private class NullServletOutputStream extends ServletOutputStream {
+        public void write(int b) throws IOException {
+        }
+        public void write(byte b[]) throws IOException {
+        }
+        public void write(byte b[], int off, int len) throws IOException {
+        }
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/actions/routing/JMSRouter.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -45,6 +45,7 @@
 import org.jboss.internal.soa.esb.rosetta.pooling.JmsSession;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.eprs.JMSEpr;
 import org.jboss.soa.esb.common.Configuration;
 import org.jboss.soa.esb.helpers.ConfigTree;
@@ -137,10 +138,6 @@
      */
     private String queueName;
     /**
-     * JMS Queue setup.
-     */
-    private JMSSendQueueSetup queueSetup;
-    /**
      * Strategy for setting JMSProperties
      */
     private final JMSPropertiesSetter jmsPropertiesStrategy ;
@@ -164,6 +161,25 @@
 	private String connectionFactory;
 
     /**
+     * The pool to use for the jms routing.
+     */
+    private JmsConnectionPool pool ;
+    /**
+     * The jms target destination for routing.
+     */
+    private Destination jmsDestination ;
+    /**
+     * Thread local used for passing JmsSession between methods.
+     * This is to allow modifications without changing the API.
+     */
+    private ThreadLocal<JmsSession> SESSION = new ThreadLocal<JmsSession>() ;
+    /**
+     * The JMS reply to destination.
+     */
+    private String jmsReplyToName ;
+
+    
+    /**
      * Sole public constructor.
      * 
      * @param propertiesTree Action properties.
@@ -192,10 +208,10 @@
         if ( ttlStr != null )
 	        timeToLive = Long.parseLong( ttlStr );
 
-        jndiContextFactory = properties.getAttribute( JMSEpr.JNDI_CONTEXT_FACTORY_TAG );
-        jndiUrl = properties.getAttribute( JMSEpr.JNDI_URL_TAG );
-        jndiPkgPrefix = properties.getAttribute( JMSEpr.JNDI_PKG_PREFIX_TAG );
-        connectionFactory = properties.getAttribute( JMSEpr.CONNECTION_FACTORY_TAG );
+        jndiContextFactory = properties.getAttribute( JMSEpr.JNDI_CONTEXT_FACTORY_TAG, Configuration.getJndiServerContextFactory());
+        jndiUrl = properties.getAttribute( JMSEpr.JNDI_URL_TAG, Configuration.getJndiServerURL());
+        jndiPkgPrefix = properties.getAttribute( JMSEpr.JNDI_PKG_PREFIX_TAG, Configuration.getJndiServerPkgPrefix());
+        connectionFactory = properties.getAttribute( JMSEpr.CONNECTION_FACTORY_TAG, "ConnectionFactory");
         
         final String propertyStrategy = properties.getAttribute(PROPERTY_STRATEGY) ;
         if (propertyStrategy == null) {
@@ -215,8 +231,17 @@
             throw new ConfigurationException("'" + SECURITY_PRINCIPAL + "' must be accompanied by a '" + SECURITY_CREDITIAL + "'");
         else if ( securityCredential != null && securityPrincipal == null ) 
             throw new ConfigurationException("'" + SECURITY_CREDITIAL + "' must be accompanied by a '" + SECURITY_PRINCIPAL + "'");
-
-        createQueueSetup( queueName, jndiContextFactory, jndiUrl, jndiPkgPrefix, connectionFactory, securityPrincipal, securityCredential );
+        
+        final Properties environment = getEnvironment() ;
+        try {
+            pool = ( securityPrincipal != null )  ? 
+                    JmsConnectionPoolContainer.getPool(environment, connectionFactory, securityPrincipal, securityCredential) :
+                    JmsConnectionPoolContainer.getPool(environment, connectionFactory );
+        } catch (final ConnectionException ce) {
+            throw new ConfigurationException("Unexpected error obtaining JMS connection pool") ;
+        }
+        
+        createQueueSetup(queueName, jndiContextFactory, jndiUrl, jndiPkgPrefix, connectionFactory, securityPrincipal, securityCredential);
     }
 
     /**
@@ -235,60 +260,95 @@
      * @see org.jboss.soa.esb.actions.routing.AbstractRouter#route(java.lang.Object)
      */
     public void route(Object message) throws ActionProcessingException {
-
-    	if(!(message instanceof org.jboss.soa.esb.message.Message)) {
-            throw new ActionProcessingException("Cannot send Object [" + message.getClass().getName() + "] to destination [" + queueName + "]. Object must be an instance of org.jboss.soa.esb.message.Message) .");
+        final JmsSession jmsSession = getJmsSession() ;
+        try {
+            handleRouting(jmsSession, message) ;
+        } catch (final JMSException jmse) {
+            try {
+                if (jmsSession.getTransacted()) {
+                    jmsSession.rollback() ;
+                    throw new ActionProcessingException("Unexpected exception routing message", jmse) ;
+                } else {
+                    // Try to acquire again
+                    final JmsSession newJmsSession = getJmsSession() ;
+                    try {
+                        handleRouting(newJmsSession, message) ;
+                    } finally {
+                        pool.closeSession(newJmsSession) ;
+                    }
+                }
+            } catch (final JMSException jmse2) {
+                throw new ActionProcessingException("Unexpected exception routing message", jmse) ;
+            }
+        } finally {
+            pool.closeSession(jmsSession) ;
         }
-
-		final org.jboss.soa.esb.message.Message esbMessage = (org.jboss.soa.esb.message.Message)message;
-
+    }
+    
+    private void handleRouting(final JmsSession jmsSession, Object message) throws JMSException, ActionProcessingException {
+        SESSION.set(jmsSession) ;
         try {
-        	Message jmsMessage = null;
+            if(!(message instanceof org.jboss.soa.esb.message.Message)) {
+                throw new ActionProcessingException("Cannot send Object [" + message.getClass().getName() + "] to destination [" + queueName + "]. Object must be an instance of org.jboss.soa.esb.message.Message) .");
+            }
+        
+            final org.jboss.soa.esb.message.Message esbMessage = (org.jboss.soa.esb.message.Message)message;
 
-        	if ( unwrap ) {
-				Object objectFromBody = getPayloadProxy().getPayload(esbMessage);
-				jmsMessage = createJMSMessageWithObjectType( objectFromBody );
+            try {
+                Message jmsMessage = null;
+                
+                if ( unwrap ) {
+                    Object objectFromBody = getPayloadProxy().getPayload(esbMessage);
+                    jmsMessage = createJMSMessageWithObjectType( objectFromBody );
+                } 
+                else  {
+                    jmsMessage = createObjectMessage(Util.serialize(esbMessage));
+                }
+                
+                setStringProperties(jmsMessage);
+                setJMSProperties( esbMessage, jmsMessage );
+                setJMSReplyTo( jmsMessage, esbMessage );
+                send( jmsMessage );
+            } catch (JMSException jmse) {
+                throw jmse ;
+            } catch(Exception e) {
+                final String errorMessage = "Exception while sending message [" + message + "] to destination [" + queueName + "]." ;
+                logger.error(errorMessage);
+                throw new ActionProcessingException(errorMessage, e);
             }
-        	else  {
-            	jmsMessage = createObjectMessage(Util.serialize(esbMessage));
-        	}
+        } finally {
+            SESSION.set(null) ;
+        }
+    }
 
-            setStringProperties(jmsMessage);
-            setJMSProperties( esbMessage, jmsMessage );
-            setJMSReplyTo( jmsMessage, esbMessage );
-            send( jmsMessage );
-
-        } catch(Exception e) {
-        	StringBuilder sb = new StringBuilder();
-        	sb.append("Exception while sending message [").append(message).append("] to destination [");
-
-            if (queueSetup != null)
-            	sb.append(queueSetup.destinationName).append("].");
-            else
-            	sb.append("null ].");
-
-            String errorMessage = sb.toString();
-            logger.error(errorMessage, e);
-            throw new ActionProcessingException(errorMessage, e);
+    private JmsSession getJmsSession() throws ActionProcessingException {
+        try {
+            return pool.getSession() ;
+        } catch (final ConnectionException ce) {
+            throw new ActionProcessingException("Unexpected ConnectionException acquiring JMS session", ce) ;
+        } catch (NamingException ne) {
+            throw new ActionProcessingException("Unexpected NamingException acquiring JMS session", ne) ;
+        } catch (JMSException jmse) {
+            throw new ActionProcessingException("Unexpected JMSException acquiring JMS session", jmse) ;
         }
     }
-
+    
     protected Message createJMSMessageWithObjectType( Object objectFromBody ) throws JMSException
 	{
 		Message jmsMessage = null;
 		if(objectFromBody instanceof String) {
-        	jmsMessage = queueSetup.jmsSession.createTextMessage();
+        	jmsMessage = SESSION.get().createTextMessage();
 
             if(logger.isDebugEnabled()) {
-                logger.debug("Sending Text message: [" + objectFromBody + "] to destination [" + queueSetup.destinationName + "].");
+                logger.debug("Sending Text message: [" + objectFromBody + "] to destination [" + queueName + "].");
             }
 
             ((TextMessage)jmsMessage).setText((String)objectFromBody);
         } else if(objectFromBody instanceof byte[]) {
-        	jmsMessage = queueSetup.jmsSession.createBytesMessage();
+        	jmsMessage = SESSION.get().createBytesMessage();
 
             if(logger.isDebugEnabled()) {
-                logger.debug("Sending byte[] message: [" + objectFromBody + "] to destination [" + queueSetup.destinationName + "].");
+                logger.debug("Sending byte[] message: [" + objectFromBody + "] to destination [" + queueName + "].");
             }
 
             ((BytesMessage)jmsMessage).writeBytes((byte[])objectFromBody);
@@ -301,7 +361,22 @@
 
 	protected void send( Message jmsMessage ) throws JMSException
 	{
-		queueSetup.jmsProducer.send(jmsMessage);
+		final MessageProducer jmsProducer = SESSION.get().createProducer(jmsDestination) ;
+		try {
+			jmsProducer.setPriority(priority) ;
+			jmsProducer.setDeliveryMode(deliveryMode) ;
+			jmsProducer.setTimeToLive(timeToLive) ;
+			
+			// The following seems to be broken but is copied for now.
+			if (jmsReplyToName != null) {
+				final Destination jmsReplyToDestination = SESSION.get().createQueue(jmsReplyToName);
+				jmsMessage.setJMSReplyTo(jmsReplyToDestination);
+			}
+			
+			jmsProducer.send(jmsMessage);
+		} finally {
+			jmsProducer.close() ;
+		}
 	}
 
 	/**
@@ -318,10 +393,10 @@
 
 	protected Message createObjectMessage(Object message) throws JMSException {
 		Message jmsMessage;
-		jmsMessage = queueSetup.jmsSession.createObjectMessage();
+		jmsMessage = SESSION.get().createObjectMessage();
 
 		if(logger.isDebugEnabled()) {
-		    logger.debug("Sending Object message: [" + message + "] to destination [" + queueSetup.destinationName + "].");
+		    logger.debug("Sending Object message: [" + message + "] to destination [" + queueName + "].");
 		}
 		((ObjectMessage)jmsMessage).setObject((Serializable) message);
 		return jmsMessage;
@@ -353,17 +428,6 @@
         return null;
     }
 
-    @Override
-    protected void finalize() throws Throwable {
-        queueSetup.close();
-        super.finalize();
-    }
-
-    protected void createQueueSetup( String queueName ) throws ConfigurationException
-    {
-    	createQueueSetup( queueName, null, null, null, null, null, null );
-    }
-
     protected void createQueueSetup( String queueName,
     		String jndiContextFactory,
     		String jndiUrl,
@@ -372,124 +436,65 @@
     		String securityPrincipal,
     		String securityCredential) throws ConfigurationException
 	{
-		try {
-			queueSetup = new JMSSendQueueSetup(queueName, jndiContextFactory, jndiUrl, jndiPkgPrefix, connectionFactory, securityPrincipal, securityCredential );
-			queueSetup.setDeliveryMode( deliveryMode );
-			queueSetup.setPriority( priority );
-			queueSetup.setTimeToLive( timeToLive );
-			if ( logger.isDebugEnabled() )
-			{
-				logger.debug( "JMSRouter DeliveryMode : " + deliveryMode);
-				logger.debug( "JMSRouter Priority : " + priority);
-				logger.debug( "JMSRouter TimeToLive : " + timeToLive);
-			}
-		} catch (Throwable t) {
-			throw new ConfigurationException("Failed to configure JMS Queue for routing.", t);
-		}
-	}
-
-    private static class JMSSendQueueSetup {
-        JmsSession jmsSession;
-        Destination jmsDestination;
-        MessageProducer jmsProducer;
-        String destinationName;
-        JmsConnectionPool pool;
-
-        private JMSSendQueueSetup(String destinationName) throws NamingException, JMSException, ConnectionException, NamingContextException  {
-        	this( destinationName, null, null, null, null, null, null );
-        }
-
-        private JMSSendQueueSetup(String destinationName,
-        		String jndiContextFactory,
-        		String jndiUrl,
-        		String jndiPkgPrefix,
-        		String connectionFactoryName,
-        		String securityPrincipal,
-        		String securityCredential) throws NamingException, JMSException, ConnectionException, NamingContextException  {
-
-        	if ( jndiContextFactory == null )
-                    jndiContextFactory = Configuration.getJndiServerContextFactory();
-            if ( jndiUrl == null )
-                    jndiUrl = Configuration.getJndiServerURL();
-            if ( jndiPkgPrefix == null )
-                    jndiPkgPrefix = Configuration.getJndiServerPkgPrefix();
-            if ( connectionFactoryName == null )
-            	connectionFactoryName = "ConnectionFactory";
-
-            Properties environment = new Properties();
-            environment.setProperty(Context.INITIAL_CONTEXT_FACTORY, jndiContextFactory);
-            environment.setProperty(Context.PROVIDER_URL, jndiUrl);
-            environment.setProperty(Context.URL_PKG_PREFIXES, jndiPkgPrefix);
-            Context oCtx = NamingContextPool.getNamingContext(environment);
+        final Properties environment = getEnvironment() ;
+		try 
+		{
+            final JmsSession jmsSession = pool.getSession();
             try {
-                pool = ( securityPrincipal != null )  ? 
-                	JmsConnectionPoolContainer.getPool(environment, connectionFactoryName, securityPrincipal, securityCredential) :
-            		JmsConnectionPoolContainer.getPool(environment, connectionFactoryName );
-                
-                this.destinationName = destinationName;
-                
-                jmsSession = pool.getSession();
-                boolean clean = true ;
+                Context oCtx = NamingContextPool.getNamingContext(environment);
                 try {
                     try {
-                    	jmsDestination = (Destination) oCtx.lookup(destinationName);
+                        jmsDestination = (Queue) oCtx.lookup(queueName);
                     } catch (NamingException ne) {
                         try {
                             oCtx = NamingContextPool.replaceNamingContext(oCtx, environment);
-                            jmsDestination = (Queue) oCtx.lookup(destinationName);
+                            jmsDestination = (Queue) oCtx.lookup(queueName);
                         } catch (NamingException nex) {
                             //ActiveMQ
-                            jmsDestination = jmsSession.createQueue(destinationName);
+                            jmsDestination = jmsSession.createQueue(queueName);
                         }
                     }
-                    jmsProducer = jmsSession.createProducer(jmsDestination);
-                    clean = false ;
+                    final MessageProducer jmsProducer = jmsSession.createProducer(jmsDestination);
+                    jmsProducer.close() ;
                 } finally {
-                    if (clean) {
-                        pool.closeSession(jmsSession) ;
-                    }
+                    NamingContextPool.releaseNamingContext(oCtx) ;
                 }
             } finally {
-                NamingContextPool.releaseNamingContext(oCtx) ;
+                pool.closeSession(jmsSession) ;
             }
-        }
-
-        public void setDeliveryMode(final int deliveryMode ) throws JMSException
-        {
-        	if ( jmsProducer != null )
-        		jmsProducer.setDeliveryMode( deliveryMode );
-        }
-
-        public void setPriority(final int priority ) throws JMSException
-        {
-        	if ( jmsProducer != null )
-        		jmsProducer.setPriority( priority );
-        }
-
-        public void setTimeToLive(final long ttl ) throws JMSException
-        {
-        	if ( jmsProducer != null )
-        		jmsProducer.setTimeToLive( ttl );
-        }
-
-        private void close() {
-            try {
-	            pool.closeSession(jmsSession);
-                if (jmsProducer!=null) {
-                    jmsProducer.close();
-                }
-            } catch (Exception e) {
-                logger.error("Unable to close JMS Queue Setup.", e);
-            } 
-        }
+		} 
+		catch (Throwable t) 
+		{
+			throw new ConfigurationException("Failed to configure JMS Queue for routing.", t);
+		}
     }
+    
+    private Properties getEnvironment()
+    {
+        final Properties environment = new Properties();
+        environment.setProperty(Context.PROVIDER_URL, jndiUrl);
+        environment.setProperty(Context.INITIAL_CONTEXT_FACTORY, jndiContextFactory);
+        environment.setProperty(Context.URL_PKG_PREFIXES, jndiPkgPrefix);
+        return environment ;
+    }
+    
+    protected void createQueueSetup( String queueName ) throws ConfigurationException
+	{
+    	createQueueSetup(queueName, null, null, null, null, null, null);
+	}
+    
 
 	protected void setJMSReplyTo( final Message jmsMessage, final org.jboss.soa.esb.message.Message esbMessage ) throws URISyntaxException, JMSException, NamingException, ConnectionException, NamingContextException
 	{
-		Destination destination = (Destination) esbMessage.getProperties().getProperty( JMSPropertiesSetter.JMS_REPLY_TO );
-		if ( destination != null )
+		EPR replyToEpr = esbMessage.getHeader().getCall().getReplyTo();
+		if( !( replyToEpr instanceof JMSEpr) )
+			return;
+		
+		JMSEpr jmsEpr = (JMSEpr) replyToEpr;
+		String destinationType = jmsEpr.getDestinationType();
+		if ( destinationType.equals( JMSEpr.QUEUE_TYPE ))
 		{
-			jmsMessage.setJMSReplyTo( (Destination) destination );
+            jmsReplyToName = jmsEpr.getDestinationName() ;
 		}
 	}
 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/InVMEpr.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/InVMEpr.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/InVMEpr.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -284,7 +284,7 @@
         AssertArgument.isNotNullAndNotEmpty(catagory, "catagory");
         AssertArgument.isNotNullAndNotEmpty(name, "name");
 
-        byte[] bytes = (catagory.trim() + name.trim()).getBytes();
+        byte[] bytes = (catagory.trim() + "$$$$$$$$$$$$" + name.trim()).getBytes();
 
         return new String(Hex.encodeHex(bytes));
     }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/addressing/eprs/JMSEpr.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -247,8 +247,10 @@
 				}
 			}
 		}
-		if (uri != null)
-			setAddr(new PortReference(JMS_PROTOCOL + PROTOCOL_SEPARATOR + uri + "/" + name));
+		if (uri != null) {
+			final String address = getJmsAddress(uri, name) ;
+			setAddr(new PortReference(address));
+		}
 	}
 
 	/**
@@ -505,7 +507,7 @@
 			if (destinationType.equals(QUEUE_TYPE)
 					|| destinationType.equals(TOPIC_TYPE))
 			{
-				String uri = Configuration.getJndiServerURL();
+				String uri = null;
 				String name = null;
 				PortReference addr = new PortReference();
 				
@@ -526,14 +528,20 @@
                     			addr.addExtension(key.toString(), environment.getProperty(key.toString()));
                     	}
                     }
-                    
-                    
                 }
+                
+                if (uri == null) {
+                    uri = addr.getExtensionValue(Context.PROVIDER_URL) ;
+                }
+                
+                if (uri == null) {
+                    uri = Configuration.getJndiServerURL() ;
+                }
 	
                 if (name == null)
                 	name = destinationName;
                 
-                addr.setAddress(JMS_PROTOCOL + PROTOCOL_SEPARATOR + uri + "/" + name);
+                addr.setAddress(getJmsAddress(uri, name));
 
 				addr.addExtension(DESTINATION_TYPE_TAG, destinationType);
 				
@@ -751,6 +759,23 @@
 	    return new JMSEpr(this);
 	}
 
+	private String getJmsAddress(final String uri, final String name)
+	{
+		try {
+			final URI uriVal = new URI(uri) ;
+			final String host = uriVal.getHost() ;
+			if (host != null) {
+				final int port = uriVal.getPort() ;
+				if (port > 0) {
+					return JMS_PROTOCOL + PROTOCOL_SEPARATOR + host + ":" + port + "/" + name;
+				} else {
+					return JMS_PROTOCOL + PROTOCOL_SEPARATOR + host + "/" + name;
+				}
+			}
+		} catch (final URISyntaxException urise) {}
+		return JMS_PROTOCOL + PROTOCOL_SEPARATOR + uri + "/" + name;
+	}
+
 	public String toString ()
 	{
 		return "JMSEpr [ "+super.getAddr().extendedToString()+" ]";
@@ -776,4 +801,4 @@
 			throw new ExceptionInInitializerError(ex.toString());
 		}
 	}
-}
\ No newline at end of file
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/client/ServiceInvoker.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -19,18 +19,15 @@
  */
 package org.jboss.soa.esb.client;
 
-import java.security.AccessController;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
-import javax.security.auth.Subject;
+import javax.crypto.SealedObject;
 
 import org.apache.log4j.Logger;
 import org.jboss.internal.soa.esb.addressing.helpers.EPRHelper;
 import org.jboss.internal.soa.esb.assertion.AssertArgument;
-import org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl;
-import org.jboss.internal.soa.esb.services.security.PrivateCryptoUtil;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.Service;
 import org.jboss.soa.esb.addressing.Call;
@@ -47,9 +44,9 @@
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierFactory;
 import org.jboss.soa.esb.couriers.CourierTimeoutException;
+import org.jboss.soa.esb.couriers.CourierMarshalUnmarshalException;
+import org.jboss.soa.esb.couriers.CourierServiceBindException;
 import org.jboss.soa.esb.couriers.CourierTransportException;
-import org.jboss.soa.esb.couriers.CourierServiceBindException;
-import org.jboss.soa.esb.couriers.CourierMarshalUnmarshalException;
 import org.jboss.soa.esb.couriers.CourierUtil;
 import org.jboss.soa.esb.couriers.FaultMessageException;
 import org.jboss.soa.esb.couriers.TwoWayCourier;
@@ -69,7 +66,7 @@
 import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
 import org.jboss.soa.esb.services.security.SecurityContext;
 import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
 import org.jboss.soa.esb.util.ClassUtil;
 
 /**
@@ -110,7 +107,6 @@
      * Class logger.
      */
     private static Logger logger = Logger.getLogger(ServiceInvoker.class);
-
     /**
      * The target service.
      */
@@ -304,104 +300,114 @@
     private Message post(Message message, EPRInvoker eprInvoker) throws MessageDeliverException, FaultMessageException {
         boolean staleEPRCache = true;
         boolean initialPass = true;
-        //We are removing dead EPRs from the serviceClusterInfo. *Previous* deliveries maybe have
-        //removed EPRs that have now come back to life. We should try once more to pull a fresh list of EPRS
-        //from the registry before we give up (and fail-over to redelivery at a later time in the care
-        //of asyncDeliver). I think the end-user expects the message to be delivered successfully if there
-        //is a healthy EPR out there. So this is really for EPR cache management (serviceClusterInfo will
-        //be empty when going for the 2nd attempt, or else there delivery was successful and there will be
-        //no second attempt!).
-        while (staleEPRCache) {
-            if ((serviceClusterInfo.getEPRs().size() == 0) || (new Date().after(expirationDate))) {
-                loadServiceClusterInfo();
 
-                if (initialPass && (serviceClusterInfo.getEPRs().size() == 0)) // zero from a previous send
-                {
-                	/*
-                	 * We need to check to see if this instance used up all of it's attempts to deliver
-                	 * in a previous deliver or we'll only refresh the cache once per subsequent send
-                	 * because we will have exhausted the EPRs in the cache, i.e., size==0.
-                	 *
-                	 * When the instance is originally created we do an initial cache fetch. Until this
-                	 * check, that cache fetch was not being done again after a complete failure. Unlikely
-                	 * to cause problems anyway, but possible.
-                	 */
-                	initialPass = false;
-                }
-                else
-                	staleEPRCache = false;
-            }
-            Message replyMessage;
-            EPR epr;
-            // Iterate over all the EPRs in the list until delivered
-            while ((epr = loadBalancer.chooseEPR(serviceClusterInfo)) != null) {
-                try
-                {
-                    final Subject subject = Subject.getSubject(AccessController.getContext());
-                    if (subject != null)
+        /*
+         * Re-attach encrypted SecurityContext to outgoing message.
+         */
+        final SealedObject sealedObject = SecurityContext.getSecurityContext();
+        if (sealedObject != null)
+        {
+            message.getContext().setContext(SecurityService.CONTEXT, sealedObject);
+        }
+        /*
+         * Re-attach encrypted AuthenticationRequest to outgoing message.
+         */
+        final byte[] encryptedAuthRequest = AuthenticationRequestImpl.getEncryptedAuthRequest();
+        if (encryptedAuthRequest != null)
+        {
+            message.getContext().setContext(SecurityService.AUTH_REQUEST, encryptedAuthRequest);
+        }
+
+        try {
+            //We are removing dead EPRs from the serviceClusterInfo. *Previous* deliveries maybe have
+            //removed EPRs that have now come back to life. We should try once more to pull a fresh list of EPRS
+            //from the registry before we give up (and fail-over to redelivery at a later time in the care
+            //of asyncDeliver). I think the end-user expects the message to be delivered successfully if there
+            //is a healthy EPR out there. So this is really for EPR cache management (serviceClusterInfo will
+            //be empty when going for the 2nd attempt, or else there delivery was successful and there will be
+            //no second attempt!).
+            while (staleEPRCache) {
+                if ((serviceClusterInfo.getEPRs().size() == 0) || (new Date().after(expirationDate))) {
+                    loadServiceClusterInfo();
+    
+                    if (initialPass && (serviceClusterInfo.getEPRs().size() == 0)) // zero from a previous send
                     {
-                        logger.info("Subject in ServiceInvoker " + subject);
-                        try
-                        {
-                            byte[] encrypted = PrivateCryptoUtil.INSTANCE.encrypt(new SecurityContext(subject));
-                            message.getContext().setContext(SecurityService.CONTEXT, encrypted);
-                        }
-                        catch (final SecurityServiceException e)
-                        {
-                            logger.error("Could not encrypt the security conext. Will not be added to the outgoing message", e);
-                        }
+                    	/*
+                    	 * We need to check to see if this instance used up all of it's attempts to deliver
+                    	 * in a previous deliver or we'll only refresh the cache once per subsequent send
+                    	 * because we will have exhausted the EPRs in the cache, i.e., size==0.
+                    	 *
+                    	 * When the instance is originally created we do an initial cache fetch. Until this
+                    	 * check, that cache fetch was not being done again after a complete failure. Unlikely
+                    	 * to cause problems anyway, but possible.
+                    	 */
+                    	initialPass = false;
                     }
-
-                    replyMessage = eprInvoker.attemptDelivery(message, epr);
-                    if (replyMessage != null) {
-                        if(eprInvoker.synchronous) {
-                            // remove the security context so that it is not exposed to the action pipeline.
-                            replyMessage.getContext().removeContext(SecurityService.CONTEXT);
-
-                            if (Type.isFaultMessage(replyMessage)) {
-                                Factory.createExceptionFromFault(replyMessage) ;
+                    else
+                    	staleEPRCache = false;
+                }
+                Message replyMessage;
+                EPR epr;
+                // Iterate over all the EPRs in the list until delivered
+                while ((epr = loadBalancer.chooseEPR(serviceClusterInfo)) != null) {
+                	try
+                	{
+    	                replyMessage = eprInvoker.attemptDelivery(message, epr);
+    	                if (replyMessage != null) {
+                            if(eprInvoker.synchronous) {
+                                // remove the security context so that it is not exposed to the action pipeline.
+                                replyMessage.getContext().removeContext(SecurityService.CONTEXT);
+                                replyMessage.getContext().removeContext(SecurityService.AUTH_REQUEST);
+    
+                                if (Type.isFaultMessage(replyMessage)) {
+                                    Factory.createExceptionFromFault(replyMessage) ;
+                                }
+    
+                                // We've delivered it, we're done!
+                                return replyMessage;
+                            } else {
+                                // It was an async delivery.  The replyMessage was just an indicator that
+                                // the delivery succeeded.  Return null...
+                                return null;
                             }
-
-                            // We've delivered it, we're done!
-                            return replyMessage;
                         } else {
-                            // It was an async delivery.  The replyMessage was just an indicator that
-                            // the delivery succeeded.  Return null...
-                            return null;
-                        }
-                    } else {
-                        logger.info("Unresponsive EPR: " + epr+" for message: "+message.getHeader());
-
-                        serviceClusterInfo.removeDeadEPR(epr);
-
-                        /*
-                         * So far we've only removed the EPR from the cache. Should we
-                         * also remove it from the registry?
-                         */
-
-                        if (removeDeadEprs)
-                            RegistryUtil.unregister(service.getCategory(), service.getName(), epr);
-
-                        /*
-                         * If the message property is set to fail immediately, or the global property is set,
-                         * then don't do retries even if there are other EPRs in the list.
-                         */
-
-                        if (("true".equals(message.getProperties().getProperty(Environment.EXCEPTION_ON_DELIVERY_FAILURE, "false")) || exceptionOnDeliveryFailure))
-                            throw new MessageDeliverException("Failed to deliver message ["+message.getHeader()+"] to Service [" + service + "].  Told not to retry.");
-                    }
+    	                    logger.info("Unresponsive EPR: " + epr+" for message: "+message.getHeader());
+    
+    	                    serviceClusterInfo.removeDeadEPR(epr);
+    
+    	                    /*
+    	                     * So far we've only removed the EPR from the cache. Should we
+    	                     * also remove it from the registry?
+    	                     */
+    
+    	                    if (removeDeadEprs)
+    	                    	RegistryUtil.unregister(service.getCategory(), service.getName(), epr);
+    
+    	                    /*
+    	                     * If the message property is set to fail immediately, or the global property is set,
+    	                     * then don't do retries even if there are other EPRs in the list.
+    	                     */
+    
+    	                    if (("true".equals(message.getProperties().getProperty(Environment.EXCEPTION_ON_DELIVERY_FAILURE, "false")) || exceptionOnDeliveryFailure))
+    	                	throw new MessageDeliverException("Failed to deliver message ["+message.getHeader()+"] to Service [" + service + "].  Told not to retry.");
+    	                }
+                	}
+                	catch (MalformedEPRException ex)  // so we can differentiate failure modes, since returning null is limiting
+                	{
+                		logger.debug("Invalid EPR for service (probably ESB-unaware): ignoring for message: "+message.getHeader());
+    
+                		serviceClusterInfo.removeDeadEPR(epr);
+    
+                		/*
+                		 * DO NOT remove from the registry - it is not dead!!
+                		 */
+                	}
+    
                 }
-                catch (MalformedEPRException ex)  // so we can differentiate failure modes, since returning null is limiting
-                {
-                    logger.debug("Invalid EPR for service (probably ESB-unaware): ignoring for message: "+message.getHeader());
-
-                    serviceClusterInfo.removeDeadEPR(epr);
-
-                    /*
-                     * DO NOT remove from the registry - it is not dead!!
-                     */
-                }
             }
+        } finally {
+            message.getContext().removeContext(SecurityService.CONTEXT);
+            message.getContext().removeContext(SecurityService.AUTH_REQUEST);
         }
 
         // Throw exception if delivery failed...
@@ -447,7 +453,7 @@
         try {
             return DefaultReplyTo.getReplyTo(toEpr);
         } catch (CourierException e) {
-            throw new ConfigurationException("Unsupported EPR type for synchronous reply on 'to' address " + toEpr, e);
+            throw new ConfigurationException("Bad configuration. Unable to support synchronous reply on 'to' address " + toEpr, e);
         } catch (MalformedEPRException e) {
             throw new ConfigurationException("Bad configuration. Unable to support synchronous reply on 'to' address " + toEpr, e);
         }
@@ -610,15 +616,12 @@
                     }
                     if (courier.deliver(message)) {
                         if (synchronous) {
-                            
+                            courier.cleanup() ;
                             // JBESB-1016 replyToEPR has to be non-null or we'd have dropped out by this point!
 
                             // do we need to do this for synchronous calls? Vagueries of Couriers?
 
-                            courier.cleanup() ;
-                            
                             courier.setReplyToEpr(replyToEPR);
-                            
                             return courier.pickup(timeout);
                         } else {
                             return message;

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Configuration.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Configuration.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Configuration.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -36,8 +36,6 @@
 import org.jboss.soa.esb.helpers.NamingContextException;
 import org.jboss.soa.esb.helpers.NamingContextPool;
 
-import com.arjuna.common.util.propertyservice.PropertyManager;
-
 public class Configuration
 {
     private static Logger _logger = Logger.getLogger(Configuration.class);
@@ -462,45 +460,7 @@
 		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_IMPEMENTATION_CLASS);
 	}
 
-	public static String getSecurityServiceConfigUrl()
-	{
-		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_CONFIG_URL);
-	}
-
 	/*
-	 *  Private Keystore getters
-	 */
-	public static String getSecurityServicePrivateKeystore()
-	{
-		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEYSTORE);
-	}
-
-	public static String getSecurityServicePrivateKeyAlias()
-	{
-		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEY_ALIAS);
-	}
-
-	public static String getSecurityServicePrivateKeyPassword()
-	{
-		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEY_PASS);
-	}
-
-	public static String getSecurityServicePrivateKeystorePassword()
-	{
-		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEYSTORE_PASS);
-	}
-
-	public static String getSecurityServicePrivateKeystoreType()
-	{
-		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEYSTORE_TYPE);
-	}
-
-    public static String getSecurityServicePrivateKeyTransformation()
-    {
-        return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_PRIVATE_KEY_TRANSFORMATION);
-    }
-
-	/*
 	 *  Public Keystore getters
 	 */
 
@@ -539,8 +499,33 @@
 		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_CALLBACK_HANLDER_CLASS);
 	}
 
+	public static String getSecurityServiceSealAlgorithm()
+	{
+		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_SEAL_ALGORITHM);
+	}
+
+	public static String getSecurityServiceSealKeySize()
+	{
+		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_SEAL_KEYSIZE);
+	}
+
+	public static String getSecurityServiceContextTimeout()
+	{
+		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_CONTEXT_TIMEOUT);
+	}
+
 	public static Properties getSecurityServiceProperies()
 	{
 		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperties();
 	}
+
+	/**
+	 * The SecurityContextPropagator implememtation class to use.
+	 *
+	 * @return String The fully qualified name of the SecurityContextPropagator implementation class
+	 */
+	public static String getSecurityContextPropagatorImplementationClass()
+	{
+		return ModulePropertyManager.getPropertyManager(ModulePropertyManager.SECURITY_MODULE).getProperty(Environment.SECURITY_SERVICE_CONTEXT_PROPAGATOR_CLASS);
+	}
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Environment.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Environment.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/common/Environment.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -230,14 +230,9 @@
         public static final String SECURITY_SERVICE_CONFIG_URL                          = "org.jboss.soa.esb.services.security.configUrl";
         public static final String SECURITY_SERVICE_SEAL_ALGORITHM                      = "org.jboss.soa.esb.services.security.sealAlgorithm";
         public static final String SECURITY_SERVICE_SEAL_KEYSIZE                        = "org.jboss.soa.esb.services.security.sealKeySize";
+	public static final String SECURITY_SERVICE_CONTEXT_TIMEOUT			= "org.jboss.soa.esb.services.security.contextTimeout";
+	public static final String SECURITY_SERVICE_CONTEXT_PROPAGATOR_CLASS= "org.jboss.soa.esb.services.security.contextPropagatorImplementationClass";
 
-        public static final String SECURITY_SERVICE_PRIVATE_KEYSTORE            = "org.jboss.soa.esb.services.security.privateKeystore";
-        public static final String SECURITY_SERVICE_PRIVATE_KEYSTORE_TYPE       = "org.jboss.soa.esb.services.security.privateKeystoreType";
-        public static final String SECURITY_SERVICE_PRIVATE_KEYSTORE_PASS       = "org.jboss.soa.esb.services.security.privateKeystorePassword";
-        public static final String SECURITY_SERVICE_PRIVATE_KEY_ALIAS       = "org.jboss.soa.esb.services.security.privateKeyAlias";
-        public static final String SECURITY_SERVICE_PRIVATE_KEY_PASS        = "org.jboss.soa.esb.services.security.privateKeyPassword";
-        public static final String SECURITY_SERVICE_PRIVATE_KEY_TRANSFORMATION = "org.jboss.soa.esb.services.security.privateKeyTransformation";
-
         public static final String SECURITY_SERVICE_PUBLIC_KEYSTORE             = "org.jboss.soa.esb.services.security.publicKeystore";
         public static final String SECURITY_SERVICE_PUBLIC_KEYSTORE_TYPE        = "org.jboss.soa.esb.services.security.publicKeystoreType";
         public static final String SECURITY_SERVICE_PUBLIC_KEYSTORE_PASS        = "org.jboss.soa.esb.services.security.publicKeystorePassword";

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/couriers/CourierFactory.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -93,7 +93,7 @@
      *
      * @param instance New factory instance.
      */
-    protected static void setInstance(CourierFactory instance) {
+    public static void setInstance(CourierFactory instance) {
         CourierFactory.instance = instance;
     }
 
@@ -143,21 +143,32 @@
             return getCourier(null, replyToEPR);
         }    
     }
-    
-    public synchronized InVMCourier getInVMCourier(InVMEpr epr) {
+
+    public synchronized InVMCourier addInVMCourier(InVMEpr epr) {
         String address = epr.getAddr().getAddress();
-        InVMCourier courier = inVMCouriers.get(address);
+        InVMCourier courier = new InVMCourier(epr);
 
-        if (courier == null) {
-            courier = new InVMCourier(epr);
-            inVMCouriers.put(address, courier);
-        }
-
+        inVMCouriers.put(address, courier);
         courier.setActive(true);
 
         return courier;
     }
 
+    public synchronized InVMCourier getInVMCourier(InVMEpr epr) {
+        String address = epr.getAddr().getAddress();
+
+        return inVMCouriers.get(address);
+    }
+
+    public synchronized void removeInVMCourier(InVMEpr epr) {
+        String address = epr.getAddr().getAddress();
+        InVMCourier courier = inVMCouriers.remove(address);
+
+        if(courier != null) {
+            courier.setActive(false);
+        }
+    }
+
     /**
 	 * Obtain a courier which can perform both deliveries and pickups and prime it with 
 	 * the "to address" (toEPR) and the "replyTo address" (replyToEPR). 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/http/configurators/HttpProtocol.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/http/configurators/HttpProtocol.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/http/configurators/HttpProtocol.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -20,12 +20,14 @@
 package org.jboss.soa.esb.http.configurators;
 
 import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.ProxyHost;
 import org.apache.commons.httpclient.contrib.ssl.StrictSSLProtocolSocketFactory;
 import org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory;
 import org.apache.commons.httpclient.protocol.Protocol;
 import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
 import org.apache.commons.ssl.KeyMaterial;
 import org.apache.commons.ssl.SSLClient;
+import org.apache.log4j.Logger;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.http.Configurator;
 import org.jboss.soa.esb.http.protocol.ProtocolSocketFactoryBuilder;
@@ -68,12 +70,14 @@
  * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
  */
 public class HttpProtocol extends Configurator {
+    
+    private Logger log = Logger.getLogger(HttpProtocol.class);
 
     public void configure(HttpClient httpClient, Properties properties) throws ConfigurationException {
         URI targetURI = getTargetURI(properties, true);
         String factory;
         String scheme = targetURI.getScheme();
-        int port = 80; //default to http;
+        final int port ;
         org.apache.commons.httpclient.protocol.Protocol protocol;
         KeyMaterial keyMaterial = null;
         ProtocolSocketFactory socketFactory;
@@ -86,21 +90,68 @@
         if(scheme.equals("https")) {
             factory = properties.getProperty("protocol-socket-factory", StrictSSLProtocolSocketFactory.class.getName());
             keyMaterial = getKeyMaterial(properties);
+            setHttpsProxyHost(httpClient, properties);
 
-            if(port == -1) {
-                port = 443;
-            }
+            port = 443;
         } else {
             factory = properties.getProperty("protocol-socket-factory", DefaultProtocolSocketFactory.class.getName());
+            setHttpProxyHost(httpClient, properties);
+
+            port = 80;
         }
         assertPropertySetAndNotBlank(factory, "protocol-socket-factory");
         socketFactory = createFactoryClass(factory, keyMaterial, properties);
+        
 
         // And finally... configure the host with the protocol....
         protocol = new Protocol(scheme, socketFactory, port);
         Protocol.registerProtocol(scheme, protocol);
     }
-
+    
+    /**
+     * Will create a ProxyHost using the properties 'http.proxyHost' and optionally
+     * the property 'http.proxyPort'.
+     * 
+     * @param httpClient    The HttpClient that should have its host configurations proxy host set.
+     * @param properties    The properties that should be set.
+     */
+    void setHttpProxyHost(final HttpClient httpClient, final Properties properties) {
+        ProxyHost proxyHost = createProxyHost("http.proxyHost", "http.proxyPort", 80, properties);
+        if (proxyHost != null) {
+            httpClient.getHostConfiguration().setProxyHost(proxyHost);
+        }
+    }
+    
+    /**
+     * Will create a ProxyHost using the properties 'https.proxyHost' and optionally
+     * the property 'https.proxyPort'.
+     * 
+     * @param httpClient    The HttpClient that should have its host configurations proxy host set.
+     * @param properties    The properties that should be set.
+     */
+    void setHttpsProxyHost(final HttpClient httpClient, final Properties properties) {
+        ProxyHost proxyHost = createProxyHost("https.proxyHost", "https.proxyPort", 443, properties);
+        if (proxyHost != null) {
+            httpClient.getHostConfiguration().setProxyHost(proxyHost);
+        }
+    }
+    
+    private ProxyHost createProxyHost(final String hostPropertyName, final String portPropertyName, final int defaultPort, final Properties properties) {
+        final String proxyHost = (String) properties.get(hostPropertyName);
+        ProxyHost proxy = null;
+        if (proxyHost != null) {
+            final String proxyPortStr = (String) properties.get(portPropertyName);
+            if (proxyPortStr == null) { 
+                proxy = new ProxyHost(proxyHost, defaultPort);
+            }
+            else {
+                proxy = new ProxyHost(proxyHost, Integer.parseInt(proxyPortStr));
+            }
+            log.debug("ProxyHost " + proxy.toString());
+        }
+        return proxy;
+    }
+    
     private KeyMaterial getKeyMaterial(Properties properties) throws ConfigurationException {
         String keyStore = properties.getProperty("keystore", "/keystore");
         String keyStorePassword = properties.getProperty("keystore-passw", "changeit");

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/ListenerTagNames.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -57,6 +57,7 @@
 	public static final String TARGET_SERVICE_NAME_TAG	    = "target-service-name";
 	public static final String GATEWAY_CLASS_TAG            = "gatewayClass";
 	public static final String IS_GATEWAY_TAG				= "is-gateway";
+    public static final String SERVICE_INVOKER_TIMEOUT      = "serviceInvokerTimeout";
 
 	/** Listeners */
 	public static final String LISTENER_CLASS_TAG            = "listenerClass";
@@ -170,4 +171,5 @@
     public static final String SCHEDULE_SIMPLE_EXEC = "scheduleSimpleExec" ;
     public static final String SCHEDULE_CRON_EXPRESSION = "scheduleCronExpression" ;
     public static final String SCHEDULE_PROPERTIES = "ScheduleProperties" ;
+    
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/Configuration.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -111,8 +111,20 @@
              ManagedLifecycleController controller = new ManagedLifecycleController(instances);
 
              // In parallel, create a map of the contract publication info...
-             ServicePublisher.addServicePublishers(controller, generator.getModel().getServicePublishers());
-             ServicePublisher.addContractReferencePublishers(controller, publishers) ;
+             boolean success = false ;
+             try
+             {
+                 ServicePublisher.addServicePublishers(controller, generator.getModel().getServicePublishers());
+                 ServicePublisher.addContractReferencePublishers(controller, publishers) ;
+                 success = true ;
+             }
+             finally
+             {
+                 if (!success)
+                 {
+                     ServicePublisher.removeServicePublishers(controller) ;
+                 }
+             }
             return controller;
          }
          else

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/ConfigurationController.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -71,6 +71,7 @@
         private final Condition endedChanged = endedLock.newCondition() ;
         private final Condition endRequested = endedLock.newCondition() ;
 	private final String mConfigFileName;
+	private final String mConfigName;
 	private final String mValidationFileName;
 	private final File mConfigDirectory;
         private final String mListenerConfigFile;
@@ -113,6 +114,9 @@
 	{
 		mConfigFileName = configFileName;
 		File configFile = new File(configFileName);
+		final String absolute = configFile.getAbsoluteFile().toURI().getPath() ;
+		final int separator = absolute.indexOf(':') ;
+		mConfigName = (separator >= 0 ? absolute.substring(separator+1) : absolute) ;
 		File parent = configFile.getParentFile();
 		mConfigDirectory = (null!=parent) ? parent : new File("");
                 final File listenerConfigFile = new File(mConfigDirectory, Generator.ESB_CONFIG_XML_FILE) ;
@@ -337,7 +341,7 @@
 	public ManagedLifecycleController startController(final ModelAdapter configModel)
 	    throws ParamRepositoryException, SAXException, ManagedLifecycleException, ConfigurationException
 	{
-	    LifecycleResourceManager.getSingleton().associateDeployment(mConfigFileName) ;
+	    LifecycleResourceManager.getSingleton().associateDeployment(mConfigName) ;
             return startController(configModel, LifecycleUtil.getConfigTree(mListenerConfigFile), LifecycleUtil.getConfigTree(mGatewayConfigFile)) ;
 	}
 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployer.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -49,10 +49,7 @@
 import org.jboss.deployment.SubDeployerSupport;
 import org.jboss.internal.soa.esb.publish.ContractReferencePublisher;
 import org.jboss.internal.soa.esb.util.XMLHelper;
-import org.jboss.internal.soa.esb.webservice.ESBContractGenerator;
-import org.jboss.internal.soa.esb.webservice.ESBServiceContractPublisher;
-import org.jboss.internal.soa.esb.webservice.ESBServiceEndpointInfo;
-import org.jboss.internal.soa.esb.webservice.JAXWSProviderClassGenerator;
+import org.jboss.internal.soa.esb.webservice.*;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.MetaData;
 import org.jboss.metadata.XmlFileLoader;
@@ -453,8 +450,10 @@
        {
            if (endpointServices.size() > 0)
            {
-               final StringWriter servletDefinition = new StringWriter() ;
-               final StringWriter servletMapping = new StringWriter() ;
+               final StringWriter filterDefinitions = new StringWriter() ;
+               final StringWriter filterMappings = new StringWriter() ;
+               final StringWriter servletDefinitions = new StringWriter() ;
+               final StringWriter servletMappings = new StringWriter() ;
                
                final ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
                final ZipOutputStream zos = new ZipOutputStream(baos) ;
@@ -474,19 +473,41 @@
                            service.getName(), serviceInfo) ;
                        final String wsClassName = serviceInfo.getClassName().replace('.', '/') + ".class" ;
                        addFile(zos, "WEB-INF/classes/" + wsClassName, wsClass) ;
+
+                       // Filter...
+                       // At the moment we only need the filter to overcome a bug in JBossWS re In-Only endpoints, so
+                       // we only include for one way services...
+                       if(serviceInfo.isOneWay()) {
+                           String filterName = serviceInfo.getServletName() + "_Filter";
+
+                           filterDefinitions.append("<filter><filter-name>") ;
+                           filterDefinitions.append(filterName)  ;
+                           filterDefinitions.append("</filter-name><filter-class>") ;
+                           filterDefinitions.append(ESBResponseFilter.class.getName()) ;
+                           filterDefinitions.append("</filter-class>") ;
+                           filterDefinitions.append("<init-param><param-name>OneWay</param-name><param-value>true</param-value></init-param>") ;
+                           filterDefinitions.append("</filter>") ;
+
+                           filterMappings.append("<filter-mapping><filter-name>") ;
+                           filterMappings.append(filterName)  ;
+                           filterMappings.append("</filter-name><servlet-name>") ;
+                           filterMappings.append(serviceInfo.getServletName()) ;
+                           filterMappings.append("</servlet-name></filter-mapping>") ;
+                       }
+
+                       // Servlet....
+                       servletDefinitions.append("<servlet><servlet-name>") ;
+                       servletDefinitions.append(serviceInfo.getServletName())  ;
+                       servletDefinitions.append("</servlet-name><servlet-class>") ;
+                       servletDefinitions.append(serviceInfo.getClassName()) ;
+                       servletDefinitions.append("</servlet-class></servlet>") ;
                        
-                       servletDefinition.append("<servlet><servlet-name>") ;
-                       servletDefinition.append(serviceInfo.getServletName())  ;
-                       servletDefinition.append("</servlet-name><servlet-class>") ;
-                       servletDefinition.append(serviceInfo.getClassName()) ;
-                       servletDefinition.append("</servlet-class></servlet>") ;
+                       servletMappings.append("<servlet-mapping><servlet-name>") ;
+                       servletMappings.append(serviceInfo.getServletName())  ;
+                       servletMappings.append("</servlet-name><url-pattern>") ;
+                       servletMappings.append(serviceInfo.getServletPath()) ;
+                       servletMappings.append("</url-pattern></servlet-mapping>") ;
                        
-                       servletMapping.append("<servlet-mapping><servlet-name>") ;
-                       servletMapping.append(serviceInfo.getServletName())  ;
-                       servletMapping.append("</servlet-name><url-pattern>") ;
-                       servletMapping.append(serviceInfo.getServletPath()) ;
-                       servletMapping.append("</url-pattern></servlet-mapping>") ;
-                       
                        final ContractReferencePublisher publisher = new ESBServiceContractPublisher(service, webserviceInfo.getDescription(), serviceInfo.getServletName()) ;
                        publishers.add(publisher) ;
                    }
@@ -494,8 +515,10 @@
                    final StringWriter webXml = new StringWriter() ;
                    webXml.append("<web-app xmlns=\"http://java.sun.com/xml/ns/j2ee\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"") ;
                    webXml.append(" xsi:schemaLocation=\"http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd\" version=\"2.4\">") ;
-                   webXml.append(servletDefinition.getBuffer()) ;
-                   webXml.append(servletMapping.getBuffer()) ;
+                   webXml.append(filterDefinitions.getBuffer()) ;
+                   webXml.append(filterMappings.getBuffer()) ;
+                   webXml.append(servletDefinitions.getBuffer()) ;
+                   webXml.append(servletMappings.getBuffer()) ;
                    webXml.append("</web-app>") ;
                    
                    addFile(zos, "WEB-INF/web.xml", webXml.toString()) ;

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/JBoss4ESBDeployment.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -91,6 +91,16 @@
    @Override
    public void createService()
    {
+      ClassLoader old = Thread.currentThread().getContextClassLoader();
+      try
+      {
+         Thread.currentThread().setContextClassLoader(classloader);
+         LifecycleResourceManager.getSingleton().associateDeployment(deploymentName) ;
+      }
+      finally
+      {
+         Thread.currentThread().setContextClassLoader(old);
+      }
    }
 
    @Override
@@ -100,7 +110,6 @@
       try
       {
          Thread.currentThread().setContextClassLoader(classloader);
-         LifecycleResourceManager.getSingleton().associateDeployment(deploymentName) ;
          controller = Configuration.create(jbossEsbXml, serviceName, publishers);
          controller.start();
       }
@@ -118,15 +127,28 @@
       try
       {
          Thread.currentThread().setContextClassLoader(classloader);
-         ServicePublisher.removeServicePublishers(controller);          
+         ServicePublisher.removeServicePublishers(controller);
          controller.stop();
       }
       finally
       {
+         Thread.currentThread().setContextClassLoader(old);
+      }
+   }
+
+   @Override
+   public void destroyService() throws Exception
+   {
+      ClassLoader old = Thread.currentThread().getContextClassLoader();
+      try
+      {
+         Thread.currentThread().setContextClassLoader(classloader);
          LifecycleResourceManager.getSingleton().disassociateDeployment(deploymentName) ;
          LifecycleResourceManager.getSingleton().destroyResources() ;
+      }
+      finally
+      {
          Thread.currentThread().setContextClassLoader(old);
       }
    }
-
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/GatewayGenerator.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -36,6 +36,7 @@
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.JmsListenerDocument.JmsListener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.ServiceDocument.Service;
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.SqlListenerDocument.SqlListener;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.UdpListenerDocument.UdpListener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.Listener;
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.JcaGatewayDocument;
 import org.jboss.soa.esb.listeners.config.xbeanmodel110.AbstractScheduledListener;
@@ -139,6 +140,8 @@
             listenerConfig = GroovyListenerMapper.map(root, (GroovyListener) gateway, model);
         } else if (gateway instanceof HibernateListener) {
             listenerConfig = HibernateListenerMapper.map(root, (HibernateListener) gateway, model);
+        } else if (gateway instanceof UdpListener) {
+            listenerConfig = UdpListenerMapper.map(root, (UdpListener) gateway, model);
         } else {
             listenerConfig = UntypedListenerMapper.map(root, gateway, model);
         }

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UdpListenerMapper.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UdpListenerMapper.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UdpListenerMapper.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/config/mappers110/UdpListenerMapper.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.config.mappers110;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.dom.YADOMUtil;
+import org.jboss.soa.esb.listeners.config.mappers110.MapperUtil;
+import org.jboss.soa.esb.listeners.config.xbeanmodel110.UdpListenerDocument;
+import org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayConfig;
+import org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayListener;
+import org.w3c.dom.Element;
+
+/**
+ * Config mapper class for the UDP Listener.
+ * 
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class UdpListenerMapper {
+
+    public static Element map(final Element root, final UdpListenerDocument.UdpListener listener, final XMLBeansModel model) throws ConfigurationException 
+    {
+        final Element listenerNode = YADOMUtil.addElement(root, "listener");
+
+        listenerNode.setAttribute("name", listener.getName());
+
+        // Map the standard listener attributes - common across all listener types...
+        MapperUtil.mapDefaultAttributes(listener, listenerNode, model);
+        
+        // Map the <property> elements targeted at the listener - from the listener itself.
+        MapperUtil.mapProperties(listener.getPropertyList(), listenerNode);
+
+        listenerNode.setAttribute("gatewayClass", UdpGatewayListener.class.getName());
+
+        // Map the host, port, and handler class
+        listenerNode.setAttribute(UdpGatewayConfig.HOST_ATTR, listener.getHost());
+        listenerNode.setAttribute(UdpGatewayConfig.PORT_ATTR, listener.getPort().toString());
+        listenerNode.setAttribute(UdpGatewayConfig.HANDLER_CLASS_ATTR, listener.getHandlerClass());
+        
+        return listenerNode;
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/AbstractFileGateway.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -283,7 +283,7 @@
         _inputDirectory = fileFromString(sInpDir);
         seeIfOkToWorkOnDir(_inputDirectory);
 
-        _inputSuffix = config.getRequiredAttribute(ListenerTagNames.FILE_INPUT_SFX_TAG).trim();
+        _inputSuffix = ListenerUtil.getValue(config, ListenerTagNames.FILE_INPUT_SFX_TAG, "").trim();
         checkInputSuffix();
 
         // WORK suffix (will rename in input directory)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListener.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -112,7 +112,6 @@
      * Server port config attribute name.
      */
     public static final String JBR_SERVER_PORT = JBR_PREFIX + ServerInvoker.SERVER_BIND_PORT_KEY;
-
     /**
      * Class Logger instance.
      */
@@ -157,6 +156,10 @@
      * Asynchronous response.
      */
     private final String asyncResponse;
+    /**
+     * ServiceInvoker timeout if the ServiceInvoker is configured to be synchronous.
+     */
+    private long serviceInvokerTimeout;
 
     /**
      * Install our own marshaller/unmarshaller for HTTP.
@@ -179,6 +182,10 @@
         serviceCategory = config.getAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG);
         serviceName = config.getAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG);
         synchronous = !config.getAttribute("synchronous", "true").equalsIgnoreCase("false");
+        if (synchronous)
+        {
+            serviceInvokerTimeout = config.getLongAttribute(ListenerTagNames.SERVICE_INVOKER_TIMEOUT, 20000);
+        }
         asyncResponse = config.getAttribute("asyncResponse");
 
         if(asyncResponse != null) {
@@ -351,7 +358,7 @@
 			    if (method != null && method.equals("OPTIONS")) {
 					return "";
 				}
-                Object response = messageDeliveryAdapter.deliverSync(invocationRequest, 20000); // TODO Fix magic number
+                Object response = messageDeliveryAdapter.deliverSync(invocationRequest, serviceInvokerTimeout);
                 if(logger.isDebugEnabled()) {
                     logger.debug("Returning response [" + response + "].");
                 }

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,101 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2008, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.gateway.mina;
-
-import org.apache.mina.common.ByteBuffer;
-import org.apache.mina.common.IdleStatus;
-import org.apache.mina.common.IoHandlerAdapter;
-import org.apache.mina.common.IoSession;
-import org.apache.mina.common.TransportType;
-import org.apache.mina.transport.socket.nio.SocketSessionConfig;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-
-/**
- * DefaultMessageHandler recieves messages and packages the bytes sent into
- * a ESB Message object.
- * <p/>
- * The bytes array will be available in the default body location:
- * bytes[] payload = message.getBody().get();
- * 
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- */
-public class DefaultMessageHandler extends IoHandlerAdapter implements MessageHandler
-{
-    /**
-     * ServiceInvoker dispatch to the target service on the ESB.
-     */
-    private ServiceInvoker invoker;
-
-    /**
-     * Sets the service invoker that should be used.
-     * 
-     * @param invoker The {@link ServiceInvoker} that this message handler should use.
-     */
-    public final void setServiceInvoker(final ServiceInvoker invoker)
-    {
-        this.invoker = invoker;
-    }
-
-    /**
-     * Called when a new connection has been created.
-     * 
-     * @param session The MINA IoSession.
-     */
-    public void sessionCreated(final IoSession session)
-    {
-        if (session.getTransportType() == TransportType.SOCKET)
-        {
-            ((SocketSessionConfig) session.getConfig()).setReceiveBufferSize(2048);
-        }
-        session.setIdleTime(IdleStatus.BOTH_IDLE, 10);
-    }
-
-    public void exceptionCaught(final IoSession session, final Throwable cause)
-    {
-        session.close();
-    }
-
-    /**
-     * Extracts the payload as a bytes array and creates a new ESB Message object populating
-     * the EBS Message body with the bytes array.
-     * 
-     * @param session The MINA IoSession.
-     * @param message The MINA message object.
-     */
-    public void messageReceived(final IoSession session, final Object message) throws Exception
-    {
-        if (!(message instanceof ByteBuffer))
-        {
-            return;
-        }
-
-        final ByteBuffer byteBuffer = (ByteBuffer) message;
-        final byte[] bytes = new byte[byteBuffer.remaining()];
-        byteBuffer.get(bytes);
-        
-        final Message esbMessage = MessageFactory.getInstance().getMessage();
-        esbMessage.getBody().add(bytes);
-        invoker.deliverAsync(esbMessage);
-    }
-
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/DefaultMessageHandler.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,101 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.gateway.mina;
+
+import org.apache.mina.common.ByteBuffer;
+import org.apache.mina.common.IdleStatus;
+import org.apache.mina.common.IoHandlerAdapter;
+import org.apache.mina.common.IoSession;
+import org.apache.mina.common.TransportType;
+import org.apache.mina.transport.socket.nio.SocketSessionConfig;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+
+/**
+ * DefaultMessageHandler recieves messages and packages the bytes sent into
+ * a ESB Message object.
+ * <p/>
+ * The bytes array will be available in the default body location:
+ * bytes[] payload = message.getBody().get();
+ * 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class DefaultMessageHandler extends IoHandlerAdapter implements MessageHandler
+{
+    /**
+     * ServiceInvoker dispatch to the target service on the ESB.
+     */
+    private ServiceInvoker invoker;
+
+    /**
+     * Sets the service invoker that should be used.
+     * 
+     * @param invoker The {@link ServiceInvoker} that this message handler should use.
+     */
+    public final void setServiceInvoker(final ServiceInvoker invoker)
+    {
+        this.invoker = invoker;
+    }
+
+    /**
+     * Called when a new connection has been created.
+     * 
+     * @param session The MINA IoSession.
+     */
+    public void sessionCreated(final IoSession session)
+    {
+        if (session.getTransportType() == TransportType.SOCKET)
+        {
+            ((SocketSessionConfig) session.getConfig()).setReceiveBufferSize(2048);
+        }
+        session.setIdleTime(IdleStatus.BOTH_IDLE, 10);
+    }
+
+    public void exceptionCaught(final IoSession session, final Throwable cause)
+    {
+        session.close();
+    }
+
+    /**
+     * Extracts the payload as a bytes array and creates a new ESB Message object populating
+     * the EBS Message body with the bytes array.
+     * 
+     * @param session The MINA IoSession.
+     * @param message The MINA message object.
+     */
+    public void messageReceived(final IoSession session, final Object message) throws Exception
+    {
+        if (!(message instanceof ByteBuffer))
+        {
+            return;
+        }
+
+        final ByteBuffer byteBuffer = (ByteBuffer) message;
+        final byte[] bytes = new byte[byteBuffer.remaining()];
+        byteBuffer.get(bytes);
+        
+        final Message esbMessage = MessageFactory.getInstance().getMessage();
+        esbMessage.getBody().add(bytes);
+        invoker.deliverAsync(esbMessage);
+    }
+
+}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,42 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2008, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.gateway.mina;
-
-import org.apache.mina.common.IoHandler;
-import org.jboss.soa.esb.client.ServiceInvoker;
-
-/**
- * A Message handler is responsible for recieving the MINA message and packaging
- * the message payload into a ESB Message object, and dispatching to the target
- * service in the ESB.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- */
-public interface MessageHandler extends IoHandler {
-
-    /**
-     * Set the {@link ServiceInoker} instance to be used
-     * to dispatch messages to the ESB Service
-     *
-     * @param invoker The ServiceInvoker instance.
-     */
-    void setServiceInvoker(final ServiceInvoker invoker);
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/MessageHandler.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,42 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.gateway.mina;
+
+import org.apache.mina.common.IoHandler;
+import org.jboss.soa.esb.client.ServiceInvoker;
+
+/**
+ * A Message handler is responsible for recieving the MINA message and packaging
+ * the message payload into a ESB Message object, and dispatching to the target
+ * service in the ESB.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public interface MessageHandler extends IoHandler {
+
+    /**
+     * Set the {@link ServiceInoker} instance to be used
+     * to dispatch messages to the ESB Service
+     *
+     * @param invoker The ServiceInvoker instance.
+     */
+    void setServiceInvoker(final ServiceInvoker invoker);
+}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,183 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.listeners.gateway.mina;
-
-import java.net.InetSocketAddress;
-
-import org.jboss.internal.soa.esb.assertion.AssertArgument;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.util.ClassUtil;
-
-/**
- * Deals with UDP configuration properties and parsing.
- * 
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- * 
- */
-public class UdpGatewayConfig
-{
-    /**
-     * Host name configuration attribute name.
-     */
-    public static final String HOST_ATTR = "host";
-
-    /**
-     * Port configuration attribute name.
-     */
-    public static final String PORT_ATTR = "port";
-
-    /**
-     * Handler class configuration attribute name.
-     */
-    public static final String HANDLER_CLASS_ATTR = "handlerClass";
-    
-    /**
-     * ConfigTree with contains the elements and attributes from the
-     * configuration file.
-     */
-    private final ConfigTree config;
-
-    /**
-     * Sole constructor.
-     * 
-     * @param config
-     *            The {@link ConfigTree} that contains the configuration
-     *            information.
-     */
-    public UdpGatewayConfig(final ConfigTree config)
-    {
-        AssertArgument.isNotNull(config, "config");
-        this.config = config;
-    }
-
-    /**
-     * Gets the port from the configuration.
-     * 
-     * @return {@code int} the port that the gateway should listen to.
-     * 
-     * @throws ConfigurationException
-     *             If the port was missing from the configuration or it could
-     *             not be parse as an int.
-     */
-    public int getPort() throws ConfigurationException
-    {
-        return parsePort(config.getRequiredAttribute(PORT_ATTR));
-    }
-
-    /**
-     * Gets the {@link InetSocketAddress} that this gateway should listen to.
-     * 
-     * @return {@code InetSocketAddress} the {@link InetSocketAddress} that the
-     *         gateway should listen to.
-     * 
-     * @throws ConfigurationException
-     *             If the host or port was missing from the configuration or if
-     *             the port could not be parsed.
-     */
-    public InetSocketAddress getSocketAddress() throws ConfigurationException
-    {
-        return new InetSocketAddress(config.getRequiredAttribute(HOST_ATTR), getPort());
-    }
-    
-    /**
-     * Gets the target service category from the configuration.
-     * 
-     * @return {@code String} The target service category
-     * 
-     * @throws ConfigurationException
-     *             If service category attribute is missing from the
-     *             configuration.
-     */
-    public String getServiceCategory() throws ConfigurationException
-    {
-        return config.getRequiredAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG);
-    }
-
-    /**
-     * Gets the target service name from the configuration.
-     * 
-     * @return {@code String} The target service name
-     * 
-     * @throws ConfigurationException
-     *             If service name attribute is missing from the configuration.
-     */
-    public String getServiceName() throws ConfigurationException
-    {
-        return config.getRequiredAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG);
-    }
-
-    /**
-     * Get the configured {@link MessageHandler} instance. <p/> Defaults to
-     * {@link DefaultMessageHandler}.
-     * 
-     * @param config
-     *            The listener configuration.
-     * @return The MessageHandler implementation.
-     * @throws ConfigurationException
-     *             Unable to create the configured {@link MessageHandler}
-     *             instance.
-     */
-    public MessageHandler getHandler() throws ConfigurationException
-    {
-        String handlerClass = config.getRequiredAttribute(HANDLER_CLASS_ATTR);
-        try
-        {
-            return (MessageHandler) ClassUtil.forName(handlerClass, getClass()).newInstance();
-        } 
-        catch (final ClassCastException e)
-        {
-            throw new ConfigurationException("Class '" + handlerClass + "' must implement '" + MessageHandler.class.getName() + "'.");
-        } 
-        catch (final InstantiationException e)
-        {
-            throw new ConfigurationException("Failed to create an instance of MessagHandler implementation '" + handlerClass + "'.", e);
-        } 
-        catch (final IllegalAccessException e)
-        {
-            throw new ConfigurationException("Failed to create an instance of MessagHandler implementation '" + handlerClass + "'.", e);
-        } 
-        catch (final ClassNotFoundException e)
-        {
-            throw new ConfigurationException("Failed to create an instance of MessagHandler implementation '" + handlerClass + "'.", e);
-        }
-    }
-    
-    public static int parsePort(String portString) throws ConfigurationException
-    {
-        int parseInt;
-        try
-        {
-            parseInt = Integer.parseInt(portString);
-        } catch (final NumberFormatException e)
-        {
-            throw new ConfigurationException("port must be a postive integer. It was '" + portString + "'");
-        }
-
-        if (parseInt <= 0)
-        {
-            throw new ConfigurationException("port must be a postive integer. It was '" + portString + "'");
-        }
-        return parseInt;
-    }
-
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayConfig.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,183 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.listeners.gateway.mina;
+
+import java.net.InetSocketAddress;
+
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.util.ClassUtil;
+
+/**
+ * Deals with UDP configuration properties and parsing.
+ * 
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ * 
+ */
+public class UdpGatewayConfig
+{
+    /**
+     * Host name configuration attribute name.
+     */
+    public static final String HOST_ATTR = "host";
+
+    /**
+     * Port configuration attribute name.
+     */
+    public static final String PORT_ATTR = "port";
+
+    /**
+     * Handler class configuration attribute name.
+     */
+    public static final String HANDLER_CLASS_ATTR = "handlerClass";
+    
+    /**
+     * ConfigTree with contains the elements and attributes from the
+     * configuration file.
+     */
+    private final ConfigTree config;
+
+    /**
+     * Sole constructor.
+     * 
+     * @param config
+     *            The {@link ConfigTree} that contains the configuration
+     *            information.
+     */
+    public UdpGatewayConfig(final ConfigTree config)
+    {
+        AssertArgument.isNotNull(config, "config");
+        this.config = config;
+    }
+
+    /**
+     * Gets the port from the configuration.
+     * 
+     * @return {@code int} the port that the gateway should listen to.
+     * 
+     * @throws ConfigurationException
+     *             If the port was missing from the configuration or it could
+     *             not be parse as an int.
+     */
+    public int getPort() throws ConfigurationException
+    {
+        return parsePort(config.getRequiredAttribute(PORT_ATTR));
+    }
+
+    /**
+     * Gets the {@link InetSocketAddress} that this gateway should listen to.
+     * 
+     * @return {@code InetSocketAddress} the {@link InetSocketAddress} that the
+     *         gateway should listen to.
+     * 
+     * @throws ConfigurationException
+     *             If the host or port was missing from the configuration or if
+     *             the port could not be parsed.
+     */
+    public InetSocketAddress getSocketAddress() throws ConfigurationException
+    {
+        return new InetSocketAddress(config.getRequiredAttribute(HOST_ATTR), getPort());
+    }
+    
+    /**
+     * Gets the target service category from the configuration.
+     * 
+     * @return {@code String} The target service category
+     * 
+     * @throws ConfigurationException
+     *             If service category attribute is missing from the
+     *             configuration.
+     */
+    public String getServiceCategory() throws ConfigurationException
+    {
+        return config.getRequiredAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG);
+    }
+
+    /**
+     * Gets the target service name from the configuration.
+     * 
+     * @return {@code String} The target service name
+     * 
+     * @throws ConfigurationException
+     *             If service name attribute is missing from the configuration.
+     */
+    public String getServiceName() throws ConfigurationException
+    {
+        return config.getRequiredAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG);
+    }
+
+    /**
+     * Get the configured {@link MessageHandler} instance. <p/> Defaults to
+     * {@link DefaultMessageHandler}.
+     * 
+     * @param config
+     *            The listener configuration.
+     * @return The MessageHandler implementation.
+     * @throws ConfigurationException
+     *             Unable to create the configured {@link MessageHandler}
+     *             instance.
+     */
+    public MessageHandler getHandler() throws ConfigurationException
+    {
+        String handlerClass = config.getRequiredAttribute(HANDLER_CLASS_ATTR);
+        try
+        {
+            return (MessageHandler) ClassUtil.forName(handlerClass, getClass()).newInstance();
+        } 
+        catch (final ClassCastException e)
+        {
+            throw new ConfigurationException("Class '" + handlerClass + "' must implement '" + MessageHandler.class.getName() + "'.");
+        } 
+        catch (final InstantiationException e)
+        {
+            throw new ConfigurationException("Failed to create an instance of MessagHandler implementation '" + handlerClass + "'.", e);
+        } 
+        catch (final IllegalAccessException e)
+        {
+            throw new ConfigurationException("Failed to create an instance of MessagHandler implementation '" + handlerClass + "'.", e);
+        } 
+        catch (final ClassNotFoundException e)
+        {
+            throw new ConfigurationException("Failed to create an instance of MessagHandler implementation '" + handlerClass + "'.", e);
+        }
+    }
+    
+    public static int parsePort(String portString) throws ConfigurationException
+    {
+        int parseInt;
+        try
+        {
+            parseInt = Integer.parseInt(portString);
+        } catch (final NumberFormatException e)
+        {
+            throw new ConfigurationException("port must be a postive integer. It was '" + portString + "'");
+        }
+
+        if (parseInt <= 0)
+        {
+            throw new ConfigurationException("port must be a postive integer. It was '" + portString + "'");
+        }
+        return parseInt;
+    }
+
+}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,204 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.listeners.gateway.mina;
-
-import java.io.IOException;
-import java.net.InetSocketAddress;
-import org.apache.log4j.Logger;
-import org.apache.mina.common.IoAcceptor;
-import org.apache.mina.transport.socket.nio.DatagramAcceptor;
-import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.lifecycle.AbstractManagedLifecycle;
-import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
-import org.jboss.soa.esb.listeners.message.MessageDeliverException;
-
-/**
- * UDP gateway listener implementation for receiving ESB unaware messages.
- * <p/>
- * This gateway will set up a netty server and listen for incoming connection request. The 
- * requests will be passed to the Netty channel pipeline configured and the last handler will
- * invoke the target ESB service.
- * 
- * Example configuration:
- * <pre>{@code
- * <listeners>
- *    <udp-listener name="udp-listener" host="localhost" port="9999" handlerClass="org.jboss.soa.esb.listeners.gateway.mina.DefaultMessageHandler" is-gateway="true"/>
- * </listeners>
- * }</pre>
- * <lu>
- * <li>{@code host} the host to listen to.</li>
- * <li>{@code port} the port to listen on.</li>
- * <li>{@code handlerClass} A class that implemtents {@link MessageHandler}. If not specified will default to {@link DefaultMessageHandler}.</li>
- * <li>{@code is-gateway} is always true as udp cannot be used as a bus transport at the moment.</li>
- * </lu>
- * 
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- */
-public class UdpGatewayListener extends AbstractManagedLifecycle
-{
-    /**
-     * Serial version unique identifier.
-     */
-    private static final long serialVersionUID = 1L;
-    
-    /**
-     * Class Logger instance.
-     */
-    private Logger log = Logger.getLogger(UdpGatewayListener.class);
-    
-    /**
-     * The local address this gateway listeners to.
-     */
-    private InetSocketAddress socketAddress;
-    
-    /**
-     * MINA IoAcceptor.
-     */
-    private IoAcceptor datagramAcceptor;
-    
-    /**
-     * The target service category that this gateway should dispatch to.
-     */
-    private String serviceCategory;
-
-    /**
-     * The target service name that this gateway should dispatch to.
-     */
-    private String serviceName;
-    
-    /**
-     * The {@link Channel} that this gateway is bound to.
-     */
-    private MessageHandler messageHandler;
-    
-    /**
-     * Sole constructor.
-     * 
-     * @param config The configuration associated with this instance. Must not be null.
-     * @throws ConfigurationException if a configuration errors during initialisation.
-     */
-    public UdpGatewayListener(final ConfigTree config) throws ConfigurationException 
-    {
-        super(config);
-        final UdpGatewayConfig udpConfig = new UdpGatewayConfig(config);
-        socketAddress = udpConfig.getSocketAddress();
-        serviceCategory = udpConfig.getServiceCategory();
-        serviceName = udpConfig.getServiceName();
-        messageHandler = udpConfig.getHandler();
-    }
-
-    /**
-     * Initialize will bind to the configured host and port. 
-     * This is done in initialize so that the time this takes is done upon 
-     * deployment of the gateway instead of during the first call to the 
-     * gateway.
-     */
-    @Override
-    protected void doInitialise() throws ManagedLifecycleException 
-    {
-        final ServiceInvoker serviceInvoker = createServiceInvoker(serviceCategory, serviceName);
-        messageHandler.setServiceInvoker(serviceInvoker);
-        
-        datagramAcceptor = new DatagramAcceptor(); 
-        ((DatagramSessionConfig) datagramAcceptor.getDefaultConfig().getSessionConfig()).setReuseAddress(true);
-        
-        try
-        {
-            datagramAcceptor.bind(socketAddress, messageHandler);
-        } 
-        catch (final IOException e)
-        {
-            throw new ManagedLifecycleException("IOException while trying to bind UdpListerner to '" + socketAddress + "'. Exception was:" + e);
-        }
-        log.info("Started " + toString());
-    }
-
-    /**
-     * Currently does nothing.
-     */
-    @Override
-    protected void doStart() throws ManagedLifecycleException
-    {
-        // NoOp
-    }
-    
-    /**
-     * Unbinds the udp listener.
-     */
-    @Override
-    protected void doStop() throws ManagedLifecycleException 
-    {
-        if(socketAddress != null) 
-        {
-            datagramAcceptor.unbind(socketAddress);
-        }
-        log.info("Stopped " + toString());
-    }
-
-    /**
-     * Currently does nothing.
-     */
-    @Override
-    protected void doDestroy() throws ManagedLifecycleException 
-    {
-        // NoOp
-    }
-
-    /**
-     * Returns a string representation in the form:
-     * 
-     * [UdpGatewayListener] Started UdpGatewayListener [address=localhost/127.0.0.1:9999, 
-     * targetService=UdpServiceCategory:Service1, 
-     * messageHandler=org.jboss.soa.esb.listeners.gateway.mina.DefaultMessageHandler at 3c205c]
-     * 
-     * 
-     * @return String   A string representation of this instance.
-     */
-    @Override
-    public String toString()
-    {
-        return "UdpGatewayListener [address=" + socketAddress + ", targetService=" + serviceCategory + ":" + serviceName + ", messageHandler=" + messageHandler + "]";
-    }
-
-    /**
-     * Creates a new ServiceInvoker using the serviceCategory and serviceName.
-     * 
-     * @param serviceCategory   The service category.
-     * @param serviceName       The service name.
-     * @return ServiceInvoker   The newly created {@link ServiceInvoker}. 
-     * 
-     * @throws ManagedLifecycleException If the service invoker could not be created.
-     */
-    private ServiceInvoker createServiceInvoker(final String serviceCategory, final String serviceName) throws ManagedLifecycleException
-    {
-        try
-        {
-            return new ServiceInvoker(serviceCategory, serviceName);
-        } 
-        catch (MessageDeliverException e)
-        {
-            throw new ManagedLifecycleException(e.getMessage(), e);
-        }
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListener.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,204 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.listeners.gateway.mina;
+
+import java.io.IOException;
+import java.net.InetSocketAddress;
+import org.apache.log4j.Logger;
+import org.apache.mina.common.IoAcceptor;
+import org.apache.mina.transport.socket.nio.DatagramAcceptor;
+import org.apache.mina.transport.socket.nio.DatagramSessionConfig;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.lifecycle.AbstractManagedLifecycle;
+import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
+import org.jboss.soa.esb.listeners.message.MessageDeliverException;
+
+/**
+ * UDP gateway listener implementation for receiving ESB unaware messages.
+ * <p/>
+ * This gateway will set up a netty server and listen for incoming connection request. The 
+ * requests will be passed to the Netty channel pipeline configured and the last handler will
+ * invoke the target ESB service.
+ * 
+ * Example configuration:
+ * <pre>{@code
+ * <listeners>
+ *    <udp-listener name="udp-listener" host="localhost" port="9999" handlerClass="org.jboss.soa.esb.listeners.gateway.mina.DefaultMessageHandler" is-gateway="true"/>
+ * </listeners>
+ * }</pre>
+ * <lu>
+ * <li>{@code host} the host to listen to.</li>
+ * <li>{@code port} the port to listen on.</li>
+ * <li>{@code handlerClass} A class that implemtents {@link MessageHandler}. If not specified will default to {@link DefaultMessageHandler}.</li>
+ * <li>{@code is-gateway} is always true as udp cannot be used as a bus transport at the moment.</li>
+ * </lu>
+ * 
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class UdpGatewayListener extends AbstractManagedLifecycle
+{
+    /**
+     * Serial version unique identifier.
+     */
+    private static final long serialVersionUID = 1L;
+    
+    /**
+     * Class Logger instance.
+     */
+    private Logger log = Logger.getLogger(UdpGatewayListener.class);
+    
+    /**
+     * The local address this gateway listeners to.
+     */
+    private InetSocketAddress socketAddress;
+    
+    /**
+     * MINA IoAcceptor.
+     */
+    private IoAcceptor datagramAcceptor;
+    
+    /**
+     * The target service category that this gateway should dispatch to.
+     */
+    private String serviceCategory;
+
+    /**
+     * The target service name that this gateway should dispatch to.
+     */
+    private String serviceName;
+    
+    /**
+     * The {@link Channel} that this gateway is bound to.
+     */
+    private MessageHandler messageHandler;
+    
+    /**
+     * Sole constructor.
+     * 
+     * @param config The configuration associated with this instance. Must not be null.
+     * @throws ConfigurationException if a configuration errors during initialisation.
+     */
+    public UdpGatewayListener(final ConfigTree config) throws ConfigurationException 
+    {
+        super(config);
+        final UdpGatewayConfig udpConfig = new UdpGatewayConfig(config);
+        socketAddress = udpConfig.getSocketAddress();
+        serviceCategory = udpConfig.getServiceCategory();
+        serviceName = udpConfig.getServiceName();
+        messageHandler = udpConfig.getHandler();
+    }
+
+    /**
+     * Initialize will bind to the configured host and port. 
+     * This is done in initialize so that the time this takes is done upon 
+     * deployment of the gateway instead of during the first call to the 
+     * gateway.
+     */
+    @Override
+    protected void doInitialise() throws ManagedLifecycleException 
+    {
+        final ServiceInvoker serviceInvoker = createServiceInvoker(serviceCategory, serviceName);
+        messageHandler.setServiceInvoker(serviceInvoker);
+        
+        datagramAcceptor = new DatagramAcceptor(); 
+        ((DatagramSessionConfig) datagramAcceptor.getDefaultConfig().getSessionConfig()).setReuseAddress(true);
+        
+        try
+        {
+            datagramAcceptor.bind(socketAddress, messageHandler);
+        } 
+        catch (final IOException e)
+        {
+            throw new ManagedLifecycleException("IOException while trying to bind UdpListerner to '" + socketAddress + "'. Exception was:" + e);
+        }
+        log.info("Started " + toString());
+    }
+
+    /**
+     * Currently does nothing.
+     */
+    @Override
+    protected void doStart() throws ManagedLifecycleException
+    {
+        // NoOp
+    }
+    
+    /**
+     * Unbinds the udp listener.
+     */
+    @Override
+    protected void doStop() throws ManagedLifecycleException 
+    {
+        if(socketAddress != null) 
+        {
+            datagramAcceptor.unbind(socketAddress);
+        }
+        log.info("Stopped " + toString());
+    }
+
+    /**
+     * Currently does nothing.
+     */
+    @Override
+    protected void doDestroy() throws ManagedLifecycleException 
+    {
+        // NoOp
+    }
+
+    /**
+     * Returns a string representation in the form:
+     * 
+     * [UdpGatewayListener] Started UdpGatewayListener [address=localhost/127.0.0.1:9999, 
+     * targetService=UdpServiceCategory:Service1, 
+     * messageHandler=org.jboss.soa.esb.listeners.gateway.mina.DefaultMessageHandler at 3c205c]
+     * 
+     * 
+     * @return String   A string representation of this instance.
+     */
+    @Override
+    public String toString()
+    {
+        return "UdpGatewayListener [address=" + socketAddress + ", targetService=" + serviceCategory + ":" + serviceName + ", messageHandler=" + messageHandler + "]";
+    }
+
+    /**
+     * Creates a new ServiceInvoker using the serviceCategory and serviceName.
+     * 
+     * @param serviceCategory   The service category.
+     * @param serviceName       The service name.
+     * @return ServiceInvoker   The newly created {@link ServiceInvoker}. 
+     * 
+     * @throws ManagedLifecycleException If the service invoker could not be created.
+     */
+    private ServiceInvoker createServiceInvoker(final String serviceCategory, final String serviceName) throws ManagedLifecycleException
+    {
+        try
+        {
+            return new ServiceInvoker(serviceCategory, serviceName);
+        } 
+        catch (MessageDeliverException e)
+        {
+            throw new ManagedLifecycleException(e.getMessage(), e);
+        }
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipeline.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -22,14 +22,18 @@
 
 package org.jboss.soa.esb.listeners.message;
 
+import java.net.URISyntaxException;
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import javax.crypto.SealedObject;
 import javax.security.auth.Subject;
 import javax.xml.validation.Schema;
 
 import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.services.security.SecurityContextPropagator;
+import org.jboss.internal.soa.esb.services.security.SecurityContextPropagatorFactory;
 import org.jboss.internal.soa.esb.util.XMLHelper;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.actions.ActionLifecycle;
@@ -43,6 +47,7 @@
 import org.jboss.soa.esb.addressing.util.DefaultFaultTo;
 import org.jboss.soa.esb.addressing.util.DefaultReplyTo;
 import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.common.Environment;
 import org.jboss.soa.esb.couriers.Courier;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierFactory;
@@ -62,6 +67,7 @@
 import org.jboss.soa.esb.services.security.SecurityServiceException;
 import org.jboss.soa.esb.services.security.SecurityServiceFactory;
 import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
 import org.jboss.soa.esb.util.ClassUtil;
 import org.xml.sax.SAXException;
 
@@ -71,6 +77,7 @@
  * @author <a
  *         href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
  * @author kevin
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
  * @since Version 4.0
  */
 public class ActionProcessingPipeline
@@ -78,8 +85,7 @@
 	/**
 	 * The logger instance.
 	 */
-	private final static Logger LOGGER = Logger
-			.getLogger(ActionProcessingPipeline.class);
+	private final static Logger LOGGER = Logger .getLogger(ActionProcessingPipeline.class);
 
 	/**
 	 * The processors.
@@ -115,9 +121,9 @@
 	 */
 	private final boolean oneWay ;
 
-        /**
-         * The flag indicating whether we are using implicit or explicit processing.
-         */
+    /**
+     * The flag indicating whether we are using implicit or explicit processing.
+     */
 	private final boolean defaultProcessing ;
 
 	/**
@@ -126,18 +132,24 @@
 	private SecurityConfig securityConf;
 
 	/**
+	 * The {@link SecurityContextPropagator} is use.
+	 * This can be configured either globally in jbossesb-properites.xml or
+	 * per-service in jboss-esb.xml.
+	 */
+    private SecurityContextPropagator securityContextPropagator;
+
+    private String serviceName;
+
+	/**
 	 * public constructor
 	 *
-	 * @param config
-	 *            The pipeline configuration.
+	 * @param config The pipeline configuration.
 	 */
-	public ActionProcessingPipeline(final ConfigTree config)
-			throws ConfigurationException
+	public ActionProcessingPipeline(final ConfigTree config) throws ConfigurationException
 	{
 		if (config == null)
 		{
-			throw new IllegalArgumentException(
-					"Configuration needed for action classes");
+			throw new IllegalArgumentException( "Configuration needed for action classes");
 		}
 
 		final String mep = config.getAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG) ;
@@ -266,9 +278,7 @@
 				{
 					if (LOGGER.isDebugEnabled())
 					{
-						LOGGER
-								.debug("Using normal action pipeline processor for "
-										+ actionClassTag);
+						LOGGER.debug("Using normal action pipeline processor for " + actionClassTag);
 					}
 					processor = currentProcessor;
 				}
@@ -277,9 +287,7 @@
 			{
 				if (LOGGER.isDebugEnabled())
 				{
-					LOGGER
-							.debug("Using overridden action lifecycle processor for "
-									+ actionClassTag);
+					LOGGER.debug("Using overridden action lifecycle processor for " + actionClassTag);
 				}
 				final ActionLifecycle currentLifecycle = (ActionLifecycle) ActionProcessorMethodInfo
 						.getActionClassInstance(actionConfig, actionClass);
@@ -288,30 +296,57 @@
 			}
 			else
 			{
-				LOGGER.warn("Action class " + actionClassTag
-						+ " does not implement the ActionLifecycle interface");
+				LOGGER.warn("Action class " + actionClassTag + " does not implement the ActionLifecycle interface");
 				if (LOGGER.isDebugEnabled())
 				{
-					LOGGER.debug("Using overridden actions processor for "
-							+ actionClassTag);
+					LOGGER.debug("Using overridden actions processor for " + actionClassTag);
 				}
-				processor = new OverriddenActionProcessor(actionConfig,
-						actionClass);
+				processor = new OverriddenActionProcessor(actionConfig, actionClass);
 			}
 			processorList.add(processor);
 		}
-		processors = processorList
-				.toArray(new ActionPipelineProcessor[processorList.size()]);
+		processors = processorList.toArray(new ActionPipelineProcessor[processorList.size()]);
 
 		ConfigTree[] securityConfigs = config.getChildren( ListenerTagNames.SECURITY_TAG );
+		String securityPropagatorClass = null;
 		if (securityConfigs.length > 0)
 		{
 			securityConf = SecurityConfigUtil.createSecurityConfig(securityConfigs[0]);
-			LOGGER.debug(securityConf);
-			final SecurityService securitySerivce = SecurityServiceFactory.getSecurityService();
-			securitySerivce.configure();
-			securitySerivce.refreshSecurityConfig();
+			//   Check if a security context propagator was specified in the security element.
+			securityPropagatorClass = securityConf.getProperties().get(Environment.SECURITY_SERVICE_CONTEXT_PROPAGATOR_CLASS);
 		}
+        serviceName = config.getAttribute(ListenerTagNames.SERVICE_NAME_TAG);
+
+		try
+        {
+            securityContextPropagator = securityPropagatorClass != null ?
+                    SecurityContextPropagatorFactory.create(securityPropagatorClass):
+                    SecurityContextPropagatorFactory.createFromConfig();
+        }
+		catch (final SecurityServiceException e)
+        {
+		    final String errorMsg;
+		    if (securityPropagatorClass != null )
+		    {
+		       errorMsg = "Could not create an instance of class '" + securityPropagatorClass + "' which was configured for service '" +
+		                   serviceName + "'. Please check the value of '" + Environment.SECURITY_SERVICE_CONTEXT_PROPAGATOR_CLASS + "'" +
+		                   " which is a property element of the security element declared in jboss-esb.xml.";
+		    }
+		    else
+		    {
+		       errorMsg = "Could not create an instance of class the security context propagator configured in jbossesb-properties.xml" +
+		                   ".Please check the value of '" + Environment.SECURITY_SERVICE_CONTEXT_PROPAGATOR_CLASS + "' in jbossesb-properties.xml";
+		    }
+		    throw new ConfigurationException(errorMsg, e);
+        }
+
+		if (LOGGER.isDebugEnabled())
+        {
+            if (securityContextPropagator != null)
+            {
+                LOGGER.debug("SecurityContextPropagator in use for service '" + serviceName + "' is '" + securityContextPropagator.getClass().getName() + "'" );
+            }
+        }
 	}
 
 	/**
@@ -370,32 +405,11 @@
 				LOGGER.debug("pipeline process for message: "+message.getHeader());
 			}
 
-			SecurityContext securityContext = null;
-			try
-            {
-			    // Check if a encrypted SecurityContext was passed with the Message to this service.
-                securityContext = SecurityContext.decryptContext((byte[])message.getContext().getContext(SecurityService.CONTEXT));
-            }
-			catch (final SecurityServiceException e)
-            {
-			    LOGGER.debug("Security exception: ", e);
-			    // just make sure the securityContext is null. This will trigger a new auth if security is enabled.
-			    securityContext = null;
-            }
-
-			if (securityConf != null || securityContext != null)
-			{
-				return processPipelineSecured(message, securityContext);
-			}
-			else
-			{
-    			return processPipeline(message);
-			}
+			return processPipeline(message, getSecurityContext(message));
 		}
 		else
 		{
-    		final Call callDetails = new Call() ;
-    		callDetails.copy(message.getHeader().getCall()) ;
+    		final Call callDetails = createCallDetails(message);
 			LOGGER.debug("pipeline process disabled for message: "+message.getHeader());
 
 			faultTo(callDetails, Factory.createErrorMessage(Factory.NOT_ENABLED, message, null));
@@ -407,40 +421,110 @@
 		}
 	}
 
-	private boolean processPipelineSecured(final Message message, SecurityContext securityContext)
+	/**
+	 * Processes the action pipeline.
+	 * <p/>
+	 * If the service has been enable for security authentication, it has the security element
+	 * in the configuration xml that is, this method will authenitcate the caller.
+	 * If security has not been enabled this method will not perform any authentication but
+	 * it will pass through a pre-existing SecurityContext.
+	 * <p>
+	 *
+	 * <h1>SecurityContext</h1>
+	 * After the caller has been successfully authenticated a SecurityContext will be created.
+	 * This context is valid on the current ESB node(VM) only.
+	 * When a SecurityContext is created a timeout is specified. This value can either be the globally
+	 * value specified in jbossesb-properties.xml or it can be overridden per service by specifiying the
+	 * same property in the security element in jboss-esb.xml:
+	 * The value is specified in milliseconds.
+	 * <pre>
+	 *     <security module="someModuleName">
+	 *         <property name="org.jboss.soa.esb.services.security.contextTimeout" value="50000"/>
+	 *     </security>
+	 * </pre>
+	 *
+	 * <h1>AuthenticationRequest</h1>
+	 * If a call is routed to a different ESB node then that node will re-authenticate the caller.
+	 * The node will descrypt the authentication request passed with the Message object
+	 * and try to authenticate the caller.
+	 *
+	 * <h1>SecurityContext Propagation</h1>
+	 * Regardless of whether the service has been configured with security or not, the security
+	 * context information might need to be propagated using the configured {@link SecurityContextPropagator}.
+	 *
+	 * @param message The ESB message object.
+	 * @param sealedSecurityContext The sealed SecurityContext which will exist if the caller has already been authenticated.
+	 * @return true If the action pipeline was processed successfully.
+	 */
+	private boolean processPipeline(final Message message, final SealedObject sealedSecurityContext)
 	{
-		final Call callDetails = new Call() ;
-		callDetails.copy(message.getHeader().getCall()) ;
+		SecurityContext securityContext = null;
 
+		if (sealedSecurityContext != null )
+        {
+    		// Store the security context. Will be re-attached to outgoing messages regardless whether the service is secured or not.
+            SecurityContext.setSecurityContext(sealedSecurityContext);
+        }
+
+		AuthenticationRequest authRequest;
 		try
 		{
-		    // always perform authentication if the service is security enabled.
-		    if (securityConf != null )
+		    /*
+		     * Get the authentication reqeust if one exists. Note that this is needed even if
+		     * the current service does not require authentication. A service later down the line might
+		     * need to access this information, it might call an EJB that is secured for example, and
+		     * this way pass it through.
+		     */
+    		authRequest = getAutenticationRequest(message);
+
+		    if (isServiceSecured())
 		    {
-		        if (securityContext == null)
+		        try
+                {
+		            // Try to decrypt the security context.
+                    securityContext = SecurityContext.decryptContext(sealedSecurityContext);
+                }
+                catch (final SecurityServiceException ignored)
+                {
+                    LOGGER.info("Could not decrypt the security context in Service '" + serviceName + "'. The call might have come from a different VM. Will re-authenticate if security is enabled for this service.", ignored);
+                    securityContext = null;
+                }
+
+                if (LOGGER.isDebugEnabled())
+                {
+                    if (securityContext != null)
+                    {
+                        /*
+                         * Might be interesting to know if a security context is often invalid as this
+                         * will cause re-authentication. This might be avoidable by setting a longer
+                         * timeout by overriding the default timeout(jbossesb-properties.xml) and specifying
+                         * one on the security element in jboss-esb.xml.
+                         */
+        		        LOGGER.debug(securityContext);
+                    }
+                }
+
+    			final SecurityService securityService = SecurityServiceFactory.getSecurityService();
+
+		        if (securityContext == null || !securityContext.isValid())
 		        {
-		            // no existing security context exist. Create one to drive the autentication.
-    		        securityContext = new SecurityContext();
+		            if (authRequest == null)
+		            {
+		                throw new SecurityServiceException("Service '" + serviceName + "' has been configured for security but no AuthenticationRequest could be located in the Message Context. Cannot authenticate without an AuthenticationRequest.");
+		            }
 
-        			// 	get the authentication request from the message
-            		byte[] encrypted = (byte[]) message.getContext().getContext(SecurityService.AUTH_REQUEST);
-            		if (encrypted == null)
-            		{
-            		   throw new SecurityServiceException("Missing AuthenticationRequest. Cannot be authenticated.");
-            		}
-            		AuthenticationRequest authRequest = (AuthenticationRequest) PublicCryptoUtil.INSTANCE.decrypt(encrypted);
+		             // No existing security context exist or it had expired. Create a new one to drive the autentication.
+    		        securityContext = new SecurityContext(new Subject(), getSecurityContextTimeout(securityConf));
 
-            		//  authenticate the caller
-        			SecurityServiceFactory.getSecurityService().authenticate(securityConf, securityContext, authRequest);
+            		// Authenticate the caller
+        			securityService.authenticate(securityConf, securityContext, authRequest);
+
+            		// Store the encrypted security context. Will be re-attached to outgoing messages.
+        			SecurityContext.setSecurityContext(SecurityContext.encryptContext(securityContext));
 		        }
-		        /*
-		         * The SecurityContext was not null so we were able to decrypt the security context
-		         * and this is a valid authenticated request and re-authentication is not done.
-		         */
 
-		        // check the allowed roles if configured.
-        		boolean checkRolesAllowed = SecurityServiceFactory.getSecurityService().checkRolesAllowed(securityConf.getRolesAllowed(), securityContext);
-        		if (!checkRolesAllowed)
+		        // Check that the caller is a member of atleast one of the declared roles.
+        		if (!securityService.checkRolesAllowed(securityConf.getRolesAllowed(), securityContext))
         		{
         			throw new SecurityServiceException("Caller did not belong to any of the rolesAllowed " + securityConf.getRolesAllowed());
         		}
@@ -448,42 +532,53 @@
 		}
 		catch (final SecurityServiceException e)
 		{
-			LOGGER.debug( "SecurityService exception : ", e);
-			faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
+			LOGGER.error( "SecurityService exception : ", e);
+			faultTo(createCallDetails(message), Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
 			return false;
 		}
 		catch (final ConfigurationException e)
 		{
-			LOGGER.debug( "SecurityService exception : ", e);
-			faultTo(callDetails, Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
+			LOGGER.error( "SecurityService exception : ", e);
+			faultTo(createCallDetails(message), Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
 			return false;
 		}
 		finally
 		{
-		    // always remove the security context
+		    // Always remove the security context.
     		message.getContext().removeContext(SecurityService.CONTEXT);
     		message.getContext().removeContext(SecurityService.AUTH_REQUEST);
 		}
 
-		// the work to be performed in the context of the authenticated caller
-		PrivilegedAction<Boolean> action = new PrivilegedAction<Boolean>()
+		if (securityContext != null)
 		{
-			public Boolean run()
-			{
-				return processPipeline(message);
-			}
-		};
+		    try
+		    {
+    		    // Need to propagate the security context regardless if security was enabled for this service or not.
+		        propagateSecurityContext(message, securityContext, authRequest);
 
-		Boolean processResult = (Boolean)Subject.doAsPrivileged(securityContext.getSubject(), action, null);
-
-		return processResult.booleanValue();
+        		return (Boolean) Subject.doAsPrivileged(securityContext.getSubject(), getPrivilegedAction(message), null);
+		    }
+    		catch (final SecurityServiceException e)
+    		{
+    			LOGGER.error( "SecurityService exception : ", e);
+    			faultTo(createCallDetails(message), Factory.createErrorMessage(Factory.UNEXPECTED_ERROR, message, e));
+    			return false;
+    		}
+		    finally
+		    {
+		        popSecurityContext(securityContext);
+		    }
+		}
+		else
+		{
+		    return processPipeline(message);
+		}
 	}
 
 	private boolean processPipeline(final Message message)
 	{
 		final long start = System.nanoTime();
-		final Call callDetails = new Call() ;
-		callDetails.copy(message.getHeader().getCall()) ;
+		final Call callDetails = createCallDetails(message);
 
 			if (LOGGER.isDebugEnabled())
 			{
@@ -839,4 +934,141 @@
 		}
 	}
 
+    private boolean isServiceSecured()
+    {
+        return securityConf != null;
+    }
+
+    /**
+     * Retrieves the authentication reqeust from the Message context using
+     * {@link SecurityService#AUTH_REQUEST} as the key.
+     * <p/>
+     * This location may contain an encrypted AuthenticationRequest and if one
+     * exists it will be decryped and return. If one does not exist this
+     * method will return null.
+     *
+     * @param message The ESB Message object.
+     * @return {@link AuthenticationRequest} The decrypted AuthenticationRequest or null if one did not exist.
+     *
+     * @throws SecurityServiceException If a problem occurs during decryption.
+     */
+    private AuthenticationRequest getAutenticationRequest(final Message message) throws SecurityServiceException
+    {
+        final byte[] encryptedAuthRequest = (byte[]) message.getContext().getContext(SecurityService.AUTH_REQUEST);
+        if (encryptedAuthRequest != null)
+        {
+    		// store the encrypted auth request. Will be re-attached to outgoing messages.
+            AuthenticationRequestImpl.setEncryptedAuthRequest(encryptedAuthRequest);
+
+            return (AuthenticationRequest) PublicCryptoUtil.INSTANCE.decrypt(encryptedAuthRequest);
+        }
+        return null;
+    }
+
+    private SealedObject getSecurityContext(final Message message)
+    {
+        return (SealedObject) message.getContext().getContext(SecurityService.CONTEXT);
+    }
+
+    private PrivilegedAction<Boolean> getPrivilegedAction(final Message message)
+    {
+        // the work to be performed in the context of the authenticated caller
+        return new PrivilegedAction<Boolean>()
+        {
+            public Boolean run()
+            {
+                return processPipeline(message);
+            }
+        };
+    }
+
+    @SuppressWarnings("deprecation")
+    private Call createCallDetails(final Message message)
+    {
+        Call callDetails;
+        try
+        {
+            callDetails = new Call(message.getHeader().getCall());
+        }
+        catch (final URISyntaxException e)
+        {
+            LOGGER.error("Caught an URISyntaxException while calling Call's copy constructor. Will revert to using the old way using the copy method.", e);
+            callDetails = new Call();
+    		callDetails.copy(message.getHeader().getCall()) ;
+        }
+        return callDetails;
+    }
+
+    /**
+     * Checks if the security config has a property named 'org.jboss.soa.esb.services.security.contextTimeout'
+     * specified. This will in that case be used as the SecurityContext timeout for this pipeline.
+     * If not specified the value will fallback to the value specified in jbossesb-properties.xml
+     *
+     * @param securityConfig The security configuration for this pipeline. This maps to the security element in jboss-esb.xml
+     * @return long Either the timeout value specified in the security element in jboss-esb.xml otherwise the value in jbossesb-properties.xml
+     * @throws SecurityServiceException If the value specified in jbossesb-properties.xml cannot be parsed. If the value in jboss-esb.xml cannot be parsed, only a warning will be issued.
+     */
+    long getSecurityContextTimeout(final SecurityConfig securityConfig) throws SecurityServiceException
+    {
+        String timeoutStr = securityConfig.getProperties().get(Environment.SECURITY_SERVICE_CONTEXT_TIMEOUT);
+        if (timeoutStr != null)
+        {
+            try
+            {
+                return Long.parseLong(timeoutStr);
+            }
+            catch (final NumberFormatException ignore)
+            {
+                LOGGER.warn("Could not parse '" + timeoutStr +"' to a long. Please make sure the the value of the property '" + Environment.SECURITY_SERVICE_CONTEXT_TIMEOUT + "' in jbossesb-xml is a valid long(ms)");
+               // fallback to global configuration.
+            }
+        }
+        return SecurityContext.getConfigurationTimeout();
+    }
+
+    /**
+     * Propagates the security context by delegating to the current {@link SecurityContextPropagator}.
+     * This method returns silently if a SecurityContextPropagator has not been configured to avoid
+     * the overhead of decrypting the AuthenticationRequest (is needed).
+     *
+     * @param message The ESB message object.
+     * @param context The SecurityContext.
+     * @param authRequest The {@link AuthenticationRequest}.
+     * @throws SecurityServiceException
+     */
+    private void propagateSecurityContext(final Message message, final SecurityContext context, final AuthenticationRequest authRequest) throws SecurityServiceException
+    {
+        if (securityContextPropagator == null)
+        {
+            // No need to do anything if a security context propagator was not configured.
+            return;
+        }
+
+        final AuthenticationRequest request;
+        if (authRequest == null)
+        {
+            final byte[] encryptedAuthRequest = (byte[]) message.getContext().getContext(SecurityService.AUTH_REQUEST);
+            if (encryptedAuthRequest == null)
+            {
+               // there might not be a authentication reqeust. Just return.
+               return;
+            }
+            request = (AuthenticationRequest) PublicCryptoUtil.INSTANCE.decrypt(encryptedAuthRequest);
+        }
+        else
+        {
+            // use the passed in authentication request.
+            request = authRequest;
+        }
+
+        securityContextPropagator.pushSecurityContext(context, request.getCredentials(), securityConf);
+    }
+
+    private void popSecurityContext(final SecurityContext securityContext)
+    {
+        if (securityContextPropagator != null)
+        {
+            securityContextPropagator.popSecurityContext(securityContext, securityConf);
+        }
+    }
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionStatusBean.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionStatusBean.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/ActionStatusBean.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -36,7 +36,7 @@
 	private int m_procCount;
 	private String m_status;
 	private long m_procTime;
-	private int m_bytesProcessed;
+	private long m_bytesProcessed;
 	
 	
 	public static final String ACTION_SENT = "SENT";
@@ -55,13 +55,13 @@
 		m_bytesProcessed = 0;
 		try {
 			String bytes = (String) f_message.getProperties().getProperty(Environment.MESSAGE_BYTE_SIZE);
-			m_bytesProcessed = Integer.parseInt(bytes);
+			m_bytesProcessed = Long.parseLong(bytes);
 		} catch (NullPointerException npe) {			
 		} catch (NumberFormatException nfe) {
 		}
 	}
 	
-	public int getBytesProcessed() {
+	public long getBytesProcessed() {
 		return m_bytesProcessed;
 	}
 	

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageAwareListener.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -199,7 +199,16 @@
             {
                 throw new ManagedLifecycleException("Error configuring action processing pipeline", ce) ;
             }
-            
+
+            try
+            {
+                RegistryUtil.register(_config, _epr);
+            }
+            catch (final RegistryException re)
+            {
+                throw new ManagedLifecycleException("Unexpected error during registration for epr " + _epr, re);
+            }
+
             this.pipeline = pipeline ;
             final PickUpOnlyCourier pickUpCourier ;
             try
@@ -209,21 +218,14 @@
             }
             catch (final MalformedEPRException mepre)
             {
+                RegistryUtil.unregister(_eprCategoryName, _eprName, _epr) ;
                 throw new ManagedLifecycleException("Malformed EPR: " + _epr) ;
             }
             catch (final CourierException ce)
             {
+                RegistryUtil.unregister(_eprCategoryName, _eprName, _epr) ;
                 throw new ManagedLifecycleException("No appropriate courier can be obtained for " + _epr, ce);
             }
-            
-            try
-            {
-                RegistryUtil.register(_config, _epr);
-            }
-            catch (final RegistryException re)
-            {
-                throw new ManagedLifecycleException("Unexpected error during registration for epr " + _epr, re);
-            }
         }
 
         /**

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounter.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounter.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounter.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -69,11 +69,11 @@
 		return MessageCounterStatistics.getMessageCounterStatistics().getSuccessfulMessageCount();
 	}
 
-	public int getProcessedBytes() {
+	public long getProcessedBytes() {
 		return MessageCounterStatistics.getMessageCounterStatistics().getProcessedBytes();
 	}
 	
-	public int getFailedBytes() {
+	public long getFailedBytes() {
 		return MessageCounterStatistics.getMessageCounterStatistics().getFailedBytes();
 	}
 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterMBean.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterMBean.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterMBean.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -43,7 +43,7 @@
 		
 	public void resetCounts();
 	
-	public int getProcessedBytes();
+	public long getProcessedBytes();
 	
-	public int getFailedBytes();
+	public long getFailedBytes();
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageCounterStatistics.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -39,8 +39,8 @@
 	private int failedMessageCount;
 	private int successMessageCount;
 	private long totalProcessTime;
-	private int bytesProcessed;
-	private int bytesFailed;
+	private long bytesProcessed;
+	private long bytesFailed;
 	
 	/**
 	 * Constructor.
@@ -89,11 +89,11 @@
 		return successMessageCount;
 	}
 
-	public synchronized int getProcessedBytes() {
+	public synchronized long getProcessedBytes() {
 		return bytesProcessed;
 	}
 	
-	public synchronized int getFailedBytes() {
+	public synchronized long getFailedBytes() {
 		return bytesFailed;
 	}
 	

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageStatusBean.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageStatusBean.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/listeners/message/MessageStatusBean.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -95,12 +95,12 @@
 	 * Message number of bytes getter
 	 * @return message bytes
 	 */
-	public int getMessageBytes() {
-		int messageBytes = 0;
+	public long getMessageBytes() {
+		long messageBytes = 0;
 		try {
 			String byteSizeString = (String) this.m_msg.getProperties().getProperty(Environment.MESSAGE_BYTE_SIZE);
 			if (byteSizeString != null) {
-				messageBytes = Integer.parseInt(byteSizeString);
+				messageBytes = Long.parseLong(byteSizeString);
 			}
 		} catch (NullPointerException npe) {
 		}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Body.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Body.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/message/Body.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -168,6 +168,8 @@
 	/**
 	 * Replace this body instance with the one given.
 	 * 
+	 * This method is not thread safe.
+	 * 
 	 * @param b
 	 *            the body to be replaced with.
 	 */
@@ -178,6 +180,8 @@
 	 * Merge two bodies. Any duplicate entries in the current instance will be
 	 * lost in favour of the new instance.
 	 * 
+	 * This method is not thread safe.
+	 * 
 	 * @param b
 	 *            the body to be merged with.
 	 */

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/schedule/SchedulerJob.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -239,7 +239,7 @@
         throws ParseException
     {
         final CronTrigger trigger = new CronTrigger(getJobName(), JOB_GROUP, cronExpression) ;
-        trigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_DO_NOTHING) ;
+        trigger.setMisfireInstruction(CronTrigger.MISFIRE_INSTRUCTION_FIRE_ONCE_NOW) ;
         if (startDate != null)
         {
             trigger.setStartTime(startDate) ;

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/PublicCryptoUtil.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -44,6 +44,7 @@
 import org.jboss.soa.esb.util.ClassUtil;
 
 /**
+ * Util for encrypting/decrypting using assymmetric keys.
  *
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
  *
@@ -71,6 +72,78 @@
         }
     }
 
+    public byte[] encrypt(final Serializable object) throws SecurityServiceException
+    {
+        if (!isSecurityConfigured)
+        {
+            return null;
+        }
+    
+        ByteArrayInputStream plainInStream;
+        try
+        {
+            plainInStream = new ByteArrayInputStream(getBytes(object));
+        }
+        catch (final IOException e)
+        {
+            throw new SecurityServiceException(e.getMessage(), e);
+        }
+    
+        ByteArrayOutputStream encryptedOutStream = new ByteArrayOutputStream();
+    
+        try
+        {
+            byte[] buf = new byte[100];
+            int bufLength;
+            while ( (bufLength = plainInStream.read(buf)) != -1)
+            {
+                byte[] tmp = CryptoUtil.encrypt(copyBytes(buf,bufLength), publicKey, transformation);
+                encryptedOutStream.write(tmp);
+                encryptedOutStream.flush();
+            }
+            return encryptedOutStream.toByteArray();
+        }
+        catch (final IOException e)
+        {
+            throw new SecurityServiceException(e.getMessage(), e);
+        }
+    }
+
+    public Serializable decrypt(final byte[] bytes) throws SecurityServiceException
+    {
+        if (!isSecurityConfigured)
+        {
+            return null;
+        }
+        ByteArrayInputStream encryptedBytesInStream = new ByteArrayInputStream(bytes);
+    
+        ByteArrayOutputStream decryptedBytesOutStream = new ByteArrayOutputStream();
+    
+        byte[] decryptBytes = null;
+        try
+        {
+            byte[] buf = new byte[128];
+            int bufLenth;
+            while ( (bufLenth = encryptedBytesInStream.read(buf)) != -1)
+            {
+                byte[] tmp = CryptoUtil.decrypt( copyBytes(buf,bufLenth),(PrivateKey)key, transformation);
+                decryptedBytesOutStream.write(tmp);
+                decryptedBytesOutStream.flush();
+                decryptBytes = decryptedBytesOutStream.toByteArray();
+            }
+        }
+        catch (final IOException e)
+        {
+            throw new SecurityServiceException(e.getMessage(), e);
+        }
+        finally
+        {
+            try { decryptedBytesOutStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(),ignore); }
+        }
+    
+        return toSerializable(decryptBytes);
+    }
+
     private void init() throws SecurityServiceException
     {
         String keystorePath = Configuration.getSecurityServicePublicKeystore();
@@ -152,78 +225,6 @@
         return bout.toByteArray();
     }
 
-    public byte[] encrypt(final Serializable object) throws SecurityServiceException
-    {
-        if (!isSecurityConfigured)
-        {
-            return null;
-        }
-
-        ByteArrayInputStream plainInStream;
-        try
-        {
-            plainInStream = new ByteArrayInputStream(getBytes(object));
-        }
-        catch (final IOException e)
-        {
-            throw new SecurityServiceException(e.getMessage(), e);
-        }
-
-        ByteArrayOutputStream encryptedOutStream = new ByteArrayOutputStream();
-
-        try
-        {
-            byte[] buf = new byte[100];
-            int bufLength;
-            while ( (bufLength = plainInStream.read(buf)) != -1)
-            {
-                byte[] tmp = CryptoUtil.encrypt(copyBytes(buf,bufLength),publicKey, transformation);
-                encryptedOutStream.write(tmp);
-                encryptedOutStream.flush();
-            }
-            return encryptedOutStream.toByteArray();
-        }
-        catch (final IOException e)
-        {
-            throw new SecurityServiceException(e.getMessage(), e);
-        }
-    }
-
-    public Serializable decrypt(final byte[] bytes) throws SecurityServiceException
-    {
-        if (!isSecurityConfigured)
-        {
-            return null;
-        }
-        ByteArrayInputStream encryptedBytesInStream = new ByteArrayInputStream(bytes);
-
-        ByteArrayOutputStream decryptedBytesOutStream = new ByteArrayOutputStream();
-
-        byte[] decryptBytes = null;
-        try
-        {
-            byte[] buf = new byte[128];
-            int bufLenth;
-            while ( (bufLenth = encryptedBytesInStream.read(buf)) != -1)
-            {
-                byte[] tmp = CryptoUtil.decrypt( copyBytes(buf,bufLenth),(PrivateKey)key, transformation);
-                decryptedBytesOutStream.write(tmp);
-                decryptedBytesOutStream.flush();
-                decryptBytes = decryptedBytesOutStream.toByteArray();
-            }
-        }
-        catch (final IOException e)
-        {
-            throw new SecurityServiceException(e.getMessage(), e);
-        }
-        finally
-        {
-            try { decryptedBytesOutStream.close(); } catch (IOException ignore) { log.error(ignore.getMessage(),ignore); }
-        }
-
-        return toSerializable(decryptBytes);
-    }
-
     private Serializable toSerializable(final byte[] decryptBytes) throws SecurityServiceException
     {
         ObjectInputStream inputStream = null;

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityConfigUtil.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -49,13 +49,11 @@
 		builder.rolesAllowed(securityFragment.getAttribute(ListenerTagNames.ROLES_ALLOWED));
 		builder.callBackhandler(securityFragment.getAttribute(ListenerTagNames.CALLBACK_HANDLER_TAG));
 
-		final Map<String,String> properties = new HashMap<String, String>();
 		ConfigTree[] children = securityFragment.getChildren("property");
 		for (ConfigTree configTree : children)
 		{
 			String propertyName = configTree.getAttribute("name");
 			String propertyValue = configTree.getAttribute("value");
-		    System.out.println(propertyName + " " + propertyValue);
 			builder.property(propertyName, propertyValue);
 		}
 		return builder.build();

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityContext.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -22,9 +22,6 @@
 
 import static org.jboss.soa.esb.services.security.principals.Group.ROLES_GROUP_NAME;
 
-import java.io.IOException;
-import java.io.ObjectInputStream;
-import java.io.ObjectOutputStream;
 import java.io.Serializable;
 import java.security.Principal;
 import java.security.acl.Group;
@@ -32,20 +29,29 @@
 import java.util.Enumeration;
 import java.util.Set;
 
+import javax.crypto.SealedObject;
 import javax.security.auth.Subject;
 
+import org.apache.log4j.Logger;
 import org.jboss.internal.soa.esb.assertion.AssertArgument;
 import org.jboss.internal.soa.esb.services.security.PrivateCryptoUtil;
+import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
 import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.mvel.ast.AssertNode;
 
 /**
  * Security Context contains security related information.
  * <p/>
+ *
  * Note that even though a Subject object instance is serialiable,
  * its private and public credentials are not(they are transient).
+ * <p>
  * Also not that the Principal interface is not serializable but
  * all implemenations should be.
+ * <p>
+ * When created a SecurityContext will be given a timeout argument which
+ * is the time in milliseconds after which the context is considered
+ * invalid.
  *
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
  * @since 4.4
@@ -55,34 +61,69 @@
 {
 	private static final long serialVersionUID = 1L;
 
+	private static transient ThreadLocal<SealedObject> securityContextTl = new ThreadLocal<SealedObject>();
+	
+	/**
+	 * Logger instance.
+	 */
+	private static final Logger LOGGER = Logger.getLogger(SecurityConfig.class) ;
+	/**
+	 * default timeout value if not set.
+	 */
+	private static final long DEFAULT_TIMEOUT_VALUE = 30000 ;
+
+	private static final long globalConfiguredTimeout = getGlobalConfigurationTimeout() ;
+
+	/**
+	 * The Subject associated with this context.
+	 */
 	private final Subject subject;
 
-    private Set<?> pubCredentials;
+    /**
+     * Timeout (ms) for the security context. Defaults to 5 mins.
+     */
+    private final long timeout ;
 
-    private Set<?> privCredentials;
+    /**
+     * Time of creation.
+     */
+    private long timeOfCreation = System.currentTimeMillis();
 
+	/**
+	 * Creates a SecurityContext with a default Subject.
+	 */
 	public SecurityContext()
 	{
-		subject = new Subject();
+		this(new Subject()) ;
 	}
-
-	public SecurityContext(Subject subject)
+	
+	/**
+	 * Creates a SecurityContext associating the passed in Subject with it.
+	 *
+	 * @param subject The Subject that is to be associated with this security context.
+	 */
+	public SecurityContext(final Subject subject)
 	{
+		this(subject, globalConfiguredTimeout) ;
+	}
+	/**
+	 * Creates a SecurityContext associating the passed in Subject with it.
+	 *
+	 * @param subject The Subject that is to be associated with this security context.
+	 * @param timeout A timeout which specifies how long this Security Context is valid for. Must be a positiv value.
+	 */
+	public SecurityContext(final Subject subject, final long timeout)
+	{
 	    AssertArgument.isNotNull(subject, "subject");
 		this.subject = subject;
-	}
 
-	public Subject getSubject()
-	{
-		return subject;
+	    if ( timeout < -1 )
+	    {
+	        throw new IllegalArgumentException("'timeout' for SecurityContext must not be negative other then '-1' which indicates a SecurityContext that never expires.");
+	    }
+        this.timeout = timeout;
 	}
 
-	@Override
-    public String toString()
-	{
-		return "SecurityContext [" + subject + "]";
-	}
-
 	public boolean isCallerInRole( final String roleName )
 	{
         Set<Principal> principals = subject.getPrincipals();
@@ -108,35 +149,6 @@
         return false;
 	}
 
-	private void writeObject(final ObjectOutputStream out) throws IOException
-	{
-	   out.defaultWriteObject();
-	   out.writeObject(subject.getPrivateCredentials());
-	   out.writeObject(subject.getPublicCredentials());
-	}
-
-	private void readObject(final ObjectInputStream in) throws IOException, ClassNotFoundException
-	{
-	   in.defaultReadObject();
-	   privCredentials = (Set<?>) in.readObject();
-	   pubCredentials = (Set<?>) in.readObject();
-	}
-
-	final Set<? extends Principal> getPrincipals()
-	{
-		return Collections.unmodifiableSet(subject.getPrincipals());
-	}
-
-    final Set<?> getPubCredentials()
-    {
-        return Collections.unmodifiableSet(pubCredentials);
-    }
-
-    public Set<?> getPrivCredentials()
-    {
-        return Collections.unmodifiableSet(privCredentials);
-    }
-
     /**
      * Will check if the passed in {@link AuthenticationRequest} contains the
      * same security information (Principal and credentials) as the this context.
@@ -176,38 +188,115 @@
                 }
             }
         }
-
         return false;
     }
 
-    public static SecurityContext decryptContext(final byte[] encrypt) throws SecurityServiceException
+    public long getTimeOfCreation()
     {
+        return timeOfCreation;
+    }
+
+    /**
+     * Timeout if milliseconds.
+     *
+     * @return long The timeout (ms) for this security context.
+     */
+    public long getTimeout()
+    {
+        return timeout;
+    }
+
+    public boolean isValid()
+    {
+        if ( timeout == -1 )
+        {
+            return true;
+        }
+
+        return timeOfCreation + timeout > System.currentTimeMillis();
+    }
+
+    public Subject getSubject()
+    {
+    	return subject;
+    }
+
+    @Override
+    public String toString()
+    {
+    	return "SecurityContext [isValid " + isValid() + ", timeout :" + timeout + ", timeOfCreation : " + timeOfCreation + "]";
+    }
+
+    //  package protected methods
+
+    final Set<? extends Principal> getPrincipals()
+    {
+    	return Collections.unmodifiableSet(subject.getPrincipals());
+    }
+
+    //  static methods
+
+    public static SecurityContext decryptContext(final SealedObject sealedObject) throws SecurityServiceException
+    {
+        if (sealedObject == null)
+            return null;
+
         SecurityContext context = null;
-        if (encrypt == null)
-            return context;
-
-        Serializable decrypted = PrivateCryptoUtil.INSTANCE.decrypt(encrypt);
+        Serializable decrypted = PrivateCryptoUtil.INSTANCE.unSealObject(sealedObject);
         if (decrypted instanceof SecurityContext)
         {
            context = (SecurityContext) decrypted;
-           final Subject subject = context.getSubject();
-           final Set<?> publCreds = context.getPubCredentials();
-           if (publCreds != null )
-           {
-               subject.getPublicCredentials().addAll(publCreds);
-           }
-           final Set<?> privCreds = context.getPrivCredentials();
-           if (privCreds != null)
-           {
-               subject.getPrivateCredentials().addAll(privCreds);
-           }
         }
         return context;
     }
 
-    public static byte[] encryptContext(final SecurityContext context) throws SecurityServiceException
+    public static SealedObject encryptContext(final SecurityContext context) throws SecurityServiceException
     {
-        return PrivateCryptoUtil.INSTANCE.encrypt(context);
+        return PrivateCryptoUtil.INSTANCE.sealObject(context);
     }
 
+    /**
+     * Get the globally configured security context timeout.
+     * @return the configuration context timeout
+     * @throws SecurityServiceException
+     */
+    public static long getConfigurationTimeout() throws SecurityServiceException
+    {
+        return globalConfiguredTimeout;
+    }
+
+    public static void setSecurityContext(final SealedObject sealedObject)
+    {
+        SecurityContext.securityContextTl.set(sealedObject);
+    }
+
+    public static SealedObject getSecurityContext()
+    {
+        return SecurityContext.securityContextTl.get();
+    }
+
+    private static long getGlobalConfigurationTimeout()
+    {
+        final String timeoutStr = Configuration.getSecurityServiceContextTimeout();
+        if (timeoutStr == null)
+        {
+            if (LOGGER.isDebugEnabled())
+            {
+                LOGGER.debug("No timeout was configured for the security context, using the default value. Please set the value of '" + Environment.SECURITY_SERVICE_CONTEXT_TIMEOUT + "' to the timeout you desire");
+            }
+            return DEFAULT_TIMEOUT_VALUE ;
+        }
+        else
+        {
+           try
+           {
+               return Long.parseLong(timeoutStr.trim());
+           }
+           catch(final NumberFormatException e)
+           {
+               LOGGER.warn("The value of '" + Environment.SECURITY_SERVICE_CONTEXT_TIMEOUT + "' is invalid, using default value") ;
+               return DEFAULT_TIMEOUT_VALUE ;
+           }
+        }
+    }
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/SecurityServiceFactory.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -2,17 +2,17 @@
  * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
  * LLC, and individual contributors 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
@@ -28,7 +28,7 @@
 public class SecurityServiceFactory
 {
 	private static Logger log = Logger.getLogger(SecurityServiceFactory.class);
-	
+
 	private static SecurityService instance;
 
 	private SecurityServiceFactory() { }
@@ -52,11 +52,12 @@
 			log.info("Using [" + className + "] as the SecurityService implementation.");
 			Class<?> securityClass = ClassUtil.forName(className, SecurityService.class);
 			service = (SecurityService) securityClass.newInstance();
-		} 
+			service.configure();
+		}
 		catch (ClassNotFoundException e)
 		{
 			throw new ConfigurationException("SecurityService Implementation=" + className + " not found", e);
-		} 
+		}
 		catch (Exception e)
 		{
 			throw new ConfigurationException("Invocation exception. " + e.getLocalizedMessage(), e);
@@ -64,5 +65,5 @@
 		instance = service;
 		return service;
 	}
-	
+
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/AuthenticationRequestImpl.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -41,6 +41,8 @@
 {
 	private static final long serialVersionUID = 1L;
 
+	private static transient ThreadLocal<byte[]> encryptedAuthRequest = new ThreadLocal<byte[]>();
+
 	private Principal principal;
 	private Set<?> credentials;
 	private Map<String,?> properties;
@@ -69,7 +71,17 @@
 		return principal;
 	}
 
-	public static class Builder
+	public static byte[] getEncryptedAuthRequest()
+    {
+        return encryptedAuthRequest.get();
+    }
+
+    public static void setEncryptedAuthRequest(byte[] encryptedAuthRequest)
+    {
+        AuthenticationRequestImpl.encryptedAuthRequest.set(encryptedAuthRequest);
+    }
+
+    public static class Builder
 	{
     	private Principal principal;
     	private Set<Object> credentials = new HashSet<Object>();

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,83 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.services.security.auth.login;
-
-import java.io.IOException;
-import java.util.Map;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import org.jboss.internal.soa.esb.services.security.EsbCallbackHandler;
-import org.jboss.security.auth.callback.ObjectCallback;
-import org.jboss.soa.esb.services.security.SecurityConfig;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-
-public class CertCallbackHandler implements EsbCallbackHandler
-{
-    private String keyStoreAlias;
-    private char[] keyPassword;
-    private AuthenticationRequest authRequest;
-
-    public void handle(final Callback[] callbacks) throws IOException, UnsupportedCallbackException
-    {
-        for (int i = 0; i < callbacks.length; i++)
-        {
-            if (callbacks[i] instanceof NameCallback)
-            {
-                NameCallback nameCallback = (NameCallback) callbacks[i];
-                nameCallback.setName(keyStoreAlias);
-            }
-            else if (callbacks[i] instanceof PasswordCallback)
-            {
-                PasswordCallback passwordCallback = (PasswordCallback) callbacks[i];
-                passwordCallback.setPassword(keyPassword);
-            }
-            else if (callbacks[i] instanceof ObjectCallback)
-            {
-                ObjectCallback objectCallback = (ObjectCallback) callbacks[i];
-                objectCallback.setCredential(authRequest.getCredentials());
-            }
-        }
-    }
-
-    public void setAuthenticationRequest(AuthenticationRequest authRequest)
-    {
-        this.authRequest = authRequest;
-    }
-
-    public void setSecurityConfig(final SecurityConfig config)
-    {
-        if (config != null)
-        {
-            Map<String, String> properties = config.getProperties();
-            this.keyStoreAlias = properties.get("alias");
-
-            String keyPass = properties.get("keyPassword");
-            if (keyPass != null)
-                this.keyPassword = keyPass.toCharArray();
-
-            keyPass = null;
-        }
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertCallbackHandler.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,83 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.services.security.auth.login;
+
+import java.io.IOException;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.jboss.internal.soa.esb.services.security.EsbCallbackHandler;
+import org.jboss.security.auth.callback.ObjectCallback;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+
+public class CertCallbackHandler implements EsbCallbackHandler
+{
+    private String keyStoreAlias;
+    private char[] keyPassword;
+    private AuthenticationRequest authRequest;
+
+    public void handle(final Callback[] callbacks) throws IOException, UnsupportedCallbackException
+    {
+        for (int i = 0; i < callbacks.length; i++)
+        {
+            if (callbacks[i] instanceof NameCallback)
+            {
+                NameCallback nameCallback = (NameCallback) callbacks[i];
+                nameCallback.setName(keyStoreAlias);
+            }
+            else if (callbacks[i] instanceof PasswordCallback)
+            {
+                PasswordCallback passwordCallback = (PasswordCallback) callbacks[i];
+                passwordCallback.setPassword(keyPassword);
+            }
+            else if (callbacks[i] instanceof ObjectCallback)
+            {
+                ObjectCallback objectCallback = (ObjectCallback) callbacks[i];
+                objectCallback.setCredential(authRequest.getCredentials());
+            }
+        }
+    }
+
+    public void setAuthenticationRequest(AuthenticationRequest authRequest)
+    {
+        this.authRequest = authRequest;
+    }
+
+    public void setSecurityConfig(final SecurityConfig config)
+    {
+        if (config != null)
+        {
+            Map<String, String> properties = config.getProperties();
+            this.keyStoreAlias = properties.get("alias");
+
+            String keyPass = properties.get("keyPassword");
+            if (keyPass != null)
+                this.keyPassword = keyPass.toCharArray();
+
+            keyPass = null;
+        }
+    }
+}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,483 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.services.security.auth.login;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.security.InvalidKeyException;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.Principal;
-import java.security.SignatureException;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.security.cert.X509Certificate;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Properties;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.NameCallback;
-import javax.security.auth.callback.PasswordCallback;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import javax.security.auth.login.LoginException;
-import javax.security.auth.spi.LoginModule;
-
-import org.apache.log4j.Logger;
-import org.jboss.security.auth.callback.ObjectCallback;
-import org.jboss.soa.esb.services.security.principals.Group;
-import org.jboss.soa.esb.services.security.principals.Role;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.util.ClassUtil;
-
-/**
- * A JAAS Login module that performs authentication by verifying that the
- * certificate that is passed to the ESB by the calling client can be verified
- * against a certificate in a local keystore.
- * <p/>
- *
- * Usage:
- * <pre>
- * CertLogin {
- *  org.jboss.soa.esb.services.security.auth.login.CertificateLoginModule required keyStoreURL="file://keystore" keyStorePassword="jbossesb" rolesPropertiesFile="file://roles.properties";
- * };
- * </pre>
- *
- * Option description:
- * <lu>
- *  <li>keyStoreURL - URL or simply a path to a file on the local file system or on the classpath</li>
- *  <li>keyStorePassword - password for the above keystore</li>
- *  <li>rolesPropertiesFile - URL or simply a path to a file on the local file sytem of on the classpath that contains user to role mappings:
- *  user=role1,role2
- *  </li>
- * </lu>
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- *
- */
-public class CertificateLoginModule implements LoginModule
-{
-    public static final String KEYSTORE_URL = "keyStoreURL";
-    public static final String KEYSTORE_PASSWORD = "keyStorePassword";
-    public static final String KEYSTORE_TYPE = "keyStoreType";
-    public static final String ROLE_PROPERTIES = "rolesPropertiesFile";
-
-    private Logger log = Logger.getLogger(CertificateLoginModule.class);
-
-    private Subject subject;
-    private CallbackHandler callbackHandler;
-    private Map<String, ?> options;
-    private X509Certificate verifiedCertificate;
-
-    /**
-     * Initialized this login module. Simple stores the passed in fields and also validates the options.
-     *
-     * @param subject The subject to authenticate/populate.
-     * @param callbackHandler The callbackhandler that will gather information required by this login module.
-     * @param sharedState State that is shared with other login modules. Used when modules are chained/stacked.
-     * @param options The options that were specified for this login module. See "Usage" section of this types javadoc.
-     */
-    public void initialize(final Subject subject, final CallbackHandler callbackHandler, final Map<String, ?> sharedState, final Map<String, ?> options)
-    {
-        this.subject = subject;
-        this.callbackHandler = callbackHandler;
-        this.options = options;
-    }
-
-    /**
-     * Login performs the verification of the callers certificate against the alias
-     * that that is provided by the callback handler.
-     *
-     * @return true If the login was successful otherwise false.
-     * @throws LoginException If an error occurs while trying to perform the authentication.
-     */
-    public boolean login() throws LoginException
-    {
-        assertOptions(options);
-        assertCallbackHandler(callbackHandler);
-
-        final NameCallback aliasCallback = new NameCallback("Key Alias: ");
-        final PasswordCallback passwordCallback = new PasswordCallback("Key Password", false);
-        final ObjectCallback objectCallback = new ObjectCallback("Certificate: ");
-
-        try
-        {
-            // get information from caller
-            callbackHandler.handle(new Callback[]{aliasCallback, passwordCallback, objectCallback});
-        }
-        catch (final IOException e)
-        {
-            throw new LoginException("Failed to invoke callback: "+ e.toString());
-        }
-        catch (final UnsupportedCallbackException e)
-        {
-            throw new LoginException("CallbackHandler does not support: " + e.getCallback());
-        }
-
-        final X509Certificate callerCert = getCallerCertificate(objectCallback);
-        final String alias = getAlias(aliasCallback);
-        final KeyStore keyStore = loadKeyStore();
-        try
-        {
-            //  get the certificate that matches the alias from the keystore
-            final Certificate esbCertificate = keyStore.getCertificate(alias);
-            if (esbCertificate == null)
-            {
-                throw new LoginException("No certificate found in keystore for alias '" + alias + "'");
-            }
-            //  verify that the caller supplied certificate was signed using the public key in our keystore.
-            callerCert.verify(esbCertificate.getPublicKey());
-
-            //  set the verified certificate. Will be used in commit to add principals to the subject.
-            this.verifiedCertificate = callerCert;
-            return true;
-        }
-        catch (final KeyStoreException e)
-        {
-            throw new LoginException("KeystoreException : " + e.getMessage());
-        }
-        catch (final NoSuchAlgorithmException e)
-        {
-            throw new LoginException("NoSuchAlgorithmException : " + e.getMessage());
-        }
-        catch (final InvalidKeyException e)
-        {
-            throw new LoginException("InvalidKeyExcpetion : " + e.getMessage());
-        }
-        catch (final NoSuchProviderException e)
-        {
-            throw new LoginException("NoSuchProviderException : " + e.getMessage());
-        }
-        catch (final SignatureException e)
-        {
-            throw new LoginException("SignatureException : " + e.getMessage());
-        }
-        catch (final CertificateException e)
-        {
-            throw new LoginException("CertificateException : " + e.getMessage());
-        }
-    }
-
-    /**
-     * If the login was successful this method adds principals and roles to the subject.
-     * When adding a Principal we simply use the Common Name(CN) from the Distinguished Name(DN).
-     *
-     */
-    public boolean commit() throws LoginException
-    {
-        if (verifiedCertificate == null)
-        {
-           return false;
-        }
-        else
-        {
-            final Set<Principal> principals = subject.getPrincipals();
-            String name = verifiedCertificate.getSubjectX500Principal().getName();
-            // get the CN from the DN.
-            name = name.substring(name.indexOf('=') + 1, name.indexOf(','));
-            final User authenticatedPrincipal = new User(name);
-            principals.add(authenticatedPrincipal);
-
-            addRoles(subject, authenticatedPrincipal, verifiedCertificate, Collections.unmodifiableMap(options));
-            return true;
-        }
-    }
-
-    public boolean abort() throws LoginException
-    {
-        return false;
-    }
-
-    public boolean logout() throws LoginException
-    {
-        verifiedCertificate = null;
-        return false;
-    }
-
-    /**
-     * The addRoles method add roles to the authenticated subject.
-     * This method is protected to let users easliy override only this method if they
-     * need a different behaviour.
-     *
-     * @param subject The subject
-     * @param principal The authenticated principal
-     * @param cert  The certificate that of the authenticated principal
-     * @param options The options that were specified to this login module.
-     * @throws LoginException
-     */
-    protected void addRoles(final Subject subject, final Principal principal, final X509Certificate cert, final Map<String, ?> options) throws LoginException
-    {
-        final String roleProperties = (String) options.get(ROLE_PROPERTIES);
-        if (roleProperties == null)
-        {
-            log.warn("No " + ROLE_PROPERTIES + " was specified hence no roles will be added.");
-        }
-        else
-        {
-            InputStream resourceAsStream = getResourceAsStream(roleProperties, getClass());
-            try
-            {
-                resourceAsStream = getResourceAsStream(roleProperties, getClass());
-                if (resourceAsStream == null )
-                {
-                    throw new LoginException(ROLE_PROPERTIES + " was specified as '" + roleProperties + "' but could not be located on the local file system or on the classpath. Please check the configuration.");
-                }
-                final Properties roles = new Properties();
-                //  load the roles properties file
-                roles.load(resourceAsStream);
-
-                //  get the list of roles specified for the authenticated principal
-                final String listOfRoles = (String)roles.get(principal.getName());
-                if (listOfRoles != null )
-                {
-                    log.debug("Roles for " + principal.getName() + " [" + listOfRoles + "]");
-                    for (String role : listOfRoles.split(","))
-                    {
-                        addRole(role, subject);
-                    }
-                }
-            }
-            catch (final IOException e)
-            {
-                throw new LoginException("IOException while trying to read properties from '" + roleProperties + "'");
-            }
-            finally
-            {
-                try { resourceAsStream.close(); } catch (final IOException ignore) { log.error(ignore.getMessage(), ignore);}
-            }
-        }
-    }
-
-    private void addRole(final String roleName, final Subject subject )
-    {
-        if (roleName != null)
-        {
-            final Role role = new Role(roleName);
-            final Set<Group> principals = subject.getPrincipals(Group.class);
-            if ( principals.isEmpty() )
-            {
-                final Group group = new Group("Roles");
-                group.addMember(role);
-                subject.getPrincipals().add(group);
-            }
-            else
-            {
-                for (Group groups : principals)
-                {
-                    if ( "Roles".equals(groups.getName()) )
-                    {
-                        groups.addMember(role);
-                    }
-                }
-            }
-        }
-    }
-
-    /**
-     * Assert that the required options have been specified for this login module.
-     * Mandatory options are:
-     * <lu>
-     *  <li>keyStoreURL</li>
-     *  <li>keyStorePassword</li>
-     * </lu>
-     * @param options The options that were specified.
-     * @throws LoginException If a mandatory option was missing.
-     */
-    void assertOptions(final Map<String, ?> options) throws LoginException
-    {
-        if (options == null || options.isEmpty() || !options.containsKey(KEYSTORE_URL) || !options.containsKey(KEYSTORE_PASSWORD))
-        {
-            throw new LoginException(getMissingRequiredOptionString(options));
-        }
-    }
-
-    private KeyStore loadKeyStore() throws LoginException
-    {
-        final String keyStorePath = (String)options.get(KEYSTORE_URL);
-        KeyStore keystore = null;
-        InputStream in = null;
-        try
-        {
-            String keyStoreType = (String)options.get(KEYSTORE_TYPE);
-            if (keyStoreType == null)
-            {
-                keyStoreType = KeyStore.getDefaultType();
-            }
-
-            keystore = KeyStore.getInstance(keyStoreType);
-            in = getResourceAsStream(keyStorePath, getClass());
-            if (in == null)
-            {
-                throw new LoginException("Could not open a stream to the keystore '" + keyStorePath + "'");
-            }
-            keystore.load(in, ((String)options.get(KEYSTORE_PASSWORD)).toCharArray());
-
-            log.info("Successfully loaded keystore: '" + keyStorePath + "'");
-        }
-        catch (final KeyStoreException e)
-        {
-            throw new LoginException("KeyStoreException while trying to load keystore '" + keyStorePath + "': " + e.getMessage());
-        }
-        catch (NoSuchAlgorithmException e)
-        {
-            throw new LoginException("NoSuchAlgorithm while trying to load keystore '" + keyStorePath + "': " + e.getMessage());
-        }
-        catch (CertificateException e)
-        {
-            throw new LoginException("CertificateException while trying to load keystore '" + keyStorePath + "': " + e.getMessage());
-        }
-        catch (IOException e)
-        {
-            throw new LoginException("IOException while trying to load keystore '" + keyStorePath + "': " + e.getMessage());
-        }
-        finally
-        {
-            if (in != null) { try { in.close(); } catch (final IOException e) { log.error("Error while closing stream to keystore '" + keyStorePath + "'", e); } }
-        }
-        return keystore;
-    }
-
-    /**
-     * Get an string contain the options that were missing in the configuration
-     * for this login module.
-     *
-     * @param options The map of options that were specified for this login module.
-     * @return String A string that contains only the options that were not specified.
-     */
-    private String getMissingRequiredOptionString(final Map<String, ?> options)
-    {
-
-        final StringBuilder sb = new StringBuilder();
-        sb.append("Options missing [");
-
-        if (options == null || !options.containsKey(KEYSTORE_URL))
-        {
-            sb.append(KEYSTORE_URL).append(", ");
-        }
-
-        if (options == null || !options.containsKey(KEYSTORE_PASSWORD))
-        {
-            sb.append(KEYSTORE_PASSWORD).append(",");
-        }
-
-        sb.append("]");
-
-        return sb.toString();
-    }
-
-    private void assertCallbackHandler(final CallbackHandler handler) throws LoginException
-    {
-        if (callbackHandler == null)
-        {
-            throw new LoginException("No callback handler was specified for CertificateLoginModule.");
-        }
-    }
-
-    private X509Certificate getCallerCertificate(final ObjectCallback objectCallback) throws LoginException
-    {
-        final Set<?> credentials = (Set<?>) objectCallback.getCredential();
-        if (credentials == null || credentials.isEmpty())
-        {
-            throw new LoginException("No X509Certificate was passed to the login module");
-        }
-
-        X509Certificate callerCert = null;
-        for (Object object : credentials)
-        {
-            if (object instanceof X509Certificate)
-            {
-                callerCert = (X509Certificate) object;
-                break;
-            }
-        }
-
-        if (callerCert == null)
-        {
-            throw new LoginException("No X509Certificate was passed to the login module");
-        }
-
-        return callerCert;
-    }
-
-    private String getAlias(final NameCallback callback) throws LoginException
-    {
-        final String alias = callback.getName();
-        if (alias == null)
-        {
-            throw new LoginException("No X509Certificate was passed to the login module");
-        }
-        else
-        {
-            return callback.getName();
-        }
-    }
-
-    /**
-     * Get the specified resource as a stream. First try the resource as a file
-     * from the file system, and if not found try the classpath.
-     * <p/>
-     * The method performs the file system search but delegates the classpath
-     * lookup to {@link ClassUtil}.
-     *
-     * @param resourceName The name of the class to load.
-     * @param caller The class of the caller.
-     * @return The input stream for the resource or null if not found.
-     */
-    private InputStream getResourceAsStream(final String resourceName, final Class<?> caller)
-    {
-        URL fileUrl = null;
-        File file = null;
-        try
-        {
-            // try to parse the resouceName as an url.
-            fileUrl = new URL(resourceName);
-            file = new File(fileUrl.getFile());
-        }
-        catch (MalformedURLException ignored)
-        {
-            file = new File(resourceName);
-        }
-
-        if (file.exists() && file.isFile())
-        {
-            try
-            {
-                return new FileInputStream(file);
-            }
-            catch (final FileNotFoundException ignore)
-            {
-                // will revert to looking for the resource using the classpath
-            }
-        }
-        return ClassUtil.getResourceAsStream(resourceName, caller);
-    }
-
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModule.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,483 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.services.security.auth.login;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.security.InvalidKeyException;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import java.security.Principal;
+import java.security.SignatureException;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+import java.security.cert.X509Certificate;
+import java.util.Collections;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import javax.security.auth.Subject;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import javax.security.auth.login.LoginException;
+import javax.security.auth.spi.LoginModule;
+
+import org.apache.log4j.Logger;
+import org.jboss.security.auth.callback.ObjectCallback;
+import org.jboss.soa.esb.services.security.principals.Group;
+import org.jboss.soa.esb.services.security.principals.Role;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.util.ClassUtil;
+
+/**
+ * A JAAS Login module that performs authentication by verifying that the
+ * certificate that is passed to the ESB by the calling client can be verified
+ * against a certificate in a local keystore.
+ * <p/>
+ *
+ * Usage:
+ * <pre>
+ * CertLogin {
+ *  org.jboss.soa.esb.services.security.auth.login.CertificateLoginModule required keyStoreURL="file://keystore" keyStorePassword="jbossesb" rolesPropertiesFile="file://roles.properties";
+ * };
+ * </pre>
+ *
+ * Option description:
+ * <lu>
+ *  <li>keyStoreURL - URL or simply a path to a file on the local file system or on the classpath</li>
+ *  <li>keyStorePassword - password for the above keystore</li>
+ *  <li>rolesPropertiesFile - URL or simply a path to a file on the local file sytem of on the classpath that contains user to role mappings:
+ *  user=role1,role2
+ *  </li>
+ * </lu>
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class CertificateLoginModule implements LoginModule
+{
+    public static final String KEYSTORE_URL = "keyStoreURL";
+    public static final String KEYSTORE_PASSWORD = "keyStorePassword";
+    public static final String KEYSTORE_TYPE = "keyStoreType";
+    public static final String ROLE_PROPERTIES = "rolesPropertiesFile";
+
+    private Logger log = Logger.getLogger(CertificateLoginModule.class);
+
+    private Subject subject;
+    private CallbackHandler callbackHandler;
+    private Map<String, ?> options;
+    private X509Certificate verifiedCertificate;
+
+    /**
+     * Initialized this login module. Simple stores the passed in fields and also validates the options.
+     *
+     * @param subject The subject to authenticate/populate.
+     * @param callbackHandler The callbackhandler that will gather information required by this login module.
+     * @param sharedState State that is shared with other login modules. Used when modules are chained/stacked.
+     * @param options The options that were specified for this login module. See "Usage" section of this types javadoc.
+     */
+    public void initialize(final Subject subject, final CallbackHandler callbackHandler, final Map<String, ?> sharedState, final Map<String, ?> options)
+    {
+        this.subject = subject;
+        this.callbackHandler = callbackHandler;
+        this.options = options;
+    }
+
+    /**
+     * Login performs the verification of the callers certificate against the alias
+     * that that is provided by the callback handler.
+     *
+     * @return true If the login was successful otherwise false.
+     * @throws LoginException If an error occurs while trying to perform the authentication.
+     */
+    public boolean login() throws LoginException
+    {
+        assertOptions(options);
+        assertCallbackHandler(callbackHandler);
+
+        final NameCallback aliasCallback = new NameCallback("Key Alias: ");
+        final PasswordCallback passwordCallback = new PasswordCallback("Key Password", false);
+        final ObjectCallback objectCallback = new ObjectCallback("Certificate: ");
+
+        try
+        {
+            // get information from caller
+            callbackHandler.handle(new Callback[]{aliasCallback, passwordCallback, objectCallback});
+        }
+        catch (final IOException e)
+        {
+            throw new LoginException("Failed to invoke callback: "+ e.toString());
+        }
+        catch (final UnsupportedCallbackException e)
+        {
+            throw new LoginException("CallbackHandler does not support: " + e.getCallback());
+        }
+
+        final X509Certificate callerCert = getCallerCertificate(objectCallback);
+        final String alias = getAlias(aliasCallback);
+        final KeyStore keyStore = loadKeyStore();
+        try
+        {
+            //  get the certificate that matches the alias from the keystore
+            final Certificate esbCertificate = keyStore.getCertificate(alias);
+            if (esbCertificate == null)
+            {
+                throw new LoginException("No certificate found in keystore for alias '" + alias + "'");
+            }
+            //  verify that the caller supplied certificate was signed using the public key in our keystore.
+            callerCert.verify(esbCertificate.getPublicKey());
+
+            //  set the verified certificate. Will be used in commit to add principals to the subject.
+            this.verifiedCertificate = callerCert;
+            return true;
+        }
+        catch (final KeyStoreException e)
+        {
+            throw new LoginException("KeystoreException : " + e.getMessage());
+        }
+        catch (final NoSuchAlgorithmException e)
+        {
+            throw new LoginException("NoSuchAlgorithmException : " + e.getMessage());
+        }
+        catch (final InvalidKeyException e)
+        {
+            throw new LoginException("InvalidKeyExcpetion : " + e.getMessage());
+        }
+        catch (final NoSuchProviderException e)
+        {
+            throw new LoginException("NoSuchProviderException : " + e.getMessage());
+        }
+        catch (final SignatureException e)
+        {
+            throw new LoginException("SignatureException : " + e.getMessage());
+        }
+        catch (final CertificateException e)
+        {
+            throw new LoginException("CertificateException : " + e.getMessage());
+        }
+    }
+
+    /**
+     * If the login was successful this method adds principals and roles to the subject.
+     * When adding a Principal we simply use the Common Name(CN) from the Distinguished Name(DN).
+     *
+     */
+    public boolean commit() throws LoginException
+    {
+        if (verifiedCertificate == null)
+        {
+           return false;
+        }
+        else
+        {
+            final Set<Principal> principals = subject.getPrincipals();
+            String name = verifiedCertificate.getSubjectX500Principal().getName();
+            // get the CN from the DN.
+            name = name.substring(name.indexOf('=') + 1, name.indexOf(','));
+            final User authenticatedPrincipal = new User(name);
+            principals.add(authenticatedPrincipal);
+
+            addRoles(subject, authenticatedPrincipal, verifiedCertificate, Collections.unmodifiableMap(options));
+            return true;
+        }
+    }
+
+    public boolean abort() throws LoginException
+    {
+        return false;
+    }
+
+    public boolean logout() throws LoginException
+    {
+        verifiedCertificate = null;
+        return false;
+    }
+
+    /**
+     * The addRoles method add roles to the authenticated subject.
+     * This method is protected to let users easliy override only this method if they
+     * need a different behaviour.
+     *
+     * @param subject The subject
+     * @param principal The authenticated principal
+     * @param cert  The certificate that of the authenticated principal
+     * @param options The options that were specified to this login module.
+     * @throws LoginException
+     */
+    protected void addRoles(final Subject subject, final Principal principal, final X509Certificate cert, final Map<String, ?> options) throws LoginException
+    {
+        final String roleProperties = (String) options.get(ROLE_PROPERTIES);
+        if (roleProperties == null)
+        {
+            log.warn("No " + ROLE_PROPERTIES + " was specified hence no roles will be added.");
+        }
+        else
+        {
+            InputStream resourceAsStream = getResourceAsStream(roleProperties, getClass());
+            try
+            {
+                resourceAsStream = getResourceAsStream(roleProperties, getClass());
+                if (resourceAsStream == null )
+                {
+                    throw new LoginException(ROLE_PROPERTIES + " was specified as '" + roleProperties + "' but could not be located on the local file system or on the classpath. Please check the configuration.");
+                }
+                final Properties roles = new Properties();
+                //  load the roles properties file
+                roles.load(resourceAsStream);
+
+                //  get the list of roles specified for the authenticated principal
+                final String listOfRoles = (String)roles.get(principal.getName());
+                if (listOfRoles != null )
+                {
+                    log.debug("Roles for " + principal.getName() + " [" + listOfRoles + "]");
+                    for (String role : listOfRoles.split(","))
+                    {
+                        addRole(role, subject);
+                    }
+                }
+            }
+            catch (final IOException e)
+            {
+                throw new LoginException("IOException while trying to read properties from '" + roleProperties + "'");
+            }
+            finally
+            {
+                try { resourceAsStream.close(); } catch (final IOException ignore) { log.error(ignore.getMessage(), ignore);}
+            }
+        }
+    }
+
+    private void addRole(final String roleName, final Subject subject )
+    {
+        if (roleName != null)
+        {
+            final Role role = new Role(roleName);
+            final Set<Group> principals = subject.getPrincipals(Group.class);
+            if ( principals.isEmpty() )
+            {
+                final Group group = new Group("Roles");
+                group.addMember(role);
+                subject.getPrincipals().add(group);
+            }
+            else
+            {
+                for (Group groups : principals)
+                {
+                    if ( "Roles".equals(groups.getName()) )
+                    {
+                        groups.addMember(role);
+                    }
+                }
+            }
+        }
+    }
+
+    /**
+     * Assert that the required options have been specified for this login module.
+     * Mandatory options are:
+     * <lu>
+     *  <li>keyStoreURL</li>
+     *  <li>keyStorePassword</li>
+     * </lu>
+     * @param options The options that were specified.
+     * @throws LoginException If a mandatory option was missing.
+     */
+    void assertOptions(final Map<String, ?> options) throws LoginException
+    {
+        if (options == null || options.isEmpty() || !options.containsKey(KEYSTORE_URL) || !options.containsKey(KEYSTORE_PASSWORD))
+        {
+            throw new LoginException(getMissingRequiredOptionString(options));
+        }
+    }
+
+    private KeyStore loadKeyStore() throws LoginException
+    {
+        final String keyStorePath = (String)options.get(KEYSTORE_URL);
+        KeyStore keystore = null;
+        InputStream in = null;
+        try
+        {
+            String keyStoreType = (String)options.get(KEYSTORE_TYPE);
+            if (keyStoreType == null)
+            {
+                keyStoreType = KeyStore.getDefaultType();
+            }
+
+            keystore = KeyStore.getInstance(keyStoreType);
+            in = getResourceAsStream(keyStorePath, getClass());
+            if (in == null)
+            {
+                throw new LoginException("Could not open a stream to the keystore '" + keyStorePath + "'");
+            }
+            keystore.load(in, ((String)options.get(KEYSTORE_PASSWORD)).toCharArray());
+
+            log.info("Successfully loaded keystore: '" + keyStorePath + "'");
+        }
+        catch (final KeyStoreException e)
+        {
+            throw new LoginException("KeyStoreException while trying to load keystore '" + keyStorePath + "': " + e.getMessage());
+        }
+        catch (NoSuchAlgorithmException e)
+        {
+            throw new LoginException("NoSuchAlgorithm while trying to load keystore '" + keyStorePath + "': " + e.getMessage());
+        }
+        catch (CertificateException e)
+        {
+            throw new LoginException("CertificateException while trying to load keystore '" + keyStorePath + "': " + e.getMessage());
+        }
+        catch (IOException e)
+        {
+            throw new LoginException("IOException while trying to load keystore '" + keyStorePath + "': " + e.getMessage());
+        }
+        finally
+        {
+            if (in != null) { try { in.close(); } catch (final IOException e) { log.error("Error while closing stream to keystore '" + keyStorePath + "'", e); } }
+        }
+        return keystore;
+    }
+
+    /**
+     * Get an string contain the options that were missing in the configuration
+     * for this login module.
+     *
+     * @param options The map of options that were specified for this login module.
+     * @return String A string that contains only the options that were not specified.
+     */
+    private String getMissingRequiredOptionString(final Map<String, ?> options)
+    {
+
+        final StringBuilder sb = new StringBuilder();
+        sb.append("Options missing [");
+
+        if (options == null || !options.containsKey(KEYSTORE_URL))
+        {
+            sb.append(KEYSTORE_URL).append(", ");
+        }
+
+        if (options == null || !options.containsKey(KEYSTORE_PASSWORD))
+        {
+            sb.append(KEYSTORE_PASSWORD).append(",");
+        }
+
+        sb.append("]");
+
+        return sb.toString();
+    }
+
+    private void assertCallbackHandler(final CallbackHandler handler) throws LoginException
+    {
+        if (callbackHandler == null)
+        {
+            throw new LoginException("No callback handler was specified for CertificateLoginModule.");
+        }
+    }
+
+    private X509Certificate getCallerCertificate(final ObjectCallback objectCallback) throws LoginException
+    {
+        final Set<?> credentials = (Set<?>) objectCallback.getCredential();
+        if (credentials == null || credentials.isEmpty())
+        {
+            throw new LoginException("No X509Certificate was passed to the login module");
+        }
+
+        X509Certificate callerCert = null;
+        for (Object object : credentials)
+        {
+            if (object instanceof X509Certificate)
+            {
+                callerCert = (X509Certificate) object;
+                break;
+            }
+        }
+
+        if (callerCert == null)
+        {
+            throw new LoginException("No X509Certificate was passed to the login module");
+        }
+
+        return callerCert;
+    }
+
+    private String getAlias(final NameCallback callback) throws LoginException
+    {
+        final String alias = callback.getName();
+        if (alias == null)
+        {
+            throw new LoginException("No X509Certificate was passed to the login module");
+        }
+        else
+        {
+            return callback.getName();
+        }
+    }
+
+    /**
+     * Get the specified resource as a stream. First try the resource as a file
+     * from the file system, and if not found try the classpath.
+     * <p/>
+     * The method performs the file system search but delegates the classpath
+     * lookup to {@link ClassUtil}.
+     *
+     * @param resourceName The name of the class to load.
+     * @param caller The class of the caller.
+     * @return The input stream for the resource or null if not found.
+     */
+    private InputStream getResourceAsStream(final String resourceName, final Class<?> caller)
+    {
+        URL fileUrl = null;
+        File file = null;
+        try
+        {
+            // try to parse the resouceName as an url.
+            fileUrl = new URL(resourceName);
+            file = new File(fileUrl.getFile());
+        }
+        catch (MalformedURLException ignored)
+        {
+            file = new File(resourceName);
+        }
+
+        if (file.exists() && file.isFile())
+        {
+            try
+            {
+                return new FileInputStream(file);
+            }
+            catch (final FileNotFoundException ignore)
+            {
+                // will revert to looking for the resource using the classpath
+            }
+        }
+        return ClassUtil.getResourceAsStream(resourceName, caller);
+    }
+
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/src/org/jboss/soa/esb/services/security/util/CryptoUtil.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -21,6 +21,7 @@
 package org.jboss.soa.esb.services.security.util;
 
 import java.security.InvalidKeyException;
+import java.security.Key;
 import java.security.NoSuchAlgorithmException;
 import java.security.PrivateKey;
 import java.security.PublicKey;
@@ -41,7 +42,7 @@
 {
     private CryptoUtil() {}
 
-    public static byte[] decrypt(final byte[] bytes, final PrivateKey key, final String transformation) throws SecurityServiceException
+    public static byte[] decrypt(final byte[] bytes, final Key key, final String transformation) throws SecurityServiceException
     {
         try
         {
@@ -71,7 +72,7 @@
         }
     }
 
-    public static byte[] encrypt(byte[] text, PublicKey key, String transformation) throws SecurityServiceException
+    public static byte[] encrypt(byte[] text, Key key, String transformation) throws SecurityServiceException
     {
         try
         {

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -26,6 +26,9 @@
 	<property name="org.jboss.esb.ftp.lib.dir" location="${org.jboss.esb.root.dir}/ftp/lib"/>
 
     <path id="org.jboss.esb.tests.base.classpath">
+    	<!-- added these first two jar explicetly to get the security features working -->
+    	<fileset dir="${org.jboss.esb.lib.dir}" includes="jaxr-api*.jar"/>
+        <fileset dir="${org.jboss.esb.lib.dir}" includes="jbossall-client-*.jar"/>
         <fileset dir="${org.jboss.esb.ext.lib.dir}" includes="*.jar"/>
         <fileset dir="${org.jboss.esb.lib.dir}" includes="*.jar"/>
         <fileset dir="${org.jboss.esb.root.dir}/../testlib" includes="*.jar"/>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/JmsCourierUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/JmsCourierUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/JmsCourierUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/JmsCourierUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,316 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss 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.internal.soa.esb.couriers;
+
+import static org.junit.Assert.fail;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+import javax.jms.Destination;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.MessageProducer;
+import javax.jms.QueueConnection;
+import javax.jms.QueueSession;
+import javax.naming.Context;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.addressing.eprs.JMSEpr;
+import org.jboss.soa.esb.couriers.CourierTransportException;
+import org.jboss.soa.esb.helpers.NamingContextPool;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockejb.jms.MockQueue;
+import org.mockejb.jms.QueueConnectionFactoryImpl;
+import org.mockejb.jndi.MockContextFactory;
+
+/**
+ * JmsCourier unit tests.
+ * 
+ * @author <a href="mailto:kevin.conner at jboss.com">Kevin Conner</a>
+ */
+public class JmsCourierUnitTest
+{
+    private static final String CONNECTION_FACTORY = "ConnectionFactory" ;
+    private static final String QUEUE_NAME = "failQueue" ;
+    
+    private JMSEpr testEPR ;
+    
+    @Before
+    public void setUp()
+        throws Exception
+    {
+        MockContextFactory.setAsInitial();
+        
+        final Context ctx = NamingContextPool.getNamingContext(null);
+        try
+        {
+            ctx.rebind(CONNECTION_FACTORY, new MockQueueConnectionFactory());
+            ctx.rebind(QUEUE_NAME, new MockQueue(QUEUE_NAME));
+        }
+        finally
+        {
+            NamingContextPool.releaseNamingContext(ctx) ;
+        }
+        testEPR = new JMSEpr(JMSEpr.QUEUE_TYPE, QUEUE_NAME, CONNECTION_FACTORY) ;
+        testEPR.getAddr().addExtension(Context.INITIAL_CONTEXT_FACTORY, System.getProperty(Context.INITIAL_CONTEXT_FACTORY)) ;
+    }
+    
+    @After
+    public void tearDown()
+        throws Exception
+    {
+        MockContextFactory.revertSetAsInitial();
+    }
+    
+    @Test(timeout=10000)
+    public void testDelivery()
+        throws Exception
+    {
+        final JmsCourier courier = new JmsCourier(testEPR) ;
+        try
+        {
+            courier.deliver(MessageFactory.getInstance().getMessage()) ;
+            fail("Expected to receive a CourierTransportException") ;
+        }
+        catch (final CourierTransportException cte) {} // expected
+    }
+    
+    @Test(timeout=10000)
+    public void testPickup()
+        throws Exception
+    {
+        final JmsCourier courier = new JmsCourier(testEPR, true) ;
+        try
+        {
+            courier.pickup(10) ;
+            fail("Expected to receive a CourierTransportException") ;
+        }
+        catch (final CourierTransportException cte) {} // expected
+    }
+    
+    private static final class MockQueueConnectionFactory extends QueueConnectionFactoryImpl
+    {
+        @Override
+        public QueueConnection createQueueConnection() throws JMSException
+        {
+            return (QueueConnection)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] {QueueConnection.class},
+                    new MockQueueExceptionHandlerInvocationHandler(super.createQueueConnection())) ;
+        }
+    }
+    
+    private static final class MockQueueExceptionHandlerInvocationHandler implements InvocationHandler
+    {
+        private final QueueConnection queueConnection ;
+        private ExceptionListener exceptionListener ;
+            
+        MockQueueExceptionHandlerInvocationHandler(final QueueConnection queueConnection)
+        {
+            this.queueConnection = queueConnection ;
+        }
+            
+        public Object invoke(final Object proxy, final Method method, final Object[] args)
+            throws Throwable
+        {
+            final String methodName = method.getName() ;
+            if ("setExceptionListener".equals(methodName))
+            {
+                exceptionListener = (ExceptionListener)args[0] ;
+                return null ;
+            }
+            else if ("getExceptionListener".equals(methodName))
+            {
+                return exceptionListener ;
+            }
+            else
+            {
+                final Object response = method.invoke(queueConnection, args) ;
+                if (response instanceof QueueSession)
+                {
+                    final QueueSession queueSession = (QueueSession)response ;
+                    return (QueueSession)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] {QueueSession.class},
+                            new MockQueueSessionInvocationHandler(queueSession)) ;
+                }
+                else
+                {
+                    return response ;
+                }
+            }
+        }
+    }
+    
+    private static final class MockQueueSessionInvocationHandler implements InvocationHandler
+    {
+        private final QueueSession queueSession ;
+            
+        MockQueueSessionInvocationHandler(final QueueSession queueSession)
+        {
+            this.queueSession = queueSession ;
+        }
+            
+        public Object invoke(final Object proxy, final Method method, final Object[] args)
+            throws Throwable
+        {
+            final String methodName = method.getName() ;
+            if ("recover".equals(methodName))
+            {
+                return null ;
+            }
+            else if ("createConsumer".equals(methodName))
+            {
+                return new MockFailMessageConsumer() ;
+            }
+            else if ("createProducer".equals(methodName))
+            {
+                return new MockFailMessageProducer() ;
+            }
+            else
+            {
+                return method.invoke(queueSession, args) ;
+            }
+        }
+    }
+    
+    private static final class MockFailMessageConsumer implements MessageConsumer
+    {
+        public void close() throws JMSException {}
+
+        public MessageListener getMessageListener()
+            throws JMSException
+        {
+            return null;
+        }
+
+        public String getMessageSelector()
+            throws JMSException
+        {
+            return null;
+        }
+
+        public Message receive()
+            throws JMSException
+        {
+            throw new JMSException("Deliberate receive exception") ;
+        }
+
+        public Message receive(long arg0)
+        throws JMSException
+        {
+            throw new JMSException("Deliberate receive exception") ;
+        }
+
+        public Message receiveNoWait()
+            throws JMSException
+        {
+            throw new JMSException("Deliberate receive exception") ;
+        }
+
+        public void setMessageListener(MessageListener arg0) throws JMSException {}
+    }
+    
+    private static final class MockFailMessageProducer implements MessageProducer
+    {
+        public void close() throws JMSException {}
+
+        public int getDeliveryMode()
+            throws JMSException
+        {
+            return 0;
+        }
+
+        public Destination getDestination()
+            throws JMSException
+        {
+            return null;
+        }
+
+        public boolean getDisableMessageID()
+            throws JMSException
+        {
+            return false;
+        }
+
+        public boolean getDisableMessageTimestamp()
+            throws JMSException
+        {
+            return false;
+        }
+
+        public int getPriority()
+            throws JMSException
+        {
+            return 0;
+        }
+
+        public long getTimeToLive()
+            throws JMSException
+        {
+            return 0;
+        }
+
+        public void send(Message arg0)
+            throws JMSException
+        {
+            throw new JMSException("Deliberate send exception") ;
+        }
+
+        public void send(Destination arg0, Message arg1)
+            throws JMSException
+        {
+            throw new JMSException("Deliberate send exception") ;
+        }
+
+        public void send(Message arg0, int arg1, int arg2, long arg3)
+            throws JMSException
+        {
+            throw new JMSException("Deliberate send exception") ;
+        }
+
+        public void send(Destination arg0, Message arg1, int arg2, int arg3, long arg4)
+            throws JMSException
+        {
+        }
+
+        public void setDeliveryMode(int arg0) throws JMSException {}
+
+        public void setDisableMessageID(boolean arg0) throws JMSException {}
+
+        public void setDisableMessageTimestamp(boolean arg0) throws JMSException {}
+
+        public void setPriority(int arg0) throws JMSException {}
+
+        public void setTimeToLive(long arg0) throws JMSException {}
+    }
+    
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(JmsCourierUnitTest.class);
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/MockCourier.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/MockCourier.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/MockCourier.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -38,10 +38,17 @@
     public boolean deliveryAttempted = false;
     public CourierException courierException;
     public MalformedEPRException malformedEPRException;
+    private boolean setPickupMessage;
 
     public MockCourier(boolean deliveryResult) {
         this.deliveryResult = deliveryResult;
     }
+    
+    public MockCourier(boolean deliveryResult, boolean setPickupMessage) {
+        this.deliveryResult = deliveryResult;
+        this.setPickupMessage = setPickupMessage;
+        
+    }
 
     public MockCourier(CourierException courierException) {
         this.courierException = courierException;
@@ -65,6 +72,11 @@
             this.message = message;
         }
         
+        if (setPickupMessage)
+        {
+            pickupMessage = message;
+        }
+        
         return deliveryResult;
     }
 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/InVMCourierUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/InVMCourierUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/couriers/tests/InVMCourierUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -24,24 +24,36 @@
 
 import junit.framework.Assert;
 import junit.framework.JUnit4TestAdapter;
+import junit.framework.TestCase;
 import org.jboss.internal.soa.esb.couriers.InVMCourier;
 import org.jboss.internal.soa.esb.couriers.TwoWayCourierImpl;
+import org.jboss.internal.soa.esb.services.registry.InVMRegistryInterceptor;
+import org.jboss.internal.soa.esb.services.registry.MockRegistry;
 import org.jboss.soa.esb.addressing.MalformedEPRException;
+import org.jboss.soa.esb.addressing.EPR;
 import org.jboss.soa.esb.addressing.eprs.InVMEpr;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.jboss.soa.esb.couriers.CourierFactory;
+import org.jboss.soa.esb.couriers.CourierFactoryUtil;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.registry.ServiceNotFoundException;
+import org.jboss.soa.esb.services.registry.RegistryException;
 import org.junit.Test;
 
 import java.net.URI;
 import java.net.URISyntaxException;
 
-public class InVMCourierUnitTest {
+public class InVMCourierUnitTest extends TestCase {
+
     public static junit.framework.Test suite() {
         return new JUnit4TestAdapter(InVMCourierUnitTest.class);
     }
 
+    protected void tearDown() throws Exception {
+        CourierFactoryUtil.resetCourierFactory();
+    }
+
     @Test
     public void testUnthreadedDeliver() throws Exception {
         InVMEpr epr = new InVMEpr(new URI("invm://serviceid1"));
@@ -199,6 +211,97 @@
         System.err.println("Messages per second: " + msgsPerSecond);
     }
 
+    @Test
+    public void test_JBESB_2108_01() throws ServiceNotFoundException, RegistryException {
+        InVMRegistryInterceptor reg = new InVMRegistryInterceptor();
+        reg.setRegistry(new MockRegistry()) ;
+
+        reg.registerEPR("x", "y", "blah", new InVMEpr(new EPR(URI.create("x://123"))), "blah");
+
+        EPR eprFromReg = reg.findEPR("x", "y");
+        InVMCourier courier = CourierFactory.getInstance().getInVMCourier((InVMEpr) eprFromReg);
+        Assert.assertNotNull(courier);
+        Assert.assertTrue(courier.isActive());
+
+        // Register the EPR again...
+        reg.registerEPR("x", "y", "blah", new InVMEpr(new EPR(URI.create("x://123"))), "blah");
+
+        // Unregister it once...
+        reg.unRegisterEPR("x", "y", new InVMEpr(new EPR(URI.create("x://123"))));
+
+        // Should still be able to find it...
+        reg.findEPR("x", "y");
+        // Should still be able to get the courier and it should still be active...
+        Assert.assertNotNull(CourierFactory.getInstance().getInVMCourier((InVMEpr) eprFromReg));
+        Assert.assertTrue(courier.isActive());
+
+        // Unregister it again...
+        reg.unRegisterEPR("x", "y", new InVMEpr(new EPR(URI.create("x://123"))));
+
+        // Should get an error trying to find it now...
+        try {
+            reg.findEPR("x", "y");
+            Assert.fail("Expected ServiceNotFoundException.");
+        } catch(ServiceNotFoundException e) {
+            Assert.assertEquals("Registry entry [x][y] not found.", e.getMessage());
+        }
+        
+        // Shouldn't be able to get the courier and it should be inactive...
+        Assert.assertNull(CourierFactory.getInstance().getInVMCourier((InVMEpr) eprFromReg));
+        Assert.assertFalse(courier.isActive());
+    }
+
+    @Test
+    public void test_JBESB_2108_02() throws ServiceNotFoundException, RegistryException {
+        InVMRegistryInterceptor reg = new InVMRegistryInterceptor();
+        reg.setRegistry(new MockRegistry()) ;
+
+        reg.registerEPR("xy", "z", "blah", new InVMEpr(new EPR(URI.create("x://123"))), "blah");
+        try {
+            reg.registerEPR("x", "yz", "blah", new InVMEpr(new EPR(URI.create("x://123"))), "blah");
+            Assert.fail("Expected RegistryException");
+        } catch (RegistryException e) {
+            Assert.assertEquals("Invalid attempt to register InVM EPR 'InVMEpr [ PortReference < <wsa:Address x://123/> > ]' for Service 'x:yz'.  This InVM EPR is already registered for Service 'xy:z'.", e.getMessage());
+        }
+    }
+
+    @Test
+    public void test_JBESB_2108_03() throws ServiceNotFoundException, RegistryException {
+        InVMRegistryInterceptor reg = new InVMRegistryInterceptor();
+        EPR xy_z = new InVMEpr(new EPR(URI.create("x://123")));
+        EPR x_yz = new InVMEpr(new EPR(URI.create("x://1234")));
+        reg.setRegistry(new MockRegistry()) ;
+
+        // Register "xy:z"...
+        reg.registerEPR("xy", "z", "blah", xy_z, "blah");
+        Assert.assertEquals(xy_z, reg.findEPR("xy", "z"));
+        InVMCourier xy_z_courier = CourierFactory.getInstance().getInVMCourier((InVMEpr) xy_z);
+        Assert.assertNotNull(xy_z_courier);
+        Assert.assertTrue(xy_z_courier.isActive());
+
+        // Register "x:yz"...
+        reg.registerEPR("x", "yz", "blah", x_yz, "blah");
+        Assert.assertEquals(x_yz, reg.findEPR("x", "yz"));
+        InVMCourier x_yz_courier = CourierFactory.getInstance().getInVMCourier((InVMEpr) x_yz);
+        Assert.assertNotNull(x_yz_courier);
+        Assert.assertTrue(x_yz_courier.isActive());
+
+        // Unregister "xy:z"...
+        reg.unRegisterEPR("xy", "z", xy_z);
+        // Shouldn't be able to get the courier for "xy_z" and should be inactive...
+        Assert.assertNull(CourierFactory.getInstance().getInVMCourier((InVMEpr) xy_z));
+        Assert.assertFalse(xy_z_courier.isActive());
+        // Should still be able to get the courier for "x_yz" and should still be active...
+        Assert.assertNotNull(CourierFactory.getInstance().getInVMCourier((InVMEpr) x_yz));
+        Assert.assertTrue(x_yz_courier.isActive());
+
+        // Unregister "x:yz"...
+        reg.unRegisterEPR("x", "yz", x_yz);
+        // Shouldn't be able to get the courier for "x_yz" and should be inactive...
+        Assert.assertNull(CourierFactory.getInstance().getInVMCourier((InVMEpr) x_yz));
+        Assert.assertFalse(x_yz_courier.isActive());
+    }
+
     /*
      * test that WeakHashMap could be used to gc invmcouriers.
      * 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryInterceptorUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryInterceptorUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/registry/InVMRegistryInterceptorUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -46,7 +46,7 @@
         assertEquals(1, reg.findEPRs("x", "y").size());
         assertEquals("x://123", reg.findEPR("x", "y").getAddr().getAddress());
 
-        reg.registerEPR("x", "y", "blah", new InVMEpr(new EPR(URI.create("x://1234"))), "blah");
+        reg.registerEPR("x", "y", "blah", new InVMEpr(new EPR(URI.create("x://123"))), "blah");
         assertEquals(2, reg.findEPRs("x", "y").size());
 
         reg.registerEPR("a", "z", "blah", new InVMEpr(new EPR(URI.create("x://12345"))), "blah");
@@ -56,9 +56,6 @@
         assertEquals(2, reg.findAllServices().size());
         assertEquals(1, reg.findServices("x").size());
 
-        // unreg using a valid service, but unregistred EPR... make sure nothing changes...
-        reg.unRegisterEPR("a", "z", new InVMEpr(new EPR(URI.create("x://1"))));
-        assertEquals(1, reg.findEPRs("a", "z").size());
         // unreg using a valid service + registred EPR... make sure EPR is removed...
         reg.unRegisterEPR("a", "z", new InVMEpr(new EPR(URI.create("x://12345"))));
         assertEquals(0, reg.findEPRs("a", "z").size());

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagatorUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagatorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagatorUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JBossASContextPropagatorUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,104 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.internal.soa.esb.services.security;
+
+import static org.junit.Assert.*;
+
+import javax.security.auth.Subject;
+
+import org.jboss.security.SecurityAssociation;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityConfigTestUtil;
+import org.jboss.soa.esb.services.security.SecurityConfigUtil;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.junit.Test;
+
+import junit.framework.JUnit4TestAdapter;
+
+/**
+ * Unit test for {@link JBossASContextPropagator}.
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class JBossASContextPropagatorUnitTest
+{
+    private JBossASContextPropagator propagator = new JBossASContextPropagator();
+
+    @Test
+    public void pushAndPop()
+    {
+        final SecurityConfig securityConfig = getSecurityConfig();
+        final SecurityContext context = getSecurityContext();
+
+        propagator.pushSecurityContext(context, null, securityConfig);
+
+        Subject pushedSubject = SecurityAssociation.getSubject();
+        assertEquals(context.getSubject(), pushedSubject);
+
+        propagator.popSecurityContext(context, securityConfig);
+        pushedSubject = SecurityAssociation.getSubject();
+        assertNull(pushedSubject);
+    }
+
+    @Test
+    public void pushAndPopWithNullSecurityConfig()
+    {
+        final SecurityConfig securityConfig = getSecurityConfig();
+        final SecurityContext context = getSecurityContext();
+
+        propagator.pushSecurityContext(context, null, null);
+
+        Subject pushedSubject = SecurityAssociation.getSubject();
+        assertEquals(context.getSubject(), pushedSubject);
+
+        propagator.popSecurityContext(context, securityConfig);
+        pushedSubject = SecurityAssociation.getSubject();
+        assertNull(pushedSubject);
+    }
+
+    @Test
+    public void popWithNullSecurityConfig()
+    {
+        propagator.popSecurityContext(null, null);
+    }
+
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(JBossASContextPropagatorUnitTest.class);
+    }
+
+    private SecurityContext getSecurityContext()
+    {
+        Subject subject = new Subject();
+        subject.getPrincipals().add(new User("Mr.Poon"));
+        return new SecurityContext(subject, 5000l);
+    }
+
+    private SecurityConfig getSecurityConfig()
+    {
+        ConfigTree securityFragment = SecurityConfigTestUtil.createSecurityFragment("adminRole", null, "SuccessfulLogin");
+        return SecurityConfigUtil.createSecurityConfig(securityFragment);
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/JaasSecurityServiceUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -76,7 +76,7 @@
 		credentials.add(password);
 
 		AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder(principal, credentials).build();
-		SecurityContext context = new SecurityContext(subject);
+		SecurityContext context = new SecurityContext(subject, SecurityContext.getConfigurationTimeout());
 		service.configure();
 		service.authenticate(configInfo, context, authRequest);
 
@@ -91,7 +91,7 @@
 		Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
 		builder.runAs("adminRole");
 		SecurityConfig configInfo = builder.build();
-		SecurityContext context = new SecurityContext(subject);
+		SecurityContext context = new SecurityContext(subject, SecurityContext.getConfigurationTimeout());
 		service.authenticate(configInfo, context, null);
 		Set<Principal> principals = subject.getPrincipals( Principal.class );
 		assertEquals( 2, principals.size() );
@@ -108,7 +108,7 @@
 
 		subject.getPrincipals().add(group);
 
-		SecurityContext context = new SecurityContext(subject);
+		SecurityContext context = new SecurityContext(subject, SecurityContext.getConfigurationTimeout());
 		service.authenticate(configInfo, context, null);
 
 		Set<Principal> principals = subject.getPrincipals( Principal.class );
@@ -122,7 +122,7 @@
 		Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
 		builder.runAs(roleName);
 		SecurityConfig configInfo = builder.build();
-		SecurityContext context = new SecurityContext(subject);
+		SecurityContext context = new SecurityContext(subject, SecurityContext.getConfigurationTimeout());
 		service.authenticate(configInfo, context, null);
 		assertTrue( service.isCallerInRole(subject, new Role(roleName)));
 	}
@@ -132,7 +132,7 @@
 	{
 		Builder builder = new SecurityConfig.Builder("FailureLogin");
 		SecurityConfig configInfo = builder.build();
-		SecurityContext context = new SecurityContext(subject);
+		SecurityContext context = new SecurityContext(subject, SecurityContext.getConfigurationTimeout());
 		service.authenticate( configInfo, context, null );
 	}
 
@@ -143,7 +143,7 @@
         builder.runAs("esbRole");
         builder.rolesAllowed("esbRole");
         SecurityConfig configInfo = builder.build();
-        SecurityContext context = new SecurityContext(subject);
+		SecurityContext context = new SecurityContext(subject, SecurityContext.getConfigurationTimeout());
         service.authenticate( configInfo, context, null );
         boolean checkRolesAllowed = service.checkRolesAllowed(configInfo.getRolesAllowed(), context);
         assertTrue(checkRolesAllowed);
@@ -156,7 +156,14 @@
 		{
 			public void run()
 			{
-				threadLogin();
+				try
+                {
+                    threadLogin();
+                }
+				catch (final SecurityServiceException ignore)
+                {
+				    ignore.printStackTrace();
+                }
 			}
 		};
 		for (int i = 0; i < 1000; i++)
@@ -168,12 +175,11 @@
 		}
 	}
 
-	private void threadLogin()
+	private void threadLogin() throws SecurityServiceException
 	{
 		Builder builder = new SecurityConfig.Builder("SuccessfulLogin");
 		SecurityConfig configInfo = builder.build();
-		SecurityContext context = new SecurityContext(new Subject());
-		service.refreshSecurityConfig();
+		SecurityContext context = new SecurityContext(new Subject(), SecurityContext.getConfigurationTimeout());
 		try
 		{
 			service.authenticate( configInfo, context, null );
@@ -190,7 +196,9 @@
         jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
 		URL resource = ClassUtil.getResource("security-properties.xml", getClass());
         System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
-		service.configure();
+
+		URL loginConfig = ClassUtil.getResource("test_jaas.config", getClass());
+		System.setProperty("java.security.auth.login.config", loginConfig.getFile());
 	}
 
 	@After

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/PrivateCryptoUtilUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -20,17 +20,14 @@
  */
 package org.jboss.internal.soa.esb.services.security;
 
-import static org.junit.Assert.*;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 import java.io.IOException;
 import java.io.Serializable;
 import java.net.URL;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.Provider;
-import java.security.Security;
 
+import javax.crypto.IllegalBlockSizeException;
 import javax.crypto.SealedObject;
 
 import junit.framework.JUnit4TestAdapter;
@@ -54,13 +51,14 @@
 	private String jbossEsbProperties;
 
     @Test
-    public void encryptAndDecrypt() throws SecurityServiceException
+    public void sealObject() throws SecurityServiceException, IllegalBlockSizeException, IOException
     {
-        String object = "some texti: dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd";
-        byte[] encrypted = PrivateCryptoUtil.INSTANCE.encrypt(object);
-        assertFalse(object.equals(new String(encrypted)));
+        final String object = getLongString(5000);
 
-        Serializable plainObject = PrivateCryptoUtil.INSTANCE.decrypt(encrypted);
+        final SealedObject sealedObject = PrivateCryptoUtil.INSTANCE.sealObject(object);
+        assertNotNull(sealedObject);
+
+        final Serializable plainObject = PrivateCryptoUtil.INSTANCE.unSealObject(sealedObject);
         assertEquals(object, plainObject);
     }
 
@@ -81,6 +79,16 @@
         }
     }
 
+    private String getLongString(final int size)
+    {
+        final StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < size; i++)
+        {
+            sb.append(i);
+        }
+        return sb.toString();
+    }
+
     public static junit.framework.Test suite()
     {
         return new JUnit4TestAdapter(PrivateCryptoUtilUnitTest.class);

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactoryUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactoryUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactoryUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/SecurityContextPropagatorFactoryUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,95 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.internal.soa.esb.services.security;
+
+import static org.junit.Assert.*;
+import java.net.URL;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+import junit.framework.JUnit4TestAdapter;
+
+
+/**
+ * Unit test for {@link SecurityContextPropagatorFactory}.
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class SecurityContextPropagatorFactoryUnitTest
+{
+    // only used to store and restore a previously set configuration file.
+    private String jbossEsbProperties;
+
+    @Test
+    public void create() throws SecurityServiceException
+    {
+        SecurityContextPropagator propagator = SecurityContextPropagatorFactory.create(JBossASContextPropagator.class.getName());
+        assertTrue(propagator instanceof JBossASContextPropagator);
+    }
+
+    @Test
+    public void createNullClassNameSpecified() throws SecurityServiceException
+    {
+        SecurityContextPropagator propagator = SecurityContextPropagatorFactory.create(null);
+        assertNull(propagator);
+    }
+
+    @Test
+    public void createFromConfig() throws SecurityServiceException
+    {
+        SecurityContextPropagator propagator = SecurityContextPropagatorFactory.createFromConfig();
+
+        // should match the class specified in security-properties.xml (in this classes directory.
+        assertTrue(propagator instanceof JBossASContextPropagator);
+    }
+
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(SecurityContextPropagatorFactoryUnitTest.class);
+    }
+
+    @Before
+    public void setup() throws ConfigurationException
+    {
+        // store jbossesb properties env variable value
+        jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
+
+        URL resource = ClassUtil.getResource("security-properties.xml", getClass());
+        System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
+    }
+
+    @After
+    public void tearDown()
+    {
+        if ( jbossEsbProperties != null )
+        {
+            // restore jbossesb-properties variable
+            System.setProperty(Environment.PROPERTIES_FILE, jbossEsbProperties);
+        }
+    }
+
+}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/jaas.login	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-SuccessfulLogin {
-  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
-};
-FailureLogin {
-  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
-};
-UserPassLogin {
-  org.jboss.soa.esb.services.security.UserPassLoginModule required;
-};
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/security-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -40,13 +40,13 @@
     <properties name="security">
     	<property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
     	<property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
-    	<property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
     	
-    	<property name="org.jboss.soa.esb.services.security.privateKeystore" value="privateKeyStore"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
+    	<property name="org.jboss.soa.esb.services.security.sealAlgorithm" value="TripleDES"/>
+    	<property name="org.jboss.soa.esb.services.security.sealKeySize" value="168"/>
     	
+    	<property name="org.jboss.soa.esb.services.security.contextTimeout" value="30000"/>
+    	<property name="org.jboss.soa.esb.services.security.contextPropagatorImplementationClass" value="org.jboss.internal.soa.esb.services.security.JBossASContextPropagator"/>
+    	
     </properties>
     <properties name="registry">
     	<property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/test_jaas.config (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/test_jaas.config)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/test_jaas.config	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/internal/soa/esb/services/security/test_jaas.config	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,11 @@
+SuccessfulLogin {
+  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
+};
+
+FailureLogin {
+  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
+};
+
+UserPassLogin {
+  org.jboss.soa.esb.services.security.UserPassLoginModule required;
+};

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JMSRouterUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JMSRouterUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JMSRouterUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JMSRouterUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,315 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss 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.soa.esb.actions.routing;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.Method;
+import java.lang.reflect.Proxy;
+
+import javax.jms.Destination;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageProducer;
+import javax.jms.QueueConnection;
+import javax.jms.QueueSession;
+import javax.jms.Session;
+import javax.naming.Context;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.actions.ActionProcessingException;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.helpers.NamingContextPool;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockejb.jms.MockQueue;
+import org.mockejb.jms.QueueConnectionFactoryImpl;
+import org.mockejb.jndi.MockContextFactory;
+
+/**
+ * JMSRouter unit tests.
+ * 
+ * @author <a href="mailto:kevin.conner at jboss.com">Kevin Conner</a>
+ */
+public class JMSRouterUnitTest
+{
+    private static final String CONNECTION_FACTORY = "ConnectionFactory" ;
+    private static final String QUEUE_NAME = "failQueue" ;
+    
+    @Before
+    public void setUp()
+        throws Exception
+    {
+        MockContextFactory.setAsInitial();
+        
+        final Context ctx = NamingContextPool.getNamingContext(null);
+        try
+        {
+            ctx.rebind(CONNECTION_FACTORY, new MockQueueConnectionFactory());
+            ctx.rebind(QUEUE_NAME, new MockQueue(QUEUE_NAME));
+        }
+        finally
+        {
+            NamingContextPool.releaseNamingContext(ctx) ;
+        }
+        System.setProperty(Environment.JNDI_SERVER_CONTEXT_FACTORY, System.getProperty(Context.INITIAL_CONTEXT_FACTORY)) ;
+    }
+    
+    @After
+    public void tearDown()
+        throws Exception
+    {
+        MockContextFactory.revertSetAsInitial();
+    }
+    
+    @Test
+    public void testRetry()
+        throws Exception
+    {
+        final ConfigTree config = new ConfigTree("config") ;
+        config.setAttribute("jndiName", QUEUE_NAME);
+        
+        final JMSRouter router = new JMSRouter(config) ;
+        
+        assertEquals("Original connection count", 1, MockQueueConnectionFactory.queueConnectionCount) ;
+        assertEquals("Original session count", 1, MockQueueExceptionHandlerInvocationHandler.queueSessionCount) ;
+        assertEquals("Original producer count", 1, MockQueueSessionInvocationHandler.producerCount) ;
+        
+        try
+        {
+            router.process(MessageFactory.getInstance().getMessage()) ;
+            fail("Expected to receive an ActionProcessingException") ;
+        }
+        catch (final ActionProcessingException ape) {} // expected
+        
+        // Connection count changes as we fire the exception handler and this closes connections/sessions/producers
+        assertEquals("Original connection count", 2, MockQueueConnectionFactory.queueConnectionCount) ;
+        // session count should increment by one to reflect the second session created when handling the exception.
+        assertEquals("Original session count", 2, MockQueueExceptionHandlerInvocationHandler.queueSessionCount) ;
+        // One producer for setup, first failure and second retry.
+        assertEquals("Original producer count", 3, MockQueueSessionInvocationHandler.producerCount) ;
+    }
+    
+    private static final class MockQueueConnectionFactory extends QueueConnectionFactoryImpl
+    {
+        static int queueConnectionCount ;
+        
+        @Override
+        public QueueConnection createQueueConnection() throws JMSException
+        {
+            queueConnectionCount++ ;
+            return (QueueConnection)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] {QueueConnection.class},
+                    new MockQueueExceptionHandlerInvocationHandler(super.createQueueConnection())) ;
+        }
+    }
+    
+    private static final class MockQueueExceptionHandlerInvocationHandler implements InvocationHandler
+    {
+        private final QueueConnection queueConnection ;
+        private ExceptionListener exceptionListener ;
+        static int queueSessionCount ;
+            
+        MockQueueExceptionHandlerInvocationHandler(final QueueConnection queueConnection)
+        {
+            this.queueConnection = queueConnection ;
+        }
+            
+        public Object invoke(final Object proxy, final Method method, final Object[] args)
+            throws Throwable
+        {
+            final String methodName = method.getName() ;
+            if ("setExceptionListener".equals(methodName))
+            {
+                exceptionListener = (ExceptionListener)args[0] ;
+                return null ;
+            }
+            else if ("getExceptionListener".equals(methodName))
+            {
+                return exceptionListener ;
+            }
+            else
+            {
+                final Object response = method.invoke(queueConnection, args) ;
+                if (response instanceof QueueSession)
+                {
+                    queueSessionCount++ ;
+                    final QueueSession queueSession = (QueueSession)response ;
+                    return (QueueSession)Proxy.newProxyInstance(getClass().getClassLoader(), new Class[] {QueueSession.class},
+                            new MockQueueSessionInvocationHandler(this, queueSession)) ;
+                }
+                else
+                {
+                    return response ;
+                }
+            }
+        }
+        
+        void fireExceptionListener(final JMSException exception)
+        {
+            if (exceptionListener != null)
+            {
+                exceptionListener.onException(exception) ;
+            }
+        }
+    }
+    
+    private static final class MockQueueSessionInvocationHandler implements InvocationHandler
+    {
+        private final MockQueueExceptionHandlerInvocationHandler exceptionHandler ;
+        private final QueueSession queueSession ;
+        static int producerCount ;
+            
+        MockQueueSessionInvocationHandler(final MockQueueExceptionHandlerInvocationHandler exceptionHandler, final QueueSession queueSession)
+        {
+            this.exceptionHandler = exceptionHandler ;
+            this.queueSession = queueSession ;
+        }
+            
+        public Object invoke(final Object proxy, final Method method, final Object[] args)
+            throws Throwable
+        {
+            final String methodName = method.getName() ;
+            if ("recover".equals(methodName))
+            {
+                return null ;
+            }
+            else if ("createProducer".equals(methodName))
+            {
+                producerCount++ ;
+                return new MockFailMessageProducer(exceptionHandler) ;
+            }
+            else if ("getAcknowledgeMode".equals(methodName))
+            {
+                return Integer.valueOf(Session.AUTO_ACKNOWLEDGE) ;
+            }
+            else if ("getTransacted".equals(methodName))
+            {
+                return Boolean.FALSE ;
+            }
+            else
+            {
+                return method.invoke(queueSession, args) ;
+            }
+        }
+    }
+    
+    private static final class MockFailMessageProducer implements MessageProducer
+    {
+        private final MockQueueExceptionHandlerInvocationHandler exceptionHandler ;
+        
+        public MockFailMessageProducer(final MockQueueExceptionHandlerInvocationHandler exceptionHandler)
+        {
+            this.exceptionHandler = exceptionHandler ;
+        }
+        
+        public void close() throws JMSException {}
+
+        public int getDeliveryMode()
+            throws JMSException
+        {
+            return 0;
+        }
+
+        public Destination getDestination()
+            throws JMSException
+        {
+            return null;
+        }
+
+        public boolean getDisableMessageID()
+            throws JMSException
+        {
+            return false;
+        }
+
+        public boolean getDisableMessageTimestamp()
+            throws JMSException
+        {
+            return false;
+        }
+
+        public int getPriority()
+            throws JMSException
+        {
+            return 0;
+        }
+
+        public long getTimeToLive()
+            throws JMSException
+        {
+            return 0;
+        }
+
+        public void send(Message arg0)
+            throws JMSException
+        {
+            exception() ;
+        }
+
+        public void send(Destination arg0, Message arg1)
+            throws JMSException
+        {
+            throw new JMSException("Deliberate send exception") ;
+        }
+
+        public void send(Message arg0, int arg1, int arg2, long arg3)
+            throws JMSException
+        {
+            throw new JMSException("Deliberate send exception") ;
+        }
+
+        private void exception()
+            throws JMSException
+        {
+            final JMSException exception = new JMSException("Deliberate send exception") ;
+            exceptionHandler.fireExceptionListener(exception) ;
+            throw exception ;
+        }
+        
+        public void send(Destination arg0, Message arg1, int arg2, int arg3, long arg4)
+            throws JMSException
+        {
+        }
+
+        public void setDeliveryMode(int arg0) throws JMSException {}
+
+        public void setDisableMessageID(boolean arg0) throws JMSException {}
+
+        public void setDisableMessageTimestamp(boolean arg0) throws JMSException {}
+
+        public void setPriority(int arg0) throws JMSException {}
+
+        public void setTimeToLive(long arg0) throws JMSException {}
+    }
+    
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(JMSRouterUnitTest.class);
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JmsRouterIntegrationTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JmsRouterIntegrationTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/actions/routing/JmsRouterIntegrationTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -166,9 +166,6 @@
     		// outbound is to simulate a new jms message that is about to leave the ESB.
     		TextMessageImpl outBoundJmsMessage = new TextMessageImpl();
     		router.setJMSReplyTo( outBoundJmsMessage,  msg );
-
-    		Destination replyTo = outBoundJmsMessage.getJMSReplyTo();
-    		assertTrue( replyTo instanceof Queue );
 		}
 		finally
 		{

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/eprs/JMSEprUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -32,7 +32,7 @@
 import junit.framework.JUnit4TestAdapter;
 
 import org.jboss.soa.esb.addressing.eprs.JMSEpr.AcknowledgeMode;
-import org.jboss.soa.esb.common.Configuration;
+import org.jboss.soa.esb.common.Environment;
 import org.jboss.soa.esb.couriers.CourierException;
 import org.junit.Test;
 
@@ -43,12 +43,16 @@
  */
 public class JMSEprUnitTest
 {
+	private String defaultProvider = "default.test" ;
+	private String extensionProvider = "extension.test" ;
+	private String propertyJndi = "jndiurl.test" ;
 	private String expectedDestination = "/queue/test";
 	private String expectedConnectionFactory = "ConnectionFactory";
 	private String expectedDestinationType = JMSEpr.QUEUE_TYPE;
 	private String expectedSelector = "JMSCorrelationID=1000";
 	private static final boolean NON_PERSISTENT = false;
 	private static final boolean PERSISTENT = true;
+	private static final String JNDI_PREFIX = "jnp://" ;
 	
 	private final Properties nullEnvironment = null;
 	
@@ -188,6 +192,49 @@
 	}
 	
 	@Test
+	public void generatedAddresses()
+	{
+		final String jndiServerUrl = System.getProperty(Environment.JNDI_SERVER_URL) ;
+		try
+		{
+			System.setProperty(Environment.JNDI_SERVER_URL, JNDI_PREFIX + defaultProvider) ;
+			
+			final String queueName = "queueName" ;
+			
+			// should default address to system property
+			final JMSEpr firstEpr = new JMSEpr(ONE_ONE_PROTOCOL, expectedDestinationType,
+				queueName, "connection", null, null, true, null, null, null, true) ;
+			assertEquals("System JNDI_SERVER_URL", "jms://" + defaultProvider + "/" + queueName, firstEpr.getAddr().getAddress()) ;
+			
+			// should use Provider URL extension
+			final Properties environment = new Properties() ;
+			environment.setProperty(Context.PROVIDER_URL, JNDI_PREFIX + extensionProvider) ;
+			final JMSEpr secondEpr = new JMSEpr(ONE_ONE_PROTOCOL, expectedDestinationType,
+				queueName, "connection", environment, null, true, null, null, null, true) ;
+			assertEquals("Extension Context.PROVIDER_URL", "jms://" + extensionProvider + "/" + queueName, secondEpr.getAddr().getAddress()) ;
+			
+			// should use jndi-URL property
+			environment.setProperty(JNDI_URL_TAG, JNDI_PREFIX + propertyJndi) ;
+			final JMSEpr thirdEpr = new JMSEpr(ONE_ONE_PROTOCOL, expectedDestinationType,
+				queueName, "connection", environment, null, true, null, null, null, true) ;
+			assertEquals("Extension Context.PROVIDER_URL", "jms://" + propertyJndi + "/" + queueName, thirdEpr.getAddr().getAddress()) ;
+		}
+		finally
+		{
+			if (jndiServerUrl != null)
+			{
+				System.setProperty(Environment.JNDI_SERVER_URL, jndiServerUrl) ;
+			}
+			else
+			{
+				final Properties properties = System.getProperties() ;
+				properties.remove(Environment.JNDI_SERVER_URL) ;
+				System.setProperties(properties) ;
+			}
+		}
+	}
+	
+	@Test
 	public void acknowledgeEnumTest()
 	{
 		AcknowledgeMode ackMode = AcknowledgeMode.getAckMode( null );

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/InVMUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/InVMUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/addressing/helpers/tests/InVMUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -88,9 +88,9 @@
 
     public void test_getEncodedServiceId() throws URISyntaxException {
         String serviceId = InVMEpr.createEncodedServiceId("Service Cat / &&&", " Service / Name $$");
-        assertEquals("5365727669636520436174202f2026262653657276696365202f204e616d65202424", serviceId);
+        assertEquals("5365727669636520436174202f2026262624242424242424242424242453657276696365202f204e616d65202424", serviceId);
 
         InVMEpr epr = new InVMEpr(new URI(InVMEpr.INVM_PROTOCOL + "://" + serviceId));
-        assertEquals("5365727669636520436174202f2026262653657276696365202f204e616d65202424", epr.getServiceId());
+        assertEquals("5365727669636520436174202f2026262624242424242424242424242453657276696365202f204e616d65202424", epr.getServiceId());
     }
 }

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/couriers)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,30 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- *
- * (C) 2005-2008, JBoss Inc.
- */
-package org.jboss.soa.esb.couriers;
-
-/**
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public abstract class CourierFactoryUtil {
-
-    public static void resetCourierFactory() {
-        CourierFactory.setInstance(new CourierFactory());
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/couriers/CourierFactoryUtil.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,30 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2008, Red Hat Middleware LLC, and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ * (C) 2005-2008, JBoss Inc.
+ */
+package org.jboss.soa.esb.couriers;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public abstract class CourierFactoryUtil {
+
+    public static void resetCourierFactory() {
+        CourierFactory.setInstance(new CourierFactory());
+    }
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/http)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,119 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.http.configurators;
-
-import static org.junit.Assert.*;
-
-import java.util.Properties;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.junit.Test;
-
-/**
- * Unit test for {@link HttpProtocol}.
- * <p/>
- * 
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- */
-public class HttpProtocolUnitTest
-{
-    private HttpClient httpClient = new HttpClient();
-    private HttpProtocol httpProtocol = new HttpProtocol();
-    
-    @Test
-    public void setHttpsProxyHostWithPort()
-    {
-        final String proxyHost = "192.87.22.1";
-        final int proxyPort = 8899;
-        final Properties properties = createHttpsProperties(proxyHost, proxyPort);
-                
-        httpProtocol.setHttpsProxyHost(httpClient, properties);
-        
-        assertEquals(proxyHost, httpClient.getHostConfiguration().getProxyHost());
-        assertEquals(proxyPort, httpClient.getHostConfiguration().getProxyPort());
-    }
-    
-    @Test
-    public void setHttpsProxyHostDefaultPort()
-    {
-        final String proxyHost = "192.87.22.1";
-        final Properties properties = createHttpsProperties(proxyHost, -1);
-                
-        httpProtocol.setHttpsProxyHost(httpClient, properties);
-        
-        assertEquals(proxyHost, httpClient.getHostConfiguration().getProxyHost());
-        assertEquals(443, httpClient.getHostConfiguration().getProxyPort());
-    }
-    
-    @Test
-    public void setHttpProxyHostWithPort()
-    {
-        final String proxyHost = "192.87.22.1";
-        final int proxyPort = 8899;
-        final Properties properties = createHttpProperties(proxyHost, proxyPort);
-                
-        httpProtocol.setHttpProxyHost(httpClient, properties);
-        
-        assertEquals(proxyHost, httpClient.getHostConfiguration().getProxyHost());
-        assertEquals(proxyPort, httpClient.getHostConfiguration().getProxyPort());
-    }
-    
-    @Test
-    public void setHttpProxyHostDefaultPort()
-    {
-        final String proxyHost = "192.87.22.8";
-        final Properties properties = createHttpProperties(proxyHost, -1);
-        
-        httpProtocol.setHttpProxyHost(httpClient, properties);
-        
-        assertEquals(proxyHost, httpClient.getHostConfiguration().getProxyHost());
-        assertEquals(80, httpClient.getHostConfiguration().getProxyPort());
-    }
-    
-    private Properties createHttpProperties(final String host, final int port)
-    {
-        final Properties properties = new Properties();
-        properties.setProperty("http.proxyHost", host);
-        if (port != -1)
-        {
-            properties.setProperty("http.proxyPort", String.valueOf(port));
-        }
-        return properties;
-    }
-    
-    private Properties createHttpsProperties(final String host, final int port)
-    {
-        final Properties properties = new Properties();
-        properties.setProperty("https.proxyHost", host);
-        if (port != -1)
-        {
-            properties.setProperty("https.proxyPort", String.valueOf(port));
-        }
-        return properties;
-    }
-    
-    public static junit.framework.Test suite()
-    {
-        return new JUnit4TestAdapter(HttpProtocolUnitTest.class);
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/http/configurators/HttpProtocolUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,119 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.http.configurators;
+
+import static org.junit.Assert.*;
+
+import java.util.Properties;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link HttpProtocol}.
+ * <p/>
+ * 
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class HttpProtocolUnitTest
+{
+    private HttpClient httpClient = new HttpClient();
+    private HttpProtocol httpProtocol = new HttpProtocol();
+    
+    @Test
+    public void setHttpsProxyHostWithPort()
+    {
+        final String proxyHost = "192.87.22.1";
+        final int proxyPort = 8899;
+        final Properties properties = createHttpsProperties(proxyHost, proxyPort);
+                
+        httpProtocol.setHttpsProxyHost(httpClient, properties);
+        
+        assertEquals(proxyHost, httpClient.getHostConfiguration().getProxyHost());
+        assertEquals(proxyPort, httpClient.getHostConfiguration().getProxyPort());
+    }
+    
+    @Test
+    public void setHttpsProxyHostDefaultPort()
+    {
+        final String proxyHost = "192.87.22.1";
+        final Properties properties = createHttpsProperties(proxyHost, -1);
+                
+        httpProtocol.setHttpsProxyHost(httpClient, properties);
+        
+        assertEquals(proxyHost, httpClient.getHostConfiguration().getProxyHost());
+        assertEquals(443, httpClient.getHostConfiguration().getProxyPort());
+    }
+    
+    @Test
+    public void setHttpProxyHostWithPort()
+    {
+        final String proxyHost = "192.87.22.1";
+        final int proxyPort = 8899;
+        final Properties properties = createHttpProperties(proxyHost, proxyPort);
+                
+        httpProtocol.setHttpProxyHost(httpClient, properties);
+        
+        assertEquals(proxyHost, httpClient.getHostConfiguration().getProxyHost());
+        assertEquals(proxyPort, httpClient.getHostConfiguration().getProxyPort());
+    }
+    
+    @Test
+    public void setHttpProxyHostDefaultPort()
+    {
+        final String proxyHost = "192.87.22.8";
+        final Properties properties = createHttpProperties(proxyHost, -1);
+        
+        httpProtocol.setHttpProxyHost(httpClient, properties);
+        
+        assertEquals(proxyHost, httpClient.getHostConfiguration().getProxyHost());
+        assertEquals(80, httpClient.getHostConfiguration().getProxyPort());
+    }
+    
+    private Properties createHttpProperties(final String host, final int port)
+    {
+        final Properties properties = new Properties();
+        properties.setProperty("http.proxyHost", host);
+        if (port != -1)
+        {
+            properties.setProperty("http.proxyPort", String.valueOf(port));
+        }
+        return properties;
+    }
+    
+    private Properties createHttpsProperties(final String host, final int port)
+    {
+        final Properties properties = new Properties();
+        properties.setProperty("https.proxyHost", host);
+        if (port != -1)
+        {
+            properties.setProperty("https.proxyPort", String.valueOf(port));
+        }
+        return properties;
+    }
+    
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(HttpProtocolUnitTest.class);
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListenerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListenerUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/JBossRemotingGatewayListenerUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -89,7 +89,7 @@
     }
     @Test
     public void test_lifecycle() throws SAXException, ConfigurationException, ManagedLifecycleException {
-        ConfigTree config = getConfig("cat", "servicex", "http", "8887");
+        ConfigTree config = getConfig("cat", "servicex", "http", "8887", -1L);
 
         listener = new JBossRemotingGatewayListener(config);
 
@@ -155,7 +155,7 @@
 
     @SuppressWarnings("serial")
     private void startServer(String protocol, boolean synchronous, final String port) throws SAXException, ConfigurationException, ManagedLifecycleException {
-        ConfigTree config = getConfig("cat", "servicex", protocol, port);
+        ConfigTree config = getConfig("cat", "servicex", protocol, port, -1L);
 
         if(synchronous) {
             listener = new JBossRemotingGatewayListener(config) {
@@ -221,19 +221,20 @@
         }
     }
 
-    private ConfigTree getConfig(String category, String service, String protocol, String port) throws SAXException {
+    private ConfigTree getConfig(String category, String service, String protocol, String port, long timeout) throws SAXException {
         ConfigTree config = ConfigTree.fromXml("<listener/>");
 
         config.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, category);
         config.setAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG, service);
         config.setAttribute(JBossRemotingGatewayListener.JBR_SERVER_PROTOCOL, protocol);
         config.setAttribute(JBossRemotingGatewayListener.JBR_SERVER_PORT, port);
+        config.setAttribute(ListenerTagNames.SERVICE_INVOKER_TIMEOUT, String.valueOf(timeout));
         
         return config;
     }
 
     private void test_config(String category, String service, String protocol, String port, String exception) throws SAXException {
-        ConfigTree config = getConfig(category, service, protocol, port);
+        ConfigTree config = getConfig(category, service, protocol, port, -1L);
 
         try {
             listener = new JBossRemotingGatewayListener(config);

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,164 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.listeners.gateway.mina;
-
-import static org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayConfig.HANDLER_CLASS_ATTR;
-import static org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayConfig.HOST_ATTR;
-import static org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayConfig.PORT_ATTR;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.net.InetAddress;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.net.UnknownHostException;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.apache.commons.net.echo.EchoUDPClient;
-import org.jboss.internal.soa.esb.couriers.MockCourier;
-import org.jboss.internal.soa.esb.couriers.MockCourierFactory;
-import org.jboss.internal.soa.esb.services.registry.MockRegistry;
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
-import org.jboss.soa.esb.listeners.gateway.mina.DefaultMessageHandler;
-import org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayListener;
-import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Unit test for {@link UdpGatewayListener}. </p>
- * 
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- */
-public class UdpGatewayListenerUnitTest
-{
-    private static final String SERVICE_CATEGORY = "TestCategory";
-    private static final String SERVICE_NAME = "TestService";
-    private static final String HOST = "localhost";
-    private static final String handlerName = DefaultMessageHandler.class.getName();
-    private static final int PORT = 9688;
-
-    private MockCourier mockCourier;
-    
-    @Test (expected = ConfigurationException.class)
-    public void nullHost() throws ConfigurationException, ManagedLifecycleException
-    {
-        final ConfigTree config = createConfig(null, PORT, handlerName, SERVICE_CATEGORY, SERVICE_NAME);
-        new UdpGatewayListener(config).initialise();
-    }
-    
-    @Test (expected = ConfigurationException.class)
-    public void nullHanlderClass() throws ConfigurationException, ManagedLifecycleException
-    {
-        final ConfigTree config = createConfig(null, PORT, null, SERVICE_CATEGORY, SERVICE_NAME);
-        new UdpGatewayListener(config).initialise();
-    }
-    
-    @Test (expected = ConfigurationException.class)
-    public void nullServiceCategory() throws ConfigurationException, ManagedLifecycleException
-    {
-        final ConfigTree config = createConfig(null, PORT, handlerName, null, SERVICE_NAME);
-        new UdpGatewayListener(config).initialise();
-    }
-    
-    @Test (expected = ConfigurationException.class)
-    public void nullServiceName() throws ConfigurationException, ManagedLifecycleException
-    {
-        final ConfigTree config = createConfig(null, PORT, handlerName, SERVICE_CATEGORY, null);
-        new UdpGatewayListener(config).initialise();
-    }
-
-    @Test
-    public void async() throws ConfigurationException, ManagedLifecycleException, InterruptedException, URISyntaxException, UnknownHostException, IOException
-    {
-        final ConfigTree config = createConfig(HOST, PORT, handlerName, SERVICE_CATEGORY, SERVICE_NAME);
-        UdpGatewayListener gateway = new UdpGatewayListener(config);
-        gateway.initialise();
-        
-        final String payload = "Some content";
-        
-        sendUdpString(payload, HOST, PORT);
-
-        Thread.sleep(1000l);
-        
-        Object object = mockCourier.message.getBody().get();
-        assertTrue(object instanceof byte[]);
-        byte[] bytes = (byte[]) object;
-        assertEquals(payload, new String(bytes));
-
-        gateway.doStop();
-    }
-    
-    @Before
-    public void setUp() throws Exception
-    {
-        MockCourierFactory.install();
-        MockRegistry.install();
-        mockCourier = new MockCourier(true, true);
-        MockRegistry.register(SERVICE_CATEGORY, SERVICE_NAME, new EPR(new URI("jms://localhost:8080/queue1")), mockCourier);
-    }
-
-    @After
-    public void tearDown() throws Exception
-    {
-        MockRegistry.uninstall();
-        MockCourierFactory.uninstall();
-    }
-
-    public static junit.framework.Test suite()
-    {
-        return new JUnit4TestAdapter(UdpGatewayListenerUnitTest.class);
-    }
-
-    private ConfigTree createConfig(final String host, final int port, final String handlerName, final String categoryName, final String serviceName)
-    {
-        final ConfigTree config = new ConfigTree("NettyGatewayListenerUnitTest");
-        config.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, categoryName);
-        config.setAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG, serviceName);
-        config.setAttribute(HOST_ATTR, host);
-        config.setAttribute(PORT_ATTR, String.valueOf(port));
-        config.setAttribute(HANDLER_CLASS_ATTR, handlerName);
-        return config;
-    }
-
-    private void sendUdpString(final String payload, final String host, final int port) throws UnknownHostException, IOException
-    {
-        final EchoUDPClient client = new EchoUDPClient();
-        client.open();
-        try
-        {
-            final byte[] writeBuffer = payload.getBytes();
-            client.setSoTimeout(3000);
-            client.send(writeBuffer, writeBuffer.length, InetAddress.getByName(host), port);
-        } 
-        finally
-        {
-            client.close();
-        }
-    }
-
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/gateway/mina/UdpGatewayListenerUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,164 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.listeners.gateway.mina;
+
+import static org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayConfig.HANDLER_CLASS_ATTR;
+import static org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayConfig.HOST_ATTR;
+import static org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayConfig.PORT_ATTR;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.UnknownHostException;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.apache.commons.net.echo.EchoUDPClient;
+import org.jboss.internal.soa.esb.couriers.MockCourier;
+import org.jboss.internal.soa.esb.couriers.MockCourierFactory;
+import org.jboss.internal.soa.esb.services.registry.MockRegistry;
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+import org.jboss.soa.esb.listeners.gateway.mina.DefaultMessageHandler;
+import org.jboss.soa.esb.listeners.gateway.mina.UdpGatewayListener;
+import org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link UdpGatewayListener}. </p>
+ * 
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class UdpGatewayListenerUnitTest
+{
+    private static final String SERVICE_CATEGORY = "TestCategory";
+    private static final String SERVICE_NAME = "TestService";
+    private static final String HOST = "localhost";
+    private static final String handlerName = DefaultMessageHandler.class.getName();
+    private static final int PORT = 9688;
+
+    private MockCourier mockCourier;
+    
+    @Test (expected = ConfigurationException.class)
+    public void nullHost() throws ConfigurationException, ManagedLifecycleException
+    {
+        final ConfigTree config = createConfig(null, PORT, handlerName, SERVICE_CATEGORY, SERVICE_NAME);
+        new UdpGatewayListener(config).initialise();
+    }
+    
+    @Test (expected = ConfigurationException.class)
+    public void nullHanlderClass() throws ConfigurationException, ManagedLifecycleException
+    {
+        final ConfigTree config = createConfig(null, PORT, null, SERVICE_CATEGORY, SERVICE_NAME);
+        new UdpGatewayListener(config).initialise();
+    }
+    
+    @Test (expected = ConfigurationException.class)
+    public void nullServiceCategory() throws ConfigurationException, ManagedLifecycleException
+    {
+        final ConfigTree config = createConfig(null, PORT, handlerName, null, SERVICE_NAME);
+        new UdpGatewayListener(config).initialise();
+    }
+    
+    @Test (expected = ConfigurationException.class)
+    public void nullServiceName() throws ConfigurationException, ManagedLifecycleException
+    {
+        final ConfigTree config = createConfig(null, PORT, handlerName, SERVICE_CATEGORY, null);
+        new UdpGatewayListener(config).initialise();
+    }
+
+    @Test
+    public void async() throws ConfigurationException, ManagedLifecycleException, InterruptedException, URISyntaxException, UnknownHostException, IOException
+    {
+        final ConfigTree config = createConfig(HOST, PORT, handlerName, SERVICE_CATEGORY, SERVICE_NAME);
+        UdpGatewayListener gateway = new UdpGatewayListener(config);
+        gateway.initialise();
+        
+        final String payload = "Some content";
+        
+        sendUdpString(payload, HOST, PORT);
+
+        Thread.sleep(1000l);
+        
+        Object object = mockCourier.message.getBody().get();
+        assertTrue(object instanceof byte[]);
+        byte[] bytes = (byte[]) object;
+        assertEquals(payload, new String(bytes));
+
+        gateway.doStop();
+    }
+    
+    @Before
+    public void setUp() throws Exception
+    {
+        MockCourierFactory.install();
+        MockRegistry.install();
+        mockCourier = new MockCourier(true, true);
+        MockRegistry.register(SERVICE_CATEGORY, SERVICE_NAME, new EPR(new URI("jms://localhost:8080/queue1")), mockCourier);
+    }
+
+    @After
+    public void tearDown() throws Exception
+    {
+        MockRegistry.uninstall();
+        MockCourierFactory.uninstall();
+    }
+
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(UdpGatewayListenerUnitTest.class);
+    }
+
+    private ConfigTree createConfig(final String host, final int port, final String handlerName, final String categoryName, final String serviceName)
+    {
+        final ConfigTree config = new ConfigTree("NettyGatewayListenerUnitTest");
+        config.setAttribute(ListenerTagNames.TARGET_SERVICE_CATEGORY_TAG, categoryName);
+        config.setAttribute(ListenerTagNames.TARGET_SERVICE_NAME_TAG, serviceName);
+        config.setAttribute(HOST_ATTR, host);
+        config.setAttribute(PORT_ATTR, String.valueOf(port));
+        config.setAttribute(HANDLER_CLASS_ATTR, handlerName);
+        return config;
+    }
+
+    private void sendUdpString(final String payload, final String host, final int port) throws UnknownHostException, IOException
+    {
+        final EchoUDPClient client = new EchoUDPClient();
+        client.open();
+        try
+        {
+            final byte[] writeBuffer = payload.getBytes();
+            client.setSoTimeout(3000);
+            client.send(writeBuffer, writeBuffer.length, InetAddress.getByName(host), port);
+        } 
+        finally
+        {
+            client.close();
+        }
+    }
+
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/ActionProcessingPipelineUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -24,34 +24,31 @@
 
 import java.io.Serializable;
 import java.net.URL;
-import java.security.AccessControlContext;
-import java.security.AccessController;
+import java.util.concurrent.TimeUnit;
 
+import javax.crypto.SealedObject;
 import javax.security.auth.Subject;
 
-import junit.framework.JUnit4TestAdapter;
 import junit.framework.TestCase;
 
+import org.jboss.internal.soa.esb.services.registry.MockRegistry;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.common.Environment;
-import org.jboss.soa.esb.common.ModulePropertyManager;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.lifecycle.LifecycleResourceManager;
 import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.services.security.PublicCryptoUtil;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityConfigUtil;
 import org.jboss.soa.esb.services.security.SecurityContext;
-import org.jboss.soa.esb.services.security.SecurityContextUnitTest;
 import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.SecurityServiceException;
 import org.jboss.soa.esb.services.security.TestPrincipal;
 import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
 import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
 import org.jboss.soa.esb.services.security.principals.User;
 import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.After;
-import org.junit.Before;
 
 public class ActionProcessingPipelineUnitTest extends TestCase
 {
@@ -68,13 +65,15 @@
         MockActionInfo.reset();
         System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
 
-        com.arjuna.common.util.propertyservice.PropertyManager pm = ModulePropertyManager.getPropertyManager(ModulePropertyManager.DBSTORE_MODULE);
-        pm.setProperty("javax.xml.registry.ConnectionFactoryClass", "org.apache.ws.scout.registry.ConnectionFactoryImpl");
+        MockRegistry.install();
         LifecycleResourceManager.getSingleton().associateDeployment(getClass().getCanonicalName()) ;
 
         jbossEsbProperties = System.getProperty(Environment.PROPERTIES_FILE);
         URL resource = ClassUtil.getResource("security-properties.xml", getClass());
         System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
+
+        URL loginConfig = ClassUtil.getResource("test_jaas.config", getClass());
+        System.setProperty("java.security.auth.login.config", loginConfig.getFile());
     }
 
     @Override
@@ -448,38 +447,62 @@
         }
     }
 
-    public void testSecuredServiceWithoutExistingSecurityContext() throws Exception
+    public void testSecuredWithoutExistingSecurityContextOrAuthenticationRequest() throws ConfigurationException
     {
         final ConfigTree configTree = new ConfigTree("parent") ;
-        // added the security configuration
         addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
         configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+        addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
 
+        final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree);
+        pipeline.initialise() ;
+        checkOrder(MockActionInfo.getInitialiseList()) ;
+
+        final boolean processingResult = pipeline.process(MessageFactory.getInstance().getMessage());
+        assertFalse("The Service was configured with security but neither a AuthenticationContext nor a SecurityContext is made available", processingResult);
+
+        pipeline.destroy() ;
+        checkOrder(MockActionInfo.getDestroyList()) ;
+    }
+
+    public void testSecuredAuthentication() throws Exception
+    {
+        final ConfigTree configTree = new ConfigTree("parent") ;
+        // Add the security configuration.
+        addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
+        configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+
         addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
 
         final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
         pipeline.initialise() ;
         checkOrder(MockActionInfo.getInitialiseList()) ;
 
-        Message message = MessageFactory.getInstance().getMessage();
+        final Message message = MessageFactory.getInstance().getMessage();
 
-        //  create an AuthenticationRequest which is needed to authenticate if the security
-        AuthenticationRequest build = new AuthenticationRequestImpl.Builder().build();
-        message.getContext().setContext(SecurityService.AUTH_REQUEST, PublicCryptoUtil.INSTANCE.encrypt((Serializable) build));
+        //  Create an AuthenticationRequest which is needed to authenticate if the security
+        final AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder().build();
+        final byte[] encryptedAuthRequest = PublicCryptoUtil.INSTANCE.encrypt((Serializable) authRequest);
+        message.getContext().setContext(SecurityService.AUTH_REQUEST, encryptedAuthRequest);
 
-        final boolean result = pipeline.process(message);
-        assertTrue(result);
+        final boolean processingResult = pipeline.process(message);
+
+        assertTrue(processingResult);
         assertEquals(new TestPrincipal("test").getName(), MockSecuredActionProcessor.getSubject().getPrincipals().iterator().next().getName());
+        assertEquals("The encrypted AuthenticationRequest should have been set as a thread local",
+                encryptedAuthRequest, AuthenticationRequestImpl.getEncryptedAuthRequest());
+        assertTrue("The SecurityContext should have been pushed", MockSecurityContextPropagator.wasPushCalled());
+        assertTrue("The SerirityContext should have been popped", MockSecurityContextPropagator.wasPopCalled());
+        assertNull("AuthenticationRequest should have been removed from the message context",
+                message.getContext().getContext(SecurityService.AUTH_REQUEST));
 
         pipeline.destroy() ;
         checkOrder(MockActionInfo.getDestroyList()) ;
     }
 
-    public void testSecuredServiceWithoutAutenticationRequest() throws Exception
+    public void testSecuredWithPreExistingSecurityContext() throws Exception
     {
         final ConfigTree configTree = new ConfigTree("parent") ;
-
-        // added the security configuration
         addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
         configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
 
@@ -489,22 +512,29 @@
         pipeline.initialise() ;
         checkOrder(MockActionInfo.getInitialiseList()) ;
 
-        Message message = MessageFactory.getInstance().getMessage();
+        final Subject subject = new Subject();
+        final User user = new User("AustinPowerwich");
+        final byte[] publicCred = "publicsecret".getBytes();
+        subject.getPrincipals().add(user);
+        subject.getPublicCredentials().add(publicCred);
 
-        try
-        {
-            pipeline.process(message);
-        }
-        catch(final Exception e)
-        {
-            assertTrue(e instanceof SecurityServiceException);
-        }
+        //  Create and encrypt the security context. This simulates a call for a service that has already been authentcated.
+        final SecurityContext securityContext = new SecurityContext(subject, SecurityContext.getConfigurationTimeout());
+        final SealedObject sealedObject = SecurityContext.encryptContext(securityContext);
+        final Message message = MessageFactory.getInstance().getMessage();
+        message.getContext().setContext(SecurityService.CONTEXT, sealedObject);
 
+        final boolean processingResult = pipeline.process(message);
+        assertTrue(processingResult);
+        assertEquals(user, MockSecuredActionProcessor.getSubject().getPrincipals().iterator().next());
+
+        assertNull(message.getContext().getContext(SecurityService.CONTEXT));
+
         pipeline.destroy() ;
         checkOrder(MockActionInfo.getDestroyList()) ;
     }
 
-    public void testSecuredServiceWithPreExistingSecurityContext() throws Exception
+    public void testSecuredWithExistingSecurityContextWhichHasExpired() throws Exception
     {
         final ConfigTree configTree = new ConfigTree("parent") ;
         addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
@@ -516,7 +546,6 @@
         pipeline.initialise() ;
         checkOrder(MockActionInfo.getInitialiseList()) ;
 
-        Message message = MessageFactory.getInstance().getMessage();
 
         Subject subject = new Subject();
         //  add principal
@@ -525,32 +554,66 @@
         //  add public credentials
         byte[] publicCred = "publicsecret".getBytes();
         subject.getPublicCredentials().add(publicCred);
-        //  add private credentials
-        byte[] privateCred = "privatesecret".getBytes();
-        subject.getPrivateCredentials().add(privateCred);
 
-        //  create and encrypt the security context. This simulates a call for a service
-        //  that has already been authentcated..
-        SecurityContext securityContext = new SecurityContext(subject);
-        byte[] encrypt = SecurityContext.encryptContext(securityContext);
+        //  Create and encrypt the security context. This simulates a call for a service
+        //  that has already been authentcated...but with a very short timeout.
+        final SecurityContext securityContext = new SecurityContext(subject, 10);
 
-        message.getContext().setContext(SecurityService.CONTEXT, encrypt);
+        TimeUnit.SECONDS.sleep(1);
 
-        final boolean result = pipeline.process(message);
+        final SealedObject sealedObject = SecurityContext.encryptContext(securityContext);
+        final Message message = MessageFactory.getInstance().getMessage();
+        message.getContext().setContext(SecurityService.CONTEXT, sealedObject);
 
-        assertTrue(result);
-        assertEquals(user, MockSecuredActionProcessor.getSubject().getPrincipals().iterator().next());
+        final boolean processingResult = pipeline.process(message);
+        assertFalse("Processing should have failed as the SecurityContext was invalid(expired)", processingResult);
 
-        assertNull(message.getContext().getContext(SecurityService.CONTEXT));
-
         pipeline.destroy() ;
         checkOrder(MockActionInfo.getDestroyList()) ;
     }
 
-    public void testSecuredWithSecurityContextRolesAllowedNegativeCheck() throws Exception
+    public void testSecuredWithSecurityContextOverriddenTimeout() throws Exception
     {
+        final long timeout = 90000;
+
+        //  setup config tree
         final ConfigTree configTree = new ConfigTree("parent") ;
         configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+        final ConfigTree securityConfigTree = addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null, timeout);
+        addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
+
+        final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
+        final SecurityConfig securityConfig = SecurityConfigUtil.createSecurityConfig(securityConfigTree);
+
+        final long contextTimeout = pipeline.getSecurityContextTimeout(securityConfig);
+
+        assertEquals("Timeout should be equals to the one in securty element(jboss-esb.xml) and not the global timeout(jbossesb-properties.xml",
+                timeout, contextTimeout);
+
+        pipeline.destroy() ;
+    }
+
+    public void testSecuredWithSecurityContextDefaultTimeout() throws Exception
+    {
+        final ConfigTree configTree = new ConfigTree("parent") ;
+        configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
+        final ConfigTree securityConfigTree = addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", null);
+        addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
+
+        final ActionProcessingPipeline pipeline = new ActionProcessingPipeline(configTree) ;
+
+        final SecurityConfig securityConfig = SecurityConfigUtil.createSecurityConfig(securityConfigTree);
+        final long contextTimeout = pipeline.getSecurityContextTimeout(securityConfig);
+
+        assertEquals(30000, contextTimeout);
+
+        pipeline.destroy() ;
+    }
+
+    public void testSecuredWithSecurityContextAndInvalidRoles() throws Exception
+    {
+        final ConfigTree configTree = new ConfigTree("parent") ;
+        configTree.setAttribute(ListenerTagNames.MEP_ATTRIBUTE_TAG, ListenerTagNames.MEP_ONE_WAY) ;
         addSecurityConfig(configTree, "adminRole", null, "SuccessfulLogin", "noRole");
 
         addAction(configTree, MockSecuredActionProcessor.class.getName(), "process", null, null) ;
@@ -559,29 +622,19 @@
         pipeline.initialise() ;
         checkOrder(MockActionInfo.getInitialiseList()) ;
 
-        Message message = MessageFactory.getInstance().getMessage();
-
-        Subject subject = new Subject();
-        User user = new User("AustinPowerwich");
+        final Subject subject = new Subject();
+        final User user = new User("AustinPowerwich");
         subject.getPrincipals().add(user);
-        byte[] publicCred = "publicsecret".getBytes();
+        final byte[] publicCred = "publicsecret".getBytes();
         subject.getPublicCredentials().add(publicCred);
-        byte[] privateCred = "privatesecret".getBytes();
-        subject.getPrivateCredentials().add(privateCred);
-        SecurityContext securityContext = new SecurityContext(subject);
-        byte[] encrypt = SecurityContext.encryptContext(securityContext);
 
-        message.getContext().setContext(SecurityService.CONTEXT, encrypt);
+        final SecurityContext securityContext = new SecurityContext(subject, SecurityContext.getConfigurationTimeout());
+        final SealedObject sealedObject = SecurityContext.encryptContext(securityContext);
+        final Message message = MessageFactory.getInstance().getMessage();
+        message.getContext().setContext(SecurityService.CONTEXT, sealedObject);
 
-        try
-        {
-            pipeline.process(message);
-        }
-        catch(final Exception e)
-        {
-            e.printStackTrace();
-            assertTrue (e instanceof SecurityServiceException);
-        }
+        final boolean processingResult = pipeline.process(message);
+        assertFalse("Processing should have failed as the caller was not in any of the allowed roles", processingResult);
 
         pipeline.destroy() ;
         checkOrder(MockActionInfo.getDestroyList()) ;
@@ -641,4 +694,22 @@
         return securityElement;
     }
 
+    private ConfigTree addSecurityConfig(
+            final ConfigTree parent,
+            final String runAs,
+            final String callerIdentity,
+            final String moduleName,
+            final String rolesAllowed,
+            final long timeout)
+    {
+        ConfigTree securityElement = this.addSecurityConfig(parent, runAs, callerIdentity, moduleName, rolesAllowed);
+        if (timeout != 0l)
+        {
+            ConfigTree property = new ConfigTree("property", securityElement);
+            property.setAttribute("name", Environment.SECURITY_SERVICE_CONTEXT_TIMEOUT);
+            property.setAttribute("value", Long.toString(timeout));
+        }
+        return securityElement;
+    }
+
 }

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecurityContextPropagator.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecurityContextPropagator.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecurityContextPropagator.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/MockSecurityContextPropagator.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.listeners.message;
+
+import java.util.Set;
+
+import org.jboss.internal.soa.esb.services.security.SecurityContextPropagator;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityContext;
+
+/**
+ * Mock SecurityContextPropagator used in unit tests.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ */
+public class MockSecurityContextPropagator implements SecurityContextPropagator
+{
+    private static boolean pushCalled;
+    private static SecurityContext pushSecurityContext;
+
+    private static boolean popCalled;
+    private static SecurityContext popSecurityContext;
+
+    public void popSecurityContext(final SecurityContext context, final SecurityConfig config)
+    {
+        popCalled = true;
+    }
+
+    public void pushSecurityContext(final SecurityContext context, final Set<?> creds, final SecurityConfig config)
+    {
+        pushCalled = true;
+    }
+
+    public static boolean wasPopCalled()
+    {
+        return popCalled;
+    }
+
+    public static boolean wasPushCalled()
+    {
+        return pushCalled;
+    }
+
+    public static SecurityContext getPopSecurityContext()
+    {
+        return popSecurityContext;
+    }
+
+    public static SecurityContext getPushSecurityContext()
+    {
+        return pushSecurityContext;
+    }
+
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/security-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -40,18 +40,19 @@
     <properties name="security">
     	<property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
     	<property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
-    	<property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
     	
-    	<property name="org.jboss.soa.esb.services.security.privateKeystore" value="privateKeyStore"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
+    	<property name="org.jboss.soa.esb.services.security.sealAlgorithm" value="TripleDES"/>
+    	<property name="org.jboss.soa.esb.services.security.sealKeySize" value="168"/>
     	
+    	<property name="org.jboss.soa.esb.services.security.contextTimeout" value="30000"/>
+    	<property name="org.jboss.soa.esb.services.security.contextPropagatorImplementationClass" value="org.jboss.soa.esb.listeners.message.MockSecurityContextPropagator"/>
+    	
     	<property name="org.jboss.soa.esb.services.security.publicKeystore" value="publicKeyStore"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
+    	
     </properties>
     <properties name="registry">
     	<property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/test_jaas.config (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/test_jaas.config)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/test_jaas.config	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/listeners/message/test_jaas.config	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,11 @@
+SuccessfulLogin {
+  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
+};
+
+FailureLogin {
+  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
+};
+
+UserPassLogin {
+  org.jboss.soa.esb.services.security.UserPassLoginModule required;
+};

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/SerializedMessageUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -308,12 +308,11 @@
 		assertEquals(names.length, 2);
 		
 		/*
-		 * The array comes back ordered alphabetically.
+		 * The array is not ordered.
 		 */
+		assertTrue("Check for bar", "bar".equals(names[0]) || "bar".equals(names[1]));
+		assertTrue("Check for foo", "foo".equals(names[0]) || "foo".equals(names[1]));
 		
-		assertEquals(names[0], "bar");
-		assertEquals(names[1], "foo");
-		
 		try
 		{
 			ByteArrayOutputStream s = new ByteArrayOutputStream();
@@ -338,8 +337,11 @@
 			assertNotNull(names);
 			
 			assertEquals(names.length, 2);
-			assertEquals(names[0], "foo");
-			assertEquals(names[1], "bar");
+			/*
+			 * The array is not ordered.
+			 */
+			assertTrue("Check for bar", "bar".equals(names[0]) || "bar".equals(names[1]));
+			assertTrue("Check for foo", "foo".equals(names[0]) || "foo".equals(names[1]));
 		}
 		catch (Exception ex)
 		{			

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/message/tests/XMLMessageUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -274,12 +274,11 @@
 		assertEquals(names.length, 2);
 		
 		/*
-		 * The array comes back ordered alphabetically.
+		 * The array is not ordered.
 		 */
+		assertTrue("Check for bar", "bar".equals(names[0]) || "bar".equals(names[1]));
+		assertTrue("Check for foo", "foo".equals(names[0]) || "foo".equals(names[1]));
 		
-		assertEquals(names[0], "bar");
-		assertEquals(names[1], "foo");
-		
 		try
 		{
 			final String xmlRepresentation = msgToXML((MessageImpl)msg) ;
@@ -300,11 +299,10 @@
 			assertEquals(names.length, 2);	
 			
 			/*
-			 * The array comes back ordered alphabetically.
+			 * The array is not ordered.
 			 */
-			
-			assertEquals(names[0], "bar");
-			assertEquals(names[1], "foo");
+			assertTrue("Check for bar", "bar".equals(names[0]) || "bar".equals(names[1]));
+			assertTrue("Check for foo", "foo".equals(names[0]) || "foo".equals(names[1]));
 		}
 		catch (Exception ex)
 		{

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146 (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,67 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.schedule.JBESB_2146;
-
-import org.jboss.soa.esb.listeners.ScheduledEventMessageComposer;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.schedule.SchedulingException;
-import org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer;
-
-import java.util.*;
-
-/**
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class JBESB_2146_ScheduledEventMessageComposer implements ScheduledEventMessageComposer {
-
-    public ConfigTree config;
-    public List<Message> composedMessages = Collections.synchronizedList(new ArrayList<Message>());
-    public List<Message> completedMessage = Collections.synchronizedList(new ArrayList<Message>());
-    private static Map<String, JBESB_2146_ScheduledEventMessageComposer> composers = new HashMap<String, JBESB_2146_ScheduledEventMessageComposer>();
-
-    public void reset() {
-        composedMessages.clear();
-        completedMessage.clear();
-    }
-
-    public void initialize(ConfigTree config) {
-        this.config = config;
-        composers.put(config.getAttribute("name"), this);
-    }
-
-    public static JBESB_2146_ScheduledEventMessageComposer getComposer(String name) {
-        return composers.get(name);
-    }
-
-    public void uninitialize() {
-    }
-
-    public Message composeMessage() throws SchedulingException {
-        Message message = org.jboss.soa.esb.message.format.MessageFactory.getInstance().getMessage();
-        composedMessages.add(message);
-        return message;
-    }
-
-    public Message onProcessingComplete(Message message) throws SchedulingException {
-        completedMessage.add(message);
-        return message;
-    }
-}
\ No newline at end of file

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_ScheduledEventMessageComposer.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,67 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.schedule.JBESB_2146;
+
+import org.jboss.soa.esb.listeners.ScheduledEventMessageComposer;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.schedule.SchedulingException;
+import org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer;
+
+import java.util.*;
+
+/**
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class JBESB_2146_ScheduledEventMessageComposer implements ScheduledEventMessageComposer {
+
+    public ConfigTree config;
+    public List<Message> composedMessages = Collections.synchronizedList(new ArrayList<Message>());
+    public List<Message> completedMessage = Collections.synchronizedList(new ArrayList<Message>());
+    private static Map<String, JBESB_2146_ScheduledEventMessageComposer> composers = new HashMap<String, JBESB_2146_ScheduledEventMessageComposer>();
+
+    public void reset() {
+        composedMessages.clear();
+        completedMessage.clear();
+    }
+
+    public void initialize(ConfigTree config) {
+        this.config = config;
+        composers.put(config.getAttribute("name"), this);
+    }
+
+    public static JBESB_2146_ScheduledEventMessageComposer getComposer(String name) {
+        return composers.get(name);
+    }
+
+    public void uninitialize() {
+    }
+
+    public Message composeMessage() throws SchedulingException {
+        Message message = org.jboss.soa.esb.message.format.MessageFactory.getInstance().getMessage();
+        composedMessages.add(message);
+        return message;
+    }
+
+    public Message onProcessingComplete(Message message) throws SchedulingException {
+        completedMessage.add(message);
+        return message;
+    }
+}
\ No newline at end of file

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,58 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.schedule.JBESB_2146;
-
-import junit.framework.TestCase;
-
-import org.jboss.soa.esb.mock.MockAction;
-import org.jboss.soa.esb.schedule.MockScheduledEventListener;
-import org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer;
-import org.jboss.soa.esb.testutils.ESBConfigUtil;
-
-/**
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class JBESB_2146_UnitTest extends TestCase {
-
-    protected void setUp() throws Exception {
-        MockScheduledEventMessageComposer.reset();
-        MockScheduledEventListener.reset();
-        MockAction.message = null;
-    }
-
-    public void test_simple_schedule_01() throws Exception {
-        runTestConfig("config-01.xml", 10000);
-
-        JBESB_2146_ScheduledEventMessageComposer composer1 = JBESB_2146_ScheduledEventMessageComposer.getComposer("simple-schedule-listener1");
-        JBESB_2146_ScheduledEventMessageComposer composer2 = JBESB_2146_ScheduledEventMessageComposer.getComposer("simple-schedule-listener2");
-
-        assertTrue("simple-schedule-listener1 fired", composer1.composedMessages.size() > 0);
-        assertTrue("simple-schedule-listener2 fired", composer2.composedMessages.size() > 0);
-    }
-
-    private void runTestConfig(String configName, long upTime) throws Exception {
-        ESBConfigUtil configUtil = new ESBConfigUtil(getClass().getResourceAsStream(configName));
-
-        configUtil.startController();
-        Thread.sleep(upTime);
-        configUtil.stopController();
-    }
-}
\ No newline at end of file

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/JBESB_2146_UnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+package org.jboss.soa.esb.schedule.JBESB_2146;
+
+import junit.framework.TestCase;
+
+import org.jboss.soa.esb.mock.MockAction;
+import org.jboss.soa.esb.schedule.MockScheduledEventListener;
+import org.jboss.soa.esb.schedule.MockScheduledEventMessageComposer;
+import org.jboss.soa.esb.testutils.ESBConfigUtil;
+
+/**
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class JBESB_2146_UnitTest extends TestCase {
+
+    protected void setUp() throws Exception {
+        MockScheduledEventMessageComposer.reset();
+        MockScheduledEventListener.reset();
+        MockAction.message = null;
+    }
+
+    public void test_simple_schedule_01() throws Exception {
+        runTestConfig("config-01.xml", 10000);
+
+        JBESB_2146_ScheduledEventMessageComposer composer1 = JBESB_2146_ScheduledEventMessageComposer.getComposer("simple-schedule-listener1");
+        JBESB_2146_ScheduledEventMessageComposer composer2 = JBESB_2146_ScheduledEventMessageComposer.getComposer("simple-schedule-listener2");
+
+        assertTrue("simple-schedule-listener1 fired", composer1.composedMessages.size() > 0);
+        assertTrue("simple-schedule-listener2 fired", composer2.composedMessages.size() > 0);
+    }
+
+    private void runTestConfig(String configName, long upTime) throws Exception {
+        ESBConfigUtil configUtil = new ESBConfigUtil(getClass().getResourceAsStream(configName));
+
+        configUtil.startController();
+        Thread.sleep(upTime);
+        configUtil.stopController();
+    }
+}
\ No newline at end of file

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,33 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
-
-    <providers>
-        <schedule-provider name="schedule">
-            <cron-schedule scheduleid="schedule1" cronExpression="0/2 * * * * ?"/>
-        </schedule-provider>
-    </providers>
-
-    <services>
-        <service category="ServiceCat" name="ServiceName-01" description="Test Service">
-
-            <listeners>
-                <scheduled-listener name="simple-schedule-listener1" scheduleidref="schedule1" event-processor="org.jboss.soa.esb.schedule.JBESB_2146.JBESB_2146_ScheduledEventMessageComposer" />
-            </listeners>
-
-            <actions>
-                <action name="action" class="org.jboss.soa.esb.mock.MockAction" />
-            </actions>			
-        </service>
-        <service category="ServiceCat" name="ServiceName-02" description="Test Service">
-
-            <listeners>
-                <scheduled-listener name="simple-schedule-listener2" scheduleidref="schedule1" event-processor="org.jboss.soa.esb.schedule.JBESB_2146.JBESB_2146_ScheduledEventMessageComposer" />
-            </listeners>
-
-            <actions>
-                <action name="action" class="org.jboss.soa.esb.mock.MockAction" />
-            </actions>
-        </service>
-    </services>
-
-</jbossesb>
\ No newline at end of file

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/schedule/JBESB_2146/config-01.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,33 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd">
+
+    <providers>
+        <schedule-provider name="schedule">
+            <cron-schedule scheduleid="schedule1" cronExpression="0/2 * * * * ?"/>
+        </schedule-provider>
+    </providers>
+
+    <services>
+        <service category="ServiceCat" name="ServiceName-01" description="Test Service">
+
+            <listeners>
+                <scheduled-listener name="simple-schedule-listener1" scheduleidref="schedule1" event-processor="org.jboss.soa.esb.schedule.JBESB_2146.JBESB_2146_ScheduledEventMessageComposer" />
+            </listeners>
+
+            <actions>
+                <action name="action" class="org.jboss.soa.esb.mock.MockAction" />
+            </actions>			
+        </service>
+        <service category="ServiceCat" name="ServiceName-02" description="Test Service">
+
+            <listeners>
+                <scheduled-listener name="simple-schedule-listener2" scheduleidref="schedule1" event-processor="org.jboss.soa.esb.schedule.JBESB_2146.JBESB_2146_ScheduledEventMessageComposer" />
+            </listeners>
+
+            <actions>
+                <action name="action" class="org.jboss.soa.esb.mock.MockAction" />
+            </actions>
+        </service>
+    </services>
+
+</jbossesb>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/PublicCryptoUtilUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -53,7 +53,7 @@
     @Test
     public void encryptAndDecrypt() throws SecurityServiceException, InvalidKeyException, NoSuchAlgorithmException, IOException, ClassNotFoundException
     {
-        String object = "some textaalddddddddddddddaldkfjlakjfafadlalkfdalfjkfladsjfalkfjfljsafkjalkfjjafjlkafjfjjfaadlasajfkafkjalalfkjakljdljfajfjajfljalkfjlafljalsjfjj";
+        final String object = getLongString(5000);
         byte[] encrypted = PublicCryptoUtil.INSTANCE.encrypt(object);
         assertFalse(object.equals(new String(encrypted)));
 
@@ -71,6 +71,16 @@
         }
     }
 
+    private String getLongString(final int size)
+    {
+        final StringBuilder sb = new StringBuilder();
+        for (int i = 0; i < size; i++)
+        {
+            sb.append(i);
+        }
+        return sb.toString();
+    }
+
     @Before
     public void setup() throws ConfigurationException
     {
@@ -79,6 +89,8 @@
         System.setProperty(Environment.PROPERTIES_FILE, "abs://" + resource.getFile());
     }
 
+
+
     @After
     public void tearDown()
     {

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigTestUtil.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigTestUtil.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigTestUtil.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigTestUtil.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.services.security;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.listeners.ListenerTagNames;
+
+/**
+ * Util methods for help creating ConfigTree instances.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public final class SecurityConfigTestUtil
+{
+    private SecurityConfigTestUtil()
+    {
+    }
+
+   public static ConfigTree createSecurityFragment(
+            final String runAs,
+            final String callerIdentity,
+            final String moduleName)
+    {
+        final ConfigTree securityElement = new ConfigTree(ListenerTagNames.SECURITY_TAG);
+        securityElement.setAttribute(ListenerTagNames.RUN_AS_TAG, runAs);
+        securityElement.setAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG, callerIdentity);
+        securityElement.setAttribute(ListenerTagNames.MODULE_NAME_TAG, moduleName);
+        return securityElement;
+    }
+
+    public static ConfigTree createSecurityFragment(
+            final String runAs,
+            final String callerIdentity,
+            final String moduleName,
+            final String alias)
+    {
+        final ConfigTree securityElement = createSecurityFragment(runAs, callerIdentity, moduleName);
+        if ( alias != null )
+        {
+            ConfigTree property = new ConfigTree("property", securityElement);
+            property.setAttribute("name", "alias");
+            property.setAttribute("value", alias);
+        }
+        return securityElement;
+    }
+
+    public static ConfigTree createSecurityFragment(
+            final String runAs,
+            final String rolesAllowed,
+            final String callerIdentity,
+            final String moduleName,
+            final String alias)
+    {
+        final ConfigTree securityElement = createSecurityFragment(runAs, callerIdentity, moduleName, alias);
+        securityElement.setAttribute("rolesAllowed", rolesAllowed);
+        return securityElement;
+    }
+
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityConfigUtilUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -20,8 +20,9 @@
  */
 package org.jboss.soa.esb.services.security;
 
-import static org.junit.Assert.*;
+import static org.jboss.soa.esb.services.security.SecurityConfigTestUtil.createSecurityFragment;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
@@ -30,7 +31,6 @@
 import junit.framework.JUnit4TestAdapter;
 
 import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.listeners.ListenerTagNames;
 import org.junit.Test;
 
 /**
@@ -111,45 +111,4 @@
 	{
 		return new JUnit4TestAdapter(SecurityConfigUtilUnitTest.class);
 	}
-
-	private ConfigTree createSecurityFragment(
-			final String runAs,
-			final String callerIdentity,
-			final String moduleName)
-	{
-		final ConfigTree securityElement = new ConfigTree(ListenerTagNames.SECURITY_TAG);
-		securityElement.setAttribute(ListenerTagNames.RUN_AS_TAG, runAs);
-		securityElement.setAttribute(ListenerTagNames.USE_CALLERS_IDENTIDY_TAG, callerIdentity);
-		securityElement.setAttribute(ListenerTagNames.MODULE_NAME_TAG, moduleName);
-		return securityElement;
-	}
-
-	private ConfigTree createSecurityFragment(
-			final String runAs,
-			final String callerIdentity,
-			final String moduleName,
-			final String alias)
-	{
-		final ConfigTree securityElement = createSecurityFragment(runAs, callerIdentity, moduleName);
-		if ( alias != null )
-		{
-    		ConfigTree property = new ConfigTree("property", securityElement);
-    		property.setAttribute("name", "alias");
-    		property.setAttribute("value", alias);
-		}
-		return securityElement;
-	}
-
-	private ConfigTree createSecurityFragment(
-            final String runAs,
-            final String rolesAllowed,
-            final String callerIdentity,
-            final String moduleName,
-            final String alias)
-    {
-        final ConfigTree securityElement = createSecurityFragment(runAs, callerIdentity, moduleName, alias);
-        securityElement.setAttribute("rolesAllowed", rolesAllowed);
-        return securityElement;
-    }
-
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityContextUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -20,8 +20,8 @@
  */
 package org.jboss.soa.esb.services.security;
 
-import static org.junit.Assert.*;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
@@ -32,7 +32,9 @@
 import java.io.ObjectOutputStream;
 import java.net.URL;
 import java.util.HashSet;
+import java.util.concurrent.TimeUnit;
 
+import javax.crypto.SealedObject;
 import javax.security.auth.Subject;
 
 import junit.framework.JUnit4TestAdapter;
@@ -53,7 +55,8 @@
 import org.junit.Test;
 
 /**
- *
+ * Unit test for SecurityContext.
+ * <p/>
  * @author <a href="mailto:dbevenius at redhat.com">Daniel Bevenius</a>
  *
  */
@@ -70,7 +73,7 @@
 		roles.addMember( new Role("Admin"));
 		subject.getPrincipals().add(roles);
 
-		SecurityContext securityContext = new SecurityContext(subject);
+		SecurityContext securityContext = new SecurityContext(subject, 30000);
 		boolean callerInRole = securityContext.isCallerInRole("Admin");
 		assertTrue( callerInRole );
 	}
@@ -84,7 +87,7 @@
         byte[] publicCred = "secret".getBytes();
         subject.getPublicCredentials().add(publicCred);
 
-        SecurityContext securityContext = new SecurityContext(subject);
+        SecurityContext securityContext = new SecurityContext(subject, 30000l);
         assertEquals( user, securityContext.getSubject().getPrincipals().iterator().next() );
         assertEquals( publicCred, securityContext.getSubject().getPublicCredentials().iterator().next());
 
@@ -102,7 +105,6 @@
         assertTrue (readObject instanceof SecurityContext);
         SecurityContext deserialized = (SecurityContext)readObject;
         assertEquals( user, deserialized.getSubject().getPrincipals().iterator().next() );
-        assertEquals( new String(publicCred), new String((byte[])deserialized.getPubCredentials().iterator().next()));
     }
 
 	@Test
@@ -114,12 +116,11 @@
         byte[] publicCred = "secret".getBytes();
         subject.getPublicCredentials().add(publicCred);
 
-        SecurityContext securityContext = new SecurityContext(subject);
+        SecurityContext securityContext = new SecurityContext(subject, 30000l);
         Message message = MessageFactory.getInstance().getMessage(MessageType.JAVA_SERIALIZED);
-        byte[] encryptContext = SecurityContext.encryptContext(securityContext);
-        message.getContext().setContext(SecurityService.CONTEXT, encryptContext);
+        SealedObject sealedObject = SecurityContext.encryptContext(securityContext);
+        message.getContext().setContext(SecurityService.CONTEXT, sealedObject);
 
-
         //  serialize object
         ByteArrayOutputStream bout = new ByteArrayOutputStream();
         ObjectOutputStream out = new ObjectOutputStream(bout);
@@ -133,10 +134,8 @@
         //  assert that the content is still matches.
         assertTrue (readObject instanceof Message);
         Message deserializedMsg = (Message) readObject;
-        SecurityContext deserialized = SecurityContext.decryptContext((byte[]) deserializedMsg.getContext().getContext(SecurityService.CONTEXT));
+        SecurityContext deserialized = SecurityContext.decryptContext((SealedObject) deserializedMsg.getContext().getContext(SecurityService.CONTEXT));
         assertEquals( user, deserialized.getSubject().getPrincipals().iterator().next() );
-        //assertEquals( new String(publicCred), new String((byte[])deserialized.getPubCredentials().iterator().next()));
-        assertEquals( new String(publicCred), new String((byte[])deserialized.getSubject().getPublicCredentials().iterator().next()));
     }
 
 	@Test
@@ -150,13 +149,12 @@
         byte[] privateCred = "privatesecret".getBytes();
         subject.getPrivateCredentials().add(privateCred);
 
-        SecurityContext securityContext = new SecurityContext(subject);
-        byte[] encrypt = SecurityContext.encryptContext(securityContext);
-        assertNotNull(encrypt);
+        SecurityContext securityContext = new SecurityContext(subject, 30000);
+        SealedObject sealedObject = SecurityContext.encryptContext(securityContext);
+        assertNotNull(sealedObject);
 
-        SecurityContext decryptContext = SecurityContext.decryptContext(encrypt);
-        assertEquals( new String(publicCred), new String((byte[])decryptContext.getPubCredentials().iterator().next()));
-        assertEquals( new String(privateCred), new String((byte[])decryptContext.getPrivCredentials().iterator().next()));
+        SecurityContext decryptContext = SecurityContext.decryptContext(sealedObject);
+        assertEquals( user, decryptContext.getSubject().getPrincipals().iterator().next());
 	}
 
 	@Test
@@ -170,7 +168,7 @@
         byte[] privateCred = "privatesecret".getBytes();
         subject.getPrivateCredentials().add(privateCred);
 
-        SecurityContext securityContext = new SecurityContext(subject);
+        SecurityContext securityContext = new SecurityContext(subject, 30000);
 
         HashSet<Object> credentials = new HashSet<Object>();
         credentials.add(publicCred);
@@ -186,6 +184,41 @@
         assertFalse(securityContext.compareTo(null));
     }
 
+	@Test
+	public void timeout() throws InterruptedException
+	{
+        final Subject subject = new Subject();
+        SecurityContext context = new SecurityContext(subject, 30000);
+        assertTrue("Default is 5 min so context should be valid", context.isValid());
+
+        context = new SecurityContext(subject, 100);
+        TimeUnit.SECONDS.sleep(1);
+        assertFalse(context.isValid());
+
+        context = new SecurityContext(subject, 1000);
+        assertTrue(context.isValid());
+	}
+
+	@Test
+    public void constructWithNeverExpiringContext()
+    {
+        SecurityContext securityContext = new SecurityContext(new Subject(), -1);
+        assertTrue(securityContext.isValid());
+    }
+
+	@Test (expected = IllegalArgumentException.class )
+    public void shouldThrowIfTimeoutIsNegative()
+    {
+        new SecurityContext(new Subject(), -2);
+    }
+
+	@Test
+    public void getConfigurationTimeout() throws SecurityServiceException
+    {
+        final long timeout = SecurityContext.getConfigurationTimeout();
+        assertEquals("timeout should match the value in security-properties.xml", 30000l, timeout);
+    }
+
 	@Before
     public void setup() throws ConfigurationException
     {

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityPropagationUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityPropagationUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityPropagationUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/SecurityPropagationUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,167 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.services.security;
+
+import java.util.Properties;
+
+import javax.crypto.SealedObject;
+
+import static junit.framework.Assert.assertNotNull;
+import static junit.framework.Assert.assertNotSame;
+import static junit.framework.Assert.assertNull;
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.internal.soa.esb.couriers.MockCourier;
+import org.jboss.internal.soa.esb.couriers.MockCourierFactory;
+import org.jboss.internal.soa.esb.services.registry.MockRegistry;
+import org.jboss.soa.esb.addressing.MalformedEPRException;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.common.Environment;
+import org.jboss.soa.esb.couriers.CourierException;
+import org.jboss.soa.esb.message.ByReferenceMessage;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit tests for security propagation.
+ * 
+ * @author <a href="mailto:Kevin.Conner at jboss.com">Kevin Conner</a>
+ */
+public class SecurityPropagationUnitTest
+{
+    private Properties props ;
+
+    @Before
+    public void setup()
+    {
+        props = System.getProperties() ;
+        final Properties newProps = new Properties(props) ;
+        newProps.setProperty(Environment.SECURITY_SERVICE_SEAL_ALGORITHM, "TripleDES") ;
+        newProps.setProperty(Environment.SECURITY_SERVICE_SEAL_KEYSIZE, "168") ;
+        System.setProperties(newProps) ;
+        MockCourierFactory.install() ;
+        MockRegistry.install() ;
+    }
+
+    @After
+    public void tearDown()
+    {
+        MockRegistry.uninstall() ;
+        MockCourierFactory.uninstall() ;
+        System.setProperties(props) ;
+    }
+
+    @Test
+    public void securityContextPropagation()
+        throws Exception
+    {
+        final String category = "test" ;
+        final String service = "securityContextPropagation" ;
+        final MockCourier mockCourier = new PropagationMockCourier() ;
+        MockRegistry.register(category, service, mockCourier) ;
+        
+        final ServiceInvoker si = new ServiceInvoker(category, service) ;
+        final Message message = MessageFactory.getInstance().getMessage() ;
+        
+        assertNull("securityContext", SecurityContext.getSecurityContext()) ;
+        assertNull("message context", message.getContext().getContext(SecurityService.CONTEXT)) ;
+        
+        final SealedObject securityContext = SecurityContext.encryptContext(new SecurityContext()) ;
+        SecurityContext.setSecurityContext(securityContext) ;
+        
+        assertNotNull("securityContext", SecurityContext.getSecurityContext()) ;
+        
+        si.deliverAsync(message) ;
+        
+        assertNotSame("messages", message, mockCourier.message) ;
+        assertNull("message context", message.getContext().getContext(SecurityService.CONTEXT)) ;
+        assertNotNull("delivered message context", mockCourier.message.getContext().getContext(SecurityService.CONTEXT)) ;
+        assertNotNull("securityContext", SecurityContext.getSecurityContext()) ;
+        
+        mockCourier.reset();
+        si.deliverAsync(message) ;
+        
+        assertNotSame("messages", message, mockCourier.message) ;
+        assertNull("message context", message.getContext().getContext(SecurityService.CONTEXT)) ;
+        assertNotNull("delivered message context", mockCourier.message.getContext().getContext(SecurityService.CONTEXT)) ;
+        assertNotNull("securityContext", SecurityContext.getSecurityContext()) ;
+    }
+
+    @Test
+    public void authenticationRequestPropagation()
+        throws Exception
+    {
+        final String category = "test" ;
+        final String service = "authenticationRequestPropagation" ;
+        final MockCourier mockCourier = new PropagationMockCourier() ;
+        MockRegistry.register(category, service, mockCourier) ;
+        
+        final ServiceInvoker si = new ServiceInvoker(category, service) ;
+        final Message message = MessageFactory.getInstance().getMessage() ;
+        
+        assertNull("authenticationRequest", AuthenticationRequestImpl.getEncryptedAuthRequest()) ;
+        assertNull("message context", message.getContext().getContext(SecurityService.AUTH_REQUEST)) ;
+        
+        final byte[] authenticationRequest = new byte[0] ;
+        AuthenticationRequestImpl.setEncryptedAuthRequest(authenticationRequest) ;
+        
+        assertNotNull("authenticationRequest", AuthenticationRequestImpl.getEncryptedAuthRequest()) ;
+        
+        si.deliverAsync(message) ;
+        
+        assertNotSame("messages", message, mockCourier.message) ;
+        assertNull("message context", message.getContext().getContext(SecurityService.AUTH_REQUEST)) ;
+        assertNotNull("delivered message context", mockCourier.message.getContext().getContext(SecurityService.AUTH_REQUEST)) ;
+        assertNotNull("authenticationRequest", AuthenticationRequestImpl.getEncryptedAuthRequest()) ;
+        
+        mockCourier.reset();
+        si.deliverAsync(message) ;
+        
+        assertNotSame("messages", message, mockCourier.message) ;
+        assertNull("message context", message.getContext().getContext(SecurityService.AUTH_REQUEST)) ;
+        assertNotNull("delivered message context", mockCourier.message.getContext().getContext(SecurityService.AUTH_REQUEST)) ;
+        assertNotNull("authenticationRequest", AuthenticationRequestImpl.getEncryptedAuthRequest()) ;
+    }
+
+    private static final class PropagationMockCourier extends MockCourier
+    {
+        PropagationMockCourier()
+        {
+            super(true) ;
+        }
+        
+        @Override
+        public boolean deliver(final Message message)
+            throws CourierException, MalformedEPRException
+        {
+            return super.deliver(((ByReferenceMessage)message).reference());
+        }
+    }
+    
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(SecurityPropagationUnitTest.class);
+    }
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,256 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.services.security.auth.login;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.security.KeyStore;
-import java.security.KeyStoreException;
-import java.security.NoSuchAlgorithmException;
-import java.security.Principal;
-import java.security.cert.Certificate;
-import java.security.cert.CertificateException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-import javax.security.auth.Subject;
-import javax.security.auth.login.LoginException;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.services.security.SecurityConfig;
-import org.jboss.soa.esb.services.security.SecurityConfigTestUtil;
-import org.jboss.soa.esb.services.security.SecurityConfigUtil;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.services.security.principals.Group;
-import org.jboss.soa.esb.services.security.principals.Role;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.util.ClassUtil;
-import org.junit.Test;
-
-/**
- * Unit test for {@link CertificateLoginModule}
- * <p/>
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- *
- */
-public class CertificateLoginModuleUnitTest
-{
-    private CertificateLoginModule module = new CertificateLoginModule();
-
-    private String keyStorePath = "certtestKeystore";
-    private String keyStorePassword = "storepassword";
-    private String keyAlias = "certtest";
-
-    @Test (expected = LoginException.class )
-    public void shouldThrowIfOptionsWereNull() throws LoginException
-    {
-        module.assertOptions(null);
-    }
-
-    @Test (expected = LoginException.class )
-    public void shouldThrowIfNoOptionsWereSpecified() throws LoginException
-    {
-        final HashMap<String, ?> options = new HashMap<String, Object>();
-        module.assertOptions(options);
-    }
-
-    @Test (expected = LoginException.class )
-    public void shouldThrowIfNoKeyStoreUrlWasSpecified() throws LoginException
-    {
-        final Map<String, Object> options = getAllOptions();
-        options.remove(CertificateLoginModule.KEYSTORE_URL);
-        module.assertOptions(options);
-    }
-
-    @Test (expected = LoginException.class )
-    public void shouldThrowIfNoKeyStorePasswordWasSpecified() throws LoginException
-    {
-        final Map<String, Object> options = getAllOptions();
-        options.remove(CertificateLoginModule.KEYSTORE_PASSWORD);
-        module.assertOptions(options);
-    }
-
-    @Test
-    public void login() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
-    {
-        final Certificate callerCert = getCertificate(keyStorePath, keyAlias);
-
-        // create the authentication request using the callers certificate as the credential
-        final AuthenticationRequest authRequest = getAuthenticationRequest(callerCert);
-
-        // create and setup the esb callback handler
-        final CertCallbackHandler certCallbackHandler = new CertCallbackHandler();
-        certCallbackHandler.setAuthenticationRequest(authRequest);
-        certCallbackHandler.setSecurityConfig(getSecurityConfig(keyAlias));
-
-        // initialize and login
-        final Subject subject = new Subject();
-        final Map<String, Object> options = getAllOptions();
-        options.put(CertificateLoginModule.ROLE_PROPERTIES, "roles.properties");
-        module.initialize(subject, certCallbackHandler, null, options);
-        boolean login = module.login();
-        assertTrue(login);
-
-        module.commit();
-        final Principal principal = subject.getPrincipals().iterator().next();
-        assertTrue(principal instanceof User);
-        assertEquals(principal.getName(), "Daniel Bevenius");
-
-        final Set<Group> principals = subject.getPrincipals(Group.class);
-        assertTrue(principals.iterator().next().isMember(new Role("worker")));
-        assertTrue(principals.iterator().next().isMember(new Role("esbrole")));
-    }
-
-    @Test (expected = LoginException.class)
-    public void shouldThrowIsAliasIsNotFound() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
-    {
-        final Certificate callerCert = getCertificate(keyStorePath, keyAlias);
-
-        // create the authentication request using the callers certificate as the credential
-        final AuthenticationRequest authRequest = getAuthenticationRequest(callerCert);
-
-        // create and setup the esb callback handler
-        final CertCallbackHandler certCallbackHandler = new CertCallbackHandler();
-        certCallbackHandler.setAuthenticationRequest(authRequest);
-        certCallbackHandler.setSecurityConfig(getSecurityConfig("bogusAlias"));
-
-        // initialize and login
-        final Subject subject = new Subject();
-        final Map<String, Object> options = getAllOptions();
-        module.initialize(subject, certCallbackHandler, null, options);
-        module.login();
-    }
-
-    @Test (expected = LoginException.class)
-    public void shouldThrowIfCertificateIsNull() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
-    {
-        // create the authentication request using the callers certificate as the credential
-        final AuthenticationRequest authRequest = getAuthenticationRequest(null);
-
-        // create and setup the esb callback handler
-        final CertCallbackHandler certCallbackHandler = new CertCallbackHandler();
-        certCallbackHandler.setAuthenticationRequest(authRequest);
-        certCallbackHandler.setSecurityConfig(getSecurityConfig("bogusAlias"));
-
-        // initialize and login
-        final Subject subject = new Subject();
-        final Map<String, Object> options = getAllOptions();
-        module.initialize(subject, certCallbackHandler, null, options);
-        module.login();
-    }
-
-    @Test (expected = LoginException.class)
-    public void shouldThrowIfCertifcatesDontMatch() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
-    {
-        // using a different certificate
-        final Certificate callerCert = getCertificate(keyStorePath, "certtest2");
-
-        // create the authentication request using the callers certificate as the credential
-        final AuthenticationRequest authRequest = getAuthenticationRequest(callerCert);
-
-        // create and setup the esb callback handler
-        final CertCallbackHandler certCallbackHandler = new CertCallbackHandler();
-        certCallbackHandler.setAuthenticationRequest(authRequest);
-        certCallbackHandler.setSecurityConfig(getSecurityConfig(keyAlias));
-
-        // initialize and login
-        final Subject subject = new Subject();
-        final Map<String, Object> options = getAllOptions();
-        module.initialize(subject, certCallbackHandler, null, options);
-        module.login();
-    }
-
-    @Test
-    public void addRoles() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
-    {
-        final Subject subject = new Subject();
-        final Map<String, Object> options = getAllOptions();
-        options.put(CertificateLoginModule.ROLE_PROPERTIES, "roles.properties");
-
-        //  simulates the authenticated principal
-        final Principal principal = new User("Daniel Bevenius");
-        subject.getPrincipals().add(principal);
-
-        //  call add roles
-        module.addRoles(subject, principal, null, options);
-
-        final Set<Group> principals = subject.getPrincipals(Group.class);
-        assertTrue(principals.iterator().next().isMember(new Role("worker")));
-        assertTrue(principals.iterator().next().isMember(new Role("esbrole")));
-    }
-
-    public static junit.framework.Test suite()
-    {
-        return new JUnit4TestAdapter(CertificateLoginModuleUnitTest.class);
-    }
-
-    private Map<String, Object> getAllOptions()
-    {
-        return getAllOptions(keyStorePath, keyStorePassword);
-    }
-
-    private Map<String, Object> getAllOptions(final String keystoreUrl, final String keyStorePassword)
-    {
-        HashMap<String, Object> options = new HashMap<String, Object>();
-        options.put(CertificateLoginModule.KEYSTORE_URL, keystoreUrl);
-        options.put(CertificateLoginModule.KEYSTORE_PASSWORD, keyStorePassword);
-        return options;
-    }
-
-    private Certificate getCertificate(final String keyStorePath, final String alias) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
-    {
-        final KeyStore keyStore = loadKeyStore(keyStorePath, keyStorePassword);
-        assertTrue("Keystore did not contain the expected alias : " + keyAlias, keyStore.containsAlias(alias));
-        return keyStore.getCertificate(alias);
-    }
-
-    private AuthenticationRequest getAuthenticationRequest(final Certificate callerCert)
-    {
-        // create the authentication request using the callers certificate as the credential
-        return new AuthenticationRequestImpl.Builder(null, Collections.singleton((Object)callerCert)).build();
-    }
-
-    private SecurityConfig getSecurityConfig(final String alias)
-    {
-        final ConfigTree securityFragment = SecurityConfigTestUtil.createSecurityFragment("adminRole", null, null, null, alias);
-        return SecurityConfigUtil.createSecurityConfig(securityFragment);
-    }
-
-
-    private KeyStore loadKeyStore(final String keyStorePath, final String keyStorePassword) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
-    {
-        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
-        InputStream in = ClassUtil.getResourceAsStream(keyStorePath, this.getClass());
-        keystore.load(in, (keyStorePassword).toCharArray());
-        assertNotNull("Was not able to load keystore: " + keyStorePath, keystore);
-        return keystore;
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/CertificateLoginModuleUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,256 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.services.security.auth.login;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertTrue;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.security.KeyStore;
+import java.security.KeyStoreException;
+import java.security.NoSuchAlgorithmException;
+import java.security.Principal;
+import java.security.cert.Certificate;
+import java.security.cert.CertificateException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import javax.security.auth.Subject;
+import javax.security.auth.login.LoginException;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.services.security.SecurityConfig;
+import org.jboss.soa.esb.services.security.SecurityConfigTestUtil;
+import org.jboss.soa.esb.services.security.SecurityConfigUtil;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.services.security.principals.Group;
+import org.jboss.soa.esb.services.security.principals.Role;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.util.ClassUtil;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link CertificateLoginModule}
+ * <p/>
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class CertificateLoginModuleUnitTest
+{
+    private CertificateLoginModule module = new CertificateLoginModule();
+
+    private String keyStorePath = "certtestKeystore";
+    private String keyStorePassword = "storepassword";
+    private String keyAlias = "certtest";
+
+    @Test (expected = LoginException.class )
+    public void shouldThrowIfOptionsWereNull() throws LoginException
+    {
+        module.assertOptions(null);
+    }
+
+    @Test (expected = LoginException.class )
+    public void shouldThrowIfNoOptionsWereSpecified() throws LoginException
+    {
+        final HashMap<String, ?> options = new HashMap<String, Object>();
+        module.assertOptions(options);
+    }
+
+    @Test (expected = LoginException.class )
+    public void shouldThrowIfNoKeyStoreUrlWasSpecified() throws LoginException
+    {
+        final Map<String, Object> options = getAllOptions();
+        options.remove(CertificateLoginModule.KEYSTORE_URL);
+        module.assertOptions(options);
+    }
+
+    @Test (expected = LoginException.class )
+    public void shouldThrowIfNoKeyStorePasswordWasSpecified() throws LoginException
+    {
+        final Map<String, Object> options = getAllOptions();
+        options.remove(CertificateLoginModule.KEYSTORE_PASSWORD);
+        module.assertOptions(options);
+    }
+
+    @Test
+    public void login() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
+    {
+        final Certificate callerCert = getCertificate(keyStorePath, keyAlias);
+
+        // create the authentication request using the callers certificate as the credential
+        final AuthenticationRequest authRequest = getAuthenticationRequest(callerCert);
+
+        // create and setup the esb callback handler
+        final CertCallbackHandler certCallbackHandler = new CertCallbackHandler();
+        certCallbackHandler.setAuthenticationRequest(authRequest);
+        certCallbackHandler.setSecurityConfig(getSecurityConfig(keyAlias));
+
+        // initialize and login
+        final Subject subject = new Subject();
+        final Map<String, Object> options = getAllOptions();
+        options.put(CertificateLoginModule.ROLE_PROPERTIES, "roles.properties");
+        module.initialize(subject, certCallbackHandler, null, options);
+        boolean login = module.login();
+        assertTrue(login);
+
+        module.commit();
+        final Principal principal = subject.getPrincipals().iterator().next();
+        assertTrue(principal instanceof User);
+        assertEquals(principal.getName(), "Daniel Bevenius");
+
+        final Set<Group> principals = subject.getPrincipals(Group.class);
+        assertTrue(principals.iterator().next().isMember(new Role("worker")));
+        assertTrue(principals.iterator().next().isMember(new Role("esbrole")));
+    }
+
+    @Test (expected = LoginException.class)
+    public void shouldThrowIsAliasIsNotFound() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
+    {
+        final Certificate callerCert = getCertificate(keyStorePath, keyAlias);
+
+        // create the authentication request using the callers certificate as the credential
+        final AuthenticationRequest authRequest = getAuthenticationRequest(callerCert);
+
+        // create and setup the esb callback handler
+        final CertCallbackHandler certCallbackHandler = new CertCallbackHandler();
+        certCallbackHandler.setAuthenticationRequest(authRequest);
+        certCallbackHandler.setSecurityConfig(getSecurityConfig("bogusAlias"));
+
+        // initialize and login
+        final Subject subject = new Subject();
+        final Map<String, Object> options = getAllOptions();
+        module.initialize(subject, certCallbackHandler, null, options);
+        module.login();
+    }
+
+    @Test (expected = LoginException.class)
+    public void shouldThrowIfCertificateIsNull() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
+    {
+        // create the authentication request using the callers certificate as the credential
+        final AuthenticationRequest authRequest = getAuthenticationRequest(null);
+
+        // create and setup the esb callback handler
+        final CertCallbackHandler certCallbackHandler = new CertCallbackHandler();
+        certCallbackHandler.setAuthenticationRequest(authRequest);
+        certCallbackHandler.setSecurityConfig(getSecurityConfig("bogusAlias"));
+
+        // initialize and login
+        final Subject subject = new Subject();
+        final Map<String, Object> options = getAllOptions();
+        module.initialize(subject, certCallbackHandler, null, options);
+        module.login();
+    }
+
+    @Test (expected = LoginException.class)
+    public void shouldThrowIfCertifcatesDontMatch() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
+    {
+        // using a different certificate
+        final Certificate callerCert = getCertificate(keyStorePath, "certtest2");
+
+        // create the authentication request using the callers certificate as the credential
+        final AuthenticationRequest authRequest = getAuthenticationRequest(callerCert);
+
+        // create and setup the esb callback handler
+        final CertCallbackHandler certCallbackHandler = new CertCallbackHandler();
+        certCallbackHandler.setAuthenticationRequest(authRequest);
+        certCallbackHandler.setSecurityConfig(getSecurityConfig(keyAlias));
+
+        // initialize and login
+        final Subject subject = new Subject();
+        final Map<String, Object> options = getAllOptions();
+        module.initialize(subject, certCallbackHandler, null, options);
+        module.login();
+    }
+
+    @Test
+    public void addRoles() throws LoginException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
+    {
+        final Subject subject = new Subject();
+        final Map<String, Object> options = getAllOptions();
+        options.put(CertificateLoginModule.ROLE_PROPERTIES, "roles.properties");
+
+        //  simulates the authenticated principal
+        final Principal principal = new User("Daniel Bevenius");
+        subject.getPrincipals().add(principal);
+
+        //  call add roles
+        module.addRoles(subject, principal, null, options);
+
+        final Set<Group> principals = subject.getPrincipals(Group.class);
+        assertTrue(principals.iterator().next().isMember(new Role("worker")));
+        assertTrue(principals.iterator().next().isMember(new Role("esbrole")));
+    }
+
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(CertificateLoginModuleUnitTest.class);
+    }
+
+    private Map<String, Object> getAllOptions()
+    {
+        return getAllOptions(keyStorePath, keyStorePassword);
+    }
+
+    private Map<String, Object> getAllOptions(final String keystoreUrl, final String keyStorePassword)
+    {
+        HashMap<String, Object> options = new HashMap<String, Object>();
+        options.put(CertificateLoginModule.KEYSTORE_URL, keystoreUrl);
+        options.put(CertificateLoginModule.KEYSTORE_PASSWORD, keyStorePassword);
+        return options;
+    }
+
+    private Certificate getCertificate(final String keyStorePath, final String alias) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
+    {
+        final KeyStore keyStore = loadKeyStore(keyStorePath, keyStorePassword);
+        assertTrue("Keystore did not contain the expected alias : " + keyAlias, keyStore.containsAlias(alias));
+        return keyStore.getCertificate(alias);
+    }
+
+    private AuthenticationRequest getAuthenticationRequest(final Certificate callerCert)
+    {
+        // create the authentication request using the callers certificate as the credential
+        return new AuthenticationRequestImpl.Builder(null, Collections.singleton((Object)callerCert)).build();
+    }
+
+    private SecurityConfig getSecurityConfig(final String alias)
+    {
+        final ConfigTree securityFragment = SecurityConfigTestUtil.createSecurityFragment("adminRole", null, null, null, alias);
+        return SecurityConfigUtil.createSecurityConfig(securityFragment);
+    }
+
+
+    private KeyStore loadKeyStore(final String keyStorePath, final String keyStorePassword) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException
+    {
+        KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
+        InputStream in = ClassUtil.getResourceAsStream(keyStorePath, this.getClass());
+        keystore.load(in, (keyStorePassword).toCharArray());
+        assertNotNull("Was not able to load keystore: " + keyStorePath, keystore);
+        return keystore;
+    }
+}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/certtestKeystore
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/certtestKeystore (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/certtestKeystore)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,6 +0,0 @@
-# user=role1,role2,...
-guest=guest
-esbuser=esbrole
-
-# sort of ugly but can be used when a CN contains a space character.
-Daniel\u0020Bevenius=esbrole,worker

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/auth/login/roles.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,6 @@
+# user=role1,role2,...
+guest=guest
+esbuser=esbrole
+
+# sort of ugly but can be used when a CN contains a space character.
+Daniel\u0020Bevenius=esbrole,worker

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/jaas.login	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-SuccessfulLogin {
-  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=true;
-};
-FailureLogin {
-  org.jboss.soa.esb.services.security.TestLoginModule required forceLogin=false;
-};
-UserPassLogin {
-  org.jboss.soa.esb.services.security.SimpleLoginModule required ;
-};
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/security-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -40,18 +40,18 @@
     <properties name="security">
     	<property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
     	<property name="org.jboss.soa.esb.services.security.callbackHandler" value="org.jboss.internal.soa.esb.services.security.UserPassCallbackHandler"/>
-    	<property name="org.jboss.soa.esb.services.security.configUrl" value="jaas.login"/>
     	
-    	<property name="org.jboss.soa.esb.services.security.privateKeystore" value="privateKeyStore"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeystorePassword" value="testKeystorePassword"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeyAlias" value="testAlias"/>
-    	<property name="org.jboss.soa.esb.services.security.privateKeyPassword" value="testPassword"/>
+    	<property name="org.jboss.soa.esb.services.security.sealAlgorithm" value="TripleDES"/>
+    	<property name="org.jboss.soa.esb.services.security.sealKeySize" value="168"/>
     	
+    	<property name="org.jboss.soa.esb.services.security.contextTimeout" value="30000"/>
+    	
     	<property name="org.jboss.soa.esb.services.security.publicKeystore" value="publicKeyStore"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
     	<property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
+    	
     </properties>
     <properties name="registry">
     	<property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,122 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.services.security.util;
-
-import static org.junit.Assert.*;
-
-import java.security.KeyPair;
-import java.security.KeyPairGenerator;
-import java.security.NoSuchAlgorithmException;
-import java.security.Provider;
-import java.security.Security;
-
-import javax.crypto.KeyGenerator;
-import javax.crypto.SecretKey;
-
-import org.jboss.soa.esb.services.security.SecurityServiceException;
-import org.junit.Test;
-
-import junit.framework.JUnit4TestAdapter;
-
-/**
- * Unit test from CryptoUtil.
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- *
- */
-public class CryptoUtilUnitTest
-{
-    @Test
-    public void encryptDecryptRSA() throws NoSuchAlgorithmException, SecurityServiceException
-    {
-        final String payload = "Some text...";
-        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
-        keyGen.initialize(1024);
-        KeyPair keyPair = keyGen.generateKeyPair();
-
-        byte[] encrypt = CryptoUtil.encrypt(payload.getBytes() , keyPair.getPublic(), keyPair.getPublic().getAlgorithm());
-        byte[] decrypt = CryptoUtil.decrypt(encrypt, keyPair.getPrivate(), keyPair.getPrivate().getAlgorithm());
-        assertEquals(payload, new String(decrypt));
-    }
-
-    @Test
-    public void encryptDecryptDES() throws NoSuchAlgorithmException, SecurityServiceException
-    {
-        final String payload = "Some text...";
-        KeyGenerator keyGen = KeyGenerator.getInstance("DES");
-        keyGen.init(56);
-        SecretKey secretKey = keyGen.generateKey();
-        final String transformation = "DES/ECB/PKCS5Padding";
-
-        byte[] encrypt = CryptoUtil.encrypt(payload.getBytes() , secretKey, transformation);
-
-        byte[] decrypt = CryptoUtil.decrypt(encrypt, secretKey, transformation);
-        assertEquals(payload, new String(decrypt));
-    }
-
-    @Test
-    public void encryptDecryptTripleDES() throws NoSuchAlgorithmException, SecurityServiceException
-    {
-        dumpSecurityProviders();
-        final String payload = "Some text...";
-        KeyGenerator keyGen = KeyGenerator.getInstance("Blowfish");
-        keyGen.init(128);
-        SecretKey secretKey = keyGen.generateKey();
-        final String transformation = "Blowfish/ECB/PKCS5Padding";
-
-        byte[] encrypt = CryptoUtil.encrypt(payload.getBytes() , secretKey, transformation);
-
-        byte[] decrypt = CryptoUtil.decrypt(encrypt, secretKey, transformation);
-        assertEquals(payload, new String(decrypt));
-    }
-
-    @Test
-    public void encryptDecryptTripleEAS() throws NoSuchAlgorithmException, SecurityServiceException
-    {
-        final String payload = "Some text...";
-        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
-        keyGen.init(128);
-        SecretKey secretKey = keyGen.generateKey();
-        final String transformation = "AES/ECB/PKCS5Padding";
-
-        byte[] encrypt = CryptoUtil.encrypt(payload.getBytes() , secretKey, transformation);
-
-        byte[] decrypt = CryptoUtil.decrypt(encrypt, secretKey, transformation);
-        assertEquals(payload, new String(decrypt));
-    }
-
-
-    @SuppressWarnings("unused")
-    private void dumpSecurityProviders()
-    {
-        Provider[]  providers = Security.getProviders();
-        for (Provider provider : providers)
-        {
-            System.out.println(provider.getServices());
-        }
-    }
-
-    public static junit.framework.Test suite()
-    {
-        return new JUnit4TestAdapter(CryptoUtilUnitTest.class);
-    }
-
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/rosetta/tests/src/org/jboss/soa/esb/services/security/util/CryptoUtilUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,122 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.services.security.util;
+
+import static org.junit.Assert.*;
+
+import java.security.KeyPair;
+import java.security.KeyPairGenerator;
+import java.security.NoSuchAlgorithmException;
+import java.security.Provider;
+import java.security.Security;
+
+import javax.crypto.KeyGenerator;
+import javax.crypto.SecretKey;
+
+import org.jboss.soa.esb.services.security.SecurityServiceException;
+import org.junit.Test;
+
+import junit.framework.JUnit4TestAdapter;
+
+/**
+ * Unit test from CryptoUtil.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class CryptoUtilUnitTest
+{
+    @Test
+    public void encryptDecryptRSA() throws NoSuchAlgorithmException, SecurityServiceException
+    {
+        final String payload = "Some text...";
+        KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
+        keyGen.initialize(1024);
+        KeyPair keyPair = keyGen.generateKeyPair();
+
+        byte[] encrypt = CryptoUtil.encrypt(payload.getBytes() , keyPair.getPublic(), keyPair.getPublic().getAlgorithm());
+        byte[] decrypt = CryptoUtil.decrypt(encrypt, keyPair.getPrivate(), keyPair.getPrivate().getAlgorithm());
+        assertEquals(payload, new String(decrypt));
+    }
+
+    @Test
+    public void encryptDecryptDES() throws NoSuchAlgorithmException, SecurityServiceException
+    {
+        final String payload = "Some text...";
+        KeyGenerator keyGen = KeyGenerator.getInstance("DES");
+        keyGen.init(56);
+        SecretKey secretKey = keyGen.generateKey();
+        final String transformation = "DES/ECB/PKCS5Padding";
+
+        byte[] encrypt = CryptoUtil.encrypt(payload.getBytes() , secretKey, transformation);
+
+        byte[] decrypt = CryptoUtil.decrypt(encrypt, secretKey, transformation);
+        assertEquals(payload, new String(decrypt));
+    }
+
+    @Test
+    public void encryptDecryptTripleDES() throws NoSuchAlgorithmException, SecurityServiceException
+    {
+        dumpSecurityProviders();
+        final String payload = "Some text...";
+        KeyGenerator keyGen = KeyGenerator.getInstance("Blowfish");
+        keyGen.init(128);
+        SecretKey secretKey = keyGen.generateKey();
+        final String transformation = "Blowfish/ECB/PKCS5Padding";
+
+        byte[] encrypt = CryptoUtil.encrypt(payload.getBytes() , secretKey, transformation);
+
+        byte[] decrypt = CryptoUtil.decrypt(encrypt, secretKey, transformation);
+        assertEquals(payload, new String(decrypt));
+    }
+
+    @Test
+    public void encryptDecryptTripleEAS() throws NoSuchAlgorithmException, SecurityServiceException
+    {
+        final String payload = "Some text...";
+        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
+        keyGen.init(128);
+        SecretKey secretKey = keyGen.generateKey();
+        final String transformation = "AES/ECB/PKCS5Padding";
+
+        byte[] encrypt = CryptoUtil.encrypt(payload.getBytes() , secretKey, transformation);
+
+        byte[] decrypt = CryptoUtil.decrypt(encrypt, secretKey, transformation);
+        assertEquals(payload, new String(decrypt));
+    }
+
+
+    @SuppressWarnings("unused")
+    private void dumpSecurityProviders()
+    {
+        Provider[]  providers = Security.getProviders();
+        for (Provider provider : providers)
+        {
+            System.out.println(provider.getServices());
+        }
+    }
+
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(CryptoUtilUnitTest.class);
+    }
+
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/aggregator/smooks-res.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/aggregator/smooks-res.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/aggregator/smooks-res.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,55 +1,43 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd">
 
     <!--
         Populate the OrderHeader
     -->
-    <resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderHeader</param>
-		<param name="beanClass">org.jboss.soa.esb.dvdstore.OrderHeader</param>
-        <param name="bindings">
-            <binding property="orderId" selector="order @orderId" />
-            <binding property="orderDate" selector="order @orderDate" />
-            <binding property="statusCode" selector="order @statusCode" />
-            <binding property="netAmount" selector="order @netAmount" />
-            <binding property="totalAmount" selector="order @totalAmount" />
-            <binding property="tax" selector="order @tax" />
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderHeader" class="org.jboss.soa.esb.dvdstore.OrderHeader" createOnElement="order">
+        <jb:value property="orderId"     data="order/@orderId" />
+        <jb:value property="orderDate"   data="order/@orderDate" />
+        <jb:value property="statusCode"  data="order/@statusCode" />
+        <jb:value property="netAmount"   data="order/@netAmount" />
+        <jb:value property="totalAmount" data="order/@totalAmount" />
+        <jb:value property="tax"         data="order/@tax" />
+    </jb:bindings>
 
     <!--
         Populate the Customer
     -->
-	<resource-config selector="order customer">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">customer</param>
-		<param name="beanClass">org.jboss.soa.esb.dvdstore.Customer</param>
-        <param name="bindings">
-            <binding property="userName" selector="customer @userName" />
-            <binding property="firstName" selector="customer @firstName" />
-            <binding property="lastName" selector="customer @lastName" />
-            <binding property="state" selector="customer @state" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="customer" class="org.jboss.soa.esb.dvdstore.Customer" createOnElement="customer">
+        <jb:value property="userName"  data="customer/@userName" />
+        <jb:value property="firstName" data="customer/@firstName" />
+        <jb:value property="lastName"  data="customer/@lastName" />
+        <jb:value property="state"     data="customer/@state" />
+    </jb:bindings>
 
-    <!--
-        Populate the list of OrderItems
-    -->
-    <resource-config selector="order orderlines orderline">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderItem</param>
-		<param name="beanClass">org.jboss.soa.esb.dvdstore.OrderItem</param>
-		<param name="addToList">true</param>
-        <param name="bindings">
-            <binding property="position" selector="orderline @position" />
-            <binding property="quantity" selector="orderline @quantity" />
-            <binding property="productId" selector="orderline product @productId" />
-            <binding property="title" selector="orderline product @title" />
-            <binding property="price" selector="orderline product @price" />
-        </param>
-	</resource-config>
+    <!-- Populate the OrderItem list -->
+    <jb:bindings beanId="orderItemList" class="java.util.ArrayList" createOnElement="orderlines">
+        <jb:wiring beanIdRef="orderItem" />
+    </jb:bindings>
 
+    <!-- Populate the OrderItem instance -->
+    <jb:bindings beanId="orderItem" class="org.jboss.soa.esb.dvdstore.OrderItem" createOnElement="orderlines/orderline">
+        <jb:value property="position"  data="orderline/@position" />
+        <jb:value property="quantity"  data="orderline/@quantity" />
+        <jb:value property="productId" data="orderline/product/@productId" />
+        <jb:value property="title"     data="orderline/product/@title" />
+        <jb:value property="price"     data="orderline/product/@price" />
+    </jb:bindings>
+
     <resource-config selector="order orderlines orderline">
         <resource>/org/jboss/soa/esb/dvdstore/orderitem.st</resource>
     </resource-config>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/jboss-esb-unfiltered.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/jboss-esb-unfiltered.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/jboss-esb-unfiltered.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -51,7 +51,7 @@
                     is-gateway="true" />
                 <fs-listener name="ESB-Listener" busidref="startEsbChannel"/>
             </listeners>
-            <actions>
+            <actions mep="OneWay">
                 <action name="spy1" 
                     class="org.jboss.soa.esb.samples.quickstarts.bpm_orchestration1.esb_actions.MessageSpy"/>
 		        <action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/>
@@ -68,7 +68,9 @@
                     </property>             
                  </action>
 
-                 <action name="spy2" 
+                <action name="processInfo"
+                  class="org.jboss.soa.esb.samples.quickstarts.bpm_orchestration1.esb_actions.ProcessInfo"/>
+                 <action name="spy2"
                    class="org.jboss.soa.esb.samples.quickstarts.bpm_orchestration1.esb_actions.MessageSpy"/>
 
               </actions>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/src/org/jboss/soa/esb/samples/quickstarts/bpm_orchestration1/esb_actions/MessageSpy.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/src/org/jboss/soa/esb/samples/quickstarts/bpm_orchestration1/esb_actions/MessageSpy.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/src/org/jboss/soa/esb/samples/quickstarts/bpm_orchestration1/esb_actions/MessageSpy.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -24,6 +24,8 @@
 import org.jboss.soa.esb.actions.AbstractActionLifecycle;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.jbpm.cmd.MessageHelper;
+import org.jboss.soa.esb.services.jbpm.Constants;
 import org.apache.log4j.Logger;
 
 public class MessageSpy extends AbstractActionLifecycle {

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/src/org/jboss/soa/esb/samples/quickstarts/bpm_orchestration1/esb_actions/ProcessInfo.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/src/org/jboss/soa/esb/samples/quickstarts/bpm_orchestration1/esb_actions/ProcessInfo.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration1/src/org/jboss/soa/esb/samples/quickstarts/bpm_orchestration1/esb_actions/ProcessInfo.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -23,6 +23,7 @@
 import org.jboss.soa.esb.actions.AbstractActionLifecycle;
 import org.jboss.soa.esb.helpers.ConfigTree;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.services.jbpm.Constants;
 import org.apache.log4j.Logger;
 
 public class ProcessInfo extends AbstractActionLifecycle {
@@ -32,7 +33,8 @@
 
 	public Message process(Message message) {
 	  logger.info("Token ID: " + message.getBody().get("jbpmTokenId"));
-	  logger.info("Process Name: " + message.getBody().get("jbpmProcessDefName"));
+      logger.info("Process ID: " + message.getBody().get(Constants.PROCESS_INSTANCE_ID));
+      logger.info("Process Name: " + message.getBody().get("jbpmProcessDefName"));
 	  logger.info("Process Version: " + message.getBody().get("jbpmProcessDefVersion"));
 	  return message;
 	}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/smooks-config.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/smooks-config.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/smooks-config.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd">
 
     <profiles>
         <profile base-profile="from:dvdstore" />

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/transforms/from-dvdstore.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/transforms/from-dvdstore.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/transforms/from-dvdstore.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,54 +1,40 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd"
-        default-target-profile="from:dvdstore">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"
+                      default-target-profile="from:dvdstore">
 
     <!-- Populate the OrderHeader -->
-	<resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">orderHeader</param>
-		<param name="beanClass">org.jboss.soa.esb.store.OrderHeader</param>
-        <param name="bindings">
-            <binding property="orderId" selector="Order @orderId" />
-            <binding property="orderDate" selector="Order @orderDate" type="LongDate"/>
-            <binding property="statusCode" selector="Order @statusCode" />
-            <binding property="netAmount" selector="Order @netAmount" type="Double" />
-            <binding property="totalAmount" selector="Order @totalAmount" type="Double" />
-            <binding property="tax" selector="Order @tax" type="Double" />
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderHeader" class="org.jboss.soa.esb.store.OrderHeader" createOnElement="order">
+        <jb:value property="orderId"     data="Order/@orderId" />
+        <jb:value property="orderDate"   data="Order/@orderDate" decoder="Calendar">
+            <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
+        </jb:value>
+        <jb:value property="statusCode"  data="Order/@statusCode" />
+        <jb:value property="netAmount"   data="Order/@netAmount" decoder="Double" />
+        <jb:value property="totalAmount" data="Order/@totalAmount" decoder="Double" />
+        <jb:value property="tax"         data="Order/@tax" decoder="Double" />
+    </jb:bindings>
 
     <!-- Populate the Customer -->
-    <resource-config selector="order customer">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">customer</param>
-		<param name="beanClass">org.jboss.soa.esb.store.Customer</param>
-        <param name="bindings">
-            <binding property="userName" selector="order customer @userName" />
-            <binding property="firstName" selector="order customer @firstName" />
-            <binding property="lastName" selector="order customer @lastName" />
-            <binding property="state" selector="order customer @state" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="customer" class="org.jboss.soa.esb.store.Customer" createOnElement="customer">
+        <jb:value property="userName"  data="customer/@userName" />
+        <jb:value property="firstName" data="customer/@firstName" />
+        <jb:value property="lastName"  data="customer/@lastName" />
+        <jb:value property="state"     data="customer/@state" />
+    </jb:bindings>
 
     <!-- Populate the OrderItem list -->
-	<resource-config selector="order orderlines orderline">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderItem</param>
-		<param name="beanClass">org.jboss.soa.esb.store.OrderItem</param>
-		<param name="addToList">true</param>
-        <param name="bindings">
-            <binding property="position"  selector="order orderlines orderline @position" type="Integer" />
-            <binding property="quantity"  selector="order orderlines orderline @quantity" type="Integer" />
-            <binding property="productId" selector="order orderlines orderline product @productId" />
-            <binding property="title"     selector="order orderlines orderline product @title" />
-            <binding property="price"     selector="order orderlines orderline product @price" type="Double" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="orderItemList" class="java.util.ArrayList" createOnElement="orderlines">
+        <jb:wiring beanIdRef="orderItem" />
+    </jb:bindings>
 
-
-    <resource-config selector="decoder:LongDate">
-        <resource>org.milyn.javabean.decoders.CalendarDecoder</resource>
-        <param name="format">EEE MMM dd HH:mm:ss z yyyy</param>
-    </resource-config>
+    <!-- Populate the OrderItem instance -->
+    <jb:bindings beanId="orderItem" class="org.jboss.soa.esb.store.OrderItem" createOnElement="orderlines/orderline">
+        <jb:value property="position"  data="orderline/@position" decoder="Integer" />
+        <jb:value property="quantity"  data="orderline/@quantity" decoder="Integer" />
+        <jb:value property="productId" data="orderline/product/@productId" />
+        <jb:value property="title"     data="orderline/product/@title" />
+        <jb:value property="price"     data="orderline/product/@price" decoder="Double" />
+    </jb:bindings>
     
 </smooks-resource-list>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/transforms/from-petstore.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/transforms/from-petstore.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/bpm_orchestration4/transforms/from-petstore.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,52 +1,38 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd"
-        default-target-profile="from:petstore">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"
+                      default-target-profile="from:petstore">
 
     <!-- Populate the OrderHeader -->
-	<resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">orderHeader</param>
-		<param name="beanClass">org.jboss.soa.esb.store.OrderHeader</param>
-        <param name="bindings">
-            <binding property="orderId" selector="Order @orderId" />
-            <binding property="orderDate" selector="Order @orderDate" type="LongDate"/>
-            <binding property="statusCode" selector="Order @status" />            
-            <binding property="totalAmount" selector="Order @totalPrice" type="Double" />            
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderHeader" class="org.jboss.soa.esb.store.OrderHeader" createOnElement="order">
+        <jb:value property="orderId"     data="Order/@orderId" />
+        <jb:value property="orderDate"   data="Order/@orderDate" decoder="Calendar">
+            <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
+        </jb:value>
+        <jb:value property="statusCode"  data="Order/@status" />
+        <jb:value property="totalAmount" data="Order/@totalPrice" decoder="Double" />
+    </jb:bindings>
 
     <!-- Populate the Customer -->
-    <resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">customer</param>
-		<param name="beanClass">org.jboss.soa.esb.store.Customer</param>
-        <param name="bindings">
-            <binding property="userName" selector="order @username" />
-            <binding property="firstName" selector="order @shipToFirstName" />
-            <binding property="lastName" selector="order @shipToLastName" />
-            <binding property="state" selector="order @shipState" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="customer" class="org.jboss.soa.esb.store.Customer" createOnElement="order">
+        <jb:value property="userName"  data="order/@userName" />
+        <jb:value property="firstName" data="order/@shipToFirstName" />
+        <jb:value property="lastName"  data="order/@shipToLastName" />
+        <jb:value property="state"     data="order/@shipState" />
+    </jb:bindings>
 
     <!-- Populate the OrderItem list -->
-	<resource-config selector="order LineItems LineItem">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderItem</param>
-		<param name="beanClass">org.jboss.soa.esb.store.OrderItem</param>
-		<param name="addToList">true</param>
-        <param name="bindings">
-            <binding property="position"  selector="LineItem @lineNumber" type="Integer" />
-            <binding property="quantity"  selector="LineItem @quantity" type="Integer" />
-            <binding property="productId" selector="LineItem Item @itemId" />
-            <binding property="price"     selector="LineItem Item @listPrice" type="Double" />
-            <binding property="title"     selector="LineItem Item @name" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="orderItemList" class="java.util.ArrayList" createOnElement="LineItems">
+        <jb:wiring beanIdRef="orderItem" />
+    </jb:bindings>
 
-
-    <resource-config selector="decoder:LongDate">
-        <resource>org.milyn.javabean.decoders.CalendarDecoder</resource>
-        <param name="format">EEE MMM dd HH:mm:ss z yyyy</param>
-    </resource-config>
+    <!-- Populate the OrderItem instance -->
+    <jb:bindings beanId="orderItem" class="org.jboss.soa.esb.store.OrderItem" createOnElement="LineItems/LineItem">
+        <jb:value property="position"  data="LineItem/@lineNumber" decoder="Integer" />
+        <jb:value property="quantity"  data="LineItem/@quantity" decoder="Integer" />
+        <jb:value property="productId" data="LineItem/Item/@itemId" />
+        <jb:value property="price"     data="LineItem/Item/@listPrice" decoder="Double" />
+        <jb:value property="title"     data="LineItem/Item/@name" />
+    </jb:bindings>
     
 </smooks-resource-list>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_rules_service/jboss-esb.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_rules_service/jboss-esb.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_rules_service/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -41,7 +41,7 @@
 				</jms-listener>
 			</listeners>
 			<actions mep="OneWay">
-
+
 			     
 				<action name="transform"
 					class="org.jboss.soa.esb.smooks.SmooksAction">
@@ -52,8 +52,8 @@
                 <action name="map_order_components" class="org.jboss.soa.esb.actions.scripting.GroovyActionProcessor">
                      <property name="script" value="/map_order_components.groovy" />
                 </action>
-
-				<!-- Update Customer Status -->
+
+				<!-- Update Customer Status -->
 				<action name="updateCustomerStatus"
 					class="org.jboss.soa.esb.samples.quickstart.businessrules.UpdateCustomerStatus">
 					<property name="status" value="60"/>
@@ -95,7 +95,9 @@
 					<property name="stuff" value="After Order Discount"/>
 			     </action>
 
-				<!--  Use the CBR to route the "scored" order to the appropriate service team -->
+                <action name="sout" class="org.jboss.soa.esb.actions.SystemPrintln" />
+
+                <!--  Use the CBR to route the "scored" order to the appropriate service team -->
 				<action
 					class="org.jboss.soa.esb.actions.ContentBasedRouter"
 					name="ContentBasedRouter">

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_rules_service/smooks-res.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_rules_service/smooks-res.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/business_rules_service/smooks-res.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,52 +1,39 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd">
 
     <!-- Populate the OrderHeader -->
-	<resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">orderHeader</param>
-		<param name="beanClass">org.jboss.soa.esb.samples.quickstart.businessrules.dvdstore.OrderHeader</param>
-        <param name="bindings">
-            <binding property="orderId" selector="Order/@orderId" />
-            <binding property="orderDate" selector="Order/@orderDate" type="LongDate"/>
-            <binding property="statusCode" selector="Order/@statusCode" type="Integer" />
-            <binding property="netAmount" selector="Order/@netAmount" type="Double" />
-            <binding property="totalAmount" selector="Order/@totalAmount" type="Double" />
-            <binding property="tax" selector="Order/@tax" type="Double" />
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderHeader" class="org.jboss.soa.esb.samples.quickstart.businessrules.dvdstore.OrderHeader" createOnElement="order">
+        <jb:value property="orderId"     data="Order/@orderId" />
+        <jb:value property="orderDate"   data="Order/@orderDate" decoder="Calendar">
+            <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
+        </jb:value>
+        <jb:value property="statusCode"  data="Order/@statusCode" decoder="Integer" />
+        <jb:value property="netAmount"   data="Order/@netAmount" decoder="Double" />
+        <jb:value property="totalAmount" data="Order/@totalAmount" decoder="Double" />
+        <jb:value property="tax"         data="Order/@tax" decoder="Double" />
+    </jb:bindings>
 
     <!-- Populate the Customer -->
-    <resource-config selector="order customer">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">customer</param>
-		<param name="beanClass">org.jboss.soa.esb.samples.quickstart.businessrules.dvdstore.Customer</param>
-        <param name="bindings">
-            <binding property="userName" selector="order/customer/@userName" />
-            <binding property="firstName" selector="order/customer/@firstName" />
-            <binding property="lastName" selector="order/customer/@lastName" />
-            <binding property="state" selector="order/customer/@state" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="customer" class="org.jboss.soa.esb.samples.quickstart.businessrules.dvdstore.Customer" createOnElement="customer">
+        <jb:value property="userName"  data="customer/@userName" />
+        <jb:value property="firstName" data="customer/@firstName" />
+        <jb:value property="lastName"  data="customer/@lastName" />
+        <jb:value property="state"     data="customer/@state" />
+    </jb:bindings>
 
     <!-- Populate the OrderItem list -->
-	<resource-config selector="order orderlines orderline">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderItem</param>
-		<param name="beanClass">org.jboss.soa.esb.samples.quickstart.businessrules.dvdstore.OrderItem</param>
-		<param name="addToList">true</param>
-        <param name="bindings">
-            <binding property="position"  selector="order/orderlines/orderline/@position" type="Integer" />
-            <binding property="quantity"  selector="order/orderlines/orderline/@quantity" type="Integer" />
-            <binding property="productId" selector="order/orderlines/orderline/product/@productId" />
-            <binding property="title"     selector="order/orderlines/orderline/product/@title" />
-            <binding property="price"     selector="order/orderlines/orderline/product/@price" type="Double" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="orderItemList" class="java.util.ArrayList" createOnElement="orderlines">
+        <jb:wiring beanIdRef="orderItem" />
+    </jb:bindings>
 
-    <resource-config selector="decoder:LongDate">
-        <resource>org.milyn.javabean.decoders.CalendarDecoder</resource>
-        <param name="format">EEE MMM dd HH:mm:ss z yyyy</param>
-    </resource-config>
+    <!-- Populate the OrderItem instance -->
+    <jb:bindings beanId="orderItem" class="org.jboss.soa.esb.samples.quickstart.businessrules.dvdstore.OrderItem" createOnElement="orderlines/orderline">
+        <jb:value property="position"  data="orderline/@position" decoder="Integer" />
+        <jb:value property="quantity"  data="orderline/@quantity" decoder="Integer" />
+        <jb:value property="productId" data="orderline/product/@productId" />
+        <jb:value property="title"     data="orderline/product/@title" />
+        <jb:value property="price"     data="orderline/product/@price" decoder="Double" />
+    </jb:bindings>
     
 </smooks-resource-list>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/readme.txt	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/conf/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -7,13 +7,12 @@
 
 Before Running:
 ===============
-  1. Copy install/deployment.properties-example to install/deployment.properties
-     and modify the properties there to suit your environment[*]. 
-  2. Run 'ant deploy' in the "install" folder of the distribution.  This
-     deploys the required SARs to your JBoss Application Server instance.
-  3. Make sure the JBoss Application server is running.
+  1. Make sure the JBoss Application server is running. Normally it is running
+     on localhost or on 0.0.0.0 (INADDR_ANY), however if you have changed values
+     in \server\default\conf\jndi.properties you will have to check in the
+     appropriate location and update all jndi.properties files for the samples.
+     See Getting_Started_Guide.pdf section 2.2.
 
-[*]
 It is often a good idea to copy the default server configuration to a different
 name so that you can easily start a fresh one by simply deleting it. This also
 makes it simple to diff both directories to find differences if problems occur. 
@@ -61,5 +60,5 @@
   mode you need to run : 
    'ant undeploy-jms-dests'
 
-More information about the quickstart can be found in the GettingStarted.pdf
-document, which is in the doc folder.
+More information about the quickstart can be found in the
+Getting_Started_Guide.pdf document, which is in the doc folder.

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/https_2way_ssl/jboss-esb-template.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/https_2way_ssl/jboss-esb-template.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/https_2way_ssl/jboss-esb-template.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -17,6 +17,7 @@
             <property name="jbr-TrustStoreURL" value="@keystore@" />
             <property name="jbr-TrustStorePassword" value="https_2way_ssl_pass" />
             <property name="jbr-ClientAuthMode" value="need" />
+            <property name="serviceInvokerTimeout" value="20000" />
 
             <jbr-bus busid="https_2way" port="9433"/>
         </jbr-provider>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/bindings.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/bindings.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/bindings.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +1,6 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd">
 
     <!--
         Virtual Model Binding Configurations for the order message elements...
@@ -14,36 +15,23 @@
     <!--
         Bind the main order details....
     -->
-    <resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">orderDetail</param>
-        <param name="beanClass">java.util.HashMap</param>
-        <param name="bindings">
-            <binding property="orderNum" selector="header/order-id"     type="Long" />
-            <binding property="uname"    selector="customer-details/username" />
-            <binding property="date"     selector="header/date"         type="OrderDateDecoder" /> <!-- Type defined below -->
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderDetail" class="java.util.HashMap" createOnElement="order">
+        <jb:value property="orderNum" data="header/order-id"     decoder="Long" />
+        <jb:value property="uname"    data="customer-details/username" />
+        <jb:value property="date"     data="header/date"         decoder="Date">
+            <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
+        </jb:value>
+    </jb:bindings>
 
     <!--
         Bind each order-item.  Not building a list of order items because we only want to have
         one order-item in memory at any one time.  This way, we can handle a huge orders with many
         many order items..
     -->
-    <resource-config selector="order-item">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">orderItem</param>
-        <param name="beanClass">java.util.HashMap</param>
-        <param name="bindings">
-            <binding property="position"  selector="order-item/position" type="Integer" />
-            <binding property="quantity"  selector="order-item/quantity" type="Integer" />
-            <binding property="productId" selector="order-item/product-id" />
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderItem" class="java.util.HashMap" createOnElement="order-item">
+        <jb:value property="position"  data="order-item/position" decoder="Integer" />
+        <jb:value property="quantity"  data="order-item/quantity" decoder="Integer" />
+        <jb:value property="productId" data="order-item/product-id" />
+    </jb:bindings>
 
-    <resource-config selector="decoder:OrderDateDecoder">
-        <resource>org.milyn.javabean.decoders.DateDecoder</resource>
-        <param name="format">EEE MMM dd HH:mm:ss z yyyy</param>
-    </resource-config>
-
 </smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/database/datasources.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/database/datasources.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/database/datasources.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,14 +1,11 @@
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                   xmlns:ds="http://www.milyn.org/xsd/smooks/datasource-1.1.xsd">
 
-    <resource-config selector="$document">
-        <resource>org.milyn.db.DirectDataSource</resource>
-        <param name="datasource">OrderManagement</param>
-        <param name="driver">org.hsqldb.jdbcDriver</param>
-        <param name="url">jdbc:hsqldb:hsql://localhost:9002</param>
-        <param name="username">sa</param>
-        <param name="password"></param>
-        <param name="autoCommit">false</param>
-    </resource-config>
+    <!--
+        Configure the "OrderManagement" DB access datasource...
+    -->
+    <ds:direct bindOnElement="$document" datasource="OrderManagement" autoCommit="false"
+               driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9002"
+               username="sa" password="" />
 
 </smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/database/ref-data.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/database/ref-data.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/database/ref-data.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,6 +1,11 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                   xmlns:db="http://www.milyn.org/xsd/smooks/db-routing-1.1.xsd">
 
+    <!--
+        The "OrderManagement" datasource is configured in the database/datasources.xml config file.
+    -->
+    
     <!--                                
         At the start of the message, select the list of products and bind it into the bean context
         under the beanId of "products".  We only want to do this lookup once Smooks instance i.e. not for
@@ -8,38 +13,28 @@
         param to "APPLICATION".  The actual order item product row will be selected from the resultset by
         the ResultsetRowSelector config (below)...
     -->
-    <resource-config selector="$document">
-        <resource>org.milyn.routing.db.SQLExecutor</resource>
-        <param name="datasource">OrderManagement</param>
-        <param name="executeBefore">true</param>
-        <param name="statement">select productid, name, attr1, listprice, category from product p, item i where p.productid = i.productid</param>
-        <param name="resultSetName">products</param>
-        <param name="resultSetScope">APPLICATION</param>
-    </resource-config>
+    <db:executor executeOnElement="$document" datasource="OrderManagement" executeBefore="true">
+        <db:statement>select productid, name, attr1, listprice, category from product p, item i where p.productid = i.productid</db:statement>
+        <db:resultSet name="products" scope="APPLICATION" />
+    </db:executor>
 
     <!--
         For every order-item, select the appropriate product row from the in-mem "products" reference data
         resultset, using the ResultsetRowSelector. Bind the selected product row back into the
         bean context under a beanId of "product"...
     -->
-    <resource-config selector="order-item/product-id">
-        <resource>org.milyn.routing.db.ResultsetRowSelector</resource>
-        <param name="executeBefore">false</param>
-        <param name="resultSetName">products</param>
-        <param name="beanId">product</param>
-        <param name="where">row.PRODUCTID == orderItem.productId</param>
-        <param name="failedSelectError">Unknown Order Item product ID '${orderItem.productId}' on order '${orderDetail.orderNum?c}'.</param>
-    </resource-config>
+    <db:resultSetRowSelector selectRowOnElement="order-item/product-id" resultSetName="products" beanId="product" executeBefore="false">
+        <db:where>row.PRODUCTID == orderItem.productId</db:where>
+        <db:failedSelectError>Unknown Order Item product ID '${orderItem.productId}' on order '${orderDetail.orderNum?c}'.</db:failedSelectError>
+    </db:resultSetRowSelector>
 
     <!--
         At the end of the customer-details/username, select the user account and bind it into the bean context
         under the beanId of "accounts".  The users account should be the only entry in this list....
     -->
-    <resource-config selector="customer-details">
-        <resource>org.milyn.routing.db.SQLExecutor</resource>
-        <param name="datasource">OrderManagement</param>
-        <param name="statement">select * from ACCOUNT where userid = ${orderDetail.uname}</param>
-        <param name="resultSetName">accounts</param>
-    </resource-config>
+    <db:executor executeOnElement="customer-details" datasource="OrderManagement">
+        <db:statement>select * from ACCOUNT where userid = ${orderDetail.uname}</db:statement>
+        <db:resultSet name="accounts" />
+    </db:executor>
 
 </smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/main.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/main.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/main.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,16 +1,17 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:edi="http://www.milyn.org/xsd/smooks/edi-1.1.xsd">
 
     <!--
     Filter the message using the SAX Filter (i.e. not DOM, so no
     intermediate DOM, so we can process huge messages...
     -->
-    <resource-config selector="global-parameters">
+    <params>
         <param name="stream.filter.type">SAX</param>
-    </resource-config>
+    </params>
 
-    <!-- Import config for parsing this EDI message... -->
-    <import file="parse/edi-orders-parser.xml" />
+    <!-- Configure the reader for the EDI message... -->
+    <edi:reader mappingModel="/smooks_configs/parse/edi-to-xml-order-mapping.xml" />
 
     <!-- Import datasource configs... -->
     <import file="database/datasources.xml" />

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/parse/edi-orders-parser.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/parse/edi-orders-parser.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/parse/edi-orders-parser.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,12 +0,0 @@
-<?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
-
-    <!--
-    Configure the EDI Parser to parse the message stream into a stream of SAX events.
-    -->
-    <resource-config selector="org.xml.sax.driver">
-        <resource>org.milyn.smooks.edi.SmooksEDIParser</resource>
-        <param name="mapping-model">/smooks_configs/parse/edi-to-xml-order-mapping.xml</param>
-    </resource-config>
-
-</smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-02_Low_Price_Service.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-02_Low_Price_Service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-02_Low_Price_Service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +1,6 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                     xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd">
 
     <!--
         At the end of every order-item, route the order item XML ("02_XML_OrderItem") to the
@@ -19,10 +20,11 @@
     
     <!--
         At the end of every order-item, generate an <ord> split message for the "02_XML" Service
-        and bind it back into the bean context under a bean ID of "02_XML_OrderItem"...
+        and bind it back into the bean context under a bean ID of "02_XML_OrderItem".  02_XML_OrderItem
+        will be router by the FragmentRouter (configured above)..
      -->
-    <resource-config selector="order-item">
-        <resource type="ftl"><!--<ord id="${orderDetail.orderNum?c}" date="${orderDetail.date?string("yyyy-MM-dd")}">
+    <ftl:freemarker applyOnElement="order-item">
+        <ftl:template><!--<ord id="${orderDetail.orderNum?c}" date="${orderDetail.date?string("yyyy-MM-dd")}">
     <customer>
         <name>${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}</name>
         <addr1>${accounts[0].ADDR1}</addr1>
@@ -35,9 +37,10 @@
     <quantity>${orderItem.quantity?c}</quantity>
     <price>${product.LISTPRICE?c}</price>
     <title>${product.NAME} (${product.ATTR1})</title>
-</ord>--></resource>
-        <param name="action">bindto</param>
-        <param name="bindId">02_XML_OrderItem</param>
-    </resource-config>
+</ord>--></ftl:template>
+        <ftl:use>
+            <ftl:bindTo id="02_XML_OrderItem" />
+        </ftl:use>
+    </ftl:freemarker>
 
 </smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-03_High_Price_Service.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-03_High_Price_Service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-03_High_Price_Service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
-
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd">
     <!--
         At the end of every order-item, route the order item Java Objects ("03_order") to the
         "03_High_Price" Service, if the price per item is 190 or more...
@@ -20,45 +20,35 @@
     <!--
         At the end of every order-item, bind together the orderDetail with the current
         order item in a new HashMap and asign it under the beanId "03_order" in the bean
-        context.  03_order gets routed by the above config..
+        context.  The data is pulled into the "highprice" Java object model using java
+        binding configs that pull the data from the bean context, which contains data from
+        the database, as well as data bound in for the input message.  We use MVEL
+        expressions to access this info (expression bindings).
+
+        03_order gets routed by the above config..
     -->
-    <resource-config selector="order-item">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">03_order</param>
-        <param name="beanClass">org.jboss.soa.esb.example.highprice.Order</param>
-        <param name="bindings">
-            <binding property="firstName">accounts[0].FIRSTNAME</binding>
-            <binding property="lastName">accounts[0].LASTNAME</binding>
-            <binding property="address" selector="${03_address}" />
-            <binding property="date">orderDetail.date</binding>
-            <binding property="product" selector="${03_product}" />
-            <binding property="quantity">orderItem.quantity</binding>
-        </param>
-    </resource-config>
+    <jb:bindings beanId="03_order" class="org.jboss.soa.esb.example.highprice.Order" createOnElement="order-item">
+        <jb:wiring property="address" beanIdRef="03_address" />
+        <jb:wiring property="product" beanIdRef="03_product" />
+        <jb:expression property="firstName">accounts[0].FIRSTNAME</jb:expression>
+        <jb:expression property="lastName">accounts[0].LASTNAME</jb:expression>
+        <jb:expression property="date">orderDetail.date</jb:expression>
+        <jb:expression property="quantity">orderItem.quantity</jb:expression>
+    </jb:bindings>
 
-    <resource-config selector="order-item">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">03_address</param>
-        <param name="beanClass">org.jboss.soa.esb.example.highprice.Address</param>
-        <param name="bindings">
-            <binding property="email">accounts[0].EMAIL</binding>
-            <binding property="address1">accounts[0].ADDR1</binding>
-            <binding property="address2">accounts[0].ADDR2</binding>
-            <binding property="city">accounts[0].CITY</binding>
-            <binding property="state">accounts[0].STATE</binding>
-        </param>
-    </resource-config>
+    <jb:bindings beanId="03_address" class="org.jboss.soa.esb.example.highprice.Address" createOnElement="order-item">
+        <jb:expression property="email">accounts[0].EMAIL</jb:expression>
+        <jb:expression property="address1">accounts[0].ADDR1</jb:expression>
+        <jb:expression property="address2">accounts[0].ADDR2</jb:expression>
+        <jb:expression property="city">accounts[0].CITY</jb:expression>
+        <jb:expression property="state">accounts[0].STATE</jb:expression>
+    </jb:bindings>
 
-    <resource-config selector="order-item">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">03_product</param>
-        <param name="beanClass">org.jboss.soa.esb.example.highprice.Product</param>
-        <param name="bindings">
-            <binding property="id">product.PRODUCTID</binding>
-            <binding property="title">product.NAME</binding>
-            <binding property="category">product.CATEGORY</binding>
-            <binding property="price">product.LISTPRICE</binding>
-        </param>
-    </resource-config>
+    <jb:bindings beanId="03_product" class="org.jboss.soa.esb.example.highprice.Product" createOnElement="order-item">
+        <jb:expression property="id">product.PRODUCTID</jb:expression>
+        <jb:expression property="title">product.NAME</jb:expression>
+        <jb:expression property="category">product.CATEGORY</jb:expression>
+        <jb:expression property="price">product.LISTPRICE</jb:expression>
+    </jb:bindings>
 
 </smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-04_Reptiles_notify_webservice_proxy.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-04_Reptiles_notify_webservice_proxy.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-04_Reptiles_notify_webservice_proxy.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +1,6 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                     xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd">
 
     <!--
         At the end of every order-item, route the "Reptiles Notification" SOAP message ("04_SOAP_OrderItem") to the
@@ -21,8 +22,8 @@
         At the end of every order-item, generate an <ord> split message for the "02_XML" Service
         and bind it back into the bean context under a bean ID of "02_XML_OrderItem"...
      -->
-    <resource-config selector="order-item">
-        <resource type="ftl"><!--<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://ordermanagement/ReptilesNotifyWS">
+    <ftl:freemarker applyOnElement="order-item">
+        <ftl:template><!--<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://ordermanagement/ReptilesNotifyWS">
    <soapenv:Header/>
    <soapenv:Body>
       <ord:notify>
@@ -37,9 +38,10 @@
          </notification>
       </ord:notify>
    </soapenv:Body>
-</soapenv:Envelope>--></resource>
-        <param name="action">bindto</param>
-        <param name="bindId">04_SOAP_OrderItem</param>
-    </resource-config>
+</soapenv:Envelope>--></ftl:template>
+        <ftl:use>
+            <ftl:bindTo id="04_SOAP_OrderItem" />
+        </ftl:use>
+    </ftl:freemarker>
 
 </smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-05_Database.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-05_Database.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/01_split_enrich_transform_route/smooks_configs/routing/route-to-05_Database.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,31 +1,30 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                   xmlns:db="http://www.milyn.org/xsd/smooks/db-routing-1.1.xsd">
 
     <!--
+        The "OrderManagement" datasource is configured in the database/datasources.xml config file.
+    -->
+
+    <!--
         This resource is needed because we only want to limit the number or orders inserted into the database,
         so we need to count them...
     -->
-    <resource-config selector="order-item">
-        <resource>org.milyn.routing.db.SQLExecutor</resource>
-        <param name="executeBefore">true</param>
-        <param name="datasource">OrderManagement</param>
-        <param name="statement">select count(*) as "numOrders" from orders</param>
-        <param name="resultSetName">orderCountRS</param>
-    </resource-config>
+    <db:executor executeOnElement="order-item" datasource="OrderManagement" executeBefore="true">
+        <db:statement>select count(*) as "numOrders" from orders</db:statement>
+        <db:resultSet name="orderCountRS" />
+    </db:executor>
     
     <!--
         At the end of every order-item, insert the order details for that order item...
      -->
-    <resource-config selector="order-item">
-        <resource>org.milyn.routing.db.SQLExecutor</resource>
+    <db:executor executeOnElement="order-item" datasource="OrderManagement" executeBefore="false">
         <condition>
             <!--
             orderCountRS[0].numOrders < 10
             -->
         </condition>
-        <param name="executeBefore">false</param>
-        <param name="datasource">OrderManagement</param>
-        <param name="statement">INSERT INTO ORDERS VALUES(${orderDetail.orderNum + "-" + product.PRODUCTID}, ${accounts[0].USERID}, ${orderDetail.date}, ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA', ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA','UPS',22.23, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME},'999 9999 9999 9999','12/03','Visa','CA')</param>
-    </resource-config>
+        <db:statement>INSERT INTO ORDERS VALUES(${orderDetail.orderNum + "-" + product.PRODUCTID}, ${accounts[0].USERID}, ${orderDetail.date}, ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA', ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA','UPS',22.23, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME},'999 9999 9999 9999','12/03','Visa','CA')</db:statement>
+    </db:executor>
 
 </smooks-resource-list>
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.lck
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.lck	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.lck	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1 +1 @@
-HSQLLOCK
\ No newline at end of file
+HSQLLOCK
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.log
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.log	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.log	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,3 +1,7 @@
+/*C2*/SET SCHEMA PUBLIC
+CONNECT USER SA
+SET AUTOCOMMIT FALSE
+DISCONNECT
 /*C3*/SET SCHEMA PUBLIC
 CONNECT USER SA
 SET AUTOCOMMIT FALSE

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.properties
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/05_Database/db.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +1,5 @@
 #HSQL Database Engine 1.8.0.8
-#Tue Jul 22 13:31:24 BST 2008
+#Thu Jan 29 18:56:42 GMT 2009
 hsqldb.script_format=0
 runtime.gc_interval=0
 sql.enforce_strict_size=false

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/README.html
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/README.html	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/huge-split-enrich-transform-route/README.html	2009-02-03 14:45:01 UTC (rev 25072)
@@ -247,18 +247,19 @@
         The top level <a href="http://milyn.codehaus.org/Smooks">Smooks</a> configuration for Splitting &amp; Routing this message is:
 <pre>
 &lt;?xml version="1.0"?&gt;
-&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd"&gt;
+&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:edi="http://www.milyn.org/xsd/smooks/edi-1.1.xsd"&gt;
 
     &lt;!--
     Filter the message using the SAX Filter (i.e. not DOM, so no
     intermediate DOM, so we can process huge messages...
     --&gt;
-    &lt;resource-config selector="global-parameters"&gt;
+    &lt;params&gt;
         &lt;param name="stream.filter.type"&gt;SAX&lt;/param&gt;
-    &lt;/resource-config&gt;
+    &lt;/params&gt;
 
-    &lt;!-- Import config for parsing this EDI message... --&gt;
-    &lt;import file="<a href="#edi-parsing">parse/edi-orders-parser.xml</a>" /&gt;
+    &lt;!-- Configure the reader for the EDI message... --&gt;
+    &lt;edi:reader mappingModel="<a href="#edi-parsing">/smooks_configs/parse/edi-to-xml-order-mapping.xml</a>" /&gt;
 
     &lt;!-- Import datasource configs... --&gt;
     &lt;import file="<a href="#datasources">database/datasources.xml</a>" /&gt;
@@ -285,16 +286,14 @@
 
         Detailed explanations for each of the imported resource configuration files are hyperlinked.
 
-        <h5 id="edi-parsing">parse/edi-orders-parser.xml</h5>
-        This Smooks resource configuration file defines just a single resource; the EDI Parser.
+        <h5 id="edi-parsing">EDI Parsing</h5>
+        As its name suggests, the &lt;edi:reader&gt; configuration configures the reader for the Smooks instance.
         
 <pre>
-&lt;resource-config selector="org.xml.sax.driver"&gt;
-    &lt;resource&gt;org.milyn.smooks.edi.SmooksEDIParser&lt;/resource&gt;
-    &lt;param name="mapping-model"&gt;<a href="01_split_enrich_transform_route/smooks_configs/parse/edi-to-xml-order-mapping.xml">/smooks_configs/parse/edi-to-xml-order-mapping.xml</a>&lt;/param&gt;
-&lt;/resource-config&gt;</pre>
+&lt;!-- Configure the reader for the EDI message... --&gt;
+&lt;edi:reader mappingModel="<a href="#edi-parsing">/smooks_configs/parse/edi-to-xml-order-mapping.xml</a>" /&gt;</pre>
 
-        The "mapping-model" parameter defines the EDI to SAX Event mapping model configuration for the parser.  After
+        The "mappingModel" attribute defines the EDI to SAX Event mapping model configuration for the parser.  After
         configuring this resource and turning on the Smooks Execution Report we can see the message event stream as produced
         by the EDI Parser:
         <p/>
@@ -310,18 +309,20 @@
         </ol>
         The "database/datasources.xml" Smooks resource configuration file defines the Datasource details for accessing the Database:
 <pre>
-&lt;resource-config selector="$document"&gt;
-    &lt;resource&gt;org.milyn.db.DirectDataSource&lt;/resource&gt;
-    &lt;param name="datasource"&gt;OrderManagement&lt;/param&gt;
-    &lt;param name="driver"&gt;org.hsqldb.jdbcDriver&lt;/param&gt;
-    &lt;param name="url"&gt;jdbc:hsqldb:hsql://localhost:9002&lt;/param&gt;
-    &lt;param name="username"&gt;sa&lt;/param&gt;
-    &lt;param name="password"&gt;&lt;/param&gt;
-    &lt;param name="autoCommit"&gt;false&lt;/param&gt;
-&lt;/resource-config&gt;</pre>
+&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                   xmlns:ds="http://www.milyn.org/xsd/smooks/datasource-1.1.xsd"&gt;
 
-        This Datasource is bound to the Smooks ExecutionContext at the start of message processing (selector="$document" - selects the message root/document event as the lifecycle event).
-        Any JDBC Connection created for the ExecutionContext is committed/rolledback and cleaned up at the end of the message processin (selector="$document").  The <b>HtmlReportGenerator</b>
+    &lt;!--
+        Configure the "OrderManagement" DB access datasource...
+    --&gt;
+    &lt;ds:direct bindOnElement="$document" datasource="OrderManagement" autoCommit="false"
+               driver="org.hsqldb.jdbcDriver" url="jdbc:hsqldb:hsql://localhost:9002"
+               username="sa" password="" /&gt;
+
+&lt;/smooks-resource-list&gt;</pre>
+
+        This Datasource is bound to the Smooks ExecutionContext at the start of message processing (bindOnElement="$document" - selects the message root/document event as the lifecycle event).
+        Any JDBC Connection created for the ExecutionContext is committed/rolledback and cleaned up at the end of the message processing (bindOnElement="$document").  The <b>HtmlReportGenerator</b>
         (Smooks Execution Report Generator) is very useful for visualising this e.g. The "visitBefore" event shows the binding of the Datasource to the ExecutionContext:
         <p/>
         <a href="docs/datasource-vbefore.gif"><img src="docs/datasource-vbefore.gif" width="40%" height="40%" alt="Click to Enlarge..."/></a>
@@ -336,58 +337,53 @@
         Database.  Each resource is commented inline:
 <pre>
 &lt;?xml version="1.0"?&gt;
-&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd"&gt;
+&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                   xmlns:db="http://www.milyn.org/xsd/smooks/db-routing-1.1.xsd"&gt;
 
     &lt;!--
+        The "OrderManagement" datasource is configured in the <a href="#datasources">database/datasources.xml</a> config file.
+    --&gt;
+
+    &lt;!--
         At the start of the message, select the list of products and bind it into the bean context
         under the beanId of "products".  We only want to do this lookup once Smooks instance i.e. not for
         every message, otherwise we'd kill memory performance.  To control this, we set the "resultSetScope"
         param to "APPLICATION".  The actual order item product row will be selected from the resultset by
         the ResultsetRowSelector config (below)...
     --&gt;
-    &lt;resource-config selector="$document"&gt;
-        &lt;resource&gt;org.milyn.routing.db.SQLExecutor&lt;/resource&gt;
-        &lt;param name="datasource"&gt;OrderManagement&lt;/param&gt;
-        &lt;param name="executeBefore"&gt;true&lt;/param&gt;
-        &lt;param name="statement"&gt;select productid, name, attr1, listprice, category from product p, item i where p.productid = i.productid&lt;/param&gt;
-        &lt;param name="resultSetName"&gt;products&lt;/param&gt;
-        &lt;param name="resultSetScope"&gt;APPLICATION&lt;/param&gt;
-    &lt;/resource-config&gt;
+    &lt;db:executor executeOnElement="$document" datasource="OrderManagement" executeBefore="true"&gt;
+        &lt;db:statement&gt;select productid, name, attr1, listprice, category from product p, item i where p.productid = i.productid&lt;/db:statement&gt;
+        &lt;db:resultSet name="products" scope="APPLICATION" /&gt;
+    &lt;/db:executor&gt;
 
     &lt;!--
         For every order-item, select the appropriate product row from the in-mem "products" reference data
-        resultset (see previous resource), using the ResultsetRowSelector. Bind the selected product row back into the
+        resultset, using the ResultsetRowSelector. Bind the selected product row back into the
         bean context under a beanId of "product"...
     --&gt;
-    &lt;resource-config selector="order-item/product-id"&gt;
-        &lt;resource&gt;org.milyn.routing.db.ResultsetRowSelector&lt;/resource&gt;
-        &lt;param name="executeBefore"&gt;false&lt;/param&gt;
-        &lt;param name="resultSetName"&gt;products&lt;/param&gt;
-        &lt;param name="beanId"&gt;product&lt;/param&gt;
-        &lt;param name="where"&gt;row.PRODUCTID == orderItem.productId&lt;/param&gt;
-        &lt;param name="failedSelectError"&gt;Unknown Order Item product ID '${orderItem.productId}' on order '${orderDetail.orderNum?c}'.&lt;/param&gt;
-    &lt;/resource-config&gt;
+    &lt;db:resultSetRowSelector selectRowOnElement="order-item/product-id" resultSetName="products" beanId="product" executeBefore="false"&gt;
+        &lt;db:where&gt;row.PRODUCTID == orderItem.productId&lt;/db:where&gt;
+        &lt;db:failedSelectError&gt;Unknown Order Item product ID '${orderItem.productId}' on order '${orderDetail.orderNum?c}'.&lt;/db:failedSelectError&gt;
+    &lt;/db:resultSetRowSelector&gt;
 
     &lt;!--
         At the end of the customer-details/username, select the user account and bind it into the bean context
         under the beanId of "accounts".  The users account should be the only entry in this list....
     --&gt;
-    &lt;resource-config selector="customer-details"&gt;
-        &lt;resource&gt;org.milyn.routing.db.SQLExecutor&lt;/resource&gt;
-        &lt;param name="datasource"&gt;OrderManagement&lt;/param&gt;
-        &lt;param name="statement"&gt;select * from ACCOUNT where userid = ${orderDetail.uname}&lt;/param&gt;
-        &lt;param name="resultSetName"&gt;accounts&lt;/param&gt;
-    &lt;/resource-config&gt;
+    &lt;db:executor executeOnElement="customer-details" datasource="OrderManagement"&gt;
+        &lt;db:statement&gt;select * from ACCOUNT where userid = ${orderDetail.uname}&lt;/db:statement&gt;
+        &lt;db:resultSet name="accounts" /&gt;
+    &lt;/db:executor&gt;
 
 &lt;/smooks-resource-list&gt;</pre>
         The data read from the Database by the above resources is bound into the bean context and so is available
         to other resources executing under the same ExecutionContext e.g. templating resources, BeanPopulator
         resources etc.  The full Products list Resultset is available under the beanId "<b>products</b>", with the
         product for the current Order Item being processed being available under the beanId "<b>product</b>" (see the
-        ResultsetRowSelector resource above).  The customer account info for the message being processed under the
+        &lt;db:resultSetRowSelector&gt; resource above).  The customer account info for the message being processed under the
         ExecutionContext is captured and made available under the beanId of "<b>accounts</b>".  We don't select the
-        customer account row from the Resultset (using the ResultsetRowSelector - as done with the products Resultset).
-        It woult be a good idea to add this ResultsetRowSelector because we could then configure a "failedSelectError".
+        customer account row from the Resultset (using the &lt;db:resultSetRowSelector&gt; - as done with the products Resultset).
+        It would be a good idea to add this &lt;db:resultSetRowSelector&gt; because we could then configure a "&lt;db:failedSelectError&gt;".
         It would also mean that the expressions used in other resources to reference the account info (e.g. in templates) wouldn't
         contain the Resultset row indexing characters i.e. "accounts[0]".  Instead, we would reference the account
         info using "account" based expressions, which is possibly a little clearer.
@@ -412,41 +408,44 @@
         The "bindings.xml" resource defines the core bindings used in this quickstart.  It extracts the Order header
         and Order Item data from the message event stream and binds it into a Virtual Object Model (i.e. a HashMap):
 <pre>
-&lt;!--
-    Bind the main order details....
---&gt;
-&lt;resource-config selector="order"&gt;
-    &lt;resource&gt;org.milyn.javabean.BeanPopulator&lt;/resource&gt;
-    &lt;param name="beanId"&gt;orderDetail&lt;/param&gt;
-    &lt;param name="beanClass"&gt;java.util.HashMap&lt;/param&gt;
-    &lt;param name="bindings"&gt;
-        &lt;binding property="orderNum" selector="header/order-id"     type="Long" /&gt;
-        &lt;binding property="uname"    selector="customer-details/username" /&gt;
-        &lt;binding property="date"     selector="header/date"         type="OrderDateDecoder" /&gt; &lt;!-- Type defined below --&gt;
-    &lt;/param&gt;
-&lt;/resource-config&gt;
+&lt;?xml version="1.0"?&gt;
+&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"&gt;
 
-&lt;!--
-    Bind each order-item.  Not building a list of order items because we only want to have
-    one order-item in memory at any one time.  This way, we can handle a huge orders with many
-    many order items..
---&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.milyn.javabean.BeanPopulator&lt;/resource&gt;
-    &lt;param name="beanId"&gt;orderItem&lt;/param&gt;
-    &lt;param name="beanClass"&gt;java.util.HashMap&lt;/param&gt;
-    &lt;param name="bindings"&gt;
-        &lt;binding property="position"  selector="order-item/position" type="Integer" /&gt;
-        &lt;binding property="quantity"  selector="order-item/quantity" type="Integer" /&gt;
-        &lt;binding property="productId" selector="order-item/product-id" /&gt;
-    &lt;/param&gt;
-&lt;/resource-config&gt;
+    &lt;!--
+        Virtual Model Binding Configurations for the order message elements...
 
-&lt;resource-config selector="decoder:OrderDateDecoder"&gt;
-    &lt;resource&gt;org.milyn.javabean.decoders.DateDecoder&lt;/resource&gt;
-    &lt;param name="format"&gt;EEE MMM dd HH:mm:ss z yyyy&lt;/param&gt;
-&lt;/resource-config&gt;</pre>
+        Just capturing the order and order-item element details into 2
+        Maps, overwriting each order-item as we iterate through the message i.e. not
+        accumulating them in memory =&gt; low memory footprint because we only
+        have details of the current order + current order-item in memory
+        at any given time (i.e. we never have a full order in memory)...
+    --&gt;
 
+    &lt;!--
+        Bind the main order details....
+    --&gt;
+    &lt;jb:bindings beanId="orderDetail" class="java.util.HashMap" createOnElement="order"&gt;
+        &lt;jb:value property="orderNum" data="header/order-id"     decoder="Long" /&gt;
+        &lt;jb:value property="uname"    data="customer-details/username" /&gt;
+        &lt;jb:value property="date"     data="header/date"         decoder="Date"&gt;
+            &lt;jb:decodeParam name="format"&gt;EEE MMM dd HH:mm:ss z yyyy&lt;/jb:decodeParam&gt;
+        &lt;/jb:value&gt;
+    &lt;/jb:bindings&gt;
+
+    &lt;!--
+        Bind each order-item.  Not building a list of order items because we only want to have
+        one order-item in memory at any one time.  This way, we can handle a huge orders with many
+        many order items..
+    --&gt;
+    &lt;jb:bindings beanId="orderItem" class="java.util.HashMap" createOnElement="order-item"&gt;
+        &lt;jb:value property="position"  data="order-item/position" decoder="Integer" /&gt;
+        &lt;jb:value property="quantity"  data="order-item/quantity" decoder="Integer" /&gt;
+        &lt;jb:value property="productId" data="order-item/product-id" /&gt;
+    &lt;/jb:bindings&gt;
+
+&lt;/smooks-resource-list&gt;</pre>
+
         Once this data is bound into the bean context (under the beanIds of "orderDetail" and "orderItem"),
         it is available to all other resources executing under the same Smooks ExecutionContext.  The key to
         processing huge messages is the fact that we can keep the memory footprint associated with the
@@ -469,28 +468,33 @@
         This resource configuration file defines the routing resources for the "02_Low_Price"
         Service:
 <pre>
-&lt;!--
-    At the end of every order-item, route the order item XML ("02_XML_OrderItem") to the
-    "02_Low_Price" Service, if the total is 20 or less...
---&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.jboss.soa.esb.smooks.FragmentRouter&lt;/resource&gt;
-    &lt;condition&gt;
-        &lt;!--<i class="commentedcode">
-        product.LISTPRICE * orderItem.quantity &lt;= 17.00
-        </i>--&gt;
-    &lt;/condition&gt;
-    &lt;param name="beanId"&gt;<span style="color: crimson;">02_XML_OrderItem</span>&lt;/param&gt;  &lt;!-- Populated and bound below... --&gt;
-    &lt;param name="serviceCategory"&gt;HugeQS&lt;/param&gt;
-    &lt;param name="serviceName"&gt;02_Low_Price&lt;/param&gt;
-&lt;/resource-config&gt;
+&lt;?xml version="1.0"?&gt;
+&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                     xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"&gt;
 
-&lt;!--
-    At the end of every order-item, generate an &lt;ord&gt; split message for the "02_XML" Service
-    and bind it back into the bean context under a bean ID of "02_XML_OrderItem"...
- --&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource type="ftl"&gt;&lt;!--<i class="commentedcode">&lt;ord id="${orderDetail.orderNum?c}" date="${orderDetail.date?string("yyyy-MM-dd")}"&gt;
+    &lt;!--
+        At the end of every order-item, route the order item XML ("02_XML_OrderItem") to the
+        "02_Low_Price" Service, if the total is 20 or less...
+    --&gt;
+    &lt;resource-config selector="order-item"&gt;
+        &lt;resource&gt;org.jboss.soa.esb.smooks.FragmentRouter&lt;/resource&gt;
+        &lt;condition&gt;
+            &lt;!--<i class="commentedcode">
+            product.LISTPRICE * orderItem.quantity &lt;= 17.00
+            </i>--&gt;
+        &lt;/condition&gt;
+        &lt;param name="beanId"&gt;<span style="color: crimson;">02_XML_OrderItem</span>&lt;/param&gt; &lt;!-- Populated and bound below... --&gt;
+        &lt;param name="serviceCategory"&gt;HugeQS&lt;/param&gt;
+        &lt;param name="serviceName"&gt;02_Low_Price&lt;/param&gt;
+    &lt;/resource-config&gt;
+
+    &lt;!--
+        At the end of every order-item, generate an &lt;ord&gt; split message for the "02_XML" Service
+        and bind it back into the bean context under a bean ID of "02_XML_OrderItem".  02_XML_OrderItem
+        will be router by the FragmentRouter (configured above)..
+     --&gt;
+    &lt;ftl:freemarker applyOnElement="order-item"&gt;
+        &lt;ftl:template&gt;&lt;!--<i class="commentedcode">&lt;ord id="${orderDetail.orderNum?c}" date="${orderDetail.date?string("yyyy-MM-dd")}"&gt;
     &lt;customer&gt;
         &lt;name&gt;${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}&lt;/name&gt;
         &lt;addr1&gt;${accounts[0].ADDR1}&lt;/addr1&gt;
@@ -503,10 +507,13 @@
     &lt;quantity&gt;${orderItem.quantity?c}&lt;/quantity&gt;
     &lt;price&gt;${product.LISTPRICE?c}&lt;/price&gt;
     &lt;title&gt;${product.NAME} (${product.ATTR1})&lt;/title&gt;
-&lt;/ord&gt;</i>--&gt;&lt;/resource&gt;
-    &lt;param name="action"&gt;bindto&lt;/param&gt;
-    &lt;param name="bindId"&gt;<span style="color: crimson;">02_XML_OrderItem</span>&lt;/param&gt;
-&lt;/resource-config&gt;    
+&lt;/ord&gt;</i>--&gt;&lt;/ftl:template&gt;
+        &lt;ftl:use&gt;
+                &lt;ftl:bindTo id="<span style="color: crimson;">02_XML_OrderItem</span>" /&gt;
+        &lt;/ftl:use&gt;
+    &lt;/ftl:freemarker&gt;
+
+&lt;/smooks-resource-list&gt;
 </pre>
     So the first resource listed in this configuration simply routes the XML data (generated by the second resource)
     to the "02_Low_Price" Service.  The resource is only applied if the specified condition is met. The second resource
@@ -533,66 +540,61 @@
     This resource configuration file defines the routing resources for the "03_High_Price"
     Service:
 <pre>
-&lt;!--
-    At the end of every order-item, route the order item Java Objects ("03_order") to the
-    "03_High_Price" Service, if the price per item is 190 or more...
---&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.jboss.soa.esb.smooks.FragmentRouter&lt;/resource&gt;
-    &lt;condition&gt;
-        &lt;!--<i class="commentedcode">
-        product.LISTPRICE &gt; 190.00
-        </i>--&gt;
-    &lt;/condition&gt;
-    &lt;param name="beanId"&gt;<span style="color: crimson;">03_order</span>&lt;/param&gt;
-    &lt;param name="serviceCategory"&gt;HugeQS&lt;/param&gt;
-    &lt;param name="serviceName"&gt;03_High_Price&lt;/param&gt;
-&lt;/resource-config&gt;
+&lt;?xml version="1.0"?&gt;
+&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"&gt;
+    &lt;!--
+        At the end of every order-item, route the order item Java Objects ("03_order") to the
+        "03_High_Price" Service, if the price per item is 190 or more...
+    --&gt;
+    &lt;resource-config selector="order-item"&gt;
+        &lt;resource&gt;org.jboss.soa.esb.smooks.FragmentRouter&lt;/resource&gt;
+        &lt;condition&gt;
+            &lt;!--<i class="commentedcode">
+            product.LISTPRICE &gt; 190.00
+            </i>--&gt;
+        &lt;/condition&gt;
+        &lt;param name="beanId"&gt;<span style="color: crimson;">03_order</span>&lt;/param&gt;
+        &lt;param name="serviceCategory"&gt;HugeQS&lt;/param&gt;
+        &lt;param name="serviceName"&gt;03_High_Price&lt;/param&gt;
+    &lt;/resource-config&gt;
 
-&lt;!--
-    At the end of every order-item, bind together the orderDetail with the current
-    order item in a new HashMap and asign it under the beanId "03_order" in the bean
-    context.  03_order gets routed by the above config..
---&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.milyn.javabean.BeanPopulator&lt;/resource&gt;
-    &lt;param name="beanId"&gt;<span style="color: crimson;">03_order</span>&lt;/param&gt;
-    &lt;param name="beanClass"&gt;org.jboss.soa.esb.example.highprice.Order&lt;/param&gt;
-    &lt;param name="bindings"&gt;
-        &lt;binding property="firstName"&gt;accounts[0].FIRSTNAME&lt;/binding&gt;
-        &lt;binding property="lastName"&gt;accounts[0].LASTNAME&lt;/binding&gt;
-        &lt;binding property="address" selector="${03_address}" /&gt;
-        &lt;binding property="date"&gt;orderDetail.date&lt;/binding&gt;
-        &lt;binding property="product" selector="${03_product}" /&gt;
-        &lt;binding property="quantity"&gt;orderItem.quantity&lt;/binding&gt;
-    &lt;/param&gt;
-&lt;/resource-config&gt;
+    &lt;!--
+        At the end of every order-item, bind together the orderDetail with the current
+        order item in a new HashMap and asign it under the beanId "03_order" in the bean
+        context.  The data is pulled into the "highprice" Java object model using java
+        binding configs that pull the data from the bean context, which contains data from
+        the database, as well as data bound in for the input message.  We use MVEL
+        expressions to access this info (expression bindings).
 
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.milyn.javabean.BeanPopulator&lt;/resource&gt;
-    &lt;param name="beanId"&gt;03_address&lt;/param&gt;
-    &lt;param name="beanClass"&gt;org.jboss.soa.esb.example.highprice.Address&lt;/param&gt;
-    &lt;param name="bindings"&gt;
-        &lt;binding property="email"&gt;accounts[0].EMAIL&lt;/binding&gt;
-        &lt;binding property="address1"&gt;accounts[0].ADDR1&lt;/binding&gt;
-        &lt;binding property="address2"&gt;accounts[0].ADDR2&lt;/binding&gt;
-        &lt;binding property="city"&gt;accounts[0].CITY&lt;/binding&gt;
-        &lt;binding property="state"&gt;accounts[0].STATE&lt;/binding&gt;
-    &lt;/param&gt;
-&lt;/resource-config&gt;
+        03_order gets routed by the above config..
+    --&gt;
+    &lt;jb:bindings beanId="<span style="color: crimson;">03_order</span>" class="org.jboss.soa.esb.example.highprice.Order" createOnElement="order-item"&gt;
+        &lt;jb:wiring property="address" beanIdRef="03_address" /&gt;
+        &lt;jb:wiring property="product" beanIdRef="03_product" /&gt;
+        &lt;jb:expression property="firstName"&gt;accounts[0].FIRSTNAME&lt;/jb:expression&gt;
+        &lt;jb:expression property="lastName"&gt;accounts[0].LASTNAME&lt;/jb:expression&gt;
+        &lt;jb:expression property="date"&gt;orderDetail.date&lt;/jb:expression&gt;
+        &lt;jb:expression property="quantity"&gt;orderItem.quantity&lt;/jb:expression&gt;
+    &lt;/jb:bindings&gt;
 
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.milyn.javabean.BeanPopulator&lt;/resource&gt;
-    &lt;param name="beanId"&gt;03_product&lt;/param&gt;
-    &lt;param name="beanClass"&gt;org.jboss.soa.esb.example.highprice.Product&lt;/param&gt;
-    &lt;param name="bindings"&gt;
-        &lt;binding property="id"&gt;product.PRODUCTID&lt;/binding&gt;
-        &lt;binding property="title"&gt;product.NAME&lt;/binding&gt;
-        &lt;binding property="category"&gt;product.CATEGORY&lt;/binding&gt;
-        &lt;binding property="price"&gt;product.LISTPRICE&lt;/binding&gt;
-    &lt;/param&gt;
-&lt;/resource-config&gt;</pre>
+    &lt;jb:bindings beanId="03_address" class="org.jboss.soa.esb.example.highprice.Address" createOnElement="order-item"&gt;
+        &lt;jb:expression property="email"&gt;accounts[0].EMAIL&lt;/jb:expression&gt;
+        &lt;jb:expression property="address1"&gt;accounts[0].ADDR1&lt;/jb:expression&gt;
+        &lt;jb:expression property="address2"&gt;accounts[0].ADDR2&lt;/jb:expression&gt;
+        &lt;jb:expression property="city"&gt;accounts[0].CITY&lt;/jb:expression&gt;
+        &lt;jb:expression property="state"&gt;accounts[0].STATE&lt;/jb:expression&gt;
+    &lt;/jb:bindings&gt;
 
+    &lt;jb:bindings beanId="03_product" class="org.jboss.soa.esb.example.highprice.Product" createOnElement="order-item"&gt;
+        &lt;jb:expression property="id"&gt;product.PRODUCTID&lt;/jb:expression&gt;
+        &lt;jb:expression property="title"&gt;product.NAME&lt;/jb:expression&gt;
+        &lt;jb:expression property="category"&gt;product.CATEGORY&lt;/jb:expression&gt;
+        &lt;jb:expression property="price"&gt;product.LISTPRICE&lt;/jb:expression&gt;
+    &lt;/jb:bindings&gt;
+
+&lt;/smooks-resource-list&gt;</pre>
+
     The first resource specifies the <code>FragmentRouter</code> resource for routing the contents of the "03_order" bean to
     the "03_High_Price" Service, where the product price is greater than 190.00.  The other resources specify the <code>BeanPopulator</code>
     resources required for creating and populating the the "03_order" bean Object Model.
@@ -614,28 +616,32 @@
     This resource configuration file defines the routing resources for the "04_Reptiles_notify_webservice_proxy"
     Service where the product category is "REPTILES":
 <pre>
-&lt;!--
-    At the end of every order-item, route the "Reptiles Notification" SOAP message ("04_SOAP_OrderItem") to the
-    "04_Reptiles_notify_webservice_proxy" Service, if the order item product.CATEGORY is "REPTILES"...
---&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.jboss.soa.esb.smooks.FragmentRouter&lt;/resource&gt;
-    &lt;condition&gt;
-        &lt;!--<i class="commentedcode">
-        product.CATEGORY == "REPTILES"
-        </i>--&gt;
-    &lt;/condition&gt;
-    &lt;param name="beanId"&gt;<span style="color: crimson;">04_SOAP_OrderItem</span>&lt;/param&gt;
-    &lt;param name="serviceCategory"&gt;HugeQS&lt;/param&gt;
-    &lt;param name="serviceName"&gt;04_Reptiles_notify_webservice_proxy&lt;/param&gt;
-&lt;/resource-config&gt;
+&lt;?xml version="1.0"?&gt;
+&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                     xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"&gt;
 
-&lt;!--
-    At the end of every order-item, generate an &lt;ord&gt; split message for the "02_XML" Service
-    and bind it back into the bean context under a bean ID of "02_XML_OrderItem"...
- --&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource type="ftl"&gt;&lt;!--<i class="commentedcode">&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://ordermanagement/ReptilesNotifyWS"&gt;
+    &lt;!--
+        At the end of every order-item, route the "Reptiles Notification" SOAP message ("04_SOAP_OrderItem") to the
+        "04_Reptiles_notify_webservice_proxy" Service, if the order item product.CATEGORY is "REPTILES"...
+    --&gt;
+    &lt;resource-config selector="order-item"&gt;
+        &lt;resource&gt;org.jboss.soa.esb.smooks.FragmentRouter&lt;/resource&gt;
+        &lt;condition&gt;
+            &lt;!--
+            product.CATEGORY == "REPTILES"
+            --&gt;
+        &lt;/condition&gt;
+        &lt;param name="beanId"&gt;<span style="color: crimson;">04_SOAP_OrderItem</span>&lt;/param&gt;
+        &lt;param name="serviceCategory"&gt;HugeQS&lt;/param&gt;
+        &lt;param name="serviceName"&gt;04_Reptiles_notify_webservice_proxy&lt;/param&gt;
+    &lt;/resource-config&gt;
+
+    &lt;!--
+        At the end of every order-item, generate an &lt;ord&gt; split message for the "02_XML" Service
+        and bind it back into the bean context under a bean ID of "02_XML_OrderItem"...
+     --&gt;
+    &lt;ftl:freemarker applyOnElement="order-item"&gt;
+        &lt;ftl:template&gt;&lt;!--<i class="commentedcode">&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ord="http://ordermanagement/ReptilesNotifyWS"&gt;
    &lt;soapenv:Header/&gt;
    &lt;soapenv:Body&gt;
       &lt;ord:notify&gt;
@@ -650,11 +656,14 @@
          &lt;/notification&gt;
       &lt;/ord:notify&gt;
    &lt;/soapenv:Body&gt;
-&lt;/soapenv:Envelope&gt;</i>--&gt;&lt;/resource&gt;
-    &lt;param name="action"&gt;bindto&lt;/param&gt;
-    &lt;param name="bindId"&gt;<span style="color: crimson;">04_SOAP_OrderItem</span>&lt;/param&gt;
-&lt;/resource-config&gt;</pre>
+&lt;/soapenv:Envelope&gt;</i>--&gt;&lt;/ftl:template&gt;
+        &lt;ftl:use&gt;
+            &lt;ftl:bindTo id="<span style="color: crimson;">04_SOAP_OrderItem</span>" /&gt;
+        &lt;/ftl:use&gt;
+    &lt;/ftl:freemarker&gt;
 
+&lt;/smooks-resource-list&gt;</pre>
+
     This routing configuration is nearly identical to that defined in <a href="#routing-02_Low_Price">routing/route-to-02_Low_Price_Service.xml</a>.
     The only difference is the format of the XML, the destination Service and the condition under which the message is to be routed.
     <p/>
@@ -664,33 +673,37 @@
     <h5 id="routing-05_Database">routing/route-to-05_Database.xml</h5>
     This resource configuration file defines the routing resources for routing Order Item data to the Database:
 <pre>
-&lt;!--
-    This resource is needed because we only want to limit the number or orders inserted into the database,
-    so we need to count them...
---&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.milyn.routing.db.SQLExecutor&lt;/resource&gt;
-    &lt;param name="executeBefore"&gt;true&lt;/param&gt;
-    &lt;param name="datasource"&gt;OrderManagement&lt;/param&gt;
-    &lt;param name="statement"&gt;<i class="commentedcode">select count(*) as "numOrders" from orders</i>&lt;/param&gt;
-    &lt;param name="resultSetName"&gt;<span style="color: crimson;">orderCountRS</span>&lt;/param&gt;
-&lt;/resource-config&gt;
+&lt;?xml version="1.0"?&gt;
+&lt;smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                   xmlns:db="http://www.milyn.org/xsd/smooks/db-routing-1.1.xsd"&gt;
 
-&lt;!--
-    At the end of every order-item, insert the order details for that order item...
- --&gt;
-&lt;resource-config selector="order-item"&gt;
-    &lt;resource&gt;org.milyn.routing.db.SQLExecutor&lt;/resource&gt;
-    &lt;condition&gt;
-        &lt;!--
-        <span style="color: crimson;">orderCountRS</span>[0].numOrders &lt; 10
-        --&gt;
-    &lt;/condition&gt;
-    &lt;param name="executeBefore"&gt;false&lt;/param&gt;
-    &lt;param name="datasource"&gt;OrderManagement&lt;/param&gt;
-    &lt;param name="statement"&gt;<i class="commentedcode">INSERT INTO ORDERS VALUES(${orderDetail.orderNum + "-" + product.PRODUCTID}, ${accounts[0].USERID}, ${orderDetail.date}, ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA', ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA','UPS',22.23, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME},'999 9999 9999 9999','12/03','Visa','CA')</i>&lt;/param&gt;
-&lt;/resource-config&gt;</pre>    
+    &lt;!--
+        The "OrderManagement" datasource is configured in the database/datasources.xml config file.
+    --&gt;
 
+    &lt;!--
+        This resource is needed because we only want to limit the number or orders inserted into the database,
+        so we need to count them...
+    --&gt;
+    &lt;db:executor executeOnElement="order-item" datasource="OrderManagement" executeBefore="true"&gt;
+        &lt;db:statement&gt;<i class="commentedcode">select count(*) as "numOrders" from orders</i>&lt;/db:statement&gt;
+        &lt;db:resultSet name="<span style="color: crimson;">orderCountRS</span>" /&gt;
+    &lt;/db:executor&gt;
+
+    &lt;!--
+        At the end of every order-item, insert the order details for that order item...
+     --&gt;
+    &lt;db:executor executeOnElement="order-item" datasource="OrderManagement" executeBefore="false"&gt;
+        &lt;condition&gt;
+            &lt;!--
+            <span style="color: crimson;">orderCountRS</span>[0].numOrders &lt; 10
+            --&gt;
+        &lt;/condition&gt;
+        &lt;db:statement&gt;<i class="commentedcode">INSERT INTO ORDERS VALUES(${orderDetail.orderNum + "-" + product.PRODUCTID}, ${accounts[0].USERID}, ${orderDetail.date}, ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA', ${accounts[0].ADDR1}, ${accounts[0].ADDR2}, ${accounts[0].CITY}, ${accounts[0].STATE},'30253','USA','UPS',22.23, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME}, ${accounts[0].FIRSTNAME}, ${accounts[0].LASTNAME},'999 9999 9999 9999','12/03','Visa','CA')</i>&lt;/db:statement&gt;
+    &lt;/db:executor&gt;
+
+&lt;/smooks-resource-list&gt;</pre>    
+
     The first resource simply queries the Orders table in the database to get a row count.  It binds the result to the bean context
     under the resultSetName (beanId) of "orderCountRS".  This row count is then used as the condition on the second <code>SQLExecutor</code> resource,
     which performs the inserts on the orders table. 

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,45 +0,0 @@
-<project name="Quickstart_publish_as_webservice_inonly" default="run" basedir=".">
-	
-	<description> 
-		${ant.project.name}
-		${line.separator}
-	</description>
-	
-	<!-- additional deploys -->
-	<property name="additional.deploys" value="*.xsd"/>
-
-	<!-- Import the base Ant build script... -->
-	<import file="../conf/base-build.xml"/>
-	<target name="runtest" depends="compile"  description="sends soap message to published web service">
-		<echo>Send soap message to published web service and receive reponse</echo>
-		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
-		      <arg value="soap-userpass-message.xml"/>	
-			  <classpath refid="exec-classpath"/>
-		</java>
-                <echo/>
-                <echo/>
-		<echo>Send soap message to published web service and receive soap fault message</echo>
-		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
-		      <arg value="error-soap-message.xml"/>	
-			  <classpath refid="exec-classpath"/>
-		</java>
-	</target> 
-	
-	<target name="sendesb" depends="compile" description="send esb Message to esb service">
-		<echo>Send esb message to esb service and get response</echo>
-		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
-			<arg value="ESBServiceSample"/> <!--  service category -->
-			<arg value="HelloWorldPubService"/>  <!--  service name -->
-			<arg value="HelloWorld"/> <!--  Message text -->
-			<classpath refid="exec-classpath"/>
-		</java>
-		<echo>Send esb message to esb service and get error</echo>
-		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
-			<arg value="ESBServiceSample"/> <!--  service category -->
-			<arg value="HelloWorldPubService"/>  <!--  service name -->
-			<arg value="Error"/> <!--  Message text -->
-			<classpath refid="exec-classpath"/>
-		</java>
-
-	</target>
-</project>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/build.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/build.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,45 @@
+<project name="Quickstart_publish_as_webservice_inonly" default="run" basedir=".">
+	
+	<description> 
+		${ant.project.name}
+		${line.separator}
+	</description>
+	
+	<!-- additional deploys -->
+	<property name="additional.deploys" value="*.xsd"/>
+
+	<!-- Import the base Ant build script... -->
+	<import file="../conf/base-build.xml"/>
+	<target name="runtest" depends="compile"  description="sends soap message to published web service">
+		<echo>Send soap message to published web service and receive reponse</echo>
+		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
+		      <arg value="soap-userpass-message.xml"/>	
+			  <classpath refid="exec-classpath"/>
+		</java>
+                <echo/>
+                <echo/>
+		<echo>Send soap message to published web service and receive soap fault message</echo>
+		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SOAPTest" failonerror="true">
+		      <arg value="error-soap-message.xml"/>	
+			  <classpath refid="exec-classpath"/>
+		</java>
+	</target> 
+	
+	<target name="sendesb" depends="compile" description="send esb Message to esb service">
+		<echo>Send esb message to esb service and get response</echo>
+		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
+			<arg value="ESBServiceSample"/> <!--  service category -->
+			<arg value="HelloWorldPubService"/>  <!--  service name -->
+			<arg value="HelloWorld"/> <!--  Message text -->
+			<classpath refid="exec-classpath"/>
+		</java>
+		<echo>Send esb message to esb service and get error</echo>
+		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test.SendEsbMessage" failonerror="true">
+			<arg value="ESBServiceSample"/> <!--  service category -->
+			<arg value="HelloWorldPubService"/>  <!--  service name -->
+			<arg value="Error"/> <!--  Message text -->
+			<classpath refid="exec-classpath"/>
+		</java>
+
+	</target>
+</project>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +0,0 @@
-<jbossesb-deployment>
-  <depends>jboss.esb:deployment=soap.esb</depends>
-  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb</depends>
-  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb_reply</depends>
-</jbossesb-deployment>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,5 @@
+<jbossesb-deployment>
+  <depends>jboss.esb:deployment=soap.esb</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb_reply</depends>
+</jbossesb-deployment>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
-			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-			xmlns:say="http://www.jboss.org/sayHi">
-  <soap:Body>
-      <say:sayHi><say:arg0>Error</say:arg0></say:sayHi>
-  </soap:Body>
-
-</soap:Envelope> 

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/error-soap-message.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,9 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
+			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+			xmlns:say="http://www.jboss.org/sayHi">
+  <soap:Body>
+      <say:sayHi><say:arg0>Error</say:arg0></say:sayHi>
+  </soap:Body>
+
+</soap:Envelope> 

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi"  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
-  <xs:element name="sayFault" type="x1:fault"/>
-  <xs:complexType name="fault">
-    <xs:sequence>
-      <xs:element name="code" type="xs:string"/>
-      <xs:element name="faultString" type="xs:string"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:schema>
\ No newline at end of file

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/fault.xsd	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,9 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi"  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:element name="sayFault" type="x1:fault"/>
+  <xs:complexType name="fault">
+    <xs:sequence>
+      <xs:element name="code" type="xs:string"/>
+      <xs:element name="faultString" type="xs:string"/>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>
\ No newline at end of file

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-  <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
-  <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb_reply"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
-</server>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbm-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb_reply"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+</server>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb">
-    <depends optional-attribute-name="DestinationManager">
-      jboss.mq:service=DestinationManager
-    </depends>
-  </mbean>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb_reply">
-    <depends optional-attribute-name="DestinationManager">
-      jboss.mq:service=DestinationManager
-    </depends>
-  </mbean>
-</server>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbmq-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb">
+    <depends optional-attribute-name="DestinationManager">
+      jboss.mq:service=DestinationManager
+    </depends>
+  </mbean>
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_publish_as_webservice_inonly_Request_esb_reply">
+    <depends optional-attribute-name="DestinationManager">
+      jboss.mq:service=DestinationManager
+    </depends>
+  </mbean>
+</server>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,34 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
-
-    <providers>
-          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
-              <jms-bus busid="quickstartEsbChannel">
-                  <jms-message-filter
-                      dest-type="QUEUE"
-                      dest-name="queue/quickstart_publish_as_webservice_inonly_Request_esb"
-                      selector="serviceName='HelloWorldPubService'"
-                  />
-              </jms-bus>
-
-          </jms-provider>
-      </providers>
-      
-      <services>
-        <service 
-        	category="ESBServiceSample" 
-        	name="HelloWorldPubService" 
-        	description="Hello world ESB Service">
-            <listeners>
-                <jms-listener name="helloWorld"
-                              busidref="quickstartEsbChannel"
-                              maxThreads="1"
-                />
-            </listeners>
-            <actions mep="OneWay" inXsd="/request.xsd" faultXsd="/fault.xsd" >
-                   <action name="action" class="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.ESBWSListenerAction" process="displayMessage"/>  
-            </actions>
-        </service>
-      </services>
-     
-</jbossesb>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,34 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+
+    <providers>
+          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
+              <jms-bus busid="quickstartEsbChannel">
+                  <jms-message-filter
+                      dest-type="QUEUE"
+                      dest-name="queue/quickstart_publish_as_webservice_inonly_Request_esb"
+                      selector="serviceName='HelloWorldPubService'"
+                  />
+              </jms-bus>
+
+          </jms-provider>
+      </providers>
+      
+      <services>
+        <service 
+        	category="ESBServiceSample" 
+        	name="HelloWorldPubService" 
+        	description="Hello world ESB Service">
+            <listeners>
+                <jms-listener name="helloWorld"
+                              busidref="quickstartEsbChannel"
+                              maxThreads="1"
+                />
+            </listeners>
+            <actions mep="OneWay" inXsd="/request.xsd" faultXsd="/fault.xsd" >
+                   <action name="action" class="org.jboss.soa.esb.samples.quickstart.publishAsWebservice.ESBWSListenerAction" process="displayMessage"/>  
+            </actions>
+        </service>
+      </services>
+     
+</jbossesb>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  JBoss, Home of Professional Open Source
-  Copyright 2006, JBoss Inc., and others contributors as indicated 
-  by the @authors tag. All rights reserved. 
-  See the copyright.txt in the distribution for a
-  full listing of individual contributors. 
-  This copyrighted material is made available to anyone wishing to use,
-  modify, copy, or redistribute it subject to the terms and conditions
-  of the GNU Lesser General Public License, v. 2.1.
-  This program is distributed in the hope that it will be useful, but WITHOUT A 
-  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,
-  v.2.1 along with this distribution; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-  MA  02110-1301, USA.
-  
-  (C) 2005-2006,
-  @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
-  These options are described in the JBossESB manual.
-  Defaults are provided here for convenience only.
- 
-  Please read through this file prior to using the system, and consider
-  updating the specified entries.
--->
-<esb
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
-    <properties name="core">
-		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
-		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
-		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
-        <property name="jboss.esb.invm.scope.default" value="NONE"/>
-    </properties>
-    <properties name="registry">      
-    	<property name="org.jboss.soa.esb.registry.queryManagerURI"     		
-    		value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>    		
-    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"     		
-    		value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
-    	<property name="org.jboss.soa.esb.registry.implementationClass" 
-    		value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
-    	<property name="org.jboss.soa.esb.registry.factoryClass" 
-    		value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
-    	<property name="org.jboss.soa.esb.registry.user" 
-    		value="jbossesb"/>
-    	<property name="org.jboss.soa.esb.registry.password" 
-    	  value="password"/>
-    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
-    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" 
-    		value="org.apache.ws.scout.transport.RMITransport"/>
-    </properties>
-    <properties name="transports" depends="core">
-    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
-    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
-    </properties>
-    <properties name="connection">
-    	<property name="min-pool-size" value="5"/>
-    	<property name="max-pool=size" value="10"/>
-    	<property name="blocking-timeout-millis" value="5000"/>
-    	<property name="abandoned-connection-timeout" value="10000"/>
-    	<property name="abandoned-connection-time-interval" value="30000"/>
-    </properties>
-    <properties name="dbstore">
-		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
-		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
-		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
-		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>		
-		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
-		<!--table managed by pool to test for valid connections - created by pool automatically -->
-		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
-		<!-- # of milliseconds to timeout waiting for a connection from pool -->
-		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
-                <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
-    </properties>
-    <properties name="messagerouting">
-    	<property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
-    </properties>
-</esb>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, JBoss Inc., and others contributors as indicated 
+  by the @authors tag. All rights reserved. 
+  See the copyright.txt in the distribution for a
+  full listing of individual contributors. 
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU Lesser General Public License, v. 2.1.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  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,
+  v.2.1 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+  These options are described in the JBossESB manual.
+  Defaults are provided here for convenience only.
+ 
+  Please read through this file prior to using the system, and consider
+  updating the specified entries.
+-->
+<esb
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+    <properties name="core">
+		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+        <property name="jboss.esb.invm.scope.default" value="NONE"/>
+    </properties>
+    <properties name="registry">      
+    	<property name="org.jboss.soa.esb.registry.queryManagerURI"     		
+    		value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>    		
+    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"     		
+    		value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+    	<property name="org.jboss.soa.esb.registry.implementationClass" 
+    		value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.factoryClass" 
+    		value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.user" 
+    		value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.registry.password" 
+    	  value="password"/>
+    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" 
+    		value="org.apache.ws.scout.transport.RMITransport"/>
+    </properties>
+    <properties name="transports" depends="core">
+    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+    </properties>
+    <properties name="connection">
+    	<property name="min-pool-size" value="5"/>
+    	<property name="max-pool=size" value="10"/>
+    	<property name="blocking-timeout-millis" value="5000"/>
+    	<property name="abandoned-connection-timeout" value="10000"/>
+    	<property name="abandoned-connection-time-interval" value="30000"/>
+    </properties>
+    <properties name="dbstore">
+		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
+		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
+		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
+		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>		
+		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
+		<!--table managed by pool to test for valid connections - created by pool automatically -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
+		<!-- # of milliseconds to timeout waiting for a connection from pool -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
+                <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+    </properties>
+    <properties name="messagerouting">
+    	<property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+    </properties>
+</esb>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/jndi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,69 +0,0 @@
-# jUDDI Registry Properties (used by RegistryServer)
-# see http://www.juddi.org for more information
-
-# The UDDI Operator Name
-juddi.operatorName = jUDDI.org
-
-# The i18n locale default codes
-juddi.i18n.languageCode = en
-juddi.i18n.countryCode = US
-
-# The UDDI DiscoveryURL Prefix
-juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
-
-# The UDDI Operator Contact Email Address
-juddi.operatorEmailAddress = admin at juddi.org
-
-# The maximum name size and maximum number
-# of name elements allows in several of the
-# FindXxxx and SaveXxxx UDDI functions.
-juddi.maxNameLength=255
-juddi.maxNameElementsAllowed=5
-
-# The maximum number of UDDI artifacts allowed
-# per publisher. A value of '-1' indicates any 
-# number of artifacts is valid (These values can be
-# overridden at the individual publisher level).
-juddi.maxBusinessesPerPublisher=25
-juddi.maxServicesPerBusiness=20
-juddi.maxBindingsPerService=10
-juddi.maxTModelsPerPublisher=100
-
-# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
-
-# jUDDI DataStore module currently to use
-juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
-
-# use a dataSource (if set to false a direct 
-# jdbc connection will be used.
-juddi.isUseDataSource=false
-juddi.jdbcDriver=com.mysql.jdbc.Driver
-juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
-juddi.jdbcUsername=root
-juddi.jdbcPassword=admin
-# jUDDI DataSource to use
-# juddi.dataSource=java:comp/env/jdbc/MySqlDS
-
-# jUDDI UUIDGen implementation to use
-juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
-
-# jUDDI Cryptor implementation to use
-juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
- 
-# jUDDI Validator to use
-juddi.validator=org.apache.juddi.validator.DefaultValidator
-
-# jUDDI Proxy Properties (used by RegistryProxy)
-juddi.proxy.adminURL = http://localhost:8080/juddi/admin
-juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
-juddi.proxy.publishURL = http://localhost:8080/juddi/publish
-juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
-juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
-juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
-
-# JNDI settings (used by RMITransport)
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-  

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/juddi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any 
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct 
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+ 
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+  

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/lib (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/lib)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/listener.log
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/listener.log	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/listener.log	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,20 +0,0 @@
-2008-10-24 10:08:10,203 DEBUG [main][httpclient.wire.header] >> "POST /Quickstart_publish_as_webservice_inonly/ESBServiceSample/HelloWorldPubService?wsdl HTTP/1.1[\r][\n]"
-2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.header] >> "User-Agent: Jakarta Commons-HttpClient/3.0.1[\r][\n]"
-2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.header] >> "Host: 127.0.0.1:8080[\r][\n]"
-2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.header] >> "Content-Length: 324[\r][\n]"
-2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.header] >> "[\r][\n]"
-2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.content] >> "<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" [\n]"
-2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.content] >> "[0x9][0x9][0x9]xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [\n]"
-2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.content] >> "[0x9][0x9][0x9]xmlns:xsd="http://www.w3.org/2001/XMLSchema"[\n]"
-2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.content] >> "[0x9][0x9][0x9]xmlns:say="http://www.jboss.org/sayHi">[\n]"
-2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "  <soap:Body>[\n]"
-2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "      <say:sayHi><say:arg0>Error</say:arg0></say:sayHi>[\n]"
-2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "  </soap:Body>[\n]"
-2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "[\n]"
-2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "</soap:Envelope> [\n]"
-2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "HTTP/1.1 200 OK[\r][\n]"
-2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "Server: Apache-Coyote/1.1[\r][\n]"
-2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "X-Powered-By: Servlet 2.4; JBoss-4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)/Tomcat-5.5[\r][\n]"
-2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "Content-Type: text/xml;charset=UTF-8[\r][\n]"
-2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "Content-Length: 0[\r][\n]"
-2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "Date: Fri, 24 Oct 2008 09:08:10 GMT[\r][\n]"

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/listener.log (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/listener.log)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/listener.log	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/listener.log	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,20 @@
+2008-10-24 10:08:10,203 DEBUG [main][httpclient.wire.header] >> "POST /Quickstart_publish_as_webservice_inonly/ESBServiceSample/HelloWorldPubService?wsdl HTTP/1.1[\r][\n]"
+2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.header] >> "User-Agent: Jakarta Commons-HttpClient/3.0.1[\r][\n]"
+2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.header] >> "Host: 127.0.0.1:8080[\r][\n]"
+2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.header] >> "Content-Length: 324[\r][\n]"
+2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.header] >> "[\r][\n]"
+2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.content] >> "<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" [\n]"
+2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.content] >> "[0x9][0x9][0x9]xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" [\n]"
+2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.content] >> "[0x9][0x9][0x9]xmlns:xsd="http://www.w3.org/2001/XMLSchema"[\n]"
+2008-10-24 10:08:10,218 DEBUG [main][httpclient.wire.content] >> "[0x9][0x9][0x9]xmlns:say="http://www.jboss.org/sayHi">[\n]"
+2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "  <soap:Body>[\n]"
+2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "      <say:sayHi><say:arg0>Error</say:arg0></say:sayHi>[\n]"
+2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "  </soap:Body>[\n]"
+2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "[\n]"
+2008-10-24 10:08:10,234 DEBUG [main][httpclient.wire.content] >> "</soap:Envelope> [\n]"
+2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "HTTP/1.1 200 OK[\r][\n]"
+2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "Server: Apache-Coyote/1.1[\r][\n]"
+2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "X-Powered-By: Servlet 2.4; JBoss-4.2.2.GA (build: SVNTag=JBoss_4_2_2_GA date=200710221139)/Tomcat-5.5[\r][\n]"
+2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "Content-Type: text/xml;charset=UTF-8[\r][\n]"
+2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "Content-Length: 0[\r][\n]"
+2008-10-24 10:08:10,281 DEBUG [main][httpclient.wire.header] << "Date: Fri, 24 Oct 2008 09:08:10 GMT[\r][\n]"

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Log4j Configuration                                                  -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
-   | 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">
-
-   <!-- ============================== -->
-   <!-- Append messages to the console -->
-   <!-- ============================== -->
-
-   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-      <param name="Target" value="System.out"/>
-      <param name="Threshold" value="INFO"/>
-
-      <layout class="org.apache.log4j.PatternLayout">
-         <!-- The default pattern: Date Priority [Category] Message\n -->
-         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
-      </layout>
-   </appender>
-
-   <!-- ================================= -->
-   <!-- Preserve messages in a local file -->
-   <!-- ================================= -->
-
-   <!-- A size based file rolling appender -->
-   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
-     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-     <param name="File" value="./listener.log"/>
-     <param name="Append" value="false"/>
-     <param name="MaxFileSize" value="500KB"/>
-     <param name="MaxBackupIndex" value="1"/>
-
-     <layout class="org.apache.log4j.PatternLayout">
-       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
-     </layout>	    
-   </appender>
-
-   <!-- ================ -->
-   <!-- Limit categories -->
-   <!-- ================ -->
-
-   <category name="org.jboss">
-      <priority value="WARN"/>
-   </category>
-   <category name="org.jboss.soa.esb">
-      <priority value="ERROR"/>
-   </category>
-   <category name="org.jboss.internal.soa.esb">
-      <priority value="ERROR"/>
-   </category>
-   <category name="org.apache">
-      <priority value="ERROR"/>
-   </category>
-   <category name="quickstart">
-      <priority value="DEBUG"/>
-   </category>
-   <!-- ======================= -->
-   <!-- Setup the Root category -->
-   <!-- ======================= -->
-
-   <root>
-      <appender-ref ref="CONSOLE"/>
-      <appender-ref ref="FILE"/>
-   </root>
-
-</log4j:configuration>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+   | 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">
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="Target" value="System.out"/>
+      <param name="Threshold" value="INFO"/>
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] Message\n -->
+         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A size based file rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="./listener.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+     </layout>	    
+   </appender>
+
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <category name="org.jboss">
+      <priority value="WARN"/>
+   </category>
+   <category name="org.jboss.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.jboss.internal.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.apache">
+      <priority value="ERROR"/>
+   </category>
+   <category name="quickstart">
+      <priority value="DEBUG"/>
+   </category>
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,33 +0,0 @@
-Overview:
-=========
-  The purpose of the publish_as_webservice_inonly quickstart sample is to demonstrate how to
-  publish an OneWay (In-Only) esb service as a web service.
-
-Running this quickstart:
-========================
-  Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
-  and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run '.esb' archive mode:
-===========================
-  1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
-  2. Open another command terminal window in this folder ("Window2"), type
-     'ant runtest'.
-  3. Open another command terminal window in this folder ("Window2"), type
-     'ant sendesb'.
-  4. In this folder ("Window1"), type 'ant undeploy'.
-
-To Run from Soapui:
-===========================
-  1. Use the following URL: 'http://127.0.0.1:8080/Quickstart_publish_as_webservice_inonly/ESBServiceSample/HelloWorldPubService?wsdl'.
-  2. Copy the contents of soap-userpass-message.xml.
-  3. Exceute the web service call from soapui.
-
-======================================
-  1. runtest ant target
-	 This target will call the SOAPTest client twice, first call will be with a valid SOAP message
-	 and the second call will generate a SOAPFault to be retured. 
-
-  2. sendesb ant target
-	 This target will call the SendEsbMessage twice. The first call will be with a valid message body content
-	 and the second will generate a FaultMessageException.

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,33 @@
+Overview:
+=========
+  The purpose of the publish_as_webservice_inonly quickstart sample is to demonstrate how to
+  publish an OneWay (In-Only) esb service as a web service.
+
+Running this quickstart:
+========================
+  Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+  and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run '.esb' archive mode:
+===========================
+  1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+  2. Open another command terminal window in this folder ("Window2"), type
+     'ant runtest'.
+  3. Open another command terminal window in this folder ("Window2"), type
+     'ant sendesb'.
+  4. In this folder ("Window1"), type 'ant undeploy'.
+
+To Run from Soapui:
+===========================
+  1. Use the following URL: 'http://127.0.0.1:8080/Quickstart_publish_as_webservice_inonly/ESBServiceSample/HelloWorldPubService?wsdl'.
+  2. Copy the contents of soap-userpass-message.xml.
+  3. Exceute the web service call from soapui.
+
+======================================
+  1. runtest ant target
+	 This target will call the SOAPTest client twice, first call will be with a valid SOAP message
+	 and the second call will generate a SOAPFault to be retured. 
+
+  2. sendesb ant target
+	 This target will call the SendEsbMessage twice. The first call will be with a valid message body content
+	 and the second will generate a FaultMessageException.

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,8 +0,0 @@
-<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi"  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
-  <xs:element name="sayHi" type="x1:sayHi"/>
-  <xs:complexType name="sayHi">
-    <xs:sequence>
-      <xs:element name="arg0" type="xs:string" minOccurs="1"/>
-    </xs:sequence>
-  </xs:complexType>
-</xs:schema>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/request.xsd	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,8 @@
+<xs:schema version="1.0" targetNamespace="http://www.jboss.org/sayHi" xmlns:x1="http://www.jboss.org/sayHi"  xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+  <xs:element name="sayHi" type="x1:sayHi"/>
+  <xs:complexType name="sayHi">
+    <xs:sequence>
+      <xs:element name="arg0" type="xs:string" minOccurs="1"/>
+    </xs:sequence>
+  </xs:complexType>
+</xs:schema>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,11 +0,0 @@
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
-			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
-			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-			xmlns:say="http://www.jboss.org/sayHi">
-  <soap:Body>
-      <say:sayHi>
-		<say:arg0>HelloWorld</say:arg0>
-	  </say:sayHi>"
-  </soap:Body>
-
-</soap:Envelope> 

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/soap-userpass-message.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,11 @@
+<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
+			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+			xmlns:say="http://www.jboss.org/sayHi">
+  <soap:Body>
+      <say:sayHi>
+		<say:arg0>HelloWorld</say:arg0>
+	  </say:sayHi>"
+  </soap:Body>
+
+</soap:Envelope> 

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path=""/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="output" path=""/>
-</classpath>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.classpath	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path=""/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path=""/>
+</classpath>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.project
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/.project	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.project	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>pubservice-sample</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.project (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/.project)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.project	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/.project	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>pubservice-sample</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,55 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.publishAsWebservice;
-
-import javax.xml.namespace.QName;
-
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.actions.ActionProcessingDetailFaultException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-
-public class ESBWSListenerAction extends AbstractActionLifecycle
-{
-    protected ConfigTree _config;
-    
-    public ESBWSListenerAction(ConfigTree config)
-    {
-        _config = config;
-    }
-    
-    public Message displayMessage(Message message) throws Exception
-    {
-        final String request = (String)message.getBody().get() ;
-        if (request.contains("Error")) {
-            final String detail = "<say:sayFault xmlns:say=\"http://www.jboss.org/sayHi\"><say:code>" +
-                "myErrorCode" + "</say:code><say:faultString>" + "myDescription" +
-                "</say:faultString></say:sayFault>" ;
-            throw new ActionProcessingDetailFaultException(new QName("http://www.jboss.org/sayHi", "myErrorCode"), "myDescription", detail) ;
-        }
-        
-        System.out.println("Received request: " + request) ;
-        final String responseMsg = "<say:sayHiResponse xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" +
-            "Response from ESB Service" + "</say:arg0></say:sayHiResponse>" ;
-        message.getBody().add(responseMsg);
-        return message;
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/ESBWSListenerAction.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.publishAsWebservice;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionProcessingDetailFaultException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+public class ESBWSListenerAction extends AbstractActionLifecycle
+{
+    protected ConfigTree _config;
+    
+    public ESBWSListenerAction(ConfigTree config)
+    {
+        _config = config;
+    }
+    
+    public Message displayMessage(Message message) throws Exception
+    {
+        final String request = (String)message.getBody().get() ;
+        if (request.contains("Error")) {
+            final String detail = "<say:sayFault xmlns:say=\"http://www.jboss.org/sayHi\"><say:code>" +
+                "myErrorCode" + "</say:code><say:faultString>" + "myDescription" +
+                "</say:faultString></say:sayFault>" ;
+            throw new ActionProcessingDetailFaultException(new QName("http://www.jboss.org/sayHi", "myErrorCode"), "myDescription", detail) ;
+        }
+        
+        System.out.println("Received request: " + request) ;
+        final String responseMsg = "<say:sayHiResponse xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" +
+            "Response from ESB Service" + "</say:arg0></say:sayHiResponse>" ;
+        message.getBody().add(responseMsg);
+        return message;
+    }
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,58 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpException;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.commons.httpclient.methods.StringRequestEntity;
-import org.jboss.internal.soa.esb.util.StreamUtils;
-import org.jboss.soa.esb.ConfigurationException;
-
-public class SOAPTest  {
-
-	public static void main(String args[]) throws ConfigurationException, UnsupportedEncodingException {
- 
-		final String soap = StreamUtils.getResourceAsString(args[0], "UTF-8");
-		HttpClient client = new HttpClient();
-		PostMethod postMethod = new PostMethod(
-				"http://127.0.0.1:8080/Quickstart_publish_as_webservice_inonly/ESBServiceSample/HelloWorldPubService?wsdl");
-
-		StringRequestEntity requestEntity = new StringRequestEntity(soap);
-		postMethod.setRequestEntity(requestEntity);
-		try {
-			client.executeMethod(postMethod);
-			System.out.println("Response from web service");
-			System.out.println("[" + postMethod.getResponseBodyAsString() + "]");
-		} catch (HttpException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-		System.exit(0);
-
-	}
-
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SOAPTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.publishAsWebservice.test;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.methods.PostMethod;
+import org.apache.commons.httpclient.methods.StringRequestEntity;
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.soa.esb.ConfigurationException;
+
+public class SOAPTest  {
+
+	public static void main(String args[]) throws ConfigurationException, UnsupportedEncodingException {
+ 
+		final String soap = StreamUtils.getResourceAsString(args[0], "UTF-8");
+		HttpClient client = new HttpClient();
+		PostMethod postMethod = new PostMethod(
+				"http://127.0.0.1:8080/Quickstart_publish_as_webservice_inonly/ESBServiceSample/HelloWorldPubService?wsdl");
+
+		StringRequestEntity requestEntity = new StringRequestEntity(soap);
+		postMethod.setRequestEntity(requestEntity);
+		try {
+			client.executeMethod(postMethod);
+			System.out.println("Response from web service");
+			System.out.println("[" + postMethod.getResponseBodyAsString() + "]");
+		} catch (HttpException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		System.exit(0);
+
+	}
+
+}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,74 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss 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.soa.esb.samples.quickstart.publishAsWebservice.test;
-
-import java.util.Set;
-import java.io.Serializable;
-import java.util.HashSet;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.couriers.FaultMessageException;
-import org.jboss.soa.esb.services.security.PublicCryptoUtil;
-
-/**
- * Standalone class with to send ESB messages to a 'known' [category,name].
- * <p/> arg0 - service category
- * <br/>arg1 - service name
- * <br/>arg2 - Text of message to send
- * 
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
- * @since Version 4.0
- *
- */
-public class SendEsbMessage 
-{
-    public static void main(String args[]) throws Exception
-    {
-//      Setting the ConnectionFactory such that it will use scout
-        System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
-        
-        if (args.length < 3)
-        {
-            System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
-        }
-        Message esbMessage = MessageFactory.getInstance().getMessage();
-        
-        final String message = "<say:sayHi xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" + args[2] + "</say:arg0></say:sayHi>" ;
-        esbMessage.getBody().add(message);
-        
-        ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
-        
-        Message response = null;
-        try {
-            invoker.deliverAsync(esbMessage);
-        }catch(Exception ex) {
-           ex.printStackTrace();
-        } 
-        System.exit(0);
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/publish_as_webservice_inonly/src/org/jboss/soa/esb/samples/quickstart/publishAsWebservice/test/SendEsbMessage.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,74 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss 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.soa.esb.samples.quickstart.publishAsWebservice.test;
+
+import java.util.Set;
+import java.io.Serializable;
+import java.util.HashSet;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.couriers.FaultMessageException;
+import org.jboss.soa.esb.services.security.PublicCryptoUtil;
+
+/**
+ * Standalone class with to send ESB messages to a 'known' [category,name].
+ * <p/> arg0 - service category
+ * <br/>arg1 - service name
+ * <br/>arg2 - Text of message to send
+ * 
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ * @since Version 4.0
+ *
+ */
+public class SendEsbMessage 
+{
+    public static void main(String args[]) throws Exception
+    {
+//      Setting the ConnectionFactory such that it will use scout
+        System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
+        
+        if (args.length < 3)
+        {
+            System.out.println("Usage SendEsbMessage <category> <name> <text to send>");
+        }
+        Message esbMessage = MessageFactory.getInstance().getMessage();
+        
+        final String message = "<say:sayHi xmlns:say=\"http://www.jboss.org/sayHi\"><say:arg0>" + args[2] + "</say:arg0></say:sayHi>" ;
+        esbMessage.getBody().add(message);
+        
+        ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
+        
+        Message response = null;
+        try {
+            invoker.deliverAsync(esbMessage);
+        }catch(Exception ex) {
+           ex.printStackTrace();
+        } 
+        System.exit(0);
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/readme.txt	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -30,9 +30,7 @@
   App Server turned "off" while this process is occuring.
   This process will add the JBoss ESB artifacts to your JBoss Application
   Server.
-- Almost all of these examples use RMI-based registration.
-  "helloworld_db_registration" makes a client/server connection to the registry
-  database. It assumes a MySQL DB holds the registry.
+- All of these examples use RMI-based registration.
 
 The following is a brief outline of some of the various quickstarts. If this is
 your first time working with the JBoss ESB we recommend at least trying

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,68 +0,0 @@
-<project name="Quickstart_Security_Cert" default="deploy" basedir=".">
-	
-	<description> 
-		${ant.project.name}
-		${line.separator}
-	</description>
-			
-	<!-- Import the base Ant build script... -->
-	<import file="../conf/base-build.xml"/>
-
-    <target name="quickstart-specific-checks" depends="assert-ws-available"/>
-
-    <target name="quickstart-specific-dependencies">
-        <path id="quickstart-dependencies-classpath">
-            <fileset dir="${org.jboss.esb.server.home}/client" includes="jbossws-client.jar,jboss-remoting.jar" />
-        </path>
-    </target>
-	
-    <target name="quickstart-specific-assemblies">
-        <!-- Overriden from the target of the same name in base-build.xml. -->
-        <!-- Called by the "deploy" target.  Don't call directly!! -->
-
-        <!-- Build the webservice... -->
-        <war warfile="build/${ant.project.name}.war"
-             webxml="${basedir}/war/resources/WEB-INF/web.xml">
-            <fileset dir="${basedir}/war/view">
-                <include name="**/*"/>
-            </fileset>
-        </war>
-    </target>
-
-    <target name="runtest" depends="compile" description="run tests over jms, http, and socket">
-        <antcall target="saygoodbye_over_http" />
-    </target>
-
-    <target name="saygoodbye_over_http" depends="compile">
-        <echo></echo>
-        <echo>Invoke JBR Gateway with successful login</echo>
-        <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securitycert.test.SendMessage" failonerror="true">
-            <arg value="01" />
-            <arg value="8765" />
-            <classpath refid="exec-classpath" />
-        </java>
-        <echo></echo>
-        <echo></echo>
-        <echo>Invoke JBR Gateway with unsuccessful login</echo>
-        <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securitycert.test.SendMessage" failonerror="true">
-            <arg value="02" />
-            <arg value="8765" />
-            <classpath refid="exec-classpath" />
-        </java>
-    </target>
-
-	<target name="quickstart-specific-deploys">
-        <copy todir="${build.dir}" filtering="true" overwrite="true">
-
-			<filterset>
-				<filter token="KEYSTORE_PATH" value="${basedir}/keystore"/>
-				<filter token="ROLES_FILE_PATH" value="${basedir}/roles.properties"/>
-			</filterset>
-            <fileset dir="${basedir}">
-                <include name="login-config.xml"/>
-            </fileset>
-        </copy>
-    </target>
-
-
-</project>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/build.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/build.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,68 @@
+<project name="Quickstart_Security_Cert" default="deploy" basedir=".">
+	
+	<description> 
+		${ant.project.name}
+		${line.separator}
+	</description>
+			
+	<!-- Import the base Ant build script... -->
+	<import file="../conf/base-build.xml"/>
+
+    <target name="quickstart-specific-checks" depends="assert-ws-available"/>
+
+    <target name="quickstart-specific-dependencies">
+        <path id="quickstart-dependencies-classpath">
+            <fileset dir="${org.jboss.esb.server.home}/client" includes="jbossws-client.jar,jboss-remoting.jar" />
+        </path>
+    </target>
+	
+    <target name="quickstart-specific-assemblies">
+        <!-- Overriden from the target of the same name in base-build.xml. -->
+        <!-- Called by the "deploy" target.  Don't call directly!! -->
+
+        <!-- Build the webservice... -->
+        <war warfile="build/${ant.project.name}.war"
+             webxml="${basedir}/war/resources/WEB-INF/web.xml">
+            <fileset dir="${basedir}/war/view">
+                <include name="**/*"/>
+            </fileset>
+        </war>
+    </target>
+
+    <target name="runtest" depends="compile" description="run tests over jms, http, and socket">
+        <antcall target="saygoodbye_over_http" />
+    </target>
+
+    <target name="saygoodbye_over_http" depends="compile">
+        <echo></echo>
+        <echo>Invoke JBR Gateway with successful login</echo>
+        <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securitycert.test.SendMessage" failonerror="true">
+            <arg value="01" />
+            <arg value="8765" />
+            <classpath refid="exec-classpath" />
+        </java>
+        <echo></echo>
+        <echo></echo>
+        <echo>Invoke JBR Gateway with unsuccessful login</echo>
+        <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securitycert.test.SendMessage" failonerror="true">
+            <arg value="02" />
+            <arg value="8765" />
+            <classpath refid="exec-classpath" />
+        </java>
+    </target>
+
+	<target name="quickstart-specific-deploys">
+        <copy todir="${build.dir}" filtering="true" overwrite="true">
+
+			<filterset>
+				<filter token="KEYSTORE_PATH" value="${basedir}/keystore"/>
+				<filter token="ROLES_FILE_PATH" value="${basedir}/roles.properties"/>
+			</filterset>
+            <fileset dir="${basedir}">
+                <include name="login-config.xml"/>
+            </fileset>
+        </copy>
+    </target>
+
+
+</project>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/deployment.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,6 +0,0 @@
-<jbossesb-deployment>
-    <depends>jboss.esb:deployment=soap.esb</depends>
-    <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb</depends>
-    <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb_reply
-    </depends>
-</jbossesb-deployment>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/deployment.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,6 @@
+<jbossesb-deployment>
+    <depends>jboss.esb:deployment=soap.esb</depends>
+    <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb</depends>
+    <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb_reply
+    </depends>
+</jbossesb-deployment>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jbm-queue-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbm-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-    <mbean code="org.jboss.jms.server.destination.QueueService"
-           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_gw"
-           xmbean-dd="xmdesc/Queue-xmbean.xml">
-        <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-        <depends>jboss.messaging:service=PostOffice</depends>
-    </mbean>
-    <mbean code="org.jboss.jms.server.destination.QueueService"
-           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb"
-           xmbean-dd="xmdesc/Queue-xmbean.xml">
-        <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-        <depends>jboss.messaging:service=PostOffice</depends>
-    </mbean>
-    <mbean code="org.jboss.jms.server.destination.QueueService"
-           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb_reply"
-           xmbean-dd="xmdesc/Queue-xmbean.xml">
-        <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-        <depends>jboss.messaging:service=PostOffice</depends>
-    </mbean>
-</server>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbm-queue-service.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jbm-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbm-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbm-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+    <mbean code="org.jboss.jms.server.destination.QueueService"
+           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_gw"
+           xmbean-dd="xmdesc/Queue-xmbean.xml">
+        <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+        <depends>jboss.messaging:service=PostOffice</depends>
+    </mbean>
+    <mbean code="org.jboss.jms.server.destination.QueueService"
+           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb"
+           xmbean-dd="xmdesc/Queue-xmbean.xml">
+        <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+        <depends>jboss.messaging:service=PostOffice</depends>
+    </mbean>
+    <mbean code="org.jboss.jms.server.destination.QueueService"
+           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb_reply"
+           xmbean-dd="xmdesc/Queue-xmbean.xml">
+        <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+        <depends>jboss.messaging:service=PostOffice</depends>
+    </mbean>
+</server>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jbmq-queue-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbmq-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-    <mbean code="org.jboss.mq.server.jmx.Queue"
-           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_gw">
-        <depends optional-attribute-name="DestinationManager">
-            jboss.mq:service=DestinationManager
-        </depends>
-    </mbean>
-    <mbean code="org.jboss.mq.server.jmx.Queue"
-           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb">
-        <depends optional-attribute-name="DestinationManager">
-            jboss.mq:service=DestinationManager
-        </depends>
-    </mbean>
-    <mbean code="org.jboss.mq.server.jmx.Queue"
-           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb_reply">
-        <depends optional-attribute-name="DestinationManager">
-            jboss.mq:service=DestinationManager
-        </depends>
-    </mbean>
-</server>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbmq-queue-service.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jbmq-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbmq-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbmq-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+    <mbean code="org.jboss.mq.server.jmx.Queue"
+           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_gw">
+        <depends optional-attribute-name="DestinationManager">
+            jboss.mq:service=DestinationManager
+        </depends>
+    </mbean>
+    <mbean code="org.jboss.mq.server.jmx.Queue"
+           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb">
+        <depends optional-attribute-name="DestinationManager">
+            jboss.mq:service=DestinationManager
+        </depends>
+    </mbean>
+    <mbean code="org.jboss.mq.server.jmx.Queue"
+           name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_cert_esb_reply">
+        <depends optional-attribute-name="DestinationManager">
+            jboss.mq:service=DestinationManager
+        </depends>
+    </mbean>
+</server>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jboss-esb.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,43 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb
-        xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
-        parameterReloadSecs="5">
-
-    <providers>
-        <jms-provider name="JBossMessageing" connection-factory="ConnectionFactory">
-            <jms-bus busid="quickstartEsbChannel">
-                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_security_cert_esb"/>
-            </jms-bus>
-        </jms-provider>
-
-        <jbr-provider name="JBR-Http" protocol="http" host="localhost">
-            <jbr-bus busid="Http-1" port="8765" />
-        </jbr-provider>
-
-    </providers>
-
-    <services>
-
-        <service category="MyServiceCategory" name="MyWSProducerService" description="WS Frontend speaks natively to the ESB">
-			<security moduleName="CertLogin" rolesAllowed="worker" callbackHandler="org.jboss.soa.esb.services.security.auth.login.CertCallbackHandler">
-				<property name="alias" value="certtest"/>
-			</security>
-
-            <listeners>
-                <jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true"/>
-                <jms-listener name="JMS-ESBListener" busidref="quickstartEsbChannel"/>
-            </listeners>
-            <actions>
-
-                <action name="print-before" class="org.jboss.soa.esb.samples.quickstart.securitycert.PrintSubjectAction"/>
-
-                <action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.SOAPProcessor">
-                    <property name="jbossws-endpoint" value="GoodbyeWorldWS"/>
-                </action>
-				<action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/>	
-            </actions>
-        </service>
-
-    </services>
-
-</jbossesb>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jboss-esb.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,43 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb
+        xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd"
+        parameterReloadSecs="5">
+
+    <providers>
+        <jms-provider name="JBossMessageing" connection-factory="ConnectionFactory">
+            <jms-bus busid="quickstartEsbChannel">
+                <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_security_cert_esb"/>
+            </jms-bus>
+        </jms-provider>
+
+        <jbr-provider name="JBR-Http" protocol="http" host="localhost">
+            <jbr-bus busid="Http-1" port="8765" />
+        </jbr-provider>
+
+    </providers>
+
+    <services>
+
+        <service category="MyServiceCategory" name="MyWSProducerService" description="WS Frontend speaks natively to the ESB">
+			<security moduleName="CertLogin" rolesAllowed="worker" callbackHandler="org.jboss.soa.esb.services.security.auth.login.CertCallbackHandler">
+				<property name="alias" value="certtest"/>
+			</security>
+
+            <listeners>
+                <jbr-listener name="Http-Gateway" busidref="Http-1" is-gateway="true"/>
+                <jms-listener name="JMS-ESBListener" busidref="quickstartEsbChannel"/>
+            </listeners>
+            <actions>
+
+                <action name="print-before" class="org.jboss.soa.esb.samples.quickstart.securitycert.PrintSubjectAction"/>
+
+                <action name="JBossWSAdapter" class="org.jboss.soa.esb.actions.soap.SOAPProcessor">
+                    <property name="jbossws-endpoint" value="GoodbyeWorldWS"/>
+                </action>
+				<action name="testStore" class="org.jboss.soa.esb.actions.TestMessageStore"/>	
+            </actions>
+        </service>
+
+    </services>
+
+</jbossesb>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jbossesb-properties.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  JBoss, Home of Professional Open Source
-  Copyright 2006, JBoss Inc., and others contributors as indicated 
-  by the @authors tag. All rights reserved. 
-  See the copyright.txt in the distribution for a
-  full listing of individual contributors. 
-  This copyrighted material is made available to anyone wishing to use,
-  modify, copy, or redistribute it subject to the terms and conditions
-  of the GNU Lesser General Public License, v. 2.1.
-  This program is distributed in the hope that it will be useful, but WITHOUT A 
-  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,
-  v.2.1 along with this distribution; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-  MA  02110-1301, USA.
-  
-  (C) 2005-2006,
-  @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
-  These options are described in the JBossESB manual.
-  Defaults are provided here for convenience only.
- 
-  Please read through this file prior to using the system, and consider
-  updating the specified entries.
--->
-<esb
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
-    <properties name="core">
-		<property name="org.jboss.soa.esb.jndi.server.context.factory" value="org.jnp.interfaces.NamingContextFactory"/>
-		<property name="org.jboss.soa.esb.jndi.server.url" value="${jboss.esb.bind.address}:1099"/>
-		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
-        <property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/>
-        <property name="jboss.esb.invm.scope.default" value="NONE"/>
-    </properties>
-	 <properties name="security">
-		<property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
-    </properties>
-    <properties name="registry">
-    	<property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
-    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
-    	<property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
-    	<property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
-    	<property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
-    	<property name="org.jboss.soa.esb.registry.password" value="password"/>
-    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
-    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
-    </properties>
-    <properties name="transports" depends="core">
-    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
-    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.auth" value="true"/>
-    	<property name="org.jboss.soa.esb.ftp.localdir" value="/tmp"/>
-    	<property name="org.jboss.soa.esb.ftp.remotedir" value="/tmp"/>
-    	<property name="org.jboss.soa.esb.jms.connectionPool" value="20"/>
-    	<property name="org.jboss.soa.esb.jms.sessionSleep" value="30"/>
-    </properties>
-    <properties name="connection">
-    	<property name="min-pool-size" value="5"/>
-    	<property name="max-pool=size" value="10"/>
-    	<property name="blocking-timeout-millis" value="5000"/>
-    	<property name="abandoned-connection-timeout" value="10000"/>
-    	<property name="abandoned-connection-time-interval" value="30000"/>
-    </properties>
-    <properties name="dbstore">
-    	
-    	<!--  connection manager type -->
-	    <!-- <property name="org.jboss.soa.esb.persistence.db.conn.manager" 		value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>	 -->    
-	     <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.J2eeConnectionManager"/>
-	    
-	    <!-- this property is only used if using the j2ee connection manager -->
-	    <property name="org.jboss.soa.esb.persistence.db.datasource.name" 	value="java:/JBossESBDS"/>
-		
-		<!-- standalone connection pooling settings -->
-		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
-		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
-		<property name="org.jboss.soa.esb.persistence.db.user" 				value="sa"/>
-		<property name="org.jboss.soa.esb.persistence.db.pwd" 				value=""/>		
-		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"		value="2"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"		value="5"/>
-		<!--table managed by pool to test for valid connections - created by pool automatically -->
-		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>		
-		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
-		
-    </properties>    
-    <properties name="filters">
-    	<property name="org.jboss.soa.esb.filter.1" value="org.jboss.internal.soa.esb.message.filter.MetaDataFilter"/>
-    	<property name="org.jboss.soa.esb.filter.2" value="org.jboss.internal.soa.esb.message.filter.GatewayFilter"/>
-    </properties>
-</esb>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbossesb-properties.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbossesb-properties.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, JBoss Inc., and others contributors as indicated 
+  by the @authors tag. All rights reserved. 
+  See the copyright.txt in the distribution for a
+  full listing of individual contributors. 
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU Lesser General Public License, v. 2.1.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  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,
+  v.2.1 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+  These options are described in the JBossESB manual.
+  Defaults are provided here for convenience only.
+ 
+  Please read through this file prior to using the system, and consider
+  updating the specified entries.
+-->
+<esb
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+    <properties name="core">
+		<property name="org.jboss.soa.esb.jndi.server.context.factory" value="org.jnp.interfaces.NamingContextFactory"/>
+		<property name="org.jboss.soa.esb.jndi.server.url" value="${jboss.esb.bind.address}:1099"/>
+		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+        <property name="org.jboss.soa.esb.loadbalancer.policy" value="org.jboss.soa.esb.listeners.ha.RoundRobin"/>
+        <property name="jboss.esb.invm.scope.default" value="NONE"/>
+    </properties>
+	 <properties name="security">
+		<property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.JaasSecurityService"/>
+    </properties>
+    <properties name="registry">
+    	<property name="org.jboss.soa.esb.registry.queryManagerURI" value="org.apache.juddi.registry.local.InquiryService#inquire"/>
+    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI" value="org.apache.juddi.registry.local.PublishService#publish"/>
+    	<property name="org.jboss.soa.esb.registry.implementationClass" value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.factoryClass" value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.user" value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.registry.password" value="password"/>
+    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" value="org.apache.ws.scout.transport.LocalTransport"/>
+    </properties>
+    <properties name="transports" depends="core">
+    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.auth" value="true"/>
+    	<property name="org.jboss.soa.esb.ftp.localdir" value="/tmp"/>
+    	<property name="org.jboss.soa.esb.ftp.remotedir" value="/tmp"/>
+    	<property name="org.jboss.soa.esb.jms.connectionPool" value="20"/>
+    	<property name="org.jboss.soa.esb.jms.sessionSleep" value="30"/>
+    </properties>
+    <properties name="connection">
+    	<property name="min-pool-size" value="5"/>
+    	<property name="max-pool=size" value="10"/>
+    	<property name="blocking-timeout-millis" value="5000"/>
+    	<property name="abandoned-connection-timeout" value="10000"/>
+    	<property name="abandoned-connection-time-interval" value="30000"/>
+    </properties>
+    <properties name="dbstore">
+    	
+    	<!--  connection manager type -->
+	    <!-- <property name="org.jboss.soa.esb.persistence.db.conn.manager" 		value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>	 -->    
+	     <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.J2eeConnectionManager"/>
+	    
+	    <!-- this property is only used if using the j2ee connection manager -->
+	    <property name="org.jboss.soa.esb.persistence.db.datasource.name" 	value="java:/JBossESBDS"/>
+		
+		<!-- standalone connection pooling settings -->
+		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
+		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
+		<property name="org.jboss.soa.esb.persistence.db.user" 				value="sa"/>
+		<property name="org.jboss.soa.esb.persistence.db.pwd" 				value=""/>		
+		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"		value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"		value="5"/>
+		<!--table managed by pool to test for valid connections - created by pool automatically -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>		
+		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
+		
+    </properties>    
+    <properties name="filters">
+    	<property name="org.jboss.soa.esb.filter.1" value="org.jboss.internal.soa.esb.message.filter.MetaDataFilter"/>
+    	<property name="org.jboss.soa.esb.filter.2" value="org.jboss.internal.soa.esb.message.filter.GatewayFilter"/>
+    </properties>
+</esb>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jndi.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jndi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jndi.properties (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jndi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/jndi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/keystore
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/keystore (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/keystore)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/log4j.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Log4j Configuration                                                  -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
-   | 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">
-
-   <!-- ============================== -->
-   <!-- Append messages to the console -->
-   <!-- ============================== -->
-
-   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-      <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 [%t][%c{1}] %m%n"/>
-      </layout>
-   </appender>
-
-   <!-- ================================= -->
-   <!-- Preserve messages in a local file -->
-   <!-- ================================= -->
-
-   <!-- A size based file rolling appender -->
-   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
-     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-     <param name="File" value="./listener.log"/>
-     <param name="Append" value="false"/>
-     <param name="MaxFileSize" value="500KB"/>
-     <param name="MaxBackupIndex" value="1"/>
-
-     <layout class="org.apache.log4j.PatternLayout">
-       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
-     </layout>	    
-   </appender>
-
-   <!-- ================ -->
-   <!-- Limit categories -->
-   <!-- ================ -->
-
-   <category name="org.jboss">
-      <priority value="WARN"/>
-   </category>
-   <category name="org.jboss.soa.esb">
-      <priority value="ERROR"/>
-   </category>
-   <category name="org.jboss.internal.soa.esb">
-      <priority value="ERROR"/>
-   </category>
-   <category name="org.apache">
-      <priority value="ERROR"/>
-   </category>
-   <category name="quickstart">
-      <priority value="INFO"/>
-   </category>
-   <!-- ======================= -->
-   <!-- Setup the Root category -->
-   <!-- ======================= -->
-
-   <root>
-      <appender-ref ref="CONSOLE"/>
-      <appender-ref ref="FILE"/>
-   </root>
-
-</log4j:configuration>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/log4j.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/log4j.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+   | 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">
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <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 [%t][%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A size based file rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="./listener.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+     </layout>	    
+   </appender>
+
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <category name="org.jboss">
+      <priority value="WARN"/>
+   </category>
+   <category name="org.jboss.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.jboss.internal.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.apache">
+      <priority value="ERROR"/>
+   </category>
+   <category name="quickstart">
+      <priority value="INFO"/>
+   </category>
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/login-config.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/login-config.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/login-config.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,10 +0,0 @@
-	<!-- To be pasted into <server>/<configname>/conf/login-config.xml -->
-    <application-policy name = "CertLogin">
-        <authentication>
-             <login-module code = "org.jboss.soa.esb.services.security.auth.login.CertificateLoginModule" flag = "required" >
-                <module-option name = "keyStoreURL">file://@KEYSTORE_PATH@</module-option>
-                <module-option name = "keyStorePassword">storepassword</module-option>
-                <module-option name = "rolesPropertiesFile">file://@ROLES_FILE_PATH@</module-option>
-          </login-module>
-        </authentication>
-    </application-policy>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/login-config.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/login-config.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/login-config.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/login-config.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,10 @@
+	<!-- To be pasted into <server>/<configname>/conf/login-config.xml -->
+    <application-policy name = "CertLogin">
+        <authentication>
+             <login-module code = "org.jboss.soa.esb.services.security.auth.login.CertificateLoginModule" flag = "required" >
+                <module-option name = "keyStoreURL">file://@KEYSTORE_PATH@</module-option>
+                <module-option name = "keyStorePassword">storepassword</module-option>
+                <module-option name = "rolesPropertiesFile">file://@ROLES_FILE_PATH@</module-option>
+          </login-module>
+        </authentication>
+    </application-policy>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/readme.txt	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,109 +0,0 @@
-Overview:
-
-=========
-
-  This quickstart aims demonstrate how certificate based authentication can be configured in JBossESB.
-  Authentication is done by verifying that the certificate that is passed to the ESB by the calling client
-
-  can be verified against a certificate in a local keystore. 
-  The certifcate to be verified against is specified using an alias which is configured in jboss-esb.xml
-
-
-  When executing this quickstart two calls will be made to the ESB service: 
-  1. This call will use the content of the following file as its payload 
-	 src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml
-	 soap_messsag_01.xml contains a security header with the certificate of the alias 'certtest'.
-	 This certificate matches the certificate in our keystore and this call will succeed.
-
-  2. This call will use the content of the following file as its payload 
-	 src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml
-	 soap_messsag_01.xml contains a security header with the certificate of the alias 'certtest2'.
-	 This certificate does not match the certificate in our keystore and this call will not succeed.
-
-  The keystore used for this quickstart is named 'keystore' and can be found in the same directory as this
-  readme.txt file.
-	
-
-
-Running this quickstart:
-
-========================
-
-  Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
-
-  and a more detailed descripton of the different ways to run the quickstarts.
-
-
-
-  Note, this quickstart requires an ESB and JBossWS installation into
-
-  JBoss AS 4.2.0.GA.  Installation instructions for both can be found in the
-
-  install/readme.txt.
-
-
-
-To Run:
-
-=======
-
-  1. Type 'ant deploy'.
-
-  2. Copy the xml element from build/login-config.xml and paste it into your servers conf/login-config.xml
-	 This contains the login module configuration used by this quickstart.
-  3. Restart you jbossesb server. This is needed so that the security configuration get picked up.
-  4. Type 'ant runtest'.
-
-  5. Switch back to Application Server console to see the output from the ESB
-
-  6. In this folder ("Window1"), type 'ant undeploy'.
-
-
-
-Things to look for in this quickstart:
-
-======================================
-
-  1.Security configuration in jboss-esb.xml
-
-	<security moduleName="CertLogin" rolesAllowed="worker" callbackHandler="org.jboss.soa.esb.services.security.auth.login.CertCallbackHandler">
-		<property name="alias" value="certtest"/>
-	</security>
-	# 'moduleName' identified the JAAS Login Module to use. This is an index into the file login-config.xml file.
-	# 'rolesAllowed' lists the roles that are allowed to execute this service. To see how the roles are mapped please see item 3 below.
-	# 'alias' specifies the alias that will be used to identify a certificate in the keystore.	
-
-	# 'callbackHandler' is the an ESB implementation of a JAAS Callback handler which provides access to the authentication request and also the above security configuration. 
-
-
-
-  2.JAAS Configuration
-    <application-policy name = "CertLogin">
-        <authentication>
-             <login-module code = "org.jboss.soa.esb.services.security.auth.login.CertificateLoginModule" flag = "required" >
-                <module-option name = "keyStoreURL">file://@KEYSTORE_PATH@</module-option>
-                <module-option name = "keyStorePassword">storepassword</module-option>
-                <module-option name = "rolesPropertiesFile">file://@ROLES_FILE_PATH@</module-option>
-          </login-module>
-        </authentication>
-    </application-policy>
-	# CertificateLoginModule is the login module that will be used.
-	# 'keyStoreURL' is the path to the keystore that will be used to verify the certificates. This can be a file on the local file system or on the classpath.
-	# 'keyStorePassword' is the password to the keystore.
-	# 'rolesPropertiesFile' path to a file containing role mappings. Please see the next item for more information about the roles mapping.
-
-  3.Role Mapping
-	This file is can be optionally specified in login-config.xml by using the 'rolesPropertiesFile'. This can point to a file on the local file system or to
-	a file on the classpath.
-	The is an example of such a file:
-		# user=role1,role2,...
-		guest=guest
-		esbuser=esbrole
-
-		# The current implementation will use the Common Name(CN) specified for the certificate as the 
-		# user name. The unicode escape is needed only if your CN contains a space.
-		Daniel\u0020Bevenius=esbrole,worker
-
-
-
-

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/readme.txt (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/readme.txt	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,109 @@
+Overview:
+
+=========
+
+  This quickstart aims demonstrate how certificate based authentication can be configured in JBossESB.
+  Authentication is done by verifying that the certificate that is passed to the ESB by the calling client
+
+  can be verified against a certificate in a local keystore. 
+  The certifcate to be verified against is specified using an alias which is configured in jboss-esb.xml
+
+
+  When executing this quickstart two calls will be made to the ESB service: 
+  1. This call will use the content of the following file as its payload 
+	 src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml
+	 soap_messsag_01.xml contains a security header with the certificate of the alias 'certtest'.
+	 This certificate matches the certificate in our keystore and this call will succeed.
+
+  2. This call will use the content of the following file as its payload 
+	 src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml
+	 soap_messsag_01.xml contains a security header with the certificate of the alias 'certtest2'.
+	 This certificate does not match the certificate in our keystore and this call will not succeed.
+
+  The keystore used for this quickstart is named 'keystore' and can be found in the same directory as this
+  readme.txt file.
+	
+
+
+Running this quickstart:
+
+========================
+
+  Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+
+  and a more detailed descripton of the different ways to run the quickstarts.
+
+
+
+  Note, this quickstart requires an ESB and JBossWS installation into
+
+  JBoss AS 4.2.0.GA.  Installation instructions for both can be found in the
+
+  install/readme.txt.
+
+
+
+To Run:
+
+=======
+
+  1. Type 'ant deploy'.
+
+  2. Copy the xml element from build/login-config.xml and paste it into your servers conf/login-config.xml
+	 This contains the login module configuration used by this quickstart.
+  3. Restart you jbossesb server. This is needed so that the security configuration get picked up.
+  4. Type 'ant runtest'.
+
+  5. Switch back to Application Server console to see the output from the ESB
+
+  6. In this folder ("Window1"), type 'ant undeploy'.
+
+
+
+Things to look for in this quickstart:
+
+======================================
+
+  1.Security configuration in jboss-esb.xml
+
+	<security moduleName="CertLogin" rolesAllowed="worker" callbackHandler="org.jboss.soa.esb.services.security.auth.login.CertCallbackHandler">
+		<property name="alias" value="certtest"/>
+	</security>
+	# 'moduleName' identified the JAAS Login Module to use. This is an index into the file login-config.xml file.
+	# 'rolesAllowed' lists the roles that are allowed to execute this service. To see how the roles are mapped please see item 3 below.
+	# 'alias' specifies the alias that will be used to identify a certificate in the keystore.	
+
+	# 'callbackHandler' is the an ESB implementation of a JAAS Callback handler which provides access to the authentication request and also the above security configuration. 
+
+
+
+  2.JAAS Configuration
+    <application-policy name = "CertLogin">
+        <authentication>
+             <login-module code = "org.jboss.soa.esb.services.security.auth.login.CertificateLoginModule" flag = "required" >
+                <module-option name = "keyStoreURL">file://@KEYSTORE_PATH@</module-option>
+                <module-option name = "keyStorePassword">storepassword</module-option>
+                <module-option name = "rolesPropertiesFile">file://@ROLES_FILE_PATH@</module-option>
+          </login-module>
+        </authentication>
+    </application-policy>
+	# CertificateLoginModule is the login module that will be used.
+	# 'keyStoreURL' is the path to the keystore that will be used to verify the certificates. This can be a file on the local file system or on the classpath.
+	# 'keyStorePassword' is the password to the keystore.
+	# 'rolesPropertiesFile' path to a file containing role mappings. Please see the next item for more information about the roles mapping.
+
+  3.Role Mapping
+	This file is can be optionally specified in login-config.xml by using the 'rolesPropertiesFile'. This can point to a file on the local file system or to
+	a file on the classpath.
+	The is an example of such a file:
+		# user=role1,role2,...
+		guest=guest
+		esbuser=esbrole
+
+		# The current implementation will use the Common Name(CN) specified for the certificate as the 
+		# user name. The unicode escape is needed only if your CN contains a space.
+		Daniel\u0020Bevenius=esbrole,worker
+
+
+
+

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/roles.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/roles.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/roles.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,6 +0,0 @@
-# user=role1,role2,...
-guest=guest
-esbuser=esbrole
-
-# sort of ugly but can be used when a CN contains a space character.
-Daniel\u0020Bevenius=esbrole,worker

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/roles.properties (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/roles.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/roles.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/roles.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,6 @@
+# user=role1,role2,...
+guest=guest
+esbuser=esbrole
+
+# sort of ugly but can be used when a CN contains a space character.
+Daniel\u0020Bevenius=esbrole,worker

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,58 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.securitycert;
-
-
-import java.net.URL;
-import java.io.File;
-import java.io.FilePermission;
-import java.security.AccessControlContext;
-import java.security.AccessController;
-import java.security.CodeSource;
-import java.security.Permissions;
-import java.security.PermissionCollection;
-import java.security.Policy;
-
-import javax.security.auth.Subject;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-
-public class PrintSubjectAction extends AbstractActionLifecycle
-{
-    
-  protected ConfigTree	config;
-	  
-  public PrintSubjectAction(ConfigTree config) throws ConfigurationException
-  { 
-	  this.config = config; 
-  } 
-  
-  public Message process(Message message) throws Exception
-  {
-	  System.out.println("SecurityContext " + message.getProperties().getProperty("org.jboss.soa.esb.services.security.context"));
-	  System.out.println("Subject : " + Subject.getSubject(AccessController.getContext()));
-	  return message; 
-  }
-	
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/PrintSubjectAction.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,58 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.securitycert;
+
+
+import java.net.URL;
+import java.io.File;
+import java.io.FilePermission;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.CodeSource;
+import java.security.Permissions;
+import java.security.PermissionCollection;
+import java.security.Policy;
+
+import javax.security.auth.Subject;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+public class PrintSubjectAction extends AbstractActionLifecycle
+{
+    
+  protected ConfigTree	config;
+	  
+  public PrintSubjectAction(ConfigTree config) throws ConfigurationException
+  { 
+	  this.config = config; 
+  } 
+  
+  public Message process(Message message) throws Exception
+  {
+	  System.out.println("SecurityContext " + message.getProperties().getProperty("org.jboss.soa.esb.services.security.context"));
+	  System.out.println("Subject : " + Subject.getSubject(AccessController.getContext()));
+	  return message; 
+  }
+	
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,123 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.securitycert.test;
-
-import org.jboss.internal.soa.esb.util.StreamUtils;
-import org.jboss.remoting.InvokerLocator;
-import org.jboss.remoting.Client;
-
-import javax.jms.JMSException;
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
-import javax.jms.QueueSender;
-import javax.jms.QueueSession;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import java.net.InetAddress;
-
-import org.jboss.soa.esb.actions.StoreMessageToFile;
-
-public class SendMessage {
-    QueueConnection conn;
-    QueueSession session;
-    Queue que;
-
-    public void sendMessageOverJMS(String message) throws JMSException, NamingException {
-        QueueSender sender = null;
-
-    	setupJMSConnection();
-        try {
-            ObjectMessage tm = null;
-
-            sender = session.createSender(que);
-            tm = session.createObjectMessage(message);
-	    tm.setStringProperty(StoreMessageToFile.PROPERTY_JBESB_FILENAME, "WebServiceProducerTest.log");
-            sender.send(tm);
-        } finally {
-            if(sender != null) {
-                sender.close();
-            }
-            cleanupJMSConnection();
-        }
-    }
-
-    private void sendMessageToJBRListener(String protocol, int port, String message) throws Throwable {
-        String locatorURI = protocol + "://localhost:" + port;
-        InvokerLocator locator = new InvokerLocator(locatorURI);
-        System.out.println("Calling JBoss Remoting Listener using locator URI: " + locatorURI);
-
-        Client remotingClient = null;
-        try {
-            remotingClient = new Client(locator);
-            remotingClient.connect();
-
-            // Deliver the message to the listener...
-            Object response = remotingClient.invoke(message);
-            System.out.println("JBR Class: " + response.getClass().getName());
-            System.out.println("Response from JBoss Remoting Listener '" + locatorURI + "' was '" + response + "'.");
-        } finally {
-            if(remotingClient != null) {
-                remotingClient.disconnect();
-            }
-        }
-    }
-
-    public void setupJMSConnection() throws JMSException, NamingException
-    {
-    	InitialContext iniCtx = new InitialContext();
-    	Object tmp = iniCtx.lookup("ConnectionFactory");
-    	QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
-    	conn = qcf.createQueueConnection();
-    	que = (Queue) iniCtx.lookup("queue/quickstart_security_cert_secured_gw");
-    	session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
-    	conn.start();
-    }
-
-    public void cleanupJMSConnection() throws JMSException
-    {
-        conn.stop();
-        session.close();
-        conn.close();
-    }
-
-    private static String getMessage(String messageNum) {
-        String msg = new String(StreamUtils.readStream(SendMessage.class.getResourceAsStream("soap_message_" + messageNum + ".xml")));
-        return msg;
-    }
-
-    public static void main(String args[]) throws Throwable
-    {        	    	
-    	SendMessage sm = new SendMessage();
-        String msg = getMessage(args[0]);
-
-		try
-		{
-			sm.sendMessageToJBRListener("http", Integer.parseInt(args[1]), msg);
-		}
-		catch(final Exception e)
-		{
-			System.err.println("Call was not successful. See server.log for details. Exception was:");
-			e.printStackTrace();	
-		}
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/SendMessage.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,123 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.securitycert.test;
+
+import org.jboss.internal.soa.esb.util.StreamUtils;
+import org.jboss.remoting.InvokerLocator;
+import org.jboss.remoting.Client;
+
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSender;
+import javax.jms.QueueSession;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import java.net.InetAddress;
+
+import org.jboss.soa.esb.actions.StoreMessageToFile;
+
+public class SendMessage {
+    QueueConnection conn;
+    QueueSession session;
+    Queue que;
+
+    public void sendMessageOverJMS(String message) throws JMSException, NamingException {
+        QueueSender sender = null;
+
+    	setupJMSConnection();
+        try {
+            ObjectMessage tm = null;
+
+            sender = session.createSender(que);
+            tm = session.createObjectMessage(message);
+	    tm.setStringProperty(StoreMessageToFile.PROPERTY_JBESB_FILENAME, "WebServiceProducerTest.log");
+            sender.send(tm);
+        } finally {
+            if(sender != null) {
+                sender.close();
+            }
+            cleanupJMSConnection();
+        }
+    }
+
+    private void sendMessageToJBRListener(String protocol, int port, String message) throws Throwable {
+        String locatorURI = protocol + "://localhost:" + port;
+        InvokerLocator locator = new InvokerLocator(locatorURI);
+        System.out.println("Calling JBoss Remoting Listener using locator URI: " + locatorURI);
+
+        Client remotingClient = null;
+        try {
+            remotingClient = new Client(locator);
+            remotingClient.connect();
+
+            // Deliver the message to the listener...
+            Object response = remotingClient.invoke(message);
+            System.out.println("JBR Class: " + response.getClass().getName());
+            System.out.println("Response from JBoss Remoting Listener '" + locatorURI + "' was '" + response + "'.");
+        } finally {
+            if(remotingClient != null) {
+                remotingClient.disconnect();
+            }
+        }
+    }
+
+    public void setupJMSConnection() throws JMSException, NamingException
+    {
+    	InitialContext iniCtx = new InitialContext();
+    	Object tmp = iniCtx.lookup("ConnectionFactory");
+    	QueueConnectionFactory qcf = (QueueConnectionFactory) tmp;
+    	conn = qcf.createQueueConnection();
+    	que = (Queue) iniCtx.lookup("queue/quickstart_security_cert_secured_gw");
+    	session = conn.createQueueSession(false, QueueSession.AUTO_ACKNOWLEDGE);
+    	conn.start();
+    }
+
+    public void cleanupJMSConnection() throws JMSException
+    {
+        conn.stop();
+        session.close();
+        conn.close();
+    }
+
+    private static String getMessage(String messageNum) {
+        String msg = new String(StreamUtils.readStream(SendMessage.class.getResourceAsStream("soap_message_" + messageNum + ".xml")));
+        return msg;
+    }
+
+    public static void main(String args[]) throws Throwable
+    {        	    	
+    	SendMessage sm = new SendMessage();
+        String msg = getMessage(args[0]);
+
+		try
+		{
+			sm.sendMessageToJBRListener("http", Integer.parseInt(args[1]), msg);
+		}
+		catch(final Exception e)
+		{
+			System.err.println("Call was not successful. See server.log for details. Exception was:");
+			e.printStackTrace();	
+		}
+    }
+}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,22 +0,0 @@
-<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:good="http://security_cert/goodbyeworld">
-   <soapenv:Header>
-	<wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
-			<wsse:BinarySecurityToken EncodingType='wsse:Base64Binary' ValueType='wsse:X509v3'>MIICVDCCAb0CBEj0PZ4wDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
-b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
-Qm9zczEYMBYGA1UEAxMPRGFuaWVsIEJldmVuaXVzMB4XDTA4MTAxNDA2MzUxMFoXDTExMDcxMDA2
-MzUxMFowcTELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2to
-b2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEYMBYGA1UEAxMPRGFuaWVsIEJl
-dmVuaXVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCPwfTNhUsBYIi+h5mt/tzcHRl2Uh//
-/alzFsGint0rlFRRa/LJ/6XSwviVbMXitpqUCw3Qknf6e4xRFJpfv35FALqyRJmwMjsgpy9GjWM9
-HHpCXetrpop7sWF3C8etwfv1T/mKk6jcQ4tX2So2Wjv1Lb3zqj/5Pgj8Pcy+oecZfwIDAQABMA0G
-CSqGSIb3DQEBBAUAA4GBADWjrmaDi01ZUAIAHim6hnNbuh9X+uszrkwglSjVDOKkuPjX8lgrlR9i
-jNP7gnwGg2+bQXW4P17BViwN9Kd00+hNkXw9smimPvUnGRAbX/I8ntQqfKs3dq1E3yBT4NZmb3Bc
-h6tJtOWrUv0mEl1pkOGFcDvP5Gsq70jAtwC/9Cge</wsse:BinarySecurityToken>
-		</wsse:Security>
-   </soapenv:Header>
-   <soapenv:Body>
-      <good:sayGoodbye>
-         <message>Goodbye!!</message>
-      </good:sayGoodbye>
-   </soapenv:Body>
-</soapenv:Envelope>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_01.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,22 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:good="http://security_cert/goodbyeworld">
+   <soapenv:Header>
+	<wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
+			<wsse:BinarySecurityToken EncodingType='wsse:Base64Binary' ValueType='wsse:X509v3'>MIICVDCCAb0CBEj0PZ4wDQYJKoZIhvcNAQEEBQAwcTELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0
+b2NraG9sbTESMBAGA1UEBxMJU3RvY2tob2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVK
+Qm9zczEYMBYGA1UEAxMPRGFuaWVsIEJldmVuaXVzMB4XDTA4MTAxNDA2MzUxMFoXDTExMDcxMDA2
+MzUxMFowcTELMAkGA1UEBhMCU0UxEjAQBgNVBAgTCVN0b2NraG9sbTESMBAGA1UEBxMJU3RvY2to
+b2xtMRAwDgYDVQQKEwdSZWQgSGF0MQ4wDAYDVQQLEwVKQm9zczEYMBYGA1UEAxMPRGFuaWVsIEJl
+dmVuaXVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCPwfTNhUsBYIi+h5mt/tzcHRl2Uh//
+/alzFsGint0rlFRRa/LJ/6XSwviVbMXitpqUCw3Qknf6e4xRFJpfv35FALqyRJmwMjsgpy9GjWM9
+HHpCXetrpop7sWF3C8etwfv1T/mKk6jcQ4tX2So2Wjv1Lb3zqj/5Pgj8Pcy+oecZfwIDAQABMA0G
+CSqGSIb3DQEBBAUAA4GBADWjrmaDi01ZUAIAHim6hnNbuh9X+uszrkwglSjVDOKkuPjX8lgrlR9i
+jNP7gnwGg2+bQXW4P17BViwN9Kd00+hNkXw9smimPvUnGRAbX/I8ntQqfKs3dq1E3yBT4NZmb3Bc
+h6tJtOWrUv0mEl1pkOGFcDvP5Gsq70jAtwC/9Cge</wsse:BinarySecurityToken>
+		</wsse:Security>
+   </soapenv:Header>
+   <soapenv:Body>
+      <good:sayGoodbye>
+         <message>Goodbye!!</message>
+      </good:sayGoodbye>
+   </soapenv:Body>
+</soapenv:Envelope>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,21 +0,0 @@
-<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:good="http://security_cert/goodbyeworld">
-	<soapenv:Header>
-    <wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
-            <wsse:BinarySecurityToken EncodingType='wsse:Base64Binary' ValueType='wsse:X509v3'>MIICIjCCAYsCBEj0TGMwDQYJKoZIhvcNAQEEBQAwWDELMAkGA1UEBhMCQkIxDDAKBgNVBAgTA0Jh
-ZDEMMAoGA1UEBxMDQmFkMQwwCgYDVQQKEwNCYWQxDDAKBgNVBAsTA0JhZDERMA8GA1UEAxMIQmFk
-IHVzZXIwHhcNMDgxMDE0MDczODExWhcNMTEwNzEwMDczODExWjBYMQswCQYDVQQGEwJCQjEMMAoG
-A1UECBMDQmFkMQwwCgYDVQQHEwNCYWQxDDAKBgNVBAoTA0JhZDEMMAoGA1UECxMDQmFkMREwDwYD
-VQQDEwhCYWQgdXNlcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAhlb/SagmAPrp5+CqSexB
-/X/GhdtaYXQHY0rKvyE/E2g5bKsXDcNAUu9ZwHmUHIPoyHTGTdQbYgQVbehOPys2RiyQr7MOP1L7
-X+H2YC6Fce55eydFliIFDKq9+991fmPSOZ6lz/vYnfN4fEwMuw4CbJ2Zlt+vb44AvVVyZHZpZykC
-AwEAATANBgkqhkiG9w0BAQQFAAOBgQB5fMiT7ApyoUoP3dq9rmpjrUxKIxBvbkWCWrR9KyN7kPT6
-/zDcqlmljjhVWZdOEQ6dTOmuA56fvNE8WO1xLq6F+OZZni3IDQ/cPgqEa/REOuv+tFGK08Te0WIe
-3Ff5vodp0s+H/X75X2Sy3ZbZMXCV115q5rASRbOjsxE5fVaRMw==</wsse:BinarySecurityToken>
-        </wsse:Security>
-   </soapenv:Header>
-   <soapenv:Body>
-      <good:sayGoodbyeWithoutResponse>
-         <message>Goodbye!!</message>
-      </good:sayGoodbyeWithoutResponse>
-   </soapenv:Body>
-</soapenv:Envelope>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/test/soap_message_02.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,21 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:good="http://security_cert/goodbyeworld">
+	<soapenv:Header>
+    <wsse:Security xmlns:wsse='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd'>
+            <wsse:BinarySecurityToken EncodingType='wsse:Base64Binary' ValueType='wsse:X509v3'>MIICIjCCAYsCBEj0TGMwDQYJKoZIhvcNAQEEBQAwWDELMAkGA1UEBhMCQkIxDDAKBgNVBAgTA0Jh
+ZDEMMAoGA1UEBxMDQmFkMQwwCgYDVQQKEwNCYWQxDDAKBgNVBAsTA0JhZDERMA8GA1UEAxMIQmFk
+IHVzZXIwHhcNMDgxMDE0MDczODExWhcNMTEwNzEwMDczODExWjBYMQswCQYDVQQGEwJCQjEMMAoG
+A1UECBMDQmFkMQwwCgYDVQQHEwNCYWQxDDAKBgNVBAoTA0JhZDEMMAoGA1UECxMDQmFkMREwDwYD
+VQQDEwhCYWQgdXNlcjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAhlb/SagmAPrp5+CqSexB
+/X/GhdtaYXQHY0rKvyE/E2g5bKsXDcNAUu9ZwHmUHIPoyHTGTdQbYgQVbehOPys2RiyQr7MOP1L7
+X+H2YC6Fce55eydFliIFDKq9+991fmPSOZ6lz/vYnfN4fEwMuw4CbJ2Zlt+vb44AvVVyZHZpZykC
+AwEAATANBgkqhkiG9w0BAQQFAAOBgQB5fMiT7ApyoUoP3dq9rmpjrUxKIxBvbkWCWrR9KyN7kPT6
+/zDcqlmljjhVWZdOEQ6dTOmuA56fvNE8WO1xLq6F+OZZni3IDQ/cPgqEa/REOuv+tFGK08Te0WIe
+3Ff5vodp0s+H/X75X2Sy3ZbZMXCV115q5rASRbOjsxE5fVaRMw==</wsse:BinarySecurityToken>
+        </wsse:Security>
+   </soapenv:Header>
+   <soapenv:Body>
+      <good:sayGoodbyeWithoutResponse>
+         <message>Goodbye!!</message>
+      </good:sayGoodbyeWithoutResponse>
+   </soapenv:Body>
+</soapenv:Envelope>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,54 +0,0 @@
-package org.jboss.soa.esb.samples.quickstart.securitycert.webservice;
-
-import javax.jws.WebService;
-import javax.jws.WebMethod;
-import javax.jws.Oneway;
-import javax.jws.WebParam;
-import javax.jws.soap.SOAPBinding;
-
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.Body;
-import org.jboss.soa.esb.actions.ActionUtils;
-import org.jboss.soa.esb.actions.soap.SOAPProcessor;
-
-/**
- * @author
- */
- at WebService(name = "GoodbyeWorldWS", targetNamespace="http://security_cert/goodbyeworld")
-public class GoodbyeWorldWS {
-
-    @WebMethod
-    public String sayGoodbye(@WebParam(name="message") String message) {
-
-        Message esbMessage = SOAPProcessor.getMessage();
-        if(esbMessage != null) {
-            System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
-            // System.out.println("\n" + esbMessage.toString() + "\n");
-        }
-        System.out.println("Web Service Parameter - message=" + message);
-        return "... Ah Goodbye then!!!! - " + message;
-    }
-
-    @WebMethod
-    public String sayAdios(String message) {
-        Message esbMessage = SOAPProcessor.getMessage();
-        if(esbMessage != null) {
-            System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
-            // System.out.println("\n" + esbMessage.toString() + "\n");
-        }
-        System.out.println("Web Service Parameter - message=" + message);
-        return "... Adios Amigo!!!! - " + message;
-    }
-    
-    @WebMethod
-    @Oneway
-    public void sayGoodbyeWithoutResponse(@WebParam(name="message") String message) {
-
-        Message esbMessage = SOAPProcessor.getMessage();
-        if(esbMessage != null) {
-            System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
-        }
-        System.out.println("Web Service Parameter - message=" + message);
-    }
-    
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/src/org/jboss/soa/esb/samples/quickstart/securitycert/webservice/GoodbyeWorldWS.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,54 @@
+package org.jboss.soa.esb.samples.quickstart.securitycert.webservice;
+
+import javax.jws.WebService;
+import javax.jws.WebMethod;
+import javax.jws.Oneway;
+import javax.jws.WebParam;
+import javax.jws.soap.SOAPBinding;
+
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.Body;
+import org.jboss.soa.esb.actions.ActionUtils;
+import org.jboss.soa.esb.actions.soap.SOAPProcessor;
+
+/**
+ * @author
+ */
+ at WebService(name = "GoodbyeWorldWS", targetNamespace="http://security_cert/goodbyeworld")
+public class GoodbyeWorldWS {
+
+    @WebMethod
+    public String sayGoodbye(@WebParam(name="message") String message) {
+
+        Message esbMessage = SOAPProcessor.getMessage();
+        if(esbMessage != null) {
+            System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
+            // System.out.println("\n" + esbMessage.toString() + "\n");
+        }
+        System.out.println("Web Service Parameter - message=" + message);
+        return "... Ah Goodbye then!!!! - " + message;
+    }
+
+    @WebMethod
+    public String sayAdios(String message) {
+        Message esbMessage = SOAPProcessor.getMessage();
+        if(esbMessage != null) {
+            System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
+            // System.out.println("\n" + esbMessage.toString() + "\n");
+        }
+        System.out.println("Web Service Parameter - message=" + message);
+        return "... Adios Amigo!!!! - " + message;
+    }
+    
+    @WebMethod
+    @Oneway
+    public void sayGoodbyeWithoutResponse(@WebParam(name="message") String message) {
+
+        Message esbMessage = SOAPProcessor.getMessage();
+        if(esbMessage != null) {
+            System.out.println("**** SOAPRequest perhaps mediated by ESB:\n" + esbMessage.getBody().get());
+        }
+        System.out.println("Web Service Parameter - message=" + message);
+    }
+    
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/war)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/war/resources)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/war/resources/WEB-INF)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
-         version="2.4">
-
-    <servlet>
-        <servlet-name>GoodbyeWorldWS</servlet-name>
-        <servlet-class>org.jboss.soa.esb.samples.quickstart.securitycert.webservice.GoodbyeWorldWS</servlet-class>
-    </servlet>
-
-    <servlet-mapping>
-        <servlet-name>GoodbyeWorldWS</servlet-name>
-        <url-pattern>/GoodbyeWorldWS</url-pattern>
-    </servlet-mapping>
-
-</web-app>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/resources/WEB-INF/web.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+         version="2.4">
+
+    <servlet>
+        <servlet-name>GoodbyeWorldWS</servlet-name>
+        <servlet-class>org.jboss.soa.esb.samples.quickstart.securitycert.webservice.GoodbyeWorldWS</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>GoodbyeWorldWS</servlet-name>
+        <url-pattern>/GoodbyeWorldWS</url-pattern>
+    </servlet-mapping>
+
+</web-app>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/war/view)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/index.jsp
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_cert/war/view/index.jsp	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/index.jsp	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-<html>
-	<body>
-		This is just a place holder.<br>
-		Verify the that the WS has been deployed by hitting 
-			<a href="http://localhost:8080/jbossws">
-				http://localhost:8080/jbossws
-			</a>
-  </body>
-</html>	
\ No newline at end of file

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/index.jsp (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_cert/war/view/index.jsp)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/index.jsp	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_cert/war/view/index.jsp	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,9 @@
+<html>
+	<body>
+		This is just a place holder.<br>
+		Verify the that the WS has been deployed by hitting 
+			<a href="http://localhost:8080/jbossws">
+				http://localhost:8080/jbossws
+			</a>
+  </body>
+</html>	
\ No newline at end of file

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,43 +0,0 @@
-<project name="Quickstart_security_jbpm" default="run" basedir=".">
-	
-	<description> 
-		${ant.project.name}
-		${line.separator}
-	</description>
-
-	<property name="username" value="esbuser" />
-    <property name="password" value="esbpassword" />
-
-
-	<!-- additional deploys
-	<property name="additional.deploys" value="*.xsd"/>
-	 -->
-
-	<!-- Import the base Ant build script... -->
-	<import file="../conf/base-build.xml"/>
-
-     <target name="runtest" depends="compile" description="send esb Message to esb service">
-        <echo>Send esb message to esb service and get response</echo>
-        <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securityjbpm.test.SendEsbMessage" failonerror="true">
-            <arg value="ESBServiceSample"/> <!--  service category -->
-            <arg value="HelloWorldStartServiceProcess"/>  <!--  service name -->
-            <arg value="Hello Secured World"/> <!--  Message text -->
-            <arg value="${username}"/> <!--  username text -->
-            <arg value="${password}"/> <!--  password text -->
-            <classpath refid="exec-classpath"/>
-        </java>
-    </target>
-
-	<target name="deployProcess" description="deploys the process definition" depends="dependencies">
-		<echo>Deploy the process definition</echo>
-		<taskdef name="deployToServer" classname="org.jbpm.ant.DeployProcessToServerTask">
-			<classpath refid="exec-classpath"/>
-		</taskdef>
-		<deployToServer username="${jbpm.console.username}" password="${jbpm.console.password}" serverDeployer="${org.jboss.esb.jbpm.console.upload.url}">
-			<fileset dir="${basedir}/processDefinition" includes="*"/>
-		</deployToServer>
-	</target>
-
-
-	
-</project>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/build.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/build.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,43 @@
+<project name="Quickstart_security_jbpm" default="run" basedir=".">
+	
+	<description> 
+		${ant.project.name}
+		${line.separator}
+	</description>
+
+	<property name="username" value="esbuser" />
+    <property name="password" value="esbpassword" />
+
+
+	<!-- additional deploys
+	<property name="additional.deploys" value="*.xsd"/>
+	 -->
+
+	<!-- Import the base Ant build script... -->
+	<import file="../conf/base-build.xml"/>
+
+     <target name="runtest" depends="compile" description="send esb Message to esb service">
+        <echo>Send esb message to esb service and get response</echo>
+        <java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.securityjbpm.test.SendEsbMessage" failonerror="true">
+            <arg value="ESBServiceSample"/> <!--  service category -->
+            <arg value="HelloWorldStartServiceProcess"/>  <!--  service name -->
+            <arg value="Hello Secured World"/> <!--  Message text -->
+            <arg value="${username}"/> <!--  username text -->
+            <arg value="${password}"/> <!--  password text -->
+            <classpath refid="exec-classpath"/>
+        </java>
+    </target>
+
+	<target name="deployProcess" description="deploys the process definition" depends="dependencies">
+		<echo>Deploy the process definition</echo>
+		<taskdef name="deployToServer" classname="org.jbpm.ant.DeployProcessToServerTask">
+			<classpath refid="exec-classpath"/>
+		</taskdef>
+		<deployToServer username="${jbpm.console.username}" password="${jbpm.console.password}" serverDeployer="${org.jboss.esb.jbpm.console.upload.url}">
+			<fileset dir="${basedir}/processDefinition" includes="*"/>
+		</deployToServer>
+	</target>
+
+
+	
+</project>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/deployment.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-<jbossesb-deployment>
-  <depends>jboss.esb:deployment=jbpm.esb</depends>
-  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb</depends>
-  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process</depends>
-  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_reply</depends>
-  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process_reply</depends>
-  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2</depends>
-  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2_reply</depends>
-</jbossesb-deployment>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/deployment.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,9 @@
+<jbossesb-deployment>
+  <depends>jboss.esb:deployment=jbpm.esb</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_reply</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process_reply</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2</depends>
+  <depends>jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2_reply</depends>
+</jbossesb-deployment>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-  <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
-  <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
-  <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_reply"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
-    <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process_reply"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
-  <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
-  <mbean code="org.jboss.jms.server.destination.QueueService"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2_reply"
-    xmbean-dd="xmdesc/Queue-xmbean.xml">
-	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-	<depends>jboss.messaging:service=PostOffice</depends>
-  </mbean>
-
-</server>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbm-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_reply"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+    <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process_reply"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+  <mbean code="org.jboss.jms.server.destination.QueueService"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2_reply"
+    xmbean-dd="xmdesc/Queue-xmbean.xml">
+	<depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
+	<depends>jboss.messaging:service=PostOffice</depends>
+  </mbean>
+
+</server>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
-  </mbean>
-
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
-  </mbean>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_reply">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
-  </mbean>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process_reply">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
-  </mbean>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
-  </mbean>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2_reply">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
-  </mbean>
-</server>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbmq-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<server>
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb">
+    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
+  </mbean>
+
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process">
+    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
+  </mbean>
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_reply">
+    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
+  </mbean>
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb_Process_reply">
+    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
+  </mbean>
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2">
+    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
+  </mbean>
+  <mbean code="org.jboss.mq.server.jmx.Queue"
+    name="jboss.esb.quickstart.destination:service=Queue,name=quickstart_security_jbpm_Request_esb2_reply">
+    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
+	<depends optional-attribute-name="SecurityManager">jboss.mq:service=SecurityManager</depends>
+  </mbean>
+</server>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jboss-esb.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,79 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
-
-    <providers>
-          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
-              <jms-bus busid="quickstartEsbChannelProcess">
-                  <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_security_jbpm_Request_esb_Process" selector="serviceName='HelloWorldPubService'" />
-              </jms-bus>
-
-             <jms-bus busid="quickstartEsbChannel">
-                  <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_security_jbpm_Request_esb" selector="serviceName='HelloWorldPubService'" />
-              </jms-bus>
-
-             <jms-bus busid="quickstartEsbChannel2">
-                  <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_security_jbpm_Request_esb2"/>
-              </jms-bus>
-
-          </jms-provider>
-      </providers>
-      
-      <services>
-
-  		<service category="ESBServiceSample" name="HelloWorldStartServiceProcess" description="Hello world ESB Service Process">
-			<security moduleName="messaging" runAs="adminRole"/>
-
-	           <listeners>
-					<jms-listener name="helloWorldProcess" busidref="quickstartEsbChannelProcess" maxThreads="1" />
-				</listeners>
-
-            <actions mep="OneWay">
-
-				<action name="action" class="org.jboss.soa.esb.samples.quickstart.securityjbpm.MyListenerAction" process="displayMessage"/> 
-
-				<action name="create_new_process_instance" class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor">
-					<property name="command" value="StartProcessInstanceCommand" />
-					<property name="process-definition-name" value="helloWorld"/>   
-					<property name="esbToBpmVars">
-						<mapping esb="BODY_CONTENT" bpm="request" />
-                    </property> 
-				</action>            
-            </actions>
-
-        </service>
-
-        <service category="ESBServiceSample" name="HelloWorldService1" description="Hello world ESB Service">
-			<security moduleName="messaging" />
-
-            <listeners>
-                <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1" />
-            </listeners>
-
-            <actions mep="OneWay">
-
-				<action name="action" class="org.jboss.soa.esb.samples.quickstart.securityjbpm.MyListenerAction" process="displayMessage"/> 
-
-				<action name="routeAction" class="org.jboss.soa.esb.actions.StaticWiretap">
-					<property name="destinations">
-						<route-to service-category="ESBServiceSample" service-name="HelloWorldService2"/>
-					</property>
-				</action>
-
-            </actions>
-        </service>
-
-       <service category="ESBServiceSample" name="HelloWorldService2" description="Hello world ESB Service"> 
-		<security moduleName="messaging" />
-
-            <listeners>
-                <jms-listener name="helloWorld2" busidref="quickstartEsbChannel2" maxThreads="1" />
-            </listeners>
-
-			<actions mep="OneWay">
-				<action name="action" class="org.jboss.soa.esb.samples.quickstart.securityjbpm.MyListenerAction" process="displayMessage"/> 
-			</actions>
-
-		</service>
-	</services>
-     
-</jbossesb>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jboss-esb.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,79 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.0.1.xsd" parameterReloadSecs="5">
+
+    <providers>
+          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
+              <jms-bus busid="quickstartEsbChannelProcess">
+                  <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_security_jbpm_Request_esb_Process" selector="serviceName='HelloWorldPubService'" />
+              </jms-bus>
+
+             <jms-bus busid="quickstartEsbChannel">
+                  <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_security_jbpm_Request_esb" selector="serviceName='HelloWorldPubService'" />
+              </jms-bus>
+
+             <jms-bus busid="quickstartEsbChannel2">
+                  <jms-message-filter dest-type="QUEUE" dest-name="queue/quickstart_security_jbpm_Request_esb2"/>
+              </jms-bus>
+
+          </jms-provider>
+      </providers>
+      
+      <services>
+
+  		<service category="ESBServiceSample" name="HelloWorldStartServiceProcess" description="Hello world ESB Service Process">
+			<security moduleName="messaging" runAs="adminRole"/>
+
+	           <listeners>
+					<jms-listener name="helloWorldProcess" busidref="quickstartEsbChannelProcess" maxThreads="1" />
+				</listeners>
+
+            <actions mep="OneWay">
+
+				<action name="action" class="org.jboss.soa.esb.samples.quickstart.securityjbpm.MyListenerAction" process="displayMessage"/> 
+
+				<action name="create_new_process_instance" class="org.jboss.soa.esb.services.jbpm.actions.BpmProcessor">
+					<property name="command" value="StartProcessInstanceCommand" />
+					<property name="process-definition-name" value="helloWorld"/>   
+					<property name="esbToBpmVars">
+						<mapping esb="BODY_CONTENT" bpm="request" />
+                    </property> 
+				</action>            
+            </actions>
+
+        </service>
+
+        <service category="ESBServiceSample" name="HelloWorldService1" description="Hello world ESB Service">
+			<security moduleName="messaging" />
+
+            <listeners>
+                <jms-listener name="helloWorld" busidref="quickstartEsbChannel" maxThreads="1" />
+            </listeners>
+
+            <actions mep="OneWay">
+
+				<action name="action" class="org.jboss.soa.esb.samples.quickstart.securityjbpm.MyListenerAction" process="displayMessage"/> 
+
+				<action name="routeAction" class="org.jboss.soa.esb.actions.StaticWiretap">
+					<property name="destinations">
+						<route-to service-category="ESBServiceSample" service-name="HelloWorldService2"/>
+					</property>
+				</action>
+
+            </actions>
+        </service>
+
+       <service category="ESBServiceSample" name="HelloWorldService2" description="Hello world ESB Service"> 
+		<security moduleName="messaging" />
+
+            <listeners>
+                <jms-listener name="helloWorld2" busidref="quickstartEsbChannel2" maxThreads="1" />
+            </listeners>
+
+			<actions mep="OneWay">
+				<action name="action" class="org.jboss.soa.esb.samples.quickstart.securityjbpm.MyListenerAction" process="displayMessage"/> 
+			</actions>
+
+		</service>
+	</services>
+     
+</jbossesb>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,97 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  JBoss, Home of Professional Open Source
-  Copyright 2006, JBoss Inc., and others contributors as indicated 
-  by the @authors tag. All rights reserved. 
-  See the copyright.txt in the distribution for a
-  full listing of individual contributors. 
-  This copyrighted material is made available to anyone wishing to use,
-  modify, copy, or redistribute it subject to the terms and conditions
-  of the GNU Lesser General Public License, v. 2.1.
-  This program is distributed in the hope that it will be useful, but WITHOUT A 
-  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,
-  v.2.1 along with this distribution; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-  MA  02110-1301, USA.
-  
-  (C) 2005-2006,
-  @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
-  These options are described in the JBossESB manual.
-  Defaults are provided here for convenience only.
- 
-  Please read through this file prior to using the system, and consider
-  updating the specified entries.
--->
-<esb
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
-    <properties name="core">
-		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
-		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
-		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
-        <property name="jboss.esb.invm.scope.default" value="NONE"/>
-    </properties>
-	 <properties name="security">
-        <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.OpenSSOSecuritySerivce"/>
-        <property name="org.jboss.soa.esb.services.security.configUrl" value="/AMConfig.properties"/>
-
-        <property name="org.jboss.soa.esb.services.security.publicKeystore" value="/publicKeyStore"/>
-        <property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
-        <property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
-        <property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
-        <property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
-
-    </properties>
-    <properties name="registry">      
-    	<property name="org.jboss.soa.esb.registry.queryManagerURI"     		
-    		value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>    		
-    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"     		
-    		value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
-    	<property name="org.jboss.soa.esb.registry.implementationClass" 
-    		value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
-    	<property name="org.jboss.soa.esb.registry.factoryClass" 
-    		value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
-    	<property name="org.jboss.soa.esb.registry.user" 
-    		value="jbossesb"/>
-    	<property name="org.jboss.soa.esb.registry.password" 
-    	  value="password"/>
-    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
-    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" 
-    		value="org.apache.ws.scout.transport.RMITransport"/>
-    </properties>
-    <properties name="transports" depends="core">
-    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
-    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
-    </properties>
-    <properties name="connection">
-    	<property name="min-pool-size" value="5"/>
-    	<property name="max-pool=size" value="10"/>
-    	<property name="blocking-timeout-millis" value="5000"/>
-    	<property name="abandoned-connection-timeout" value="10000"/>
-    	<property name="abandoned-connection-time-interval" value="30000"/>
-    </properties>
-    <properties name="dbstore">
-		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
-		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
-		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
-		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>		
-		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
-		<!--table managed by pool to test for valid connections - created by pool automatically -->
-		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
-		<!-- # of milliseconds to timeout waiting for a connection from pool -->
-		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
-                <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
-    </properties>
-    <properties name="messagerouting">
-    	<property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
-    </properties>
-</esb>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, JBoss Inc., and others contributors as indicated 
+  by the @authors tag. All rights reserved. 
+  See the copyright.txt in the distribution for a
+  full listing of individual contributors. 
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU Lesser General Public License, v. 2.1.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  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,
+  v.2.1 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+  These options are described in the JBossESB manual.
+  Defaults are provided here for convenience only.
+ 
+  Please read through this file prior to using the system, and consider
+  updating the specified entries.
+-->
+<esb
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+    <properties name="core">
+		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+        <property name="jboss.esb.invm.scope.default" value="NONE"/>
+    </properties>
+	 <properties name="security">
+        <property name="org.jboss.soa.esb.services.security.implementationClass" value="org.jboss.internal.soa.esb.services.security.OpenSSOSecuritySerivce"/>
+        <property name="org.jboss.soa.esb.services.security.configUrl" value="/AMConfig.properties"/>
+
+        <property name="org.jboss.soa.esb.services.security.publicKeystore" value="/publicKeyStore"/>
+        <property name="org.jboss.soa.esb.services.security.publicKeystorePassword" value="testKeystorePassword"/>
+        <property name="org.jboss.soa.esb.services.security.publicKeyAlias" value="testAlias"/>
+        <property name="org.jboss.soa.esb.services.security.publicKeyPassword" value="testPassword"/>
+        <property name="org.jboss.soa.esb.services.security.publicKeyTransformation" value="RSA/ECB/PKCS1Padding"/>
+
+    </properties>
+    <properties name="registry">      
+    	<property name="org.jboss.soa.esb.registry.queryManagerURI"     		
+    		value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>    		
+    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"     		
+    		value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+    	<property name="org.jboss.soa.esb.registry.implementationClass" 
+    		value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.factoryClass" 
+    		value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.user" 
+    		value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.registry.password" 
+    	  value="password"/>
+    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" 
+    		value="org.apache.ws.scout.transport.RMITransport"/>
+    </properties>
+    <properties name="transports" depends="core">
+    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+    </properties>
+    <properties name="connection">
+    	<property name="min-pool-size" value="5"/>
+    	<property name="max-pool=size" value="10"/>
+    	<property name="blocking-timeout-millis" value="5000"/>
+    	<property name="abandoned-connection-timeout" value="10000"/>
+    	<property name="abandoned-connection-time-interval" value="30000"/>
+    </properties>
+    <properties name="dbstore">
+		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
+		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
+		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
+		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>		
+		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
+		<!--table managed by pool to test for valid connections - created by pool automatically -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
+		<!-- # of milliseconds to timeout waiting for a connection from pool -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
+                <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+    </properties>
+    <properties name="messagerouting">
+    	<property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+    </properties>
+</esb>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jndi.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jndi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jndi.properties (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jndi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/jndi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/juddi.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/juddi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,69 +0,0 @@
-# jUDDI Registry Properties (used by RegistryServer)
-# see http://www.juddi.org for more information
-
-# The UDDI Operator Name
-juddi.operatorName = jUDDI.org
-
-# The i18n locale default codes
-juddi.i18n.languageCode = en
-juddi.i18n.countryCode = US
-
-# The UDDI DiscoveryURL Prefix
-juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
-
-# The UDDI Operator Contact Email Address
-juddi.operatorEmailAddress = admin at juddi.org
-
-# The maximum name size and maximum number
-# of name elements allows in several of the
-# FindXxxx and SaveXxxx UDDI functions.
-juddi.maxNameLength=255
-juddi.maxNameElementsAllowed=5
-
-# The maximum number of UDDI artifacts allowed
-# per publisher. A value of '-1' indicates any 
-# number of artifacts is valid (These values can be
-# overridden at the individual publisher level).
-juddi.maxBusinessesPerPublisher=25
-juddi.maxServicesPerBusiness=20
-juddi.maxBindingsPerService=10
-juddi.maxTModelsPerPublisher=100
-
-# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
-
-# jUDDI DataStore module currently to use
-juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
-
-# use a dataSource (if set to false a direct 
-# jdbc connection will be used.
-juddi.isUseDataSource=false
-juddi.jdbcDriver=com.mysql.jdbc.Driver
-juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
-juddi.jdbcUsername=root
-juddi.jdbcPassword=admin
-# jUDDI DataSource to use
-# juddi.dataSource=java:comp/env/jdbc/MySqlDS
-
-# jUDDI UUIDGen implementation to use
-juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
-
-# jUDDI Cryptor implementation to use
-juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
- 
-# jUDDI Validator to use
-juddi.validator=org.apache.juddi.validator.DefaultValidator
-
-# jUDDI Proxy Properties (used by RegistryProxy)
-juddi.proxy.adminURL = http://localhost:8080/juddi/admin
-juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
-juddi.proxy.publishURL = http://localhost:8080/juddi/publish
-juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
-juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
-juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
-
-# JNDI settings (used by RMITransport)
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-  

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/juddi.properties (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/juddi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/juddi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/juddi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any 
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct 
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+ 
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+  

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/log4j.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Log4j Configuration                                                  -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
-   | 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">
-
-   <!-- ============================== -->
-   <!-- Append messages to the console -->
-   <!-- ============================== -->
-
-   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-      <param name="Target" value="System.out"/>
-      <param name="Threshold" value="INFO"/>
-
-      <layout class="org.apache.log4j.PatternLayout">
-         <!-- The default pattern: Date Priority [Category] Message\n -->
-         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
-      </layout>
-   </appender>
-
-   <!-- ================================= -->
-   <!-- Preserve messages in a local file -->
-   <!-- ================================= -->
-
-   <!-- A size based file rolling appender -->
-   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
-     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-     <param name="File" value="./listener.log"/>
-     <param name="Append" value="false"/>
-     <param name="MaxFileSize" value="500KB"/>
-     <param name="MaxBackupIndex" value="1"/>
-
-     <layout class="org.apache.log4j.PatternLayout">
-       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
-     </layout>	    
-   </appender>
-
-   <!-- ================ -->
-   <!-- Limit categories -->
-   <!-- ================ -->
-
-   <category name="org.jboss">
-      <priority value="WARN"/>
-   </category>
-   <category name="org.jboss.soa.esb">
-      <priority value="ERROR"/>
-   </category>
-   <category name="org.jboss.internal.soa.esb">
-      <priority value="ERROR"/>
-   </category>
-   <category name="org.apache">
-      <priority value="ERROR"/>
-   </category>
-   <category name="quickstart">
-      <priority value="DEBUG"/>
-   </category>
-   <!-- ======================= -->
-   <!-- Setup the Root category -->
-   <!-- ======================= -->
-
-   <root>
-      <appender-ref ref="CONSOLE"/>
-      <appender-ref ref="FILE"/>
-   </root>
-
-</log4j:configuration>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/log4j.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/log4j.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+   | 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">
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <param name="Target" value="System.out"/>
+      <param name="Threshold" value="INFO"/>
+
+      <layout class="org.apache.log4j.PatternLayout">
+         <!-- The default pattern: Date Priority [Category] Message\n -->
+         <param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [%t][%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A size based file rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="./listener.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+     </layout>	    
+   </appender>
+
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <category name="org.jboss">
+      <priority value="WARN"/>
+   </category>
+   <category name="org.jboss.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.jboss.internal.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.apache">
+      <priority value="ERROR"/>
+   </category>
+   <category name="quickstart">
+      <priority value="DEBUG"/>
+   </category>
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/processDefinition)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="helloWorld">
-
-	<start-state name="start-state1">
-		<transition to="HelloWorld"></transition>
-	</start-state>
-
-	<node name="HelloWorld">
-		<action class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
-			<esbServiceName>HelloWorldService1</esbServiceName>
-			<esbCategoryName>ESBServiceSample</esbCategoryName>
-			<bpmToEsbVars>
-				<mapping bpm="request" esb="BODY_CONTENT"></mapping>
-			</bpmToEsbVars>
-			<esbToBpmVars>
-				<mapping bpm="response" esb="BODY_CONTENT"></mapping>
-			</esbToBpmVars>
-		</action>
-		<transition to="end-state1"></transition>
-	</node>
-
-	<end-state name="end-state1"></end-state>
-
-</process-definition>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/processDefinition/processdefinition.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="helloWorld">
+
+	<start-state name="start-state1">
+		<transition to="HelloWorld"></transition>
+	</start-state>
+
+	<node name="HelloWorld">
+		<action class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
+			<esbServiceName>HelloWorldService1</esbServiceName>
+			<esbCategoryName>ESBServiceSample</esbCategoryName>
+			<bpmToEsbVars>
+				<mapping bpm="request" esb="BODY_CONTENT"></mapping>
+			</bpmToEsbVars>
+			<esbToBpmVars>
+				<mapping bpm="response" esb="BODY_CONTENT"></mapping>
+			</esbToBpmVars>
+		</action>
+		<transition to="end-state1"></transition>
+	</node>
+
+	<end-state name="end-state1"></end-state>
+
+</process-definition>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/publicKeyStore
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/publicKeyStore (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/publicKeyStore)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/readme.txt	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,55 +0,0 @@
-Overview:
-=========
-  The purpose of the security_jbpm quickstart demonstrate security integration with jBPM and JBossESB.
-  There are three services in this quickstart and a jBPM process to orchestrate these services.
-
-  All of the services print the Subject instance information to show the security Principals.
-  
-Running this quickstart:
-========================
-  Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
-  and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run '.esb' archive mode with jbossesb-server:
-===========================
-  1. Type 'ant deployProcess'	-- Will deploy the jBPM HelloWorld processdefinition.
-  2. Type 'ant deploy'			-- Will deploy the ESB process archive(.esb).	
-  3. Type 'ant runtest'			-- Will invoke the service by using the ServiceInvoker.
-
-
-What to look for in this quickstart
-===================================
-	Flow of events:
-	1. 'ant runtest' invokes the ESB using the ServiceInoker and calls the Service 'HelloWorldStartServiceProcess'.
-		This ESB service prints the following to the server console window:
-		INFO  [STDOUT] 'ServiceName 'HelloWorldStartServiceProcess'. Subject:Subject:
-			Principal: esbuser
-			Principal: Roles(members:esbrole)
-			Principal: [groupName=Roles, members=[[roleName=adminRole]]]
-
-	2. HelloWorldStartServiceProcess start the jBPM process. The process-definition-name is 'helloworld' and 
-	   can be found in processDefinitions/processdefinition.xml.
-
-	3. The jBPM process will call out to the ESB service named 'HelloWorldService1'.
-	   This ESB service prints the following to the server console window:
-	   INFO  [STDOUT] 'ServiceName 'HelloWorldService1'. Subject:Subject:
-			Principal: esbuser
-			Principal: Roles(members:esbrole)
-			Principal: [groupName=Roles, members=[[roleName=adminRole]]]
-	   Next this service will route to 'HelloWorldService2'
-
-	4. This ESB service prints the following to the server console window:
-	   INFO  [STDOUT] 'ServiceName 'HelloWorldService2'. Subject:Subject:
-			Principal: esbuser
-			Principal: Roles(members:esbrole)
-			Principal: [groupName=Roles, members=[[roleName=adminRole]]]
-
-	Things to try:
-	* Try commenting out the security configuration for 'HelloWorldService1'. Notice how the subject is not set for 
-	  the service in this case, but the following service still works as expected.
-
-	
-
-		
-
-

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/readme.txt (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/readme.txt	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,55 @@
+Overview:
+=========
+  The purpose of the security_jbpm quickstart demonstrate security integration with jBPM and JBossESB.
+  There are three services in this quickstart and a jBPM process to orchestrate these services.
+
+  All of the services print the Subject instance information to show the security Principals.
+  
+Running this quickstart:
+========================
+  Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+  and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run '.esb' archive mode with jbossesb-server:
+===========================
+  1. Type 'ant deployProcess'	-- Will deploy the jBPM HelloWorld processdefinition.
+  2. Type 'ant deploy'			-- Will deploy the ESB process archive(.esb).	
+  3. Type 'ant runtest'			-- Will invoke the service by using the ServiceInvoker.
+
+
+What to look for in this quickstart
+===================================
+	Flow of events:
+	1. 'ant runtest' invokes the ESB using the ServiceInoker and calls the Service 'HelloWorldStartServiceProcess'.
+		This ESB service prints the following to the server console window:
+		INFO  [STDOUT] 'ServiceName 'HelloWorldStartServiceProcess'. Subject:Subject:
+			Principal: esbuser
+			Principal: Roles(members:esbrole)
+			Principal: [groupName=Roles, members=[[roleName=adminRole]]]
+
+	2. HelloWorldStartServiceProcess start the jBPM process. The process-definition-name is 'helloworld' and 
+	   can be found in processDefinitions/processdefinition.xml.
+
+	3. The jBPM process will call out to the ESB service named 'HelloWorldService1'.
+	   This ESB service prints the following to the server console window:
+	   INFO  [STDOUT] 'ServiceName 'HelloWorldService1'. Subject:Subject:
+			Principal: esbuser
+			Principal: Roles(members:esbrole)
+			Principal: [groupName=Roles, members=[[roleName=adminRole]]]
+	   Next this service will route to 'HelloWorldService2'
+
+	4. This ESB service prints the following to the server console window:
+	   INFO  [STDOUT] 'ServiceName 'HelloWorldService2'. Subject:Subject:
+			Principal: esbuser
+			Principal: Roles(members:esbrole)
+			Principal: [groupName=Roles, members=[[roleName=adminRole]]]
+
+	Things to try:
+	* Try commenting out the security configuration for 'HelloWorldService1'. Notice how the subject is not set for 
+	  the service in this case, but the following service still works as expected.
+
+	
+
+		
+
+

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,55 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.securityjbpm;
-
-import javax.xml.namespace.QName;
-
-import org.jboss.soa.esb.actions.AbstractActionLifecycle;
-import org.jboss.soa.esb.actions.ActionProcessingDetailFaultException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-
-import java.io.FilePermission;
-import java.security.AccessControlContext;
-import java.security.AccessController;
-import java.security.CodeSource;
-import java.security.Permissions;
-import java.security.PermissionCollection;
-import java.security.Policy;
-import javax.security.auth.Subject;
-
-public final class MyListenerAction extends AbstractActionLifecycle
-{
-    private ConfigTree config;
-	private String serviceName;
-    
-    public MyListenerAction(final ConfigTree config)
-    {
-        this.config = config;
-		serviceName = config.getParent().getAttribute("service-name");
-    }
-    
-    public Message displayMessage(final Message message) throws Exception
-    {
-		System.out.println("'ServiceName '" + serviceName + "'. Subject:" + Subject.getSubject(AccessController.getContext()));
-        return message;
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/MyListenerAction.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.securityjbpm;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.soa.esb.actions.AbstractActionLifecycle;
+import org.jboss.soa.esb.actions.ActionProcessingDetailFaultException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+
+import java.io.FilePermission;
+import java.security.AccessControlContext;
+import java.security.AccessController;
+import java.security.CodeSource;
+import java.security.Permissions;
+import java.security.PermissionCollection;
+import java.security.Policy;
+import javax.security.auth.Subject;
+
+public final class MyListenerAction extends AbstractActionLifecycle
+{
+    private ConfigTree config;
+	private String serviceName;
+    
+    public MyListenerAction(final ConfigTree config)
+    {
+        this.config = config;
+		serviceName = config.getParent().getAttribute("service-name");
+    }
+    
+    public Message displayMessage(final Message message) throws Exception
+    {
+		System.out.println("'ServiceName '" + serviceName + "'. Subject:" + Subject.getSubject(AccessController.getContext()));
+        return message;
+    }
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,80 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss 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.soa.esb.samples.quickstart.securityjbpm.test;
-
-import java.util.Set;
-import java.io.Serializable;
-import java.util.HashSet;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
-import org.jboss.soa.esb.services.security.principals.User;
-import org.jboss.soa.esb.client.ServiceInvoker;
-import org.jboss.soa.esb.couriers.FaultMessageException;
-import org.jboss.soa.esb.services.security.PublicCryptoUtil;
-
-/**
- * Standalone class with to send ESB messages to a 'known' [category,name].
- * <p/> arg0 - service category
- * <br/>arg1 - service name
- * <br/>arg2 - Text of message to send
- * <br/>arg3 - username
- * <br/>arg4 - password
- * 
- * @since Version 4.0
- *
- */
-public class SendEsbMessage 
-{
-    public static void main(String args[]) throws Exception
-    {
-//      Setting the ConnectionFactory such that it will use scout
-        System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
-        
-        if (args.length < 5)
-        {
-            System.out.println("Usage SendEsbMessage <category> <name> <text to send> <username> <password>");
-        }
-        Message esbMessage = MessageFactory.getInstance().getMessage();
-        
-		//	create an AuthenticationRequest
-		AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder().username(args[3]).password(args[4].toCharArray()).build();
-		
-		// 	set the authentication request on the message
-		esbMessage.getContext().setContext(SecurityService.AUTH_REQUEST, PublicCryptoUtil.INSTANCE.encrypt((Serializable) authRequest));
-		
-        final String message = args[2];
-        esbMessage.getBody().add(message);
-        
-        ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
-        
-        try {
-            invoker.deliverAsync(esbMessage);
-        }catch(Exception ex) {
-           ex.printStackTrace();
-        } 
-        System.exit(0);
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/security_jbpm/src/org/jboss/soa/esb/samples/quickstart/securityjbpm/test/SendEsbMessage.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,80 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss 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.soa.esb.samples.quickstart.securityjbpm.test;
+
+import java.util.Set;
+import java.io.Serializable;
+import java.util.HashSet;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequest;
+import org.jboss.soa.esb.services.security.principals.User;
+import org.jboss.soa.esb.client.ServiceInvoker;
+import org.jboss.soa.esb.couriers.FaultMessageException;
+import org.jboss.soa.esb.services.security.PublicCryptoUtil;
+
+/**
+ * Standalone class with to send ESB messages to a 'known' [category,name].
+ * <p/> arg0 - service category
+ * <br/>arg1 - service name
+ * <br/>arg2 - Text of message to send
+ * <br/>arg3 - username
+ * <br/>arg4 - password
+ * 
+ * @since Version 4.0
+ *
+ */
+public class SendEsbMessage 
+{
+    public static void main(String args[]) throws Exception
+    {
+//      Setting the ConnectionFactory such that it will use scout
+        System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");
+        
+        if (args.length < 5)
+        {
+            System.out.println("Usage SendEsbMessage <category> <name> <text to send> <username> <password>");
+        }
+        Message esbMessage = MessageFactory.getInstance().getMessage();
+        
+		//	create an AuthenticationRequest
+		AuthenticationRequest authRequest = new AuthenticationRequestImpl.Builder().username(args[3]).password(args[4].toCharArray()).build();
+		
+		// 	set the authentication request on the message
+		esbMessage.getContext().setContext(SecurityService.AUTH_REQUEST, PublicCryptoUtil.INSTANCE.encrypt((Serializable) authRequest));
+		
+        final String message = args[2];
+        esbMessage.getBody().add(message);
+        
+        ServiceInvoker invoker = new ServiceInvoker(args[0], args[1]);
+        
+        try {
+            invoker.deliverAsync(esbMessage);
+        }catch(Exception ex) {
+           ex.printStackTrace();
+        } 
+        System.exit(0);
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/SampleOrder.csv
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/SampleOrder.csv	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/SampleOrder.csv	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,3 +1,3 @@
 1,Wed Nov 15 13:45:28 EST 2006,0,59.97,64.92,4.95,user1,Harry,Fletcher,SD,1,1,364,The 40-Year-Old Virgin,29.98,2,1,299,Pulp Fiction,29.99
 2,Wed Nov 15 13:45:28 EST 2007,0,60.00,64.92,4.95,user2,Kalle,Anka,SD,1,1,364,Fletch,29.98,2,1,299,Fletch Lives,29.99
-3,Wed Nov 15 13:45:28 EST 2007,0,60.00,64.92,4.95,user3,Donald,Duck,SD,1,1,364,The Goonies,29.98,2,1,4,Happy Gilmor,29.99
+3,Wed Nov 15 13:45:28 EST 2007,0,60.00,64.92,4.95,user3,Donald,Duck,SD,1,1,364,The Goonies,29.98,2,1,4,Happy Gilmor,29.99
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/smooks-res.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/smooks-res.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_CSV2XML/smooks-res.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,37 +1,14 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+        xmlns:csv="http://www.milyn.org/xsd/smooks/csv-1.1.xsd">
 
     <profiles>
         <profile base-profile="source-csv" />
         <profile base-profile="canonical-xml" />
     </profiles>
 
-    <resource-config target-profile="source-csv" selector="org.xml.sax.driver">
-        <resource>org.milyn.csv.CSVParser</resource>
-        <param name="fields" type="string-list">
-			orderId,
-			orderDate,
-			statusCode,
-			netAmount,
-			totalAmount,
-			tax,
-			userName,
-			firstName,
-			lastName,
-			state,
-			orderLine1Position,
-			orderLine1Quantity,
-			orderLine1ProductId,
-			orderLine1ProductTitle,
-			orderLine1ProductPrice,
-			orderLine2Position,
-			orderLine2Quantity,
-			orderLine2ProductId,
-			orderLine2ProductTitle,
-			orderLine2ProductPrice
-		</param>
-	</resource-config>
-	
+    <csv:reader targetProfile="source-csv" fields="orderId,orderDate,statusCode,netAmount,totalAmount,tax,userName,firstName,lastName,state,orderLine1Position,orderLine1Quantity,orderLine1ProductId,orderLine1ProductTitle,orderLine1ProductPrice,orderLine2Position,orderLine2Quantity,orderLine2ProductId,orderLine2ProductTitle,orderLine2ProductPrice" />    
+
 	<resource-config target-profile="canonical-xml" selector="csv-set">
         <resource type="xsl">
             <![CDATA[

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO/smooks-res.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO/smooks-res.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO/smooks-res.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,52 +1,39 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd">
 
     <!-- Populate the OrderHeader -->
-	<resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">orderHeader</param>
-		<param name="beanClass">org.jboss.soa.esb.dvdstore.OrderHeader</param>
-        <param name="bindings">
-            <binding property="orderId" selector="Order/@orderId" />
-            <binding property="orderDate" selector="Order/@orderDate" type="LongDate"/>
-            <binding property="statusCode" selector="Order/@statusCode" type="Integer" />
-            <binding property="netAmount" selector="Order/@netAmount" type="Double" />
-            <binding property="totalAmount" selector="Order/@totalAmount" type="Double" />
-            <binding property="tax" selector="Order/@tax" type="Double" />
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderHeader" class="org.jboss.soa.esb.dvdstore.OrderHeader" createOnElement="order">
+        <jb:value property="orderId"     data="Order/@orderId" />
+        <jb:value property="orderDate"   data="Order/@orderDate" decoder="Calendar">
+            <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
+        </jb:value>
+        <jb:value property="statusCode"  data="Order/@statusCode" decoder="Integer" />
+        <jb:value property="netAmount"   data="Order/@netAmount" decoder="Double" />
+        <jb:value property="totalAmount" data="Order/@totalAmount" decoder="Double" />
+        <jb:value property="tax"         data="Order/@tax" decoder="Double" />
+    </jb:bindings>
 
     <!-- Populate the Customer -->
-    <resource-config selector="order/customer">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">customer</param>
-		<param name="beanClass">org.jboss.soa.esb.dvdstore.Customer</param>
-        <param name="bindings">
-            <binding property="userName" selector="order/customer/@userName" />
-            <binding property="firstName" selector="order/customer/@firstName" />
-            <binding property="lastName" selector="order/customer/@lastName" />
-            <binding property="state" selector="order/customer/@state" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="customer" class="org.jboss.soa.esb.dvdstore.Customer" createOnElement="customer">
+        <jb:value property="userName"  data="customer/@userName" />
+        <jb:value property="firstName" data="customer/@firstName" />
+        <jb:value property="lastName"  data="customer/@lastName" />
+        <jb:value property="state"     data="customer/@state" />
+    </jb:bindings>
 
     <!-- Populate the OrderItem list -->
-	<resource-config selector="order/orderlines/orderline">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderItem</param>
-		<param name="beanClass">org.jboss.soa.esb.dvdstore.OrderItem</param>
-		<param name="addToList">true</param>
-        <param name="bindings">
-            <binding property="position"  selector="order/orderlines/orderline/@position" type="Integer" />
-            <binding property="quantity"  selector="order/orderlines/orderline/@quantity" type="Integer" />
-            <binding property="productId" selector="order/orderlines/orderline/product/@productId" />
-            <binding property="title"     selector="order/orderlines/orderline/product/@title" />
-            <binding property="price"     selector="order/orderlines/orderline/product/@price" type="Double" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="orderItemList" class="java.util.ArrayList" createOnElement="orderlines">
+        <jb:wiring beanIdRef="orderItem" />
+    </jb:bindings>
 
-    <resource-config selector="decoder:LongDate">
-        <resource>org.milyn.javabean.decoders.CalendarDecoder</resource>
-        <param name="format">EEE MMM dd HH:mm:ss z yyyy</param>
-    </resource-config>
+    <!-- Populate the OrderItem instance -->
+    <jb:bindings beanId="orderItem" class="org.jboss.soa.esb.dvdstore.OrderItem" createOnElement="orderlines/orderline">
+        <jb:value property="position"  data="orderline/@position" decoder="Integer" />
+        <jb:value property="quantity"  data="orderline/@quantity" decoder="Integer" />
+        <jb:value property="productId" data="orderline/product/@productId" />
+        <jb:value property="title"     data="orderline/product/@title" />
+        <jb:value property="price"     data="orderline/product/@price" decoder="Double" />
+    </jb:bindings>
     
 </smooks-resource-list>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/smooks-config.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/smooks-config.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/smooks-config.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd">
 
     <profiles>
         <profile base-profile="from:dvdstore" />

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/transforms/from-dvdstore.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/transforms/from-dvdstore.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/transforms/from-dvdstore.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,54 +1,40 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd"
-        default-target-profile="from:dvdstore">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"
+                      default-target-profile="from:dvdstore">
 
     <!-- Populate the OrderHeader -->
-	<resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">orderHeader</param>
-		<param name="beanClass">org.jboss.soa.esb.store.OrderHeader</param>
-        <param name="bindings">
-            <binding property="orderId" selector="Order @orderId" />
-            <binding property="orderDate" selector="Order @orderDate" type="LongDate"/>
-            <binding property="statusCode" selector="Order @statusCode" />
-            <binding property="netAmount" selector="Order @netAmount" type="Double" />
-            <binding property="totalAmount" selector="Order @totalAmount" type="Double" />
-            <binding property="tax" selector="Order @tax" type="Double" />
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderHeader" class="org.jboss.soa.esb.store.OrderHeader" createOnElement="order">
+        <jb:value property="orderId"     data="Order/@orderId" />
+        <jb:value property="orderDate"   data="Order/@orderDate" decoder="Calendar">
+            <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
+        </jb:value>
+        <jb:value property="statusCode"  data="Order/@statusCode" />
+        <jb:value property="netAmount"   data="Order/@netAmount" decoder="Double" />
+        <jb:value property="totalAmount" data="Order/@totalAmount" decoder="Double" />
+        <jb:value property="tax"         data="Order/@tax" decoder="Double" />
+    </jb:bindings>
 
     <!-- Populate the Customer -->
-    <resource-config selector="order customer">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">customer</param>
-		<param name="beanClass">org.jboss.soa.esb.store.Customer</param>
-        <param name="bindings">
-            <binding property="userName" selector="order customer @userName" />
-            <binding property="firstName" selector="order customer @firstName" />
-            <binding property="lastName" selector="order customer @lastName" />
-            <binding property="state" selector="order customer @state" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="customer" class="org.jboss.soa.esb.store.Customer" createOnElement="customer">
+        <jb:value property="userName"  data="customer/@userName" />
+        <jb:value property="firstName" data="customer/@firstName" />
+        <jb:value property="lastName"  data="customer/@lastName" />
+        <jb:value property="state"     data="customer/@state" />
+    </jb:bindings>
 
     <!-- Populate the OrderItem list -->
-	<resource-config selector="order orderlines orderline">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderItem</param>
-		<param name="beanClass">org.jboss.soa.esb.store.OrderItem</param>
-		<param name="addToList">true</param>
-        <param name="bindings">
-            <binding property="position"  selector="order orderlines orderline @position" type="Integer" />
-            <binding property="quantity"  selector="order orderlines orderline @quantity" type="Integer" />
-            <binding property="productId" selector="order orderlines orderline product @productId" />
-            <binding property="title"     selector="order orderlines orderline product @title" />
-            <binding property="price"     selector="order orderlines orderline product @price" type="Double" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="orderItemList" class="java.util.ArrayList" createOnElement="orderlines">
+        <jb:wiring beanIdRef="orderItem" />
+    </jb:bindings>
 
-
-    <resource-config selector="decoder:LongDate">
-        <resource>org.milyn.javabean.decoders.CalendarDecoder</resource>
-        <param name="format">EEE MMM dd HH:mm:ss z yyyy</param>
-    </resource-config>
+    <!-- Populate the OrderItem instance -->
+    <jb:bindings beanId="orderItem" class="org.jboss.soa.esb.store.OrderItem" createOnElement="orderlines/orderline">
+        <jb:value property="position"  data="orderline/@position" decoder="Integer" />
+        <jb:value property="quantity"  data="orderline/@quantity" decoder="Integer" />
+        <jb:value property="productId" data="orderline/product/@productId" />
+        <jb:value property="title"     data="orderline/product/@title" />
+        <jb:value property="price"     data="orderline/product/@price" decoder="Double" />
+    </jb:bindings>
     
 </smooks-resource-list>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/transforms/from-petstore.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/transforms/from-petstore.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2POJO2/transforms/from-petstore.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,52 +1,38 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd"
-        default-target-profile="from:petstore">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+                      xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"
+                      default-target-profile="from:petstore">
 
     <!-- Populate the OrderHeader -->
-	<resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-        <param name="beanId">orderHeader</param>
-		<param name="beanClass">org.jboss.soa.esb.store.OrderHeader</param>
-        <param name="bindings">
-            <binding property="orderId" selector="Order @orderId" />
-            <binding property="orderDate" selector="Order @orderDate" type="LongDate"/>
-            <binding property="statusCode" selector="Order @status" />            
-            <binding property="totalAmount" selector="Order @totalPrice" type="Double" />            
-        </param>
-    </resource-config>
+    <jb:bindings beanId="orderHeader" class="org.jboss.soa.esb.store.OrderHeader" createOnElement="order">
+        <jb:value property="orderId"     data="Order/@orderId" />
+        <jb:value property="orderDate"   data="Order/@orderDate" decoder="Calendar">
+            <jb:decodeParam name="format">EEE MMM dd HH:mm:ss z yyyy</jb:decodeParam>
+        </jb:value>
+        <jb:value property="statusCode"  data="Order/@status" />
+        <jb:value property="totalAmount" data="Order/@totalPrice" decoder="Double" />
+    </jb:bindings>
 
     <!-- Populate the Customer -->
-    <resource-config selector="order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">customer</param>
-		<param name="beanClass">org.jboss.soa.esb.store.Customer</param>
-        <param name="bindings">
-            <binding property="userName" selector="order @username" />
-            <binding property="firstName" selector="order @shipToFirstName" />
-            <binding property="lastName" selector="order @shipToLastName" />
-            <binding property="state" selector="order @shipState" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="customer" class="org.jboss.soa.esb.store.Customer" createOnElement="order">
+        <jb:value property="userName"  data="order/@userName" />
+        <jb:value property="firstName" data="order/@shipToFirstName" />
+        <jb:value property="lastName"  data="order/@shipToLastName" />
+        <jb:value property="state"     data="order/@shipState" />
+    </jb:bindings>
 
     <!-- Populate the OrderItem list -->
-	<resource-config selector="order LineItems LineItem">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderItem</param>
-		<param name="beanClass">org.jboss.soa.esb.store.OrderItem</param>
-		<param name="addToList">true</param>
-        <param name="bindings">
-            <binding property="position"  selector="LineItem @lineNumber" type="Integer" />
-            <binding property="quantity"  selector="LineItem @quantity" type="Integer" />
-            <binding property="productId" selector="LineItem Item @itemId" />
-            <binding property="price"     selector="LineItem Item @listPrice" type="Double" />
-            <binding property="title"     selector="LineItem Item @name" />
-        </param>
-	</resource-config>
+    <jb:bindings beanId="orderItemList" class="java.util.ArrayList" createOnElement="LineItems">
+        <jb:wiring beanIdRef="orderItem" />
+    </jb:bindings>
 
+    <!-- Populate the OrderItem instance -->
+    <jb:bindings beanId="orderItem" class="org.jboss.soa.esb.store.OrderItem" createOnElement="LineItems/LineItem">
+        <jb:value property="position"  data="LineItem/@lineNumber" decoder="Integer" />
+        <jb:value property="quantity"  data="LineItem/@quantity" decoder="Integer" />
+        <jb:value property="productId" data="LineItem/Item/@itemId" />
+        <jb:value property="price"     data="LineItem/Item/@listPrice" decoder="Double" />
+        <jb:value property="title"     data="LineItem/Item/@name" />
+    </jb:bindings>
 
-    <resource-config selector="decoder:LongDate">
-        <resource>org.milyn.javabean.decoders.CalendarDecoder</resource>
-        <param name="format">EEE MMM dd HH:mm:ss z yyyy</param>
-    </resource-config>
-    
 </smooks-resource-list>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2XML_date_manipulation/smooks-res.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2XML_date_manipulation/smooks-res.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2XML_date_manipulation/smooks-res.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,46 +1,43 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.0.xsd">
+<smooks-resource-list xmlns="http://www.milyn.org/xsd/smooks-1.1.xsd"
+        xmlns:jb="http://www.milyn.org/xsd/smooks/javabean-1.1.xsd"
+        xmlns:ftl="http://www.milyn.org/xsd/smooks/freemarker-1.1.xsd"
+        xmlns:g="http://www.milyn.org/xsd/smooks/groovy-1.1.xsd">
 
 	<!--
-		Create an instance of the OrderDate bean and bind it to the beanId "orderDate".  This ID is 
-		used later in the XSLT to refer to this bean.
+		Using Java Binding: Capture and decode the date from the order, storing the decoded
+		date value in a simple HashMap.
 	-->
-	<resource-config selector="Order">
-        <resource>org.milyn.javabean.BeanPopulator</resource>
-		<param name="beanId">orderDate</param>
-		<param name="VisitPhase">ASSEMBLY</param>
-		<param name="beanClass">org.jboss.soa.esb.samples.quickstart.transformxml2xmldatemanipulation.test.OrderDate</param>
-        <param name="bindings">
-            <binding property="orderDate" selector="Order @orderDate" type="LongDate"/>
-        </param>
-	</resource-config>
-	
-    <resource-config selector="decoder:LongDate">
-        <resource>org.milyn.javabean.decoders.DateDecoder</resource>
-        <param name="format">EEE MMM dd HH:mm:ss yyyy</param>
-    </resource-config>
+    <jb:bindings beanId="order" class="java.util.HashMap" createOnElement="$document">
+        <jb:value property="orderDate" data="Order/@orderDate" decoder="Date">
+            <jb:decodeParam name="format">EEE MMM dd HH:mm:ss yyyy</jb:decodeParam>
+        </jb:value>
+    </jb:bindings>
 
     <!--
-		Generate the new "OrderDate" element from the date data in the orderDate bean and insert the result before
-		the OrderLines element.
+		Using FreeMarker Templating: Generate the new "OrderDate" element from decoded date captured in
+		the binding config above.
 	-->
-	<resource-config selector="OrderLines">
-        <resource type="xsl"><![CDATA[<OrderDate>
-               <day><smooks-bean:select ognl="orderDate.day"/></day>
-               <time><smooks-bean:select ognl="orderDate.time"/></time>
-               <month><smooks-bean:select ognl="orderDate.month"/></month>
-               <year><smooks-bean:select ognl="orderDate.year"/></year>
-            </OrderDate>]]></resource>
-        <param name="is-xslt-templatelet">true</param>
-		<param name="action">insertbefore</param>
-	</resource-config>
-	
+    <ftl:freemarker applyOnElement="OrderLines">
+        <ftl:template><![CDATA[    <OrderDate>
+               <day>${order.orderDate?string("dd")}</day>
+               <time>${order.orderDate?string("HH:mm")}</time>
+               <month>${order.orderDate?string("MM")}</month>
+               <year>${order.orderDate?string("yy")}</year>
+            </OrderDate>]]></ftl:template>
+        <ftl:use>
+            <ftl:inline directive="insertbefore" />
+        </ftl:use>
+    </ftl:freemarker>
+
 	<!-- 
-		Remove the orderDate attribute from the Order element - it's now in the message as an OrderDate element.
+		Using Groovy Scripting: Remove the orderDate attribute from the Order element - it's
+		now in the message as an OrderDate element.
 	-->
-	<resource-config selector="Order">
-        <resource>org.milyn.cdres.trans.RemoveAttributeTU</resource>
-		<param name="attributeName">orderDate</param>
-	</resource-config>
+    <g:groovy executeOnElement="Order" executeBefore="false">
+        <g:script>
+            element.removeAttribute("orderDate");
+        </g:script>
+    </g:groovy>
 	
 </smooks-resource-list>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2XML_date_manipulation/src/org/jboss/soa/esb/samples/quickstart/transformxml2xmldatemanipulation/test/OrderDate.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2XML_date_manipulation/src/org/jboss/soa/esb/samples/quickstart/transformxml2xmldatemanipulation/test/OrderDate.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/transform_XML2XML_date_manipulation/src/org/jboss/soa/esb/samples/quickstart/transformxml2xmldatemanipulation/test/OrderDate.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,66 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.samples.quickstart.transformxml2xmldatemanipulation.test;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-/**
- * Sample bean for orderDate manipulation Using Java.  This type of thing is a
- * real pain in XSLT!!
- * 
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class OrderDate {
-	
-	private Date orderDate;
-	
-	/**
-	 * Formatters for encoding the date in the transformation.
-	 * N.B. These are not thread safe.
-	 * 
-	 * TimeZone information has been removed to allow for consistent testing.
-	 */
-	private static SimpleDateFormat dayFormat = new SimpleDateFormat("dd");
-	private static SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
-	private static SimpleDateFormat monthFormat = new SimpleDateFormat("MM");
-	private static SimpleDateFormat yearFormat = new SimpleDateFormat("yy");
-	
-	public void setOrderDate(Date orderDate) {
-        this.orderDate = orderDate;
-	}
-	public Date getOrderDate() {
-		return orderDate;
-	}
-	public String getDay() {
-		return dayFormat.format(orderDate.getTime());
-	}
-	public String getTime() {
-		return timeFormat.format(orderDate.getTime());
-	}
-	public String getMonth() {
-		return monthFormat.format(orderDate.getTime());
-	}
-	public String getYear() {
-		return yearFormat.format(orderDate.getTime());
-	}
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/build.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,22 +0,0 @@
-<project name="Quickstart_udp_gateway" default="run" basedir=".">
-	
-	<description> 
-		${ant.project.name}
-		${line.separator}
-	</description>
-	
-	<!-- Import the base Ant build script... -->
-	<import file="../conf/base-build.xml"/>
-
-	<target name="runtest" depends="compile"  description="sends a String smessage to the UDP gateway">
-		<echo message="Write to UDP port"/>
-		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.udpgateway.test.UdpClient" failonerror="true">
-		      <arg value="localhost"/>	
-		      <arg value="9999"/>	
-		      <arg value="UDP example payload"/>	
-			  <classpath refid="exec-classpath"/>
-		</java>
-		<echo/>
-	</target> 
-
-</project>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/build.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/build.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/build.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,22 @@
+<project name="Quickstart_udp_gateway" default="run" basedir=".">
+	
+	<description> 
+		${ant.project.name}
+		${line.separator}
+	</description>
+	
+	<!-- Import the base Ant build script... -->
+	<import file="../conf/base-build.xml"/>
+
+	<target name="runtest" depends="compile"  description="sends a String smessage to the UDP gateway">
+		<echo message="Write to UDP port"/>
+		<java fork="yes" classname="org.jboss.soa.esb.samples.quickstart.udpgateway.test.UdpClient" failonerror="true">
+		      <arg value="localhost"/>	
+		      <arg value="9999"/>	
+		      <arg value="UDP example payload"/>	
+			  <classpath refid="exec-classpath"/>
+		</java>
+		<echo/>
+	</target> 
+
+</project>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/deployment.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/deployment.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,3 +0,0 @@
-<jbossesb-deployment>
-</jbossesb-deployment>
-

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/deployment.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/deployment.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/deployment.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,3 @@
+<jbossesb-deployment>
+</jbossesb-deployment>
+

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jboss-esb.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/jboss-esb.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,23 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8"?>
-<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd" parameterReloadSecs="5">
-
-	<services>
-
-        <service category="UdpServiceCategory" name="Service1" description="Sample service for UdpGateway quickstart" invmScope="GLOBAL">
-
-			<listeners>
-				<udp-listener name="udp-listener" host="localhost" port="9999" is-gateway="true"/>
-            </listeners>
-
-            <actions mep="RequestResponse">
-				<action name="printMessage" class="org.jboss.soa.esb.actions.SystemPrintln">
-					<property name="message" value="UdpServiceCategory:Service1"/>
-					<property name="printfull" value="false"/>
-				</action>
-            </actions>
-
-		</service>
-
-	</services>
-
-</jbossesb>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jboss-esb.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/jboss-esb.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jboss-esb.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jboss-esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,23 @@
+<?xml version = "1.0" encoding = "UTF-8"?>
+<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd" parameterReloadSecs="5">
+
+	<services>
+
+        <service category="UdpServiceCategory" name="Service1" description="Sample service for UdpGateway quickstart" invmScope="GLOBAL">
+
+			<listeners>
+				<udp-listener name="udp-listener" host="localhost" port="9999" is-gateway="true"/>
+            </listeners>
+
+            <actions mep="RequestResponse">
+				<action name="printMessage" class="org.jboss.soa.esb.actions.SystemPrintln">
+					<property name="message" value="UdpServiceCategory:Service1"/>
+					<property name="printfull" value="false"/>
+				</action>
+            </actions>
+
+		</service>
+
+	</services>
+
+</jbossesb>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
-  JBoss, Home of Professional Open Source
-  Copyright 2006, JBoss Inc., and others contributors as indicated 
-  by the @authors tag. All rights reserved. 
-  See the copyright.txt in the distribution for a
-  full listing of individual contributors. 
-  This copyrighted material is made available to anyone wishing to use,
-  modify, copy, or redistribute it subject to the terms and conditions
-  of the GNU Lesser General Public License, v. 2.1.
-  This program is distributed in the hope that it will be useful, but WITHOUT A 
-  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,
-  v.2.1 along with this distribution; if not, write to the Free Software
-  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
-  MA  02110-1301, USA.
-  
-  (C) 2005-2006,
-  @author JBoss Inc.
--->
-<!-- $Id: jbossesb-unittest-properties.xml $ -->
-<!--
-  These options are described in the JBossESB manual.
-  Defaults are provided here for convenience only.
- 
-  Please read through this file prior to using the system, and consider
-  updating the specified entries.
--->
-<esb
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
-    <properties name="core">
-		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
-		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
-		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
-        <property name="jboss.esb.invm.scope.default" value="NONE"/>
-    </properties>
-    <properties name="registry">      
-    	<property name="org.jboss.soa.esb.registry.queryManagerURI"     		
-    		value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>    		
-    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"     		
-    		value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
-    	<property name="org.jboss.soa.esb.registry.implementationClass" 
-    		value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
-    	<property name="org.jboss.soa.esb.registry.factoryClass" 
-    		value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
-    	<property name="org.jboss.soa.esb.registry.user" 
-    		value="jbossesb"/>
-    	<property name="org.jboss.soa.esb.registry.password" 
-    	  value="password"/>
-    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
-    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" 
-    		value="org.apache.ws.scout.transport.RMITransport"/>
-    </properties>
-    <properties name="transports" depends="core">
-    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
-    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
-    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
-    </properties>
-    <properties name="connection">
-    	<property name="min-pool-size" value="5"/>
-    	<property name="max-pool=size" value="10"/>
-    	<property name="blocking-timeout-millis" value="5000"/>
-    	<property name="abandoned-connection-timeout" value="10000"/>
-    	<property name="abandoned-connection-time-interval" value="30000"/>
-    </properties>
-    <properties name="dbstore">
-		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
-		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
-		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
-		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>		
-		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
-		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
-		<!--table managed by pool to test for valid connections - created by pool automatically -->
-		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
-		<!-- # of milliseconds to timeout waiting for a connection from pool -->
-		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
-                <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
-    </properties>
-    <properties name="messagerouting">
-    	<property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
-    </properties>
-</esb>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jbossesb-properties.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+  JBoss, Home of Professional Open Source
+  Copyright 2006, JBoss Inc., and others contributors as indicated 
+  by the @authors tag. All rights reserved. 
+  See the copyright.txt in the distribution for a
+  full listing of individual contributors. 
+  This copyrighted material is made available to anyone wishing to use,
+  modify, copy, or redistribute it subject to the terms and conditions
+  of the GNU Lesser General Public License, v. 2.1.
+  This program is distributed in the hope that it will be useful, but WITHOUT A 
+  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,
+  v.2.1 along with this distribution; if not, write to the Free Software
+  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+  MA  02110-1301, USA.
+  
+  (C) 2005-2006,
+  @author JBoss Inc.
+-->
+<!-- $Id: jbossesb-unittest-properties.xml $ -->
+<!--
+  These options are described in the JBossESB manual.
+  Defaults are provided here for convenience only.
+ 
+  Please read through this file prior to using the system, and consider
+  updating the specified entries.
+-->
+<esb
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:noNamespaceSchemaLocation="jbossesb-1_0.xsd">
+    <properties name="core">
+		<property name="org.jboss.soa.esb.jndi.server.type" value="jboss"/>
+		<property name="org.jboss.soa.esb.jndi.server.url" value="localhost"/>
+		<property name="org.jboss.soa.esb.persistence.connection.factory" 	value="org.jboss.internal.soa.esb.persistence.format.MessageStoreFactoryImpl"/>
+        <property name="jboss.esb.invm.scope.default" value="NONE"/>
+    </properties>
+    <properties name="registry">      
+    	<property name="org.jboss.soa.esb.registry.queryManagerURI"     		
+    		value="jnp://localhost:1099/InquiryService?org.apache.juddi.registry.rmi.Inquiry#inquire"/>    		
+    	<property name="org.jboss.soa.esb.registry.lifeCycleManagerURI"     		
+    		value="jnp://localhost:1099/PublishService?org.apache.juddi.registry.rmi.Publish#publish" />
+    	<property name="org.jboss.soa.esb.registry.implementationClass" 
+    		value="org.jboss.internal.soa.esb.services.registry.JAXRRegistryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.factoryClass" 
+    		value="org.apache.ws.scout.registry.ConnectionFactoryImpl"/>
+    	<property name="org.jboss.soa.esb.registry.user" 
+    		value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.registry.password" 
+    	  value="password"/>
+    	<!-- the following parameter is scout specific to set the type of communication between scout and the UDDI (embedded, rmi, soap) -->
+    	<property name="org.jboss.soa.esb.scout.proxy.transportClass" 
+    		value="org.apache.ws.scout.transport.RMITransport"/>
+    </properties>
+    <properties name="transports" depends="core">
+    	<property name="org.jboss.soa.esb.mail.smtp.host" value="localhost"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.user" value="jbossesb"/>
+    	<property name="org.jboss.soa.esb.mail.smtp.password" value=""/>
+    	<property name="org.jboss.soa.esb.mail.smtp.port" value="25"/>
+    </properties>
+    <properties name="connection">
+    	<property name="min-pool-size" value="5"/>
+    	<property name="max-pool=size" value="10"/>
+    	<property name="blocking-timeout-millis" value="5000"/>
+    	<property name="abandoned-connection-timeout" value="10000"/>
+    	<property name="abandoned-connection-time-interval" value="30000"/>
+    </properties>
+    <properties name="dbstore">
+		<property name="org.jboss.soa.esb.persistence.db.connection.url" 	value="jdbc:hsqldb:hsql://localhost:9001/"/>
+		<property name="org.jboss.soa.esb.persistence.db.jdbc.driver" 		value="org.hsqldb.jdbcDriver"/>
+		<property name="org.jboss.soa.esb.persistence.db.user" 			value="sa"/>
+		<property name="org.jboss.soa.esb.persistence.db.pwd" 			value=""/>		
+		<property name="org.jboss.soa.esb.persistence.db.pool.initial.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.min.size"	value="2"/>
+		<property name="org.jboss.soa.esb.persistence.db.pool.max.size"	value="5"/>
+		<!--table managed by pool to test for valid connections - created by pool automatically -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.test.table"	value="pooltest"/>
+		<!-- # of milliseconds to timeout waiting for a connection from pool -->
+		<property name="org.jboss.soa.esb.persistence.db.pool.timeout.millis"	value="5000"/> 
+                <property name="org.jboss.soa.esb.persistence.db.conn.manager" value="org.jboss.internal.soa.esb.persistence.manager.StandaloneConnectionManager"/>
+    </properties>
+    <properties name="messagerouting">
+    	<property name="org.jboss.soa.esb.routing.cbrClass" value="org.jboss.internal.soa.esb.services.routing.cbr.JBossRulesRouter"/>
+    </properties>
+</esb>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jndi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/jndi.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jndi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +0,0 @@
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-java.naming.factory.url.pkgs=org.jnp.interfaces
-

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jndi.properties (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/jndi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jndi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/jndi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,5 @@
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+java.naming.factory.url.pkgs=org.jnp.interfaces
+

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/juddi.properties
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/juddi.properties	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/juddi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,69 +0,0 @@
-# jUDDI Registry Properties (used by RegistryServer)
-# see http://www.juddi.org for more information
-
-# The UDDI Operator Name
-juddi.operatorName = jUDDI.org
-
-# The i18n locale default codes
-juddi.i18n.languageCode = en
-juddi.i18n.countryCode = US
-
-# The UDDI DiscoveryURL Prefix
-juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
-
-# The UDDI Operator Contact Email Address
-juddi.operatorEmailAddress = admin at juddi.org
-
-# The maximum name size and maximum number
-# of name elements allows in several of the
-# FindXxxx and SaveXxxx UDDI functions.
-juddi.maxNameLength=255
-juddi.maxNameElementsAllowed=5
-
-# The maximum number of UDDI artifacts allowed
-# per publisher. A value of '-1' indicates any 
-# number of artifacts is valid (These values can be
-# overridden at the individual publisher level).
-juddi.maxBusinessesPerPublisher=25
-juddi.maxServicesPerBusiness=20
-juddi.maxBindingsPerService=10
-juddi.maxTModelsPerPublisher=100
-
-# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
-
-# jUDDI DataStore module currently to use
-juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
-
-# use a dataSource (if set to false a direct 
-# jdbc connection will be used.
-juddi.isUseDataSource=false
-juddi.jdbcDriver=com.mysql.jdbc.Driver
-juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
-juddi.jdbcUsername=root
-juddi.jdbcPassword=admin
-# jUDDI DataSource to use
-# juddi.dataSource=java:comp/env/jdbc/MySqlDS
-
-# jUDDI UUIDGen implementation to use
-juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
-
-# jUDDI Cryptor implementation to use
-juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
- 
-# jUDDI Validator to use
-juddi.validator=org.apache.juddi.validator.DefaultValidator
-
-# jUDDI Proxy Properties (used by RegistryProxy)
-juddi.proxy.adminURL = http://localhost:8080/juddi/admin
-juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
-juddi.proxy.publishURL = http://localhost:8080/juddi/publish
-juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
-juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
-juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
-
-# JNDI settings (used by RMITransport)
-java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
-java.naming.provider.url=jnp://localhost:1099
-java.naming.factory.url.pkgs=org.jboss.naming
-  

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/juddi.properties (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/juddi.properties)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/juddi.properties	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/juddi.properties	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,69 @@
+# jUDDI Registry Properties (used by RegistryServer)
+# see http://www.juddi.org for more information
+
+# The UDDI Operator Name
+juddi.operatorName = jUDDI.org
+
+# The i18n locale default codes
+juddi.i18n.languageCode = en
+juddi.i18n.countryCode = US
+
+# The UDDI DiscoveryURL Prefix
+juddi.discoveryURL = http://localhost:8080/juddi/uddiget.jsp?
+
+# The UDDI Operator Contact Email Address
+juddi.operatorEmailAddress = admin at juddi.org
+
+# The maximum name size and maximum number
+# of name elements allows in several of the
+# FindXxxx and SaveXxxx UDDI functions.
+juddi.maxNameLength=255
+juddi.maxNameElementsAllowed=5
+
+# The maximum number of UDDI artifacts allowed
+# per publisher. A value of '-1' indicates any 
+# number of artifacts is valid (These values can be
+# overridden at the individual publisher level).
+juddi.maxBusinessesPerPublisher=25
+juddi.maxServicesPerBusiness=20
+juddi.maxBindingsPerService=10
+juddi.maxTModelsPerPublisher=100
+
+# jUDDI Authentication module to use
+juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+
+# jUDDI DataStore module currently to use
+juddi.dataStore = org.apache.juddi.datastore.jdbc.JDBCDataStore
+
+# use a dataSource (if set to false a direct 
+# jdbc connection will be used.
+juddi.isUseDataSource=false
+juddi.jdbcDriver=com.mysql.jdbc.Driver
+juddi.jdbcUrl=jdbc:mysql://localhost:3306/juddi
+juddi.jdbcUsername=root
+juddi.jdbcPassword=admin
+# jUDDI DataSource to use
+# juddi.dataSource=java:comp/env/jdbc/MySqlDS
+
+# jUDDI UUIDGen implementation to use
+juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
+
+# jUDDI Cryptor implementation to use
+juddi.cryptor = org.apache.juddi.cryptor.DefaultCryptor
+ 
+# jUDDI Validator to use
+juddi.validator=org.apache.juddi.validator.DefaultValidator
+
+# jUDDI Proxy Properties (used by RegistryProxy)
+juddi.proxy.adminURL = http://localhost:8080/juddi/admin
+juddi.proxy.inquiryURL = http://localhost:8080/juddi/inquiry
+juddi.proxy.publishURL = http://localhost:8080/juddi/publish
+juddi.proxy.transportClass = org.apache.juddi.proxy.AxisTransport
+juddi.proxy.securityProvider = com.sun.net.ssl.internal.ssl.Provider
+juddi.proxy.protocolHandler = com.sun.net.ssl.internal.www.protocol
+
+# JNDI settings (used by RMITransport)
+java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
+java.naming.provider.url=jnp://localhost:1099
+java.naming.factory.url.pkgs=org.jboss.naming
+  

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/lib (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/lib)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/log4j.xml
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/log4j.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,78 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<!-- ===================================================================== -->
-<!--                                                                       -->
-<!--  Log4j Configuration                                                  -->
-<!--                                                                       -->
-<!-- ===================================================================== -->
-
-<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
-
-<!--
-   | 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">
-
-   <!-- ============================== -->
-   <!-- Append messages to the console -->
-   <!-- ============================== -->
-
-   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-      <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 [%t][%c{1}] %m%n"/>
-      </layout>
-   </appender>
-
-   <!-- ================================= -->
-   <!-- Preserve messages in a local file -->
-   <!-- ================================= -->
-
-   <!-- A size based file rolling appender -->
-   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
-     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
-     <param name="File" value="./listener.log"/>
-     <param name="Append" value="false"/>
-     <param name="MaxFileSize" value="500KB"/>
-     <param name="MaxBackupIndex" value="1"/>
-
-     <layout class="org.apache.log4j.PatternLayout">
-       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
-     </layout>	    
-   </appender>
-
-   <!-- ================ -->
-   <!-- Limit categories -->
-   <!-- ================ -->
-
-   <category name="org.jboss">
-      <priority value="WARN"/>
-   </category>
-   <category name="org.jboss.soa.esb">
-      <priority value="ERROR"/>
-   </category>
-   <category name="org.jboss.internal.soa.esb">
-      <priority value="ERROR"/>
-   </category>
-   <category name="org.apache">
-      <priority value="ERROR"/>
-   </category>
-   <category name="quickstart">
-      <priority value="INFO"/>
-   </category>
-   <!-- ======================= -->
-   <!-- Setup the Root category -->
-   <!-- ======================= -->
-
-   <root>
-      <appender-ref ref="CONSOLE"/>
-      <appender-ref ref="FILE"/>
-   </root>
-
-</log4j:configuration>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/log4j.xml (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/log4j.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/log4j.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<!-- ===================================================================== -->
+<!--                                                                       -->
+<!--  Log4j Configuration                                                  -->
+<!--                                                                       -->
+<!-- ===================================================================== -->
+
+<!-- $Id: log4j.xml,v 1.26.2.5 2005/09/15 09:31:02 dimitris Exp $ -->
+
+<!--
+   | 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">
+
+   <!-- ============================== -->
+   <!-- Append messages to the console -->
+   <!-- ============================== -->
+
+   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+      <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+      <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 [%t][%c{1}] %m%n"/>
+      </layout>
+   </appender>
+
+   <!-- ================================= -->
+   <!-- Preserve messages in a local file -->
+   <!-- ================================= -->
+
+   <!-- A size based file rolling appender -->
+   <appender name="FILE" class="org.jboss.logging.appender.RollingFileAppender">
+     <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"/>
+     <param name="File" value="./listener.log"/>
+     <param name="Append" value="false"/>
+     <param name="MaxFileSize" value="500KB"/>
+     <param name="MaxBackupIndex" value="1"/>
+
+     <layout class="org.apache.log4j.PatternLayout">
+       <param name="ConversionPattern" value="%d %-5p [%t][%c] %m%n"/>
+     </layout>	    
+   </appender>
+
+   <!-- ================ -->
+   <!-- Limit categories -->
+   <!-- ================ -->
+
+   <category name="org.jboss">
+      <priority value="WARN"/>
+   </category>
+   <category name="org.jboss.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.jboss.internal.soa.esb">
+      <priority value="ERROR"/>
+   </category>
+   <category name="org.apache">
+      <priority value="ERROR"/>
+   </category>
+   <category name="quickstart">
+      <priority value="INFO"/>
+   </category>
+   <!-- ======================= -->
+   <!-- Setup the Root category -->
+   <!-- ======================= -->
+
+   <root>
+      <appender-ref ref="CONSOLE"/>
+      <appender-ref ref="FILE"/>
+   </root>
+
+</log4j:configuration>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/readme.txt
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/readme.txt	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,17 +0,0 @@
-Overview:
-=========
-  The purpose of the udp_gateway quickstart example is to demonstrate
-  how a message sent with UDP can be passed to JBossESB.
-
-Running this quickstart:
-========================
-  Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
-  and a more detailed descripton of the different ways to run the quickstarts.
-
-To Run '.esb' archive mode:
-===========================
-  1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
-  2. Switch back to Application Server console to see the output from the ESB
-  3. The Message Injection Console will pop up automatically, enter some text and hit Send.
-  4. In this folder ("Window1"), type 'ant undeploy'.
-  

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/readme.txt (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/readme.txt)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/readme.txt	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,17 @@
+Overview:
+=========
+  The purpose of the udp_gateway quickstart example is to demonstrate
+  how a message sent with UDP can be passed to JBossESB.
+
+Running this quickstart:
+========================
+  Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
+  and a more detailed descripton of the different ways to run the quickstarts.
+
+To Run '.esb' archive mode:
+===========================
+  1. In a command terminal window in this folder ("Window1"), type 'ant deploy'.
+  2. Switch back to Application Server console to see the output from the ESB
+  3. The Message Injection Console will pop up automatically, enter some text and hit Send.
+  4. In this folder ("Window1"), type 'ant undeploy'.
+  

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/scripts)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,70 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-import groovy.swing.SwingBuilder
-import java.awt.*
-
-/**
- * Simple Groovy Gateway script that starts a Swing form through which you can
- * inject messages into the target service.  Useful for testing and prototyping.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-
-def targetService = "Target Service: " + deliveryAdapter.getDeliveryAdapter().getServiceCategory() + ":" + deliveryAdapter.getDeliveryAdapter().getServiceName()
-def numRows = 7
-def numCols = 50
-
-swing = new SwingBuilder()
-sendMessage = swing.action(name:'SendMessage', closure:this.&sendMessageToTarget, mnemonic:'R')
-
-frame = swing.frame(title:'Message Injection Console', size:[600,400], location:[200,200]) {
-    panel(layout:new BorderLayout()) {
-        panel(layout:new BorderLayout(), constraints: BorderLayout.NORTH) {
-            label(text: targetService, constraints: BorderLayout.NORTH)
-            label(text: 'Message In:', constraints: BorderLayout.WEST)
-            textArea(id:'messageInTB', columns: numCols, rows: numRows, constraints: BorderLayout.EAST)
-        }
-        panel(layout:new FlowLayout()) {
-            button(text: 'Send Message', action:sendMessage)
-	    comboBox(id: 'synchasync', items:["Asynchronous", "Synchronous"], selectedIndex:0);
-        }
-        panel(layout:new BorderLayout(), constraints: BorderLayout.SOUTH) {
-            label(text: 'Message Out:', constraints: BorderLayout.WEST)
-            textArea(id: 'messageOutTB', columns: numCols, rows: numRows, constraints: BorderLayout.EAST)
-        }
-    }
-}
-frame.pack()
-frame.show()
-
-def sendMessageToTarget(event) {
-    swing.messageOutTB.text = ""
-    if(swing.synchasync.selectedIndex == 0) {
-	    deliveryAdapter.deliverAsync(swing.messageInTB.text)
-    } else {
-	    swing.messageOutTB.text = deliveryAdapter.deliverSync(swing.messageInTB.text, 20000)
-    }
-}
-
-// Wait until the gateway is told to shutdown....
-while(!gateway.waitUntilStopping(500)) {
-}
-
-frame.dispose()
\ No newline at end of file

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/scripts/MessageInjectionConsole.groovy	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,70 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated
+ * by the @authors tag. All rights reserved.
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA  02110-1301, USA.
+ *
+ * (C) 2005-2006, JBoss Inc.
+ */
+import groovy.swing.SwingBuilder
+import java.awt.*
+
+/**
+ * Simple Groovy Gateway script that starts a Swing form through which you can
+ * inject messages into the target service.  Useful for testing and prototyping.
+ *
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+
+def targetService = "Target Service: " + deliveryAdapter.getDeliveryAdapter().getServiceCategory() + ":" + deliveryAdapter.getDeliveryAdapter().getServiceName()
+def numRows = 7
+def numCols = 50
+
+swing = new SwingBuilder()
+sendMessage = swing.action(name:'SendMessage', closure:this.&sendMessageToTarget, mnemonic:'R')
+
+frame = swing.frame(title:'Message Injection Console', size:[600,400], location:[200,200]) {
+    panel(layout:new BorderLayout()) {
+        panel(layout:new BorderLayout(), constraints: BorderLayout.NORTH) {
+            label(text: targetService, constraints: BorderLayout.NORTH)
+            label(text: 'Message In:', constraints: BorderLayout.WEST)
+            textArea(id:'messageInTB', columns: numCols, rows: numRows, constraints: BorderLayout.EAST)
+        }
+        panel(layout:new FlowLayout()) {
+            button(text: 'Send Message', action:sendMessage)
+	    comboBox(id: 'synchasync', items:["Asynchronous", "Synchronous"], selectedIndex:0);
+        }
+        panel(layout:new BorderLayout(), constraints: BorderLayout.SOUTH) {
+            label(text: 'Message Out:', constraints: BorderLayout.WEST)
+            textArea(id: 'messageOutTB', columns: numCols, rows: numRows, constraints: BorderLayout.EAST)
+        }
+    }
+}
+frame.pack()
+frame.show()
+
+def sendMessageToTarget(event) {
+    swing.messageOutTB.text = ""
+    if(swing.synchasync.selectedIndex == 0) {
+	    deliveryAdapter.deliverAsync(swing.messageInTB.text)
+    } else {
+	    swing.messageOutTB.text = deliveryAdapter.deliverSync(swing.messageInTB.text, 20000)
+    }
+}
+
+// Wait until the gateway is told to shutdown....
+while(!gateway.waitUntilStopping(500)) {
+}
+
+frame.dispose()
\ No newline at end of file

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss/soa)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java
===================================================================
--- labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,65 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-package org.jboss.soa.esb.samples.quickstart.udpgateway.test;
-
-import java.io.IOException;
-import java.net.UnknownHostException;
-import org.apache.commons.net.echo.EchoUDPClient;
-import java.net.InetAddress;
-
-public class UdpClient  
-{
-	public static void main(String... args) 
-	{
-		final String host = args[0];
-		final int port = Integer.parseInt(args[1]);
-		final String payload = args[2];
-
-		try
-		{
-			sendUdpString(payload, host, port);
-		}
-		catch (final UnknownHostException e)
-		{
-			e.printStackTrace();
-		}
-		catch (final IOException e)
-		{
-			e.printStackTrace();
-		}
-	}
-
-	private static void sendUdpString(final String payload, final String host, final int port) throws UnknownHostException, IOException
-    {
-        final EchoUDPClient client = new EchoUDPClient();
-        client.open();
-        try
-        {
-            final byte[] writeBuffer = payload.getBytes();
-            client.setSoTimeout(3000);
-            client.send(writeBuffer, writeBuffer.length, InetAddress.getByName(host), port);
-        } 
-        finally
-        {
-            client.close();
-        }
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java (from rev 25071, labs/jbossesb/trunk/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/udp_gateway/src/org/jboss/soa/esb/samples/quickstart/udpgateway/test/UdpClient.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and others contributors as indicated 
+ * by the @authors tag. All rights reserved. 
+ * See the copyright.txt in the distribution for a
+ * full listing of individual contributors. 
+ * This copyrighted material is made available to anyone wishing to use,
+ * modify, copy, or redistribute it subject to the terms and conditions
+ * of the GNU Lesser General Public License, v. 2.1.
+ * This program is distributed in the hope that it will be useful, but WITHOUT A 
+ * 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,
+ * v.2.1 along with this distribution; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
+ * MA  02110-1301, USA.
+ * 
+ * (C) 2005-2006,
+ * @author JBoss Inc.
+ */
+package org.jboss.soa.esb.samples.quickstart.udpgateway.test;
+
+import java.io.IOException;
+import java.net.UnknownHostException;
+import org.apache.commons.net.echo.EchoUDPClient;
+import java.net.InetAddress;
+
+public class UdpClient  
+{
+	public static void main(String... args) 
+	{
+		final String host = args[0];
+		final int port = Integer.parseInt(args[1]);
+		final String payload = args[2];
+
+		try
+		{
+			sendUdpString(payload, host, port);
+		}
+		catch (final UnknownHostException e)
+		{
+			e.printStackTrace();
+		}
+		catch (final IOException e)
+		{
+			e.printStackTrace();
+		}
+	}
+
+	private static void sendUdpString(final String payload, final String host, final int port) throws UnknownHostException, IOException
+    {
+        final EchoUDPClient client = new EchoUDPClient();
+        client.open();
+        try
+        {
+            final byte[] writeBuffer = payload.getBytes();
+            client.setSoTimeout(3000);
+            client.send(writeBuffer, writeBuffer.length, InetAddress.getByName(host), port);
+        } 
+        finally
+        {
+            client.close();
+        }
+    }
+}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_bpel/readme.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_bpel/readme.txt	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/samples/quickstarts/webservice_bpel/readme.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -22,18 +22,14 @@
   Please refer to 'ant help-quickstarts' for prerequisites about the quickstarts
   and a more detailed descripton of the different ways to run the quickstarts.
 
-  Note, this quickstart requires an ESB and JBossWS installation into
-  JBoss AS 4.2.2.GA.  Installation instructions for both can be found in the
-  install/readme.txt.
-
   NOTE: This Quickstart DOES NOT run Standalone, or on the ESB Server.  It only runs on the
         JBoss Application Server (v4.2.xGA).
 
   The ActiveBPEL Engine (tested with versions v3.1 and v5.0.2) must now be installed on an
   instance of Tomcat on your system.
   
-  Tthe ActiveBPEL Engine can be downloaded from:
-     http://www.activevos.com/community-open-source.php
+  The ActiveBPEL Engine can be downloaded from:
+     http://www.activevos.com/index.php
 
   ActiveBPEL Installation Guide:
      After downloading the distribution, unzip and locate all documentation in the docs folder. 
@@ -78,4 +74,4 @@
   9.  Goto http://localhost:8080/order-manager/ (note, not port '18080').
       From here, you can approve the order.
   10. When finished, undeploy the application by typing 'ant undeploy'.
-    
\ No newline at end of file
+    

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2 (from rev 25071, labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/message-store-sql/db2)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql
===================================================================
--- labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-CREATE TABLE message 
-( 
-  uuid varchar(128) NOT NULL, 
-  type varchar(128) NOT NULL, 
-  message clob NOT NULL, 
-  delivered varchar(10) NOT NULL, 
-  classification varchar(10), 
-  PRIMARY KEY(uuid) 
-);

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql (from rev 25071, labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/create_database.sql	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,9 @@
+CREATE TABLE message 
+( 
+  uuid varchar(128) NOT NULL, 
+  type varchar(128) NOT NULL, 
+  message clob NOT NULL, 
+  delivered varchar(10) NOT NULL, 
+  classification varchar(10), 
+  PRIMARY KEY(uuid) 
+);

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql
===================================================================
--- labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1 +0,0 @@
-DROP TABLE IF EXISTS message;

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql (from rev 25071, labs/jbossesb/trunk/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbossesb/src/main/resources/message-store-sql/db2/drop_database.sql	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1 @@
+DROP TABLE IF EXISTS message;

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Constants.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -23,15 +23,15 @@
 
 
 /**
- * 
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a> 
  *
+ * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
+ *
  */
 public class Constants {
-	
+
 	// 'Well known' names for action configuration
 	public static final String BODY_CONTENT_VARIABLE_NAME	="BODY_CONTENT";
-	
+
 	// Names to be used as keys both in the ESB message and in the Jbpm context (process & token)
 	public static final String COMMAND_CODE					="jbpmCommandCode";
 
@@ -68,6 +68,9 @@
     public static final String FAULT_TO                     ="jbpmFaultTo";
     public static final String ESB_MESSAGE_ID               ="jbpmEsbMessageId";
 	
+    public static final String SECURITY_CONTEXT             ="jbpmSecurityContext";
+    public static final String AUTH_REQUEST                 ="jbpmAuthenticationRequest";
+
 	// Possible values of return codes after execution of an action
 	public static final String RETCODE_OK					="jbpmReturnOK";
 	public static final String RETCODE_INVALID_OPCODE		="jbpmReturnInvalidOpCode";
@@ -93,7 +96,7 @@
 	public static final String OVERWRITE_SWIMLANE_TAG		="overwrite-swimlane";
     public static final String KEY_TAG                      ="key";
 	public static final String REPLY_TO_ORIGINATOR_TAG		="reply-to-originator";
-    
+
     //tag names for xml configuration of jBPM actions
     public static final String BPM_TO_ESB_VARS_TAG = "bpmToEsbVars";
     public static final String ESB_TO_BPM_VARS_TAG = "esbToBpmVars";
@@ -107,28 +110,8 @@
 	public enum OpCode
 	{
         CallbackCommand
-//		,DeployProcessDefinition
-//		,AbstractCancelCommand
-//		,AbstractGetObjectBaseCommand
-//		,AsynchronousCommand
 		,CancelProcessInstanceCommand
-//		,CancelTokenCommand
-//		,CancelWorkOnTaskCommand
-//		,ChangeProcessInstanceVersionCommand
-//		,Command
-//		,CommandService
-//		,CompositeCommand
-//		,GetProcessDefinitionCommand
-//		,GetProcessInstanceCommand
-//		,GetProcessInstancesCommand
-//		,GetTaskInstanceCommand
-//		,GetTaskListCommand
 		,NewProcessInstanceCommand
-		,SignalCommand
-		,StartProcessInstanceCommand
-//		,StartWorkOnTaskCommand
-//		,TaskInstanceEndCommand
-//		,VariablesCommand
-		;
+		,StartProcessInstanceCommand;
 	}
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/JBpmObjectMapper.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/JBpmObjectMapper.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/JBpmObjectMapper.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +1,5 @@
 /**
- * 
+ *
  */
 package org.jboss.soa.esb.services.jbpm;
 
@@ -9,17 +9,21 @@
 import java.util.List;
 import java.util.Map;
 
+import javax.crypto.SealedObject;
+
 import org.apache.log4j.Logger;
 import org.dom4j.Document;
 import org.dom4j.DocumentException;
 import org.dom4j.DocumentHelper;
 import org.dom4j.Element;
 import org.dom4j.tree.DefaultElement;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.message.format.MessageFactory;
 import org.jboss.soa.esb.message.mapping.ObjectMapper;
 import org.jboss.soa.esb.message.mapping.ObjectMappingException;
+import org.jboss.soa.esb.services.security.SecurityService;
 import org.jbpm.context.exe.ContextInstance;
 import org.jbpm.graph.exe.ExecutionContext;
 import org.jbpm.graph.exe.Token;
@@ -27,38 +31,42 @@
 
 /**
  * Mapping glue between jBPM and ESB. Handles setting up the replyTo of the
- * JBpmCallback Service, and is a wrapper around org.jboss.soa.esb.message.mapping.ObjectMapper 
+ * JBpmCallback Service, and is a wrapper around org.jboss.soa.esb.message.mapping.ObjectMapper
  * to handle jBPM specifics around mapping variables from jBPM to ESB and back.
- * 
+ *
  * @author kstam
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
  */
 public class JBpmObjectMapper {
-    
+
     public JBpmObjectMapper() {
         super();
     }
 
     private Logger log = Logger.getLogger(getClass());
     private ObjectMapper objectMapper = new ObjectMapper();
-    
+
     /**
-     * Creates an ESB Message, giving the mapping specified in the jbpmToEsbVars Element. 
+     * Creates an ESB Message, giving the mapping specified in the jbpmToEsbVars Element.
      * This element is defined in the jBPM process-definition.xml as child element
      * of either the EsbNotifier ActionHandler, or the EsbActionHandler.
-     * 
+     *
      * @param jbpmToEsbVars - the configuration of the mapping.
      * @param isGlobalProcessScope - Variables will be looked up using either the token scope or the process-definition (global) scope
      * See the jBPM documentation for more details.
      * @param executionContext - the jBPM ExecutionContext.
      * @return the newly created ESB message.
-     * 
+     *
      * @throws Exception
      */
     public Message mapFromJBpmToEsbMessage (final DefaultElement bpmToEsbVars, final Boolean isGlobalProcessScope, final ExecutionContext executionContext)
     {
         Message message = MessageFactory.getInstance().getMessage();
         boolean gblPrcScope = (null == isGlobalProcessScope) ? false : isGlobalProcessScope;
-     
+
+        // Map SecurityContext and AuthRequest if they exist.
+        mapSecurityInfoFromJbpmToEsb(gblPrcScope, executionContext, message);
+
         if (bpmToEsbVars==null) {
             return message;
         }
@@ -83,12 +91,12 @@
     /**
      * Sets all the Objects in the jBPM VariableMap in the body of the ESB Message using the
      * the jBPM object names as the Esb Message body keys.
-     * 
+     *
      * @param gblPrcScope
      * @param executionContext
      * @param message
      */
-    private void setAllOnEsbMessage(final boolean gblPrcScope, final ExecutionContext executionContext, Message message) 
+    private void setAllOnEsbMessage(final boolean gblPrcScope, final ExecutionContext executionContext, Message message)
     {
         Token token = executionContext.getToken();
         ContextInstance ctxInstance = token.getProcessInstance().getContextInstance();
@@ -104,7 +112,7 @@
     }
     /**
      * Sets a jBPM object onto the ESB Message. The mapping is defined in the Mapping element.
-     * 
+     *
      * @param mapping          - Mapping object, used to extract the object from jBPM and used to set the object on the ESB Message
      * @param gblPrcScope      - Global setting for the jBPM scope
      * @param message          - ESB Message
@@ -139,8 +147,8 @@
         }
     }
     /**
-     * Obtains an Object from the jBPM variableMap. 
-     * 
+     * Obtains an Object from the jBPM variableMap.
+     *
      * @param isPrcScope - if true, within process-instance scope, if false, within token scope, or up the token hierarchy.
      * @param expression - MVEL expression String.
      * @param ctxInstance - jBPM ContextInstance where the jBPM variableMap lives.
@@ -156,7 +164,7 @@
         if (dotPosition > 0) {
             objectName = expression.substring(0, dotPosition);
             remainingExpression = expression.substring(dotPosition+1);
-        } 
+        }
         if (isPrcScope) {
             object = ctxInstance.getVariable(objectName);
         } else {
@@ -169,7 +177,7 @@
         return object;
     }
     /**
-     * 
+     *
      * @param message
      * @param esbToBpmXml
      * @return
@@ -180,7 +188,7 @@
         return mapFromEsbMessageToJBpmMap(message, getMappingList(esbToBpmXml));
     }
     /**
-     * This 
+     * This
      * @param message
      * @param token
      * @throws Exception
@@ -193,7 +201,7 @@
         }
         for (Mapping mapping: mappingList) {
             if (mapping.getBpm()==null || "".equals(mapping.getBpm())) {
-                
+
                 mapping.setBpm(mapping.getEsb());
             }
             Object value = null;
@@ -201,15 +209,17 @@
                 value = getObjectFromMessage(message, mapping);
             } catch (ConfigurationException ce) {
                 log.error(ce.getMessage(), ce);
-            } 
+            }
             // only put it in the map if it's not null
             if (null!=value)
                 map.put(mapping.getBpm(), value);
         }
+        map.putAll(mapSecurityContextFromEsbMessageToJBpmMap(message));
+        map.putAll(mapAuthRequestFromEsbMessageToJBpmMap(message));
         return map;
     }
     /**
-     * 
+     *
      * @param message
      * @param esbToBpmXml
      * @return
@@ -220,7 +230,7 @@
         return mapFromEsbMessageToJBpmMapping(message, getMappingList(esbToBpmXml));
     }
     /**
-     * This 
+     * This
      * @param message
      * @param token
      * @throws Exception
@@ -233,7 +243,7 @@
         }
         for (Mapping mapping: mappingList) {
             if (mapping.getBpm()==null || "".equals(mapping.getBpm())) {
-                
+
                 mapping.setBpm(mapping.getEsb());
             }
             Object value = null;
@@ -241,14 +251,14 @@
                 value = getObjectFromMessage(message, mapping);
             } catch (ConfigurationException ce) {
                 log.error(ce.getMessage(), ce);
-            } 
+            }
             // only put it in the map if it's not null
             if (null!=value)
                 map.put(mapping, value);
         }
         return map;
     }
-    
+
     private List<Mapping> getMappingList(final String esbToBpmXml)
     	throws ConfigurationException
     {
@@ -269,8 +279,8 @@
         }
         return mappingList ;
     }
-    
-    private Object getObjectFromMessage(Message message, Mapping mapping) 
+
+    private Object getObjectFromMessage(Message message, Mapping mapping)
     throws ConfigurationException
     {
         Object value = null;
@@ -288,4 +298,64 @@
         log.debug("value=" + value);
         return value;
     }
+
+    public HashMap<String, Object> mapSecurityContextFromEsbMessageToJBpmMap(final Message message)
+    {
+        final HashMap<String, Object> map = new HashMap<String, Object>();
+        final SealedObject sealedObject = (SealedObject) message.getContext().getContext(SecurityService.CONTEXT);
+        if (sealedObject !=null)
+        {
+            map.put(Constants.SECURITY_CONTEXT, sealedObject);
+        }
+        return map;
+    }
+
+    public HashMap<String, ?> mapAuthRequestFromEsbMessageToJBpmMap(final Message message)
+    {
+        final HashMap<String, Object> map = new HashMap<String, Object>();
+        final byte[] encryptedAuthRequest = (byte[]) message.getContext().getContext(SecurityService.AUTH_REQUEST);
+        if (encryptedAuthRequest != null)
+        {
+            map.put(Constants.AUTH_REQUEST, encryptedAuthRequest);
+        }
+        return map;
+    }
+
+    /**
+     * Will map the SecurityContext and AuthenticationRequest from a jBPM
+     * variable to ESB Message context.
+     *
+     * @param gblPrcScope   True if the process scope is global.
+     * @param executionContext The jBPM execution context.
+     * @param esbMessage The distination ESB message
+     * @return
+     */
+    public Message mapSecurityInfoFromJbpmToEsb(final boolean gblPrcScope, final ExecutionContext executionContext, final Message esbMessage)
+    {
+        AssertArgument.isNotNull(executionContext, "executionContext");
+        AssertArgument.isNotNull(esbMessage, "esbMessage");
+
+        final Token token = executionContext.getToken();
+        final ContextInstance ctxInstance = token.getProcessInstance().getContextInstance();
+        final Map jbpmMap = (gblPrcScope) ? ctxInstance.getVariables() : ctxInstance.getVariables(token);
+
+        if (jbpmMap == null)
+        {
+            return esbMessage;
+        }
+
+        final Object sealedObject = jbpmMap.get(Constants.SECURITY_CONTEXT);
+        if (sealedObject != null)
+        {
+           esbMessage.getContext().setContext(SecurityService.CONTEXT, sealedObject);
+        }
+
+        final Object encrypedAutRequest = jbpmMap.get(Constants.AUTH_REQUEST);
+        if (encrypedAutRequest != null)
+        {
+           esbMessage.getContext().setContext(SecurityService.AUTH_REQUEST, encrypedAutRequest);
+        }
+
+        return esbMessage;
+    }
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Mapping.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Mapping.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/Mapping.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -54,6 +54,31 @@
                .append(", defaultValue=").append(defaultValue).append(" ]");
         return builder.toString();
     }
+    
+    public boolean equals(final Object obj)
+    {
+        if (this == obj)
+            return true;
+        if (!(obj instanceof Mapping))
+            return false;
+        
+        Mapping mapping = (Mapping) obj;
+        return (bpm == mapping.bpm || bpm != null && bpm.equals(mapping.bpm)) && 
+            (esb == mapping.esb || esb != null && esb.equals(mapping.esb)) &&
+            (defaultValue == mapping.defaultValue || defaultValue != null && defaultValue.equals(mapping.defaultValue)) &&
+            (isProcessScope == mapping.isProcessScope || isProcessScope != null && isProcessScope.equals(mapping.isProcessScope));
+    }
+    
+    public int hashCode()
+    {
+        int hash = 7;
+        hash = 31 * hash + (null == bpm ? 0 : bpm.hashCode());
+        hash = 31 * hash + (null == esb ? 0 : esb.hashCode());
+        hash = 31 * hash + (null == defaultValue ? 0 : defaultValue.hashCode());
+        hash = 31 * hash + (null == isProcessScope ? 0 : isProcessScope.hashCode());
+        return hash;
+    }
+    
     /**
      * 
      * @param mappingElement

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandler.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -193,9 +193,6 @@
     {
         EPR replyTo = new LogicalEPR(ServiceInvoker.INTERNAL_SERVICE_CATEGORY, JBpmCallback.JBPM_CALL_BACK_SERVICE_NAME);
         PortReference portReference = replyTo.getAddr();
-        if (esbToJBpmXml!=null) {
-            portReference.addExtension(Constants.ESB_TO_BPM_VARS_TAG, esbToJBpmXml);
-        }
         if (globalProcessScope!=null) {
             portReference.addExtension(Constants.PROCESS_SCOPE_ATTR, globalProcessScope.toString());
         }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessor.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessor.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessor.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -22,7 +22,10 @@
 
 package org.jboss.soa.esb.services.jbpm.actions;
 
+import javax.crypto.SealedObject;
+
 import org.apache.log4j.Logger;
+import org.jboss.internal.soa.esb.assertion.AssertArgument;
 import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.actions.ActionLifecycle;
 import org.jboss.soa.esb.actions.ActionLifecycleException;
@@ -32,15 +35,19 @@
 import org.jboss.soa.esb.services.jbpm.cmd.Command;
 import org.jboss.soa.esb.services.jbpm.cmd.CommandExecutor;
 import org.jboss.soa.esb.services.jbpm.cmd.MessageFacade;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
 
 /**
 *
 * Processes a single jBPM command.
 * Part of the message content will be taken from constructor time configuration
 * (from the action configuration XML)
-* 
+*
 * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a>
 * @author <a href="mailto:kurt.stam at jboss.com">Kurt Stam</a>
+* @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
 */
 public class BpmProcessor implements ActionLifecycle
 {
@@ -61,21 +68,60 @@
             throw new ActionLifecycleException(ce.getMessage(), ce);
         }
     }
-    
+
 	public BpmProcessor(ConfigTree configTree) throws ConfigurationException
-	{ 
+	{
         this.configTree = configTree;
 	}
 
 	public Message process(Message message) throws ConfigurationException
 	{
+		// Add security context to message context.
+		addSecurityContext(message);
+		// Add authentication request context to message context.
+		addAuthenticationRequest(message);
+
 		message.getBody().add(Constants.COMMAND_CODE, messageFacade.getOpCode().toString());
 		messageFacade.setJBPMContextParameters(message);
+
         CommandExecutor commandExecutor = CommandExecutor.getInstance();
         String commandString  = (String)message.getBody().get(Constants.COMMAND_CODE);
         Command command = commandExecutor.getCommand(commandString);
         command.execute(message);
         return message;
 	}
-    
+
+	/**
+	 * Adds the current security context to the passed in message.
+	 * The context is added, if set, to the message context keyed by {@link SecurityService#CONTEXT}.
+	 *
+	 * @param message The ESB message object.
+	 */
+    final void addSecurityContext(Message message)
+    {
+        AssertArgument.isNotNull(message, "message");
+
+        SealedObject securityContext = SecurityContext.getSecurityContext();
+        if (securityContext != null)
+        {
+            message.getContext().setContext(SecurityService.CONTEXT, securityContext);
+        }
+    }
+
+	/**
+	 * Adds the authentication request to the passed in message.
+	 * The context is added, if set, to the message context keyed by {@link SecurityService#AUTH_REQUEST}.
+	 *
+	 * @param message The ESB message object.
+	 */
+    final void addAuthenticationRequest(Message message)
+    {
+        AssertArgument.isNotNull(message, "message");
+
+        byte[] encryptedAuthRequest = AuthenticationRequestImpl.getEncryptedAuthRequest();
+        if (encryptedAuthRequest != null)
+        {
+            message.getContext().setContext(SecurityService.AUTH_REQUEST, encryptedAuthRequest);
+        }
+    }
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommand.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommand.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommand.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -21,17 +21,27 @@
  */
 package org.jboss.soa.esb.services.jbpm.cmd;
 
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.log4j.Logger;
+import org.dom4j.tree.DefaultElement;
+import org.jboss.soa.esb.ConfigurationException;
 import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.PortReference;
+import org.jboss.soa.esb.message.Message;
 import org.jboss.soa.esb.services.jbpm.Constants;
+import org.jboss.soa.esb.services.jbpm.JBpmObjectMapper;
 import org.jboss.soa.esb.services.jbpm.Mapping;
+import org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler;
 import org.jbpm.JbpmContext;
 import org.jbpm.command.Command;
 import org.jbpm.context.exe.ContextInstance;
+import org.jbpm.graph.def.Action;
+import org.jbpm.graph.def.Node;
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
+import org.jbpm.instantiation.Delegation;
 
 /**
  * @author kstam
@@ -39,6 +49,8 @@
  */
 public class CallbackCommand implements Command {
 
+    private static final HashMap<Mapping, Object> EMPTY_VARIABLES_MAP = new HashMap<Mapping, Object>();
+    
     private static Logger logger = Logger.getLogger(CallbackCommand.class);
     /**
      * 
@@ -54,6 +66,11 @@
      */
     private Map<Mapping, Object> variables ;
     
+    /**
+     * The ESB Message object.
+     */
+    private Message message;
+    
     private EPR callbackEpr;
     
     public CallbackCommand() {
@@ -75,26 +92,37 @@
         this.variables = variables ;
     }
     
+    public void setMessage(final Message message)
+    {
+        this.message = message;
+    }
+    
+    
     public Object execute(JbpmContext jbpmContext) 
     {
         final boolean isDebugEnabled = logger.isDebugEnabled() ;
         try {
-            long nodeId  = Long.parseLong(callbackEpr.getAddr().getExtensionValue(Constants.NODE_ID));
-            long tokenId = Long.parseLong(callbackEpr.getAddr().getExtensionValue(Constants.TOKEN_ID));
-            long processInstanceId = Long.parseLong(callbackEpr.getAddr().getExtensionValue(Constants.PROCESS_INSTANCE_ID));
+            PortReference portRef = callbackEpr.getAddr();
+            long nodeId  = Long.parseLong(portRef.getExtensionValue(Constants.NODE_ID));
+            long tokenId = Long.parseLong(portRef.getExtensionValue(Constants.TOKEN_ID));
+            long processInstanceId = Long.parseLong(portRef.getExtensionValue(Constants.PROCESS_INSTANCE_ID));
+            
             String counterName = Constants.PROCESS_NODE_VERSION_COUNTER + nodeId + '_' + tokenId;
-            long processNodeVersion = Long.parseLong(callbackEpr.getAddr().getExtensionValue(counterName));
-            if (isDebugEnabled) logger.debug("Expected nodeId=" + nodeId + 
-                    ", tokenId=" + tokenId + ", processNodeVersion=" + processNodeVersion);
+            
+            long processNodeVersion = Long.parseLong(portRef.getExtensionValue(counterName));
+            
+            if (isDebugEnabled) logger.debug("Expected nodeId=" + nodeId +  ", tokenId=" + tokenId + ", processNodeVersion=" + processNodeVersion);
             //get update on current state of things.
             final Token token = jbpmContext.getToken(tokenId) ;
             if (token == null) {
                 throw new CallbackException("Token id " + tokenId + " from process instance " + processInstanceId + " is no longer active") ;
             }
+            
             final ProcessInstance instance = token.getProcessInstance() ;
             if (instance == null) {
                 throw new CallbackException("Process instance " + processInstanceId + " is no longer active") ;
             }
+            
             if (instance.getId() != processInstanceId) {
                 throw new CallbackException("Token id " + tokenId + " from process instance " + processInstanceId + " now attached to process instance " + instance.getId()) ;
             }
@@ -111,22 +139,86 @@
             }
             
             final ContextInstance contextInstance = instance.getContextInstance() ;
-            final long currentProcessNodeVersion = Long.parseLong(String.valueOf(
-                    contextInstance.getVariableLocally(counterName, token)));
+            final long currentProcessNodeVersion = Long.parseLong(String.valueOf(contextInstance.getVariableLocally(counterName, token)));
             if (isDebugEnabled) logger.debug("ProcessNodeVersion=" + currentProcessNodeVersion);
             if (processNodeVersion!=currentProcessNodeVersion) {
-                throw new CallbackException("The current processNodeVersion (id=" + currentProcessNodeVersion +
-                        ") is not the expected version (version=" + processNodeVersion + ").");
+                throw new CallbackException("The current processNodeVersion (id=" + currentProcessNodeVersion + ") is not the expected version (version=" + processNodeVersion + ").");
             }
             
-            final String globalProcessScopeVal = callbackEpr.getAddr().getExtensionValue(Constants.PROCESS_SCOPE_ATTR) ;
+            final String globalProcessScopeVal = portRef.getExtensionValue(Constants.PROCESS_SCOPE_ATTR) ;
             // Default to global scope as that matches the previous functionality
             // N.B. This is different from retrieving variables!!
             final boolean globalProcessScope = (globalProcessScopeVal == null ? true : Boolean.parseBoolean(globalProcessScopeVal));
-            AsyncProcessSignal.createSignalJob(jbpmContext, token, transitionName, jbpmContext.getActorId(), globalProcessScope, variables) ;
+            
+            Map<Mapping, Object> variablesMap = getVariablesMapFromMessage(token.getNode(), message);
+            // Try to be backward compatible in case the variable mappings were stored in the epr and set on this CallbackCommand instance.
+            if (variables != null)
+            {
+                variablesMap.putAll(variables);
+            }
+            
+            AsyncProcessSignal.createSignalJob(jbpmContext, token, transitionName, jbpmContext.getActorId(), globalProcessScope, variablesMap) ;
         } catch (CallbackException jbpmCe) {
+            //TODO: Why is this only a warning?
             logger.warn(jbpmCe.getMessage());
         }
         return null;
     }
+    
+    /**
+     * This method uses the information located in the jBPM nodes action definition to find out
+     * which variables have been defined there. 
+     * <p/>
+     * The variables that are specified in the element 'esbToBpmVars' will be extracted from the 
+     * ESB Message object and put into the retured map. 
+     * 
+     * For example:
+     * <pre>{@code
+     * <node name="node1">
+     *    <action name="first action" class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
+     *       <esbCategoryName>MockCategory</esbCategoryName>
+     *       <esbServiceName>MockService</esbServiceName>
+     *       <esbToBpmVars>
+     *          <mapping esb="BODY_CONTENT" bpm="theBody" process-scope="false"/>
+     *       </esbToBpmVars>
+     *    </action>
+     * </node>
+     * }</pre>
+     * 
+     * @param node          The jBPM node.
+     * @param esbMessage    The ESB Message object
+     * @return Map          A Map with the 'esbToBpmVars' mapping as the key and the object/value of 
+     *                      that mapping which was extracted from the ESB Message object.
+     * @throws CallbackException 
+     */
+    HashMap<Mapping, Object> getVariablesMapFromMessage(final Node node, final Message esbMessage) throws CallbackException
+    {
+        final Action jbpmAction = node.getAction();
+        if (jbpmAction != null && esbMessage != null)
+        {
+            final Delegation actionDelegation = jbpmAction.getActionDelegation();
+            if (actionDelegation != null)
+            {
+                final Object delegate = actionDelegation.getInstance();
+                if (delegate instanceof EsbActionHandler)
+                {
+                    final EsbActionHandler handler = (EsbActionHandler)delegate;
+                    final DefaultElement esbToBpmVars = handler.esbToBpmVars;
+                    if (esbToBpmVars != null)
+                    {
+                        try
+                        {
+                            return  new JBpmObjectMapper().mapFromEsbMessageToJBpmMapping(esbMessage, esbToBpmVars.asXML());
+                        } 
+                        catch (final ConfigurationException e)
+                        {
+                            throw new CallbackException(e.getMessage(), e);
+                        }
+                    }
+                }
+            }
+        }
+        return EMPTY_VARIABLES_MAP;
+    }
+    
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CommandExecutor.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CommandExecutor.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/CommandExecutor.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -125,27 +125,19 @@
         {
             CallbackCommand command = new CallbackCommand();
             EPR toEpr = message.getHeader().getCall().getTo();
-            try {
-                command.setCallbackEpr(toEpr);
-                //Map the variables
-                String esbToBpmXml = toEpr.getAddr().getExtensionValue(Constants.ESB_TO_BPM_VARS_TAG);
-                JBpmObjectMapper mapper = new JBpmObjectMapper();
-                //Obtaining the VariableMap that is going to be set callback command
-                Map<Mapping,Object> variableMap = mapper.mapFromEsbMessageToJBpmMapping(message, esbToBpmXml);
-                if (null!=variableMap) command.setVariables(variableMap);
-                String transition = (toEpr.getAddr().getExtensionValue(Constants.TRANSITION_NAME));
-                //The transition can be overriden if needed, by setting the following variable.
-                String overriddenTransition = MessageHelper.getStringValue(message, Constants.TRANSITION_NAME);
-                if (overriddenTransition!=null) {
-                    if (transition!=null) logger.debug("Overriding the transition to " + overriddenTransition);
-                    transition = overriddenTransition;
-                }
-                if (null!=transition) command.setTransitionName(transition);
-                logger.debug("Signaling Process with Transition=" + transition + ", VariableMap=" + variableMap);
-                executeJbpmCommand(command);
-            } catch (ConfigurationException ce) {
-                throw new JbpmException(ce.getMessage(), ce);
+            command.setCallbackEpr(toEpr);
+            command.setMessage(message);
+                
+            String transition = (toEpr.getAddr().getExtensionValue(Constants.TRANSITION_NAME));
+            //The transition can be overriden if needed, by setting the following variable.
+            String overriddenTransition = MessageHelper.getStringValue(message, Constants.TRANSITION_NAME);
+            if (overriddenTransition!=null) {
+                if (transition!=null) logger.debug("Overriding the transition to " + overriddenTransition);
+                transition = overriddenTransition;
             }
+            if (null!=transition) command.setTransitionName(transition);
+            logger.debug("Signaling Process with Transition=" + transition);
+            executeJbpmCommand(command);
         }
     };
 
@@ -154,7 +146,6 @@
 	{
         _values.put(Constants.OpCode.CallbackCommand             ,CALLBACK_EXECUTOR);
 		_values.put(Constants.OpCode.CancelProcessInstanceCommand,CANCEL_PROCESS_INSTANCE_EXECUTOR);
-        _values.put(Constants.OpCode.SignalCommand               ,SIGNAL_EXECUTOR);
 		_values.put(Constants.OpCode.NewProcessInstanceCommand	
 				,new CommandExecutor.NewProcessInstancePerformer(false));
 		_values.put(Constants.OpCode.StartProcessInstanceCommand
@@ -228,16 +219,23 @@
 			if (null!=variables) command.setVariables(variables);
             
             logger.debug("New process instance with command=" + command);
-			executeJbpmCommand(command);
-		}
+            Object result = executeJbpmCommand(command);
+
+            if(result instanceof ProcessInstance) {
+                ProcessInstance processInstance = (ProcessInstance) result;
+
+                MessageHelper.setLongValue(esbMessage, Constants.PROCESS_INSTANCE_ID, processInstance.getId());
+            }
+        }
 	}
     
-    private static void executeJbpmCommand(org.jbpm.command.Command command)
+    private static Object executeJbpmCommand(org.jbpm.command.Command command)
     {
         if (logger.isDebugEnabled()) {
             logger.debug(command);
         }
-        getJbpmCommandService().execute(command);
+
+        return getJbpmCommandService().execute(command);
     }
     
     /**

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/MessageFacade.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/MessageFacade.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/MessageFacade.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -47,8 +47,6 @@
             return new CancelProcessInstanceFacade(config);
         if (Constants.OpCode.NewProcessInstanceCommand.equals(opCode))
             return new NewProcessInstanceFacade(config, false);
-        if (Constants.OpCode.SignalCommand.equals(opCode))
-            return new SignalFacade(config);
         if (Constants.OpCode.StartProcessInstanceCommand.equals(opCode))
             return new NewProcessInstanceFacade(config, true);
                   

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/SignalFacade.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/SignalFacade.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/java/org/jboss/soa/esb/services/jbpm/cmd/SignalFacade.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,67 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss 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.soa.esb.services.jbpm.cmd;
-
-import java.util.List;
-import java.util.Map;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Body;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.services.jbpm.Constants;
-import org.jboss.soa.esb.services.jbpm.JBpmObjectMapper;
-import org.jboss.soa.esb.services.jbpm.Mapping;
-import org.jboss.soa.esb.services.jbpm.Constants.OpCode;
-
-/**
- *
- * Implementation of a message preprocessor to obtain data from a process instance 
- * from the action configuration XML
- * 
- * @author <a href="mailto:schifest at heuristica.com.ar">schifest at heuristica.com.ar</a> 
- */
-public class SignalFacade extends MessageFacade
-{
-	public OpCode getOpCode() { return Constants.OpCode.SignalCommand; }
-
-	public SignalFacade(ConfigTree config) throws ConfigurationException
-	{
-		_transition		= config.getAttribute(Constants.TRANSITION_NAME_TAG);
-        _esbToBpm       = ConfigUtil.getMappingConfig(config);
-	}
-	
-	public void setJBPMContextParameters(Message message) 
-	{
-		Body body = message.getBody();
-		if (null!=_transition)
-			body.add(Constants.TRANSITION_NAME, _transition);
-        Map<String,Object> variableMap = _mapper.mapFromEsbMessageToJBpmMap(message, _esbToBpm);
-        if (null!=variableMap)
-            body.add(Constants.VARIABLE_VALUES, variableMap);
-	}
-    
-    String          _transition;
-    List<Mapping>   _esbToBpm;
-    JBpmObjectMapper _mapper = new JBpmObjectMapper();
-}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/main/resources/jsf-console.war
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/JBpmObjectMapperUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/JBpmObjectMapperUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/JBpmObjectMapperUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -27,6 +27,19 @@
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import java.io.IOException;
+import java.io.Serializable;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.util.HashMap;
+
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.KeyGenerator;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SealedObject;
+import javax.crypto.SecretKey;
+
 import junit.framework.JUnit4TestAdapter;
 
 import org.apache.log4j.Logger;
@@ -35,6 +48,8 @@
 import org.dom4j.io.SAXReader;
 import org.dom4j.tree.DefaultElement;
 import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.security.SecurityService;
 import org.jbpm.graph.def.Node;
 import org.jbpm.graph.def.ProcessDefinition;
 import org.jbpm.graph.def.Transition;
@@ -45,47 +60,51 @@
 import org.junit.Test;
 /**
  * Tests the capabilities of the JBpmObjectMapper.
- * 
+ *
  * @author kstam
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
  *
  */
-public class JBpmObjectMapperUnitTest 
+public class JBpmObjectMapperUnitTest
 {
     private static String PROCESS_DEF_XML = "JBpmObjectMapperTestProcessDefinition.xml";
 	private static Logger logger = Logger.getLogger(JBpmObjectMapperUnitTest.class);
     private static ProcessInstance processInstance = null;
+    private static JBpmObjectMapper mapper;
 
     @BeforeClass
     public static void setup()
     {
         logger.info("Setting up jBPM");
         //Extract a process definition from the processdefinition.xml file.
-        ProcessDefinition processDefinition 
+        ProcessDefinition processDefinition
             = ProcessDefinition.parseXmlResource(PROCESS_DEF_XML);
         assertNotNull(processDefinition);
         //Create an instance of the process definition.
         processInstance = new ProcessInstance(processDefinition);
         assertTrue(
-                "Instance is in start state", 
+                "Instance is in start state",
                 "start".equals(processInstance.getRootToken().getNode().getName()));
+
+        mapper = new JBpmObjectMapper();
     }
 
     /**
      * Tests obtaining variables from the jBPM variableMap and setting them on the EsbMessage.
      * We are making sure the jBPM -> EsbMessage works using
-     *  
+     *
      *  <pre>
      *  &lt;jbpmToEsbVars&gt;
      *      &lt;mapping jbpm="v1" esb="esbObj1" /&gt;
      *      &lt;mapping jbpm="g2" esb="esbObj2" process-scope="true" /&gt;
      *  &lt;/jbpmToEsbVars>
      *  <pre>
-     *  
+     *
      * @throws Exception
      */
     @Test
 	public void jBpmVariableMap() throws Exception
-	{    
+	{
         SAXReader reader = new SAXReader();
         Document document = reader.read(this.getClass().getResourceAsStream("/" + PROCESS_DEF_XML));
         Element element = document.getRootElement();
@@ -95,17 +114,17 @@
         String helloWorldGlobalScope = "Hello world process-instance scope";
         TestJBPMVariable objectTokenScope = new TestJBPMVariable("Object token scope") ;
         TestJBPMVariable objectGlobalScope = new TestJBPMVariable("Object global scope") ;
-		
+
 		Token token = processInstance.getRootToken();
         processInstance.getContextInstance().setVariable("v1", helloWorldTokenScope, token);
         processInstance.getContextInstance().setVariable("g2", helloWorldGlobalScope);
         processInstance.getContextInstance().setVariable("h3", objectTokenScope, token);
         processInstance.getContextInstance().setVariable("i4", objectGlobalScope);
         ExecutionContext executionContext = new ExecutionContext(token);
-        
+
         JBpmObjectMapper mapper = new JBpmObjectMapper();
         Message message = mapper.mapFromJBpmToEsbMessage(bpmToEsbVars, Boolean.FALSE, executionContext);
-        
+
         assertEquals(helloWorldTokenScope,String.valueOf(message.getBody().get("esbObj1")));
         assertEquals(helloWorldGlobalScope,String.valueOf(message.getBody().get("esbObj2")));
         assertEquals(objectTokenScope.getInternal(), String.valueOf(message.getBody().get("esbObj3")));
@@ -113,12 +132,12 @@
 	}
     /**
      * Tests obtaining *no* variables from the jBPM variableMap.
-     *  
+     *
      * @throws Exception
      */
     @Test
     public void jBpmCompleteVariableMap() throws Exception
-    {    
+    {
         //Let's NOT give a mapping, this should get us all the variables in the VariableMap.
         DefaultElement jbpmToEsbVars = null;
 
@@ -126,26 +145,26 @@
         String helloWorldGlobalScope = "Hello world process-instance scope";
         TestJBPMVariable objectTokenScope = new TestJBPMVariable("Object token scope") ;
         TestJBPMVariable objectGlobalScope = new TestJBPMVariable("Object global scope") ;
-        
+
         Token token = processInstance.getRootToken();
         processInstance.getContextInstance().createVariable("v1", helloWorldTokenScope, token);
         processInstance.getContextInstance().createVariable("g2", helloWorldGlobalScope);
         processInstance.getContextInstance().createVariable("h3", objectTokenScope, token);
         processInstance.getContextInstance().createVariable("i4", objectGlobalScope);
         ExecutionContext executionContext = new ExecutionContext(token);
-        
+
         JBpmObjectMapper mapper = new JBpmObjectMapper();
         Message message = mapper.mapFromJBpmToEsbMessage(jbpmToEsbVars, Boolean.FALSE, executionContext);
         assertEquals(message.getBody().getNames().length,0);
     }
     /**
      * Tests obtaining *all* variables from the jBPM variableMap and setting them on the EsbMessage.
-     *  
+     *
      * @throws Exception
      */
     @Test
     public void jBpmGetNothingFromVariableMap() throws Exception
-    {    
+    {
         SAXReader reader = new SAXReader();
         Document document = reader.read(this.getClass().getResourceAsStream("/" + PROCESS_DEF_XML));
         Element element = document.getRootElement();
@@ -156,14 +175,14 @@
         String helloWorldGlobalScope = "Hello world process-instance scope";
         TestJBPMVariable objectTokenScope = new TestJBPMVariable("Object token scope") ;
         TestJBPMVariable objectGlobalScope = new TestJBPMVariable("Object global scope") ;
-        
+
         Token token = processInstance.getRootToken();
         processInstance.getContextInstance().createVariable("v1", helloWorldTokenScope, token);
         processInstance.getContextInstance().createVariable("g2", helloWorldGlobalScope);
         processInstance.getContextInstance().createVariable("h3", objectTokenScope, token);
         processInstance.getContextInstance().createVariable("i4", objectGlobalScope);
         ExecutionContext executionContext = new ExecutionContext(token);
-        
+
         JBpmObjectMapper mapper = new JBpmObjectMapper();
         Message message = mapper.mapFromJBpmToEsbMessage(bpmToEsbVars, Boolean.FALSE, executionContext);
         //We should find 2 variables which are named just like their jBPM counterparts.
@@ -190,21 +209,21 @@
      */
     @Test
     public void jBpmTokenInfo() throws Exception
-    {    
+    {
         SAXReader reader = new SAXReader();
         Document document = reader.read(this.getClass().getResourceAsStream("/" + PROCESS_DEF_XML));
         Element element = document.getRootElement();
         Element secondMiddleState = (Element) element.elements("state").toArray()[1];
         DefaultElement bpmToEsbVars = (DefaultElement) secondMiddleState.element("transition").element("action").element("bpmToEsbVars");
-        
+
         Token token = processInstance.getRootToken();
         ExecutionContext executionContext = new ExecutionContext(token);
         Node node = executionContext.getNode();
         Transition transition = (Transition) node.getLeavingTransitions().get(0);
-        
+
         JBpmObjectMapper mapper = new JBpmObjectMapper();
         Message message = mapper.mapFromJBpmToEsbMessage(bpmToEsbVars, Boolean.FALSE, executionContext);
-        
+
         assertEquals(message.getBody().getNames().length,6);
         assertEquals(String.valueOf(String.valueOf(message.getBody().get("TokenId"))), String.valueOf(token.getId()));
         //The token name is null.
@@ -218,7 +237,43 @@
         logger.info("Message=" + message);
     }
 
+    @Test
+    public void ensureSecurityContextWasMappedToJbpmMap() throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException
+    {
+        final SealedObject securityContext = createSealedObject("dummy string");
+        final Message message = MessageFactory.getInstance().getMessage();
+        message.getContext().setContext(SecurityService.CONTEXT, securityContext);
+
+        final HashMap<String,?> map = mapper.mapSecurityContextFromEsbMessageToJBpmMap(message);
+        assertNotNull("Should never return null. Can return an empty map though", map);
+        assertTrue(map.containsKey(Constants.SECURITY_CONTEXT));
+    }
+
+    @Test
+    public void ensureAuthRequestWasMappedToJbpmMap() throws InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException
+    {
+        //  Doesn't need to be encrypted as this is only passed along and never descrypted.
+        byte[] encryptedAuthRequest = new byte[100];
+        final Message message = MessageFactory.getInstance().getMessage();
+        message.getContext().setContext(SecurityService.AUTH_REQUEST, encryptedAuthRequest);
+
+        final HashMap<String,?> map = mapper.mapAuthRequestFromEsbMessageToJBpmMap(message);
+        assertNotNull("Should never return null. Can return an empty map though", map);
+        assertTrue(map.containsKey(Constants.AUTH_REQUEST));
+    }
+
     public static junit.framework.Test suite(){
         return new JUnit4TestAdapter(JBpmObjectMapperUnitTest.class);
     }
+
+    private SealedObject createSealedObject(final Serializable ser) throws NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException, InvalidKeyException
+    {
+        final KeyGenerator kpg = KeyGenerator.getInstance("TripleDES");
+        kpg.init(112);
+        final SecretKey secretKey = kpg.generateKey();
+        final Cipher cipher = Cipher.getInstance("TripleDES");
+        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
+
+        return new SealedObject(ser, cipher);
+    }
 }

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandlerUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandlerUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/EsbActionHandlerUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -39,7 +39,6 @@
 import org.jbpm.graph.exe.ProcessInstance;
 import org.jbpm.graph.exe.Token;
 import org.junit.BeforeClass;
-import org.junit.Ignore;
 import org.junit.Test;
 
 public class EsbActionHandlerUnitTest
@@ -60,7 +59,6 @@
     }
     
     @Test
-    @Ignore
 	public void testSimpleProcess() throws Exception 
 	{
 		// Extract a process definition from the processdefinition.xml file.

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/JBpmObjectMapperCallbackUnitTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/JBpmObjectMapperCallbackUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actionhandlers/JBpmObjectMapperCallbackUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -109,7 +109,7 @@
         String esbToBpmXml = epr.getAddr().getExtensionValue(Constants.ESB_TO_BPM_VARS_TAG);
         
         //Obtaining the VariableMap that is going to be set callback command
-        Map<String,Object> variableMap = mapper.mapFromEsbMessageToJBpmMap(message, esbToBpmXml);
+        Map<String,Object> variableMap = mapper.mapFromEsbMessageToJBpmMap(message, esbToBpmVars.asXML());
         logger.info(variableMap);
         //Let's make sure that what we put in is going to make it roundtrip.
         assertEquals(helloWorldTokenScope, variableMap.get("x1"));

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions (from rev 25071, labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,126 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.services.jbpm.actions;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-
-import java.io.IOException;
-import java.io.Serializable;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-
-import javax.crypto.Cipher;
-import javax.crypto.IllegalBlockSizeException;
-import javax.crypto.KeyGenerator;
-import javax.crypto.NoSuchPaddingException;
-import javax.crypto.SealedObject;
-import javax.crypto.SecretKey;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.soa.esb.ConfigurationException;
-import org.jboss.soa.esb.helpers.ConfigTree;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.services.security.SecurityContext;
-import org.jboss.soa.esb.services.security.SecurityService;
-import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- * Unit test for {@link BpmProcessor}.
- *
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- *
- */
-public class BpmProcessorUnitTest
-{
-    private BpmProcessor bpmProcessor;
-    private Message message;
-    private ConfigTree configTree;
-
-    @Test
-    public void verifyThatSecurityContextWasAddedToMesssageContext() throws ConfigurationException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException
-    {
-        final SealedObject securityContext = createSealedObject("dummy string");
-        SecurityContext.setSecurityContext(securityContext);
-        bpmProcessor.addSecurityContext(message);
-
-        assertNotNull(message.getContext().getContext(SecurityService.CONTEXT));
-        assertEquals(securityContext, message.getContext().getContext(SecurityService.CONTEXT));
-    }
-
-    @Test
-    public void verifyThatNullSecurityContextCanBeAddedToMesssageContext() throws ConfigurationException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException
-    {
-        SecurityContext.setSecurityContext(null);
-        bpmProcessor.addSecurityContext(message);
-
-        assertNull(message.getContext().getContext(SecurityService.CONTEXT));
-    }
-
-    @Test
-    public void verifyThatAuthenticationRequestWasAddedToMessageContext() throws ConfigurationException
-    {
-        //  Doesn't need to be encrypted as this is only passed along and never descrypted.
-        byte[] encryptedAuthRequest = new byte[100];
-        AuthenticationRequestImpl.setEncryptedAuthRequest(encryptedAuthRequest);
-        bpmProcessor.addAuthenticationRequest(message);
-
-        assertNotNull(message.getContext().getContext(SecurityService.AUTH_REQUEST));
-        assertEquals(encryptedAuthRequest, message.getContext().getContext(SecurityService.AUTH_REQUEST));
-    }
-
-    @Test
-    public void verifyThatNullAuthenticationRequestCanBeAddedToMessageContext() throws ConfigurationException
-    {
-        AuthenticationRequestImpl.setEncryptedAuthRequest(null);
-        bpmProcessor.addAuthenticationRequest(message);
-        assertNull(message.getContext().getContext(SecurityService.AUTH_REQUEST));
-    }
-
-    @Before
-    public void setup() throws ConfigurationException
-    {
-        configTree = new ConfigTree("junit");
-        bpmProcessor = new BpmProcessor(configTree);
-        message = MessageFactory.getInstance().getMessage();
-    }
-
-    public static junit.framework.Test suite()
-    {
-        return new JUnit4TestAdapter(BpmProcessorUnitTest.class);
-    }
-
-    private SealedObject createSealedObject(final Serializable ser) throws NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException, InvalidKeyException
-    {
-        final KeyGenerator kpg = KeyGenerator.getInstance("TripleDES");
-        kpg.init(112);
-        final SecretKey secretKey = kpg.generateKey();
-        final Cipher cipher = Cipher.getInstance("TripleDES");
-        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
-
-        return new SealedObject(ser, cipher);
-    }
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/actions/BpmProcessorUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,126 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2008, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.services.jbpm.actions;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+
+import java.io.IOException;
+import java.io.Serializable;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.KeyGenerator;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.SealedObject;
+import javax.crypto.SecretKey;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.soa.esb.ConfigurationException;
+import org.jboss.soa.esb.helpers.ConfigTree;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.security.SecurityContext;
+import org.jboss.soa.esb.services.security.SecurityService;
+import org.jboss.soa.esb.services.security.auth.AuthenticationRequestImpl;
+import org.junit.Before;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link BpmProcessor}.
+ *
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class BpmProcessorUnitTest
+{
+    private BpmProcessor bpmProcessor;
+    private Message message;
+    private ConfigTree configTree;
+
+    @Test
+    public void verifyThatSecurityContextWasAddedToMesssageContext() throws ConfigurationException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException
+    {
+        final SealedObject securityContext = createSealedObject("dummy string");
+        SecurityContext.setSecurityContext(securityContext);
+        bpmProcessor.addSecurityContext(message);
+
+        assertNotNull(message.getContext().getContext(SecurityService.CONTEXT));
+        assertEquals(securityContext, message.getContext().getContext(SecurityService.CONTEXT));
+    }
+
+    @Test
+    public void verifyThatNullSecurityContextCanBeAddedToMesssageContext() throws ConfigurationException, InvalidKeyException, NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException
+    {
+        SecurityContext.setSecurityContext(null);
+        bpmProcessor.addSecurityContext(message);
+
+        assertNull(message.getContext().getContext(SecurityService.CONTEXT));
+    }
+
+    @Test
+    public void verifyThatAuthenticationRequestWasAddedToMessageContext() throws ConfigurationException
+    {
+        //  Doesn't need to be encrypted as this is only passed along and never descrypted.
+        byte[] encryptedAuthRequest = new byte[100];
+        AuthenticationRequestImpl.setEncryptedAuthRequest(encryptedAuthRequest);
+        bpmProcessor.addAuthenticationRequest(message);
+
+        assertNotNull(message.getContext().getContext(SecurityService.AUTH_REQUEST));
+        assertEquals(encryptedAuthRequest, message.getContext().getContext(SecurityService.AUTH_REQUEST));
+    }
+
+    @Test
+    public void verifyThatNullAuthenticationRequestCanBeAddedToMessageContext() throws ConfigurationException
+    {
+        AuthenticationRequestImpl.setEncryptedAuthRequest(null);
+        bpmProcessor.addAuthenticationRequest(message);
+        assertNull(message.getContext().getContext(SecurityService.AUTH_REQUEST));
+    }
+
+    @Before
+    public void setup() throws ConfigurationException
+    {
+        configTree = new ConfigTree("junit");
+        bpmProcessor = new BpmProcessor(configTree);
+        message = MessageFactory.getInstance().getMessage();
+    }
+
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(BpmProcessorUnitTest.class);
+    }
+
+    private SealedObject createSealedObject(final Serializable ser) throws NoSuchAlgorithmException, NoSuchPaddingException, IllegalBlockSizeException, IOException, InvalidKeyException
+    {
+        final KeyGenerator kpg = KeyGenerator.getInstance("TripleDES");
+        kpg.init(112);
+        final SecretKey secretKey = kpg.generateKey();
+        final Cipher cipher = Cipher.getInstance("TripleDES");
+        cipher.init(Cipher.ENCRYPT_MODE, secretKey);
+
+        return new SealedObject(ser, cipher);
+    }
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd (from rev 25071, labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,170 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
- * LLC, and individual contributors 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.soa.esb.services.jbpm.cmd;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.net.URI;
-import java.util.Map;
-
-import junit.framework.JUnit4TestAdapter;
-
-import org.jboss.internal.soa.esb.couriers.MockCourier;
-import org.jboss.internal.soa.esb.couriers.MockCourierFactory;
-import org.jboss.internal.soa.esb.services.registry.MockRegistry;
-import org.jboss.soa.esb.addressing.EPR;
-import org.jboss.soa.esb.addressing.PortReference;
-import org.jboss.soa.esb.message.Message;
-import org.jboss.soa.esb.message.format.MessageFactory;
-import org.jboss.soa.esb.services.jbpm.Constants;
-import org.jboss.soa.esb.services.jbpm.Mapping;
-import org.jbpm.JbpmConfiguration;
-import org.jbpm.JbpmContext;
-import org.jbpm.graph.def.ProcessDefinition;
-import org.jbpm.graph.exe.ProcessInstance;
-import org.jbpm.graph.exe.Token;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-/**
- * Unit test for {@link CallbackCommand}.
- * 
- * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
- *
- */
-public class CallbackCommandUnitTest
-{
-    @Test
-    public void getVariablesMap() throws CallbackException
-    {
-        final String payload = "sample payload";
-        
-        final ProcessDefinition processDef = ProcessDefinition.parseXmlResource("callbackCommandUnitTest.xml");
-        final ProcessInstance instance = new ProcessInstance(processDef);
-        
-        Token token = instance.getRootToken();
-        Message message = MessageFactory.getInstance().getMessage();
-        message.getBody().add(payload);
-        
-        instance.signal();
-        assertEquals("node1", token.getNode().getName());
-        
-        final CallbackCommand callback = new CallbackCommand();
-        Map<Mapping, Object> variablesMap = callback.getVariablesMapFromMessage(token.getNode(), message);
-        
-        Mapping expectedMappning = expectedMapping(Constants.BODY_CONTENT_VARIABLE_NAME, "theBody", false, null);
-        assertEquals(payload, variablesMap.get(expectedMappning));
-    }
-    
-    @Test
-    public void execute()
-    {
-        final String jbpmBodyContentKey = "theBody";
-        final String esbBodyContent = "sample payload";
-        
-        final String esbXmlContentKey = "xml";
-        final String jbpmXmlContentKey = "xmlContent";
-        final String esbXmlContent = "<somexml/>";
-        
-        final JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
-        jbpmContext.deployProcessDefinition(ProcessDefinition.parseXmlResource("callbackCommandUnitTest.xml"));
-        final ProcessDefinition processDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition("callback");
-        final ProcessInstance instance = new ProcessInstance(processDefinition);
-        
-        Token token = instance.getRootToken();
-        instance.signal();
-        assertEquals("node1", token.getNode().getName());
-        assertEquals(2L, token.getNode().getId());
-        
-        assertNotNull(jbpmContext.getToken(instance.getProcessDefinition().getVersion()));
-        
-        final CallbackCommand callback = new CallbackCommand();
-        callback.setCallbackEpr(createEpr(token));
-        
-        Message message = MessageFactory.getInstance().getMessage();
-        message.getBody().add(esbBodyContent);
-        message.getBody().add(esbXmlContentKey, esbXmlContent);
-        callback.setMessage(message);
-        
-        callback.execute(jbpmContext);
-        
-        assertEquals(esbBodyContent, token.getProcessInstance().getContextInstance().getVariable(jbpmBodyContentKey));
-        assertEquals(esbXmlContent, token.getProcessInstance().getContextInstance().getVariable(jbpmXmlContentKey));
-    }
-    
-    private Mapping expectedMapping(final String esb, final String bpm, final boolean processScope, final String defaultVal)
-    {
-        Mapping expectedMappning = new Mapping();
-        expectedMappning.setBpm("theBody");
-        expectedMappning.setEsb("BODY_CONTENT");
-        expectedMappning.setIsProcessScope(false);
-        expectedMappning.setDefaultValue(null);
-        return expectedMappning;
-    }
-    
-    private EPR createEpr(final Token token)
-    {
-        ProcessInstance instance = token.getProcessInstance();
-        
-        final EPR epr = new EPR();
-        final PortReference portRef = epr.getAddr();
-        final long nodeId = token.getNode().getId();
-        final long tokenId = token.getId();
-        final long processVersion = instance.getProcessDefinition().getVersion();
-        
-        portRef.addExtension(Constants.NODE_ID, String.valueOf(nodeId));
-        portRef.addExtension(Constants.TOKEN_ID, String.valueOf(tokenId));
-        portRef.addExtension(Constants.PROCESS_INSTANCE_ID, String.valueOf(instance.getId()));
-        
-        // Set the counter
-        String counterName = Constants.PROCESS_NODE_VERSION_COUNTER  + nodeId + '_' + tokenId;
-        portRef.addExtension(counterName, String.valueOf(processVersion));
-        
-        // The counterName variable is expected to be found in the process context.
-        instance.getContextInstance().setVariableLocally(counterName, processVersion);
-        return epr;
-    }
-    
-    @BeforeClass
-    public static void setup() throws Exception
-    {
-        MockCourierFactory.install();
-        MockRegistry.install();
-        EPR epr1 = new EPR(new URI("test1"));
-        MockCourier courier1 = new MockCourier(true);
-        MockRegistry.register("MockCategory", "MockService", epr1, courier1);
-    }
-
-    @AfterClass
-    public static void tearDown()
-    {
-        MockCourierFactory.uninstall();
-        MockRegistry.uninstall();
-    }
-
-    public static junit.framework.Test suite()
-    {
-        return new JUnit4TestAdapter(CallbackCommandUnitTest.class);
-    }
-
-}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java (from rev 25071, labs/jbossesb/trunk/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/java/org/jboss/soa/esb/services/jbpm/cmd/CallbackCommandUnitTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,170 @@
+/*
+ * JBoss, Home of Professional Open Source Copyright 2009, Red Hat Middleware
+ * LLC, and individual contributors 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.soa.esb.services.jbpm.cmd;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import java.net.URI;
+import java.util.Map;
+
+import junit.framework.JUnit4TestAdapter;
+
+import org.jboss.internal.soa.esb.couriers.MockCourier;
+import org.jboss.internal.soa.esb.couriers.MockCourierFactory;
+import org.jboss.internal.soa.esb.services.registry.MockRegistry;
+import org.jboss.soa.esb.addressing.EPR;
+import org.jboss.soa.esb.addressing.PortReference;
+import org.jboss.soa.esb.message.Message;
+import org.jboss.soa.esb.message.format.MessageFactory;
+import org.jboss.soa.esb.services.jbpm.Constants;
+import org.jboss.soa.esb.services.jbpm.Mapping;
+import org.jbpm.JbpmConfiguration;
+import org.jbpm.JbpmContext;
+import org.jbpm.graph.def.ProcessDefinition;
+import org.jbpm.graph.exe.ProcessInstance;
+import org.jbpm.graph.exe.Token;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ * Unit test for {@link CallbackCommand}.
+ * 
+ * @author <a href="mailto:dbevenius at jboss.com">Daniel Bevenius</a>
+ *
+ */
+public class CallbackCommandUnitTest
+{
+    @Test
+    public void getVariablesMap() throws CallbackException
+    {
+        final String payload = "sample payload";
+        
+        final ProcessDefinition processDef = ProcessDefinition.parseXmlResource("callbackCommandUnitTest.xml");
+        final ProcessInstance instance = new ProcessInstance(processDef);
+        
+        Token token = instance.getRootToken();
+        Message message = MessageFactory.getInstance().getMessage();
+        message.getBody().add(payload);
+        
+        instance.signal();
+        assertEquals("node1", token.getNode().getName());
+        
+        final CallbackCommand callback = new CallbackCommand();
+        Map<Mapping, Object> variablesMap = callback.getVariablesMapFromMessage(token.getNode(), message);
+        
+        Mapping expectedMappning = expectedMapping(Constants.BODY_CONTENT_VARIABLE_NAME, "theBody", false, null);
+        assertEquals(payload, variablesMap.get(expectedMappning));
+    }
+    
+    @Test
+    public void execute()
+    {
+        final String jbpmBodyContentKey = "theBody";
+        final String esbBodyContent = "sample payload";
+        
+        final String esbXmlContentKey = "xml";
+        final String jbpmXmlContentKey = "xmlContent";
+        final String esbXmlContent = "<somexml/>";
+        
+        final JbpmContext jbpmContext = JbpmConfiguration.getInstance().createJbpmContext();
+        jbpmContext.deployProcessDefinition(ProcessDefinition.parseXmlResource("callbackCommandUnitTest.xml"));
+        final ProcessDefinition processDefinition = jbpmContext.getGraphSession().findLatestProcessDefinition("callback");
+        final ProcessInstance instance = new ProcessInstance(processDefinition);
+        
+        Token token = instance.getRootToken();
+        instance.signal();
+        assertEquals("node1", token.getNode().getName());
+        assertEquals(2L, token.getNode().getId());
+        
+        assertNotNull(jbpmContext.getToken(instance.getProcessDefinition().getVersion()));
+        
+        final CallbackCommand callback = new CallbackCommand();
+        callback.setCallbackEpr(createEpr(token));
+        
+        Message message = MessageFactory.getInstance().getMessage();
+        message.getBody().add(esbBodyContent);
+        message.getBody().add(esbXmlContentKey, esbXmlContent);
+        callback.setMessage(message);
+        
+        callback.execute(jbpmContext);
+        
+        assertEquals(esbBodyContent, token.getProcessInstance().getContextInstance().getVariable(jbpmBodyContentKey));
+        assertEquals(esbXmlContent, token.getProcessInstance().getContextInstance().getVariable(jbpmXmlContentKey));
+    }
+    
+    private Mapping expectedMapping(final String esb, final String bpm, final boolean processScope, final String defaultVal)
+    {
+        Mapping expectedMappning = new Mapping();
+        expectedMappning.setBpm("theBody");
+        expectedMappning.setEsb("BODY_CONTENT");
+        expectedMappning.setIsProcessScope(false);
+        expectedMappning.setDefaultValue(null);
+        return expectedMappning;
+    }
+    
+    private EPR createEpr(final Token token)
+    {
+        ProcessInstance instance = token.getProcessInstance();
+        
+        final EPR epr = new EPR();
+        final PortReference portRef = epr.getAddr();
+        final long nodeId = token.getNode().getId();
+        final long tokenId = token.getId();
+        final long processVersion = instance.getProcessDefinition().getVersion();
+        
+        portRef.addExtension(Constants.NODE_ID, String.valueOf(nodeId));
+        portRef.addExtension(Constants.TOKEN_ID, String.valueOf(tokenId));
+        portRef.addExtension(Constants.PROCESS_INSTANCE_ID, String.valueOf(instance.getId()));
+        
+        // Set the counter
+        String counterName = Constants.PROCESS_NODE_VERSION_COUNTER  + nodeId + '_' + tokenId;
+        portRef.addExtension(counterName, String.valueOf(processVersion));
+        
+        // The counterName variable is expected to be found in the process context.
+        instance.getContextInstance().setVariableLocally(counterName, processVersion);
+        return epr;
+    }
+    
+    @BeforeClass
+    public static void setup() throws Exception
+    {
+        MockCourierFactory.install();
+        MockRegistry.install();
+        EPR epr1 = new EPR(new URI("test1"));
+        MockCourier courier1 = new MockCourier(true);
+        MockRegistry.register("MockCategory", "MockService", epr1, courier1);
+    }
+
+    @AfterClass
+    public static void tearDown()
+    {
+        MockCourierFactory.uninstall();
+        MockRegistry.uninstall();
+    }
+
+    public static junit.framework.Test suite()
+    {
+        return new JUnit4TestAdapter(CallbackCommandUnitTest.class);
+    }
+
+}

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/callbackCommandUnitTest.xml (from rev 25071, labs/jbossesb/trunk/product/services/jbpm/src/test/resources/callbackCommandUnitTest.xml)
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/callbackCommandUnitTest.xml	                        (rev 0)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/src/test/resources/callbackCommandUnitTest.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<process-definition  xmlns="urn:jbpm.org:jpdl-3.2" name="callback">
+
+   <start-state name="start">
+      <transition name="ok" to="node1"></transition>
+   </start-state>
+   
+   <node name="node1">
+      <action name="first action" class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
+        <esbCategoryName>MockCategory</esbCategoryName>
+        <esbServiceName>MockService</esbServiceName>
+         <esbToBpmVars>
+            <mapping esb="BODY_CONTENT" bpm="theBody" process-scope="false"/>
+            <mapping esb="xml" bpm="xmlContent" process-scope="false"/>
+         </esbToBpmVars>
+       </action>
+      <transition to="child1"></transition>
+   </node>
+   
+   <fork name="fork">
+      <transition to="child1"/>
+      <transition to="child2"/>
+   </fork>
+
+   <node name="child1">
+      <action name="child1SendToESB" class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
+        <esbCategoryName>MockCategory</esbCategoryName>
+        <esbServiceName>MockService</esbServiceName>
+         <bpmToEsbVars>
+            <mapping bpm="theBody" esb="BODY_CONTENT" process-scope="false"/>
+         </bpmToEsbVars>
+         <esbToBpmVars>
+            <mapping esb="BODY_CONTENT" bpm="theBody" process-scope="false"/>
+         </esbToBpmVars>
+      </action>
+      <transition to="end"/>
+   </node>
+
+   <node name="child2">
+      <action name="child2SendToESB" class="org.jboss.soa.esb.services.jbpm.actionhandlers.EsbActionHandler">
+        <esbCategoryName>MockCategory</esbCategoryName>
+        <esbServiceName>MockService</esbServiceName>
+         <bpmToEsbVars>
+            <mapping bpm="theBody" esb="BODY_CONTENT" process-scope="false"/>
+         </bpmToEsbVars>
+         <esbToBpmVars>
+            <mapping esb="BODY_CONTENT" bpm="theBody" process-scope="false"/>
+         </esbToBpmVars>
+      </action>
+      <transition to="end"/>
+   </node>
+
+   <end-state name="end"/>
+</process-definition>
+   
\ No newline at end of file

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/upgrade-jbpm.txt
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/upgrade-jbpm.txt	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/jbpm/upgrade-jbpm.txt	2009-02-03 14:45:01 UTC (rev 25072)
@@ -95,6 +95,25 @@
     </ejb-local-ref>
   -->
 
+ and also the following
+
+  <!-- Job executor launcher
+  <listener>
+    <description>
+      Starts the job executor on servlet context initialization and stops it on servlet context destruction.
+    </description>
+    <listener-class>org.jbpm.web.JobExecutorLauncher</listener-class>
+  </listener> Job executor launcher
+
+  <listener>
+    <description>
+            Closes the jBPM configuration on servlet context destruction, releasing
+            application resources. This listener should appear after the job executor
+            launcher to avoid reopening the configuration.
+        </description>
+    <listener-class>org.jbpm.web.JbpmConfigurationCloser</listener-class>
+  </listener> -->
+
  b) Comment out the following from WEB-INF/jboss-web.xml:
  <!--
   <ejb-ref>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/jackson-lgpl-0.9.3.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/jackson-lgpl-0.9.3.jar)
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/jline-0.9.93.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/jline-0.9.93.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-commons-1.0.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-commons-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-commons-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-edisax-0.3.jar
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-edisax-model-0.3.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-edisax-parser-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-edisax-parser-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-magger-0.1.3.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-magger-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-magger-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-core-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-core-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-core-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-css-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-css-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-css-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-csv-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-csv-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-csv-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-edi-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-edi-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-edi-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-javabean-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-javabean-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-javabean-1.1.jar)
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-json-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-json-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-misc-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-misc-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-misc-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-routing-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-routing-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-routing-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-scripting-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-scripting-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-scripting-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-servlet-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-servlet-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-servlet-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-templating-1.0.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-smooks-templating-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-smooks-templating-1.1.jar)
===================================================================
(Binary files differ)

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-tinak-0.8.1.jar
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/lib/ext/milyn-tinak-1.1.jar (from rev 25071, labs/jbossesb/trunk/product/services/smooks/lib/ext/milyn-tinak-1.1.jar)
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksInstanceManager.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksInstanceManager.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksInstanceManager.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -83,7 +83,6 @@
         // older instance(s) will eventually get GC'd.        
         try {
             Smooks instance = new Smooks(configurationSourceURI);
-            addBaseConfigs(instance);
 
             // We need to disable the resource config store's shutdown hook
             // because the ESB container lifecycle handles this through
@@ -98,27 +97,6 @@
         }
     }
 
-    private void addBaseConfigs(Smooks instance) {
-        String baseConfigs = config.getProperty("smooks.base.configs", "creators.xml");
-        String[] resources = baseConfigs.split(",");
-        if(logger.isDebugEnabled()) {
-            logger.debug("smooks-base-configs: " + Arrays.asList(resources));
-        }
-        for(String resource : resources) {
-            String fullResPath = "/smooks-base-configs/" + resource.trim();
-            try {
-                InputStream smooksRes = ClassUtil.getResourceAsStream(fullResPath, getClass());
-                if(smooksRes != null) {
-                    instance.addConfigurations("/smooks-base-configs/", smooksRes);
-                } else {
-                    logger.warn("Configured Smooks resource '" + fullResPath + "' doesn't exist on the classpath.");
-                }
-            } catch(Throwable t) {
-                logger.warn("Exception while loading Smooks resource '" + fullResPath + "'.", t);
-            }
-        }
-    }
-
     /**
      * JMS Listener for receiving configuration update notifications.
      * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksService.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksService.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksService.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,134 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.actions.converters;
-
-import org.jboss.internal.soa.esb.util.PropertiesHelper;
-import org.jboss.internal.soa.esb.util.XMLHelper;
-import org.jboss.system.ServiceMBeanSupport;
-import org.jboss.system.server.ServerConfig;
-import org.jboss.system.server.ServerConfigLocator;
-import org.apache.log4j.Logger;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Properties;
-
-/**
- * SmooksService implementation.
- * <p/>
- * Initialises the "global" Smooks instance.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public class SmooksService extends ServiceMBeanSupport implements SmooksServiceMBean {
-
-    private static Logger logger = Logger.getLogger(SmooksService.class);
-    private static SmooksInstanceManager globalSmooksInstanceManager;
-    private static final String CONSOLE_URL = "console.url";
-
-    private static final String SMOOKS_PROPERTY_FILE = "smooks.esb.properties";
-    private static final String SMOOKS_PROPERTY_FILE_COMMENTS = "Auto generated property file, do not edit" ;
-
-    /**
-     * The smooks default property file.
-     */
-    private String propertyFile ;
-    
-    protected void startService() throws Exception {
-        super.startService();
-        
-        if (propertyFile != null) {
-            final File baseFile = new File(propertyFile) ;
-            final InputStream xmlPropertyIS ;
-            if (!baseFile.isAbsolute()) {
-                final URL resourceURL = Thread.currentThread().getContextClassLoader().getResource(propertyFile) ;
-                xmlPropertyIS = resourceURL.openStream() ;
-            } else {
-                xmlPropertyIS = new FileInputStream(baseFile) ;
-            }
-            final byte[] propertyFileContents ;
-            try {
-                final ByteArrayOutputStream baos = new ByteArrayOutputStream() ;
-                XMLHelper.replaceSystemProperties(XMLHelper.getXMLStreamReader(xmlPropertyIS),
-                    XMLHelper.getXMLStreamWriter(baos)) ;
-                propertyFileContents = baos.toByteArray() ;
-            } finally {
-                xmlPropertyIS.close() ;
-            }
-            
-            final ServerConfig serverConfig = ServerConfigLocator.locate() ;
-            final File dataDir = serverConfig.getServerDataDir() ;
-            final File smooksPropertyFile = new File(dataDir, SMOOKS_PROPERTY_FILE) ;
-            
-            final ByteArrayInputStream bais = new ByteArrayInputStream(propertyFileContents) ;
-            final FileOutputStream smooksPropertyOS = new FileOutputStream(smooksPropertyFile) ;
-            try {
-                PropertiesHelper.translateXMLToText(bais, smooksPropertyOS, SMOOKS_PROPERTY_FILE_COMMENTS) ;
-            } finally {
-                smooksPropertyOS.close() ;
-            }
-            SmooksConfiguration.setDefaultConfiguration(smooksPropertyFile.getAbsolutePath()) ;
-        }
-
-        Properties smooksEsbConfig = new SmooksConfiguration();
-        String resourceConfig = smooksEsbConfig.getProperty(CONSOLE_URL);
-
-        if(resourceConfig != null) {
-            globalSmooksInstanceManager = new SmooksInstanceManager("Console", resourceConfig);
-            logger.info("Centralized Smooks Instance (Console Based) started.");
-        } else {
-            logger.info("Centralized Smooks Instance (Console Based) instance not started.  See the '" + CONSOLE_URL + "' property in '" + SmooksConfiguration.SMOOKS_ESB_PROPERTIES + "'");
-        }
-    }
-
-    protected void stopService() throws Exception {
-        if(globalSmooksInstanceManager != null) {
-            globalSmooksInstanceManager.close();
-            logger.info("Centralized Smooks Instance (Console Based) stopped.");
-        }
-        
-        super.stopService();
-    }
-
-    public static SmooksInstanceManager getGlobalSmooksInstanceManager() {
-        return globalSmooksInstanceManager;
-    }
-    
-    /**
-     * Get the property file.
-     * @return The name of the property file being used.
-     */
-    public String getPropertyFile() {
-        return propertyFile ;
-    }
-    
-    /**
-     * Set the property file.
-     * @param propertyFile The name of the property file being used.
-     */
-    public void setPropertyFile(final String propertyFile) {
-        this.propertyFile = propertyFile ;
-    }
-}

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksServiceMBean.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksServiceMBean.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksServiceMBean.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,42 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated
- * by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA  02110-1301, USA.
- *
- * (C) 2005-2006, JBoss Inc.
- */
-package org.jboss.soa.esb.actions.converters;
-
-import org.jboss.system.ServiceMBean;
-
-/**
- * Smooks Service MBean.
- * <p/>
- * Initialization MBean.
- *
- * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
- */
-public interface SmooksServiceMBean extends ServiceMBean {
-    /**
-     * Get the property file.
-     * @return The name of the property file being used.
-     */
-    public String getPropertyFile() ;
-    /**
-     * Set the property file.
-     * @param propertyFile The name of the property file being used.
-     */
-    public void setPropertyFile(final String propertyFile) ;
-}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksTransformer.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksTransformer.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/java/org/jboss/soa/esb/actions/converters/SmooksTransformer.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -38,6 +38,7 @@
 import org.milyn.SmooksUtil;
 import org.milyn.container.ExecutionContext;
 import org.milyn.javabean.BeanAccessor;
+import org.milyn.javabean.repository.BeanRepository;
 import org.milyn.profile.DefaultProfileSet;
 import org.milyn.profile.ProfileStore;
 import org.milyn.profile.UnknownProfileMemberException;
@@ -239,12 +240,10 @@
         // we have an error!
         if(resourceConfig != null) {
             initialiseLocalSmooksInstanceManager(resourceConfig);
-        } else {
-            smooksInstanceManager = SmooksService.getGlobalSmooksInstanceManager();
         }
 
         if(smooksInstanceManager == null) {
-            throw new ActionLifecycleException("Invalid " + getClass().getSimpleName() + " action configuration.  No 'resource-config' specified on the action and no centralised console config available (see smooks.esb.properties).");
+            throw new ActionLifecycleException("Invalid " + getClass().getSimpleName() + " action configuration.  No 'resource-config' specified on the action.");
         }
         
         logger.info("Smooks configurations are now loaded.");
@@ -257,9 +256,7 @@
     }
 
     public void destroy() throws ActionLifecycleException {
-        if(smooksInstanceManager != SmooksService.getGlobalSmooksInstanceManager()) {
-            smooksInstanceManager.close();
-        }
+        smooksInstanceManager.close();
     }
 
 	/* (non-Javadoc)
@@ -321,8 +318,8 @@
                     executionContext = smooks.createExecutionContext(messageProfile);
                 }
                 transformedMessage = SmooksUtil.filterAndSerialize(executionContext, new ByteArrayInputStream( messageBytes), smooks);
-	            
-	            HashMap beanHash = BeanAccessor.getBeans(executionContext); // Backward compatibility.
+
+                HashMap beanHash = getBeanHashMap(executionContext);
 	            if(beanHash != null) {
 	            	message.getBody().add(EXTRACTED_BEANS_HASH, beanHash); // Backward compatibility.
 	            } else {
@@ -360,7 +357,7 @@
 
         // Set the transformation Java output.  Will be the individual
         // java objects directly on the message and (optionally) the map itself...
-        Map beanMap = BeanAccessor.getBeans(executionContext);
+        Map beanMap = BeanRepository.getInstance(executionContext).getBeanMap();
         if(beanMap != null) {
             Iterator<Map.Entry> beans = beanMap.entrySet().iterator();
             while (beans.hasNext()) {
@@ -409,12 +406,12 @@
         // Get the routing info from the message...
         messageFrom = (String)message.getProperties().getProperty(FROM, defaultMessageFrom);
         messageTo = (String)message.getProperties().getProperty(TO, defaultMessageTo);
-        
+
         // Get the message typing info from the message...
 		messageFromType = (String)message.getProperties().getProperty(FROM_TYPE, defaultMessageFromType);
 		messageToType = (String)message.getProperties().getProperty(TO_TYPE, defaultMessageToType);
-		
-		// Construct the message profile string for use with Smooks.  This is basically the 
+
+		// Construct the message profile string for use with Smooks.  This is basically the
 		// name of the Message Exchange on which transformations are to be performed...
         messageProfile = getMessageProfileString(messageFromType, messageFrom, messageToType, messageTo);
 
@@ -435,7 +432,7 @@
                 }
             }
         }
-        
+
         return messageProfile;
 	}
 
@@ -450,7 +447,7 @@
 	protected static String[] getMessageProfiles(String messageFromType, String messageFrom, String messageToType, String messageTo) {
 		List<String> profiles = new ArrayList<String>();
 		String[] profileArray;
-		
+
 		if(messageFromType != null) {
 			profiles.add(FROM_TYPE + ":" + messageFromType);
 		}
@@ -463,7 +460,7 @@
 		if(messageTo != null) {
 			profiles.add(TO + ":" + messageTo);
 		}
-		
+
 		profileArray = new String[profiles.size()];
 		profiles.toArray(profileArray);
 
@@ -480,7 +477,7 @@
 	 */
 	protected static String getMessageProfileString(String messageFromType, String messageFrom, String messageToType, String messageTo) {
 		StringBuffer string = new StringBuffer();
-		
+
 		if(messageFromType != null) {
 			string.append(FROM_TYPE + ":" + messageFromType);
 			string.append((messageFrom!=null || messageToType!=null || messageTo!=null?":":""));
@@ -504,6 +501,11 @@
         return string.toString();
 	}
 
+    private HashMap getBeanHashMap(ExecutionContext executionContext) {
+        Map beanMap = BeanRepository.getInstance(executionContext).getBeanMap();
+        return new HashMap(beanMap);
+    }
+
     public void processException(final Message message, final Throwable th) {
     }
 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/META-INF/deployment.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/META-INF/deployment.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/META-INF/deployment.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,5 +1,4 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <jbossesb-deployment>
   <depends>jboss.esb:deployment=jbossesb.esb</depends>
-  <depends>jboss.esb.destination:service=Topic,name=org.jboss.soa.esb.transformation.Update</depends>
 </jbossesb-deployment>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/jbm-queue-service.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/jbm-queue-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/jbm-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-    <mbean code="org.jboss.jms.server.destination.TopicService"
-           name="jboss.esb.destination:service=Topic,name=org.jboss.soa.esb.transformation.Update"
-           xmbean-dd="xmdesc/Queue-xmbean.xml">
-        <depends optional-attribute-name="ServerPeer">jboss.messaging:service=ServerPeer</depends>
-    </mbean>
-</server>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/jbmq-queue-service.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/jbmq-queue-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/jbmq-queue-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<server>
-    <mbean code="org.jboss.mq.server.jmx.Topic"
-           name="jboss.esb.destination:service=Topic,name=org.jboss.soa.esb.transformation.Update">
-        <depends optional-attribute-name="DestinationManager">
-            jboss.mq:service=DestinationManager
-        </depends>
-    </mbean>
-</server>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks-service.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks-service.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks-service.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<service>
-    <mbean code="org.jboss.soa.esb.actions.converters.SmooksService"
-           name="jboss.esb:service=SmooksService">
-        <attribute name="PropertyFile">smooks.esb.xml</attribute>
-
-        <depends>jboss.esb.destination:service=Topic,name=org.jboss.soa.esb.transformation.Update</depends>
-    </mbean>
-</service>

Deleted: labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks.esb.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks.esb.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/smooks/src/main/resources/smooks.esb.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Do not add the DOCTYPE to this file otherwise transformation will not
- work when offline.
- -->
-<properties>
-  <!--
-    Configure in the following property to enable config loading
-    from the Transformation Admin Console.
-  -->
-  <!--
-  <entry key="console.url">http://${jboss.esb.bind.address}:8080/jboss-esb-console/transform/smooks-config.jsp</entry>
-  -->
-
-  <!--
-    Base configurations.  Added for all non-console based Smooks instances.
-    Value is comma-separated-list.  All resources must be in the
-    "smooks-base-configs" folder of this .esb.
-  -->
-  <entry key="smooks.base.configs">creators.xml</entry>
-
-  <!--
-    Context properties.
-   
-    Defaults to JBoss AS on ${jboss.esb.bind.address}.
-  -->
-  <entry key="java.naming.provider.url">${jboss.esb.bind.address}:1099</entry>
-  <entry key="java.naming.factory.initial">org.jnp.interfaces.NamingContextFactory</entry>
-  <!--
-  <entry key="java.naming.factory.url.pkgs"></entry>
-  -->
-
-  <!--
-    JMS properties.
-
-    Provider defaults to JBoss MQ.
-  -->
-  <entry key="javax.jms.ConnectionFactory">ConnectionFactory</entry>
-  <entry key="update.notification.topic">topic/org.jboss.soa.esb.transformation.Update</entry>
-</properties>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/SOAPClient.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/SOAPClient.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/wise/SOAPClient.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -178,6 +178,7 @@
     private boolean mtomEnabled = false;
     private String smooksRequestReport = null;
     private String smooksResponseReport = null;
+    private String targetPackage = null;
 
     private WSMethod method = null;
     private WSEndpoint endpoint;
@@ -203,7 +204,7 @@
         logger.info("wsaEnabled:" + wsaEnabled);
         mtomEnabled = Boolean.parseBoolean(config.getAttribute("enableMTOM"));
         logger.info("mtomEnabled:" + mtomEnabled);
-
+        targetPackage = config.getAttribute("targetPackage");
         ConfigTree[] handlersConfig;
         if (config.getAttribute("smooks-handler-config") != null) {
             smooksHandler.add(config.getAttribute("smooks-handler-config"));
@@ -245,8 +246,16 @@
                 File bindFile = new File(fileName);
                 bindings.add(bindFile);
             }
-            File catalog = new File(catalogFileName);
-            client = WSDynamicClientFactory.getInstance().getJAXWSClient(wsdl, username, password, null, bindings, catalog);
+            File catalog = null;
+            if (catalogFileName != null) {
+                catalog = new File(catalogFileName);
+            }
+            client = WSDynamicClientFactory.getInstance().getJAXWSClient(wsdl,
+                                                                         username,
+                                                                         password,
+                                                                         targetPackage,
+                                                                         bindings,
+                                                                         catalog);
         } catch (Exception e) {
             e.printStackTrace();
             throw new ActionProcessingException("Error durinfg wise client creation", e);
@@ -328,7 +337,12 @@
 
         InvocationResult result = null;
         try {
-            result = this.getMethod().invoke(params, requestMapper);
+            WSMethod wsMethod = getMethod();
+            if (wsMethod == null) {
+                throw new ActionProcessingException("No WsMethod found for " + this.soapAction);
+            }
+
+            result = wsMethod.invoke(params, requestMapper);
         } catch (Exception e) {
             e.printStackTrace();
             throw new ActionProcessingException("Could not call method" + this.soapAction, e);

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/resources/log4j.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/resources/log4j.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soap/src/test/resources/log4j.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -34,14 +34,14 @@
    <!-- Limit categories -->
    <!-- ================ -->
 
-   <category name="org.jbpm">
-      <priority value="INFO"/>
+   <category name="org.milyn">
+      <priority value="ERROR"/>
    </category>
    <category name="org.hibernate">
       <priority value="ERROR"/>
    </category>
    <category name="org.jboss">
-      <priority value="WARN"/>
+      <priority value="ERROR"/>
    </category>
    <category name="org.jboss.soa.esb">
       <priority value="ERROR"/>
@@ -53,8 +53,15 @@
       <priority value="ERROR"/>
    </category>
    <category name="org.jboss.soa.esb.services.jbpm">
-      <priority value="DEBUG"/>
+      <priority value="ERROR"/>
    </category>
+   <category name="com.eviware.soapui">
+      <priority value="ERROR"/>
+   </category>
+   <category name="httpclient">
+      <priority value="ERROR"/>
+   </category>
+
    <!-- ======================= -->
    <!-- Setup the Root category -->
    <!-- ======================= -->

Modified: labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/services/soapui-client/src/main/java/org/jboss/soa/esb/services/soapui/SoapUIClientService.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -481,7 +481,6 @@
             if(smooks == null) {
                 smooks = new Smooks();
                 smooks.addConfigurations("smooks-resource", new ByteArrayInputStream(smooksResource.getBytes("UTF-8")));
-                smooks.addConfigurations("cdu-creators", new URIResourceLocator().getResource("/META-INF/smooks-creators.xml"));
                 smooksCache.put(smooksResource, smooks);
             }
 

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/monitoring-mappings.hbm.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/monitoring-mappings.hbm.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/monitoring-mappings.hbm.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -17,6 +17,7 @@
 		</id>	
 		<many-to-one name="attribute" column="STATID"/>
 		<property name="statdate" type="java.util.Date" column="STATDATE"/>
+		<property name="bytevalue" type="java.lang.Long" column="bytevalue"/>
 		<property name="timevalue" type="java.lang.Float" column="timevalue"/>
 		<property name="countvalue" type="java.lang.Integer" column="countvalue"/>
 		<property name="textvalue" type="java.lang.String" column="textvalue"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/hsqldb/monitoring-mappings.hbm.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/hsqldb/monitoring-mappings.hbm.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/hsqldb/monitoring-mappings.hbm.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -18,6 +18,7 @@
 		<many-to-one name="attribute" column="STATID"/>
 		<property name="server" type="java.lang.String" column="SERVER"/>
 		<property name="statdate" type="timestamp" column="STATDATE"/>
+		<property name="bytevalue" type="java.lang.Long" column="bytevalue"/>
 		<property name="timevalue" type="java.lang.Float" column="timevalue"/>
 		<property name="countvalue" type="java.lang.Integer" column="countvalue"/>
 		<property name="textvalue" type="java.lang.String" column="textvalue"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/mysql/monitoring-mappings.hbm.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/mysql/monitoring-mappings.hbm.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/mysql/monitoring-mappings.hbm.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -18,6 +18,7 @@
 		<many-to-one name="attribute" column="STATID"/>
 		<property name="server" type="java.lang.String" column="SERVER"/>
 		<property name="statdate" type="java.util.Date" column="STATDATE"/>
+	 	<property name="bytevalue" type="java.lang.Long" column="bytevalue"/>
 		<property name="timevalue" type="java.lang.Float" column="timevalue"/>
 		<property name="countvalue" type="java.lang.Integer" column="countvalue"/>
 		<property name="textvalue" type="java.lang.String" column="textvalue"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/oracle/monitoring-mappings.hbm.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/oracle/monitoring-mappings.hbm.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/oracle/monitoring-mappings.hbm.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -22,6 +22,7 @@
 		<many-to-one name="attribute" column="STATID"/>
 		<property name="server" type="java.lang.String" column="SERVER"/>
 		<property name="statdate" type="java.util.Date" column="STATDATE"/>
+		<property name="bytevalue" type="java.lang.Long" column="bytevalue"/>
 		<property name="timevalue" type="java.lang.Float" column="timevalue"/>
 		<property name="countvalue" type="java.lang.Integer" column="countvalue"/>
 		<property name="textvalue" type="java.lang.String" column="textvalue"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/postgresql/monitoring-mappings.hbm.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/postgresql/monitoring-mappings.hbm.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management/src/main/resources/postgresql/monitoring-mappings.hbm.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -20,6 +20,7 @@
 		<many-to-one name="attribute" column="STATID"/>
 		<property name="server" type="java.lang.String" column="SERVER"/>
 		<property name="statdate" type="java.util.Date" column="STATDATE"/>
+		<property name="bytevalue" type="java.lang.Long" column="bytevalue"/>
 		<property name="timevalue" type="java.lang.Float" column="timevalue"/>
 		<property name="countvalue" type="java.lang.Integer" column="countvalue"/>
 		<property name="textvalue" type="java.lang.String" column="textvalue"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/hsqldb/create_database.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/hsqldb/create_database.sql	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/hsqldb/create_database.sql	2009-02-03 14:45:01 UTC (rev 25072)
@@ -41,6 +41,7 @@
 STATID INTEGER,
 SERVER VARCHAR(255),
 STATDATE TIMESTAMP,
+BYTEVALUE BIGINT,
 TIMEVALUE FLOAT,
 COUNTVALUE INT,
 TEXTVALUE VARCHAR(255),

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/mysql/create_database.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/mysql/create_database.sql	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/mysql/create_database.sql	2009-02-03 14:45:01 UTC (rev 25072)
@@ -11,6 +11,7 @@
         STATID bigint,
         SERVER varchar(255),
         STATDATE datetime,
+	bytevalue bigint,
         timevalue float,
         countvalue integer,
         textvalue text,

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/oracle/create_database.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/oracle/create_database.sql	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/oracle/create_database.sql	2009-02-03 14:45:01 UTC (rev 25072)
@@ -18,9 +18,10 @@
         STATID number(19,0),
         SERVER varchar2(255 char),
         STATDATE timestamp,
+	bytevalue long,
         timevalue float,
         countvalue number(10,0),
-        textvalue varchar2(2000 char),
+        textvalue varchar2(4000 char),
         primary key (id)
     );
 	

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/postgresql/create_database.sql
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/postgresql/create_database.sql	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-esb/src/main/resources/postgresql/create_database.sql	2009-02-03 14:45:01 UTC (rev 25072)
@@ -10,6 +10,7 @@
         STATID integer,
         SERVER varchar(255),
         STATDATE timestamp,
+	bytevalue bigint,
         timevalue float,
         countvalue integer,
         textvalue text

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -37,6 +37,8 @@
 			<lib dir="${mgmt.web.dir}/lib">
 				<include name="jfreechart-1.0.6.jar"/>
 				<include name="jcommon-1.0.10.jar"/>
+				<include name="jstl.jar"/>
+                <include name="standard.jar"/>
 			</lib>
 		</war>
 	</target>

Copied: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/lib/jstl.jar (from rev 25071, labs/jbossesb/trunk/product/tools/console/management-web/lib/jstl.jar)
===================================================================
(Binary files differ)

Copied: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/lib/standard.jar (from rev 25071, labs/jbossesb/trunk/product/tools/console/management-web/lib/standard.jar)
===================================================================
(Binary files differ)

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/attribute.jsp
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/attribute.jsp	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/attribute.jsp	2009-02-03 14:45:01 UTC (rev 25072)
@@ -12,7 +12,8 @@
 	org.jboss.soa.esb.monitoring.server.StatisticsHelper,
 	org.jboss.soa.esb.monitoring.server.TimeSeriesChartProducer,
 	org.jfree.data.time.Minute,
-	org.jfree.chart.JFreeChart
+	org.jfree.chart.JFreeChart,
+	org.apache.taglibs.standard.tag.common.core.Util
 "%>
 <%! 
 	private static int imagecounter = 0;
@@ -45,7 +46,7 @@
 <hr>
 <%
 Long id = new Long(request.getParameter("id"));
-String servername = request.getParameter("servername");
+String servername = Util.escapeXml(request.getParameter("servername"));
 int maxrecords = 10;
 try {
 	maxrecords = Integer.parseInt(request.getParameter("maxrecords"));	
@@ -76,9 +77,11 @@
 		JMXData jmxd = (JMXData) dataList.get(i);
 		switch (attributeType) {
 			case StatisticsHelper.COUNT_ATTRIBUTE:
-			case StatisticsHelper.BYTES_ATTRIBUTE:
 				tscp.addMinute(new Minute(jmxd.getStatdate()), jmxd.getCountvalue());
 				break;
+			case StatisticsHelper.BYTES_ATTRIBUTE:
+				tscp.addMinute(new Minute(jmxd.getStatdate()), jmxd.getBytevalue());
+				break;
 			case StatisticsHelper.TIME_ATTRIBUTE:
 				tscp.addMinute(new Minute(jmxd.getStatdate()), jmxd.getTimevalue());
 				break;
@@ -102,7 +105,7 @@
 <%
 } else {
 %>
-<h1><code><%=attribute%></code></h1>
+<h1><code><%=Util.escapeXml(attribute)%></code></h1>
 <%
 }
 %><br>
@@ -115,7 +118,7 @@
 				<option value="44640" <%=StatisticsHelper.getSelected(44640, timerange)%>>1 month
 				<option value="-1" <%=StatisticsHelper.getSelected(-1, timerange)%>>All
 			</select> and the 
-list the last <input type="text" name="maxrecords" value="<%=maxrecords%>"></input> records
+list the last <input type="text" name="maxrecords" value="<%= maxrecords %>"></input> records
 		<input type="hidden" name="id" value="<%=id%>">
 		<input type="hidden" name="servername" value="<%=servername%>">
 		<input type="submit" value="submit">
@@ -125,7 +128,7 @@
 <table>
 <tr>
 <th>Collection Date</th>
-<th><%=attribute%></th>
+<th><%=Util.escapeXml(attribute) %></th>
 </tr>
 <%
 NumberFormat nf = NumberFormat.getInstance();
@@ -138,12 +141,18 @@
 	
 	switch (attributeType) {
 		case StatisticsHelper.COUNT_ATTRIBUTE:
-		case StatisticsHelper.BYTES_ATTRIBUTE:
 	%>
 		<tr>
 			<td><%=formatter.format(jmxd.getStatdate())%></td>
 			<td align="right"><%=jmxd.getCountvalue()%></td>
 		</tr>
+	<%
+		case StatisticsHelper.BYTES_ATTRIBUTE:
+	%>
+		<tr>
+			<td><%=formatter.format(jmxd.getStatdate())%></td>
+			<td align="right"><%=jmxd.getBytevalue()%></td>
+		</tr>
 	<%		
 			break;
 		case StatisticsHelper.TIME_ATTRIBUTE:

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/index.jsp
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/index.jsp	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/index.jsp	2009-02-03 14:45:01 UTC (rev 25072)
@@ -6,7 +6,8 @@
 	org.hibernate.Transaction,
 	org.jboss.soa.esb.monitoring.MonitoringSessionFactory,
 	org.jboss.soa.esb.monitoring.pojo.*,
-	org.jboss.soa.esb.monitoring.server.StatisticsHelper
+	org.jboss.soa.esb.monitoring.server.StatisticsHelper,
+	org.apache.taglibs.standard.tag.common.core.Util
 "%>
 <html>
 <head>
@@ -46,7 +47,7 @@
 		String serverName = (String) serverNames.get(i);
 %>
 <hr>
-	<h1><code><%=serverName%></code></h1>
+	<h1><code><%=Util.escapeXml(serverName)%></code></h1>
 <% 
 	List objectNames = StatisticsHelper.getObjectNamesForServer(sess, serverName);
 	for (int j = 0; j < objectNames.size(); j++) {
@@ -58,7 +59,7 @@
 		List attributeNames = StatisticsHelper.getAttributes(sess, serverName, objectName);
 		for (int k = 0; k < attributeNames.size(); k++) {
 			JMXAttribute jmxattr = (JMXAttribute) attributeNames.get(k);
-			String attributeName = jmxattr.getAttribute();
+			String attributeName = Util.escapeXml(jmxattr.getAttribute());
 			%>
 			<li><a href="attribute.jsp?servername=<%=serverName%>&id=<%=jmxattr.getId()%>"><%=attributeName%></a></li>
 			<%

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/invoke.jsp
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/invoke.jsp	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/invoke.jsp	2009-02-03 14:45:01 UTC (rev 25072)
@@ -42,8 +42,7 @@
    </table>
 <hr>
 <%
-String idString = request.getParameter("id");
-Long id = new Long(idString);
+Long id = new Long(request.getParameter("id"));
 Session sess = null;
 Transaction tx = null;
 ServiceControlCommand obean = null;

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/operations.jsp
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/operations.jsp	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/operations.jsp	2009-02-03 14:45:01 UTC (rev 25072)
@@ -7,7 +7,8 @@
 	org.jboss.soa.esb.monitoring.MonitoringSessionFactory,
 	org.jboss.soa.esb.monitoring.pojo.*,
 	org.jboss.soa.esb.monitoring.server.StatisticsHelper,
-	org.jboss.soa.esb.monitoring.server.OperationsHelper
+	org.jboss.soa.esb.monitoring.server.OperationsHelper,
+	org.apache.taglibs.standard.tag.common.core.Util
 "%>
 <html>
 <head>
@@ -48,13 +49,13 @@
 		String serverName = (String) serverNames.get(i);
 %>
 <hr>
-	<h1><code><%=serverName%></code></h1>
+	<h1><code><%=Util.escapeXml(serverName)%></code></h1>
 <% 
 		List objectNames = OperationsHelper.getObjectNamesForServer(sess, serverName);
 		for (int j = 0; j < objectNames.size(); j++) {
 			String objectName= (String) objectNames.get(j);
 		%>
-		<li><b><%=objectName%></b></li>
+		<li><b><%=Util.escapeXml(objectName)%></b></li>
 		<ul>
 		<%
 		List operations = OperationsHelper.getOperations(sess, serverName, objectName);
@@ -63,7 +64,7 @@
 			String operation = jmxoper.getReturntype() + " " +  jmxoper.getOperation() 
 				+ " (" + jmxoper.getDescription() + ")";
 			%>
-			<li><a href="invoke.jsp?id=<%=jmxoper.getId()%>"><%=operation%></a></li>
+			<li><a href="invoke.jsp?id=<%=jmxoper.getId()%>"><%=Util.escapeXml(operation)%></a></li>
 			<%
 		}
 		%>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/results.jsp
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/results.jsp	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/src/main/webapp/results.jsp	2009-02-03 14:45:01 UTC (rev 25072)
@@ -7,7 +7,8 @@
 	org.jboss.soa.esb.monitoring.MonitoringSessionFactory,
 	org.jboss.soa.esb.monitoring.pojo.*,
 	org.jboss.soa.esb.monitoring.server.StatisticsHelper,
-	org.jboss.soa.esb.monitoring.server.OperationsHelper
+	org.jboss.soa.esb.monitoring.server.OperationsHelper,
+	org.apache.taglibs.standard.tag.common.core.Util
 "%>
 <html>
 <head>
@@ -48,7 +49,7 @@
 		String serverName = (String) serverNames.get(i);
 %>
 <hr>
-	<h1><code><%=serverName%></code></h1>
+	<h1><code><%=Util.escapeXml(serverName)%></code></h1>
 <% 
 		List results = OperationsHelper.getOperationResults(sess, serverName);
 		for (int j = 0; j < results.size(); j++) {
@@ -56,9 +57,9 @@
 		%>
 		<li><b><%=jmxor.getStatdate()%></b></li>
 		<ul>
-			<li><b>Result:</b> <%=jmxor.getResult() %>
-			<li><b>Object name:</b> <%=jmxor.getOperation().getObjectname() %>
-			<li><b>Operation:</b> <%=jmxor.getOperation().getReturntype()%> <%=jmxor.getOperation().getOperation() %>
+			<li><b>Result:</b> <%=Util.escapeXml(jmxor.getResult())%>
+			<li><b>Object name:</b> <%=Util.escapeXml(jmxor.getOperation().getObjectname()) %>
+			<li><b>Operation:</b> <%=Util.escapeXml(jmxor.getOperation().getReturntype())%> <%=Util.escapeXml(jmxor.getOperation().getOperation()) %>
 		</ul>
 		<% 
 	}

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/web.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/web.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/console/management-web/web.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,7 +1,5 @@
-<!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
-
-<web-app>
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" >
   <display-name>Archetype Created Web Application</display-name>
 </web-app>

Modified: labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/resources/META-INF/rhq-plugin.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/resources/META-INF/rhq-plugin.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/product/tools/jonplugin/src/main/resources/META-INF/rhq-plugin.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -56,7 +56,6 @@
       <metric displayName="Processed Bytes" property="ProcessedBytes" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Overall Bytes Processed"/>
       <metric property="LastSuccessfulMessageDate" displayName="Last Successful Message Date" dataType="trait" displayType="summary" defaultOn="true" description="Last Successful Message Date"/>
       <metric property="LastFailedMessageDate" displayName="Last Failed Message Date" dataType="trait" displayType="summary" defaultOn="true" description="Last Failed Message Date"/>
-      <metric property="StateString" dataType="trait" displayName="State" displayType="summary" defaultOn="true" description="State of the ESB"/>
       <content name="library" displayName="Jar Library" category="deployable"
                 description="Library Jar files deployed in JBoss AS">
          <configuration>
@@ -119,7 +118,7 @@
          </plugin-configuration>
          <operation name="resetCounter" displayName="Reset the message counter" description="Reset the message counter"/>
          <metric displayName="Message Count" property="overallMessageCount" category="utilization" displayType="summary" measurementType="dynamic" description="Message Count"/>
-        <metric displayName="Message Count (avg)" property="overallMessageCountByMinute" category="utilization" displayType="summary" measurementType="dynamic" description="Message Count (avg)"/>
+        <metric displayName="Message Count (avg)" property="overallMessageCountByMinute" category="utilization" displayType="summary" measurementType="trendsup" description="Message Count (avg)"/>
 	 <metric displayName="Overall Bytes" property="overallBytes" units="bytes" category="utilization" displayType="summary"
 defaultOn="true" measurementType="dynamic" description="Overall Bytes"/>
 	 <metric displayName="Overall Bytes Processed" property="bytesProcessed" units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic" description="Overall Bytes Processed"/>
@@ -169,11 +168,11 @@
 	      </plugin-configuration>
 		<metric displayName="Message Count" property="overallMessagesCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
 		<metric displayName="Message Count (avg)" property="overallMessagesCountMinute" category="utilization" 
-displayType="summary" defaultOn="true" measurementType="dynamic"/>
+displayType="summary" defaultOn="true" measurementType="trendsup"/>
 	        <metric displayName="Messages Failed" property="failedProcessedCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
-	        <metric displayName="Messages Failed (avg)" property="failedProcessedCountMinute" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
+	        <metric displayName="Messages Failed (avg)" property="failedProcessedCountMinute" category="utilization" displayType="summary" defaultOn="true" measurementType="trendsup"/>
 	        <metric displayName="Messages Successfully Processed" property="successProcessedCount" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
-	        <metric displayName="Messages Successfully Processed (avg)" property="successProcessedCountMinute" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
+	        <metric displayName="Messages Successfully Processed (avg)" property="successProcessedCountMinute" category="utilization" displayType="summary" defaultOn="true" measurementType="trendsup"/>
 		<metric displayName="Overall Bytes" property="overallBytesProcessed" units="bytes" category="utilization"
 displayType="summary" defaultOn="true" measurementType="dynamic"/>
 	 	<metric displayName="Overall Bytes Processed" property="bytesSuccessful"  units="bytes" category="utilization" displayType="summary" defaultOn="true" measurementType="dynamic"/>
@@ -189,4 +188,3 @@
     </service>
     </service>
 </plugin>
-

Modified: labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/build.xml
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/build.xml	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/build.xml	2009-02-03 14:45:01 UTC (rev 25072)
@@ -63,7 +63,6 @@
          <include name="fun_cbr/lib/**/*.jar"/>
          <include name="helloworld/lib/**/*.jar"/>
          <include name="helloworld_action/lib/**/*.jar"/>
-         <include name="helloworld_db_registration/lib/**/*.jar"/>
          <include name="helloworld_file_action/lib/**/*.jar"/>
          <include name="helloworld_sql_action/lib/**/*.jar"/>
          <include name="recipient_list/lib/**/*.jar"/>
@@ -95,7 +94,6 @@
 	 <include name="groovy_gateway/build/classes"/>
      <include name="helloworld/build/classes"/>
      <include name="helloworld_action/build/classes"/>
-     <include name="helloworld_db_registration/build/classes"/>
      <include name="helloworld_file_action/build/classes"/>
 	 <include name="helloworld_file_notifier/build/classes"/>
      <include name="helloworld_sql_action/build/classes"/>
@@ -199,7 +197,6 @@
       <exec-quickstart quickstart="groovy_gateway" target="clean"/>
       <exec-quickstart quickstart="helloworld" target="clean"/>
       <exec-quickstart quickstart="helloworld_action" target="clean"/>
-      <exec-quickstart quickstart="helloworld_db_registration" target="clean"/>
       <exec-quickstart quickstart="helloworld_file_action" target="clean"/>
       <exec-quickstart quickstart="helloworld_file_notifier" target="clean"/>
       <exec-quickstart quickstart="helloworld_sql_action" target="clean"/>
@@ -243,7 +240,6 @@
       <exec-quickstart quickstart="groovy_gateway" target="prepare-deployment"/>
       <exec-quickstart quickstart="helloworld" target="prepare-deployment"/>
       <exec-quickstart quickstart="helloworld_action" target="prepare-deployment"/>
-      <exec-quickstart quickstart="helloworld_db_registration" target="prepare-deployment"/>
       <exec-quickstart quickstart="helloworld_file_action" target="prepare-deployment"/>
       <exec-quickstart quickstart="helloworld_file_notifier" target="prepare-deployment"/>
       <exec-quickstart quickstart="helloworld_sql_action" target="prepare-deployment"/>
@@ -283,7 +279,6 @@
 	    <include name="groovy_gateway/build/*.esb"/>
             <include name="helloworld/build/*.esb"/>
             <include name="helloworld_action/build/*.esb"/>
-            <include name="helloworld_db_registration/build/*.esb"/>
             <include name="helloworld_file_action/build/*.esb"/>
 	    <include name="helloworld_file_notifier/build/*.esb"/>
             <include name="helloworld_sql_action/build/*.esb"/>

Modified: labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/resources/transformedmessageDateManipulation.log
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/resources/transformedmessageDateManipulation.log	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/resources/transformedmessageDateManipulation.log	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,17 +1,16 @@
 <Order netAmount="59.97" orderId="1" statusCode="0" tax="4.95" totalAmount="64.92">
-  <Customer firstName="Harry" lastName="Fletcher" state="SD" userName="user1"/>
-  <OrderDate>
-    <day>15</day>
-    <time>13:45</time>
-    <month>11</month>
-    <year>06</year>
-  </OrderDate>
-  <OrderLines>
-    <OrderLine position="1" quantity="1">
-      <Product price="29.98" productId="364" title="The 40-Year-Old Virgin "/>
-    </OrderLine>
-    <OrderLine position="2" quantity="1">
-      <Product price="29.99" productId="299" title="Pulp Fiction"/>
-    </OrderLine>
-  </OrderLines>
-</Order>
+        <Customer firstName="Harry" lastName="Fletcher" state="SD" userName="user1"></Customer>
+            <OrderDate>
+               <day>15</day>
+               <time>13:45</time>
+               <month>11</month>
+               <year>06</year>
+            </OrderDate><OrderLines>
+                <OrderLine position="1" quantity="1">
+                        <Product price="29.98" productId="364" title="The 40-Year-Old Virgin "></Product>
+                </OrderLine>
+                <OrderLine position="2" quantity="1">
+                        <Product price="29.99" productId="299" title="Pulp Fiction"></Product>
+                </OrderLine>
+        </OrderLines>
+</Order>
\ No newline at end of file

Deleted: labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/src/org/jboss/soa/esb/quickstart/test/HelloWorldDBRegistrationTest.java
===================================================================
--- labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/src/org/jboss/soa/esb/quickstart/test/HelloWorldDBRegistrationTest.java	2009-02-03 11:33:05 UTC (rev 25071)
+++ labs/jbossesb/workspace/mlittle/legstar/qa/quickstarts/src/org/jboss/soa/esb/quickstart/test/HelloWorldDBRegistrationTest.java	2009-02-03 14:45:01 UTC (rev 25072)
@@ -1,57 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2006, JBoss Inc., and others contributors as indicated 
- * by the @authors tag. All rights reserved. 
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors. 
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A 
- * 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,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 
- * MA  02110-1301, USA.
- * 
- * (C) 2005-2006,
- * @author JBoss Inc.
- */
-
-package org.jboss.soa.esb.quickstart.test;
-
-import junit.framework.Test;
-
-import org.jboss.soa.esb.samples.quickstart.helloworlddbregistration.test.SendJMSMessage;
-
-/**
- * CI test for the helloworlddbregistration quickstart.
- * 
- * @author <a href="mailto:tcunning at redhat.com">Tom Cunningham</a>
- */
-public class HelloWorldDBRegistrationTest extends AbstractQuickstartTestCase {
-	private static final String JMS_MESSAGE = "HelloWorldDBRegistrationTest message";
-
-	public HelloWorldDBRegistrationTest(String name) {
-		super(name);
-	}
-
-	public void testMessage() throws Exception {
-	    clearMessages() ;
-	    sendMessage() ;
-	    checkMessages(30000, JMS_MESSAGE) ;
-	}
-
-	public void sendMessage() throws Exception {
-		SendJMSMessage sm = new SendJMSMessage();
-		sm.setupConnection();
-		sm.sendAMessage(JMS_MESSAGE);
-		sm.stop();
-	}
-
-	public static Test suite() throws Exception {
-		return getDeploySetup(HelloWorldDBRegistrationTest.class,
-				"QuickstartMessageStoreServer.sar, Quickstart_db_registration.esb");
-	}
-}




More information about the jboss-svn-commits mailing list