[jboss-cvs] JBossAS SVN: r89313 - in branches/Branch_5_x_BootstrapLegacyRemoval: build/docs and 23 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sat May 23 14:55:19 EDT 2009


Author: ALRubinger
Date: 2009-05-23 14:55:19 -0400 (Sat, 23 May 2009)
New Revision: 89313

Added:
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/ServiceBindingManagedObjectsTestCase.java
   branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/override/test/ServiceBindingManagedObjectsTestCase.java
   branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/SecurityActions.java
Removed:
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.sar/
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.sar/
Modified:
   branches/Branch_5_x_BootstrapLegacyRemoval/build/build-distr.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/build/docs/readme.html
   branches/Branch_5_x_BootstrapLegacyRemoval/cluster/src/main/org/jboss/ha/framework/server/ClusterPartition.java
   branches/Branch_5_x_BootstrapLegacyRemoval/cluster/src/main/org/jboss/ha/framework/server/DistributedReplicantManagerImpl.java
   branches/Branch_5_x_BootstrapLegacyRemoval/component-matrix/pom.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/mbeans/src/main/org/jboss/mx/server/InvocationContext.java
   branches/Branch_5_x_BootstrapLegacyRemoval/profileservice/src/main/org/jboss/profileservice/management/ManagedPropertyDelegate.java
   branches/Branch_5_x_BootstrapLegacyRemoval/profileservice/src/main/org/jboss/profileservice/management/TempManagedComponentImpl.java
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/bin/service.bat
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bootstrap/profile.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/default/bootstrap/profile.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/persistence/deployer/PersistenceModificationChecker.java
   branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/persistence/deployer/ProfileServicePersistenceDeployer.java
   branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/repository/AbstractAttachmentStore.java
   branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/build.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/imports/server-config.xml
   branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/jacc/test/EJBSpecUnitTestCase.java
   branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/test/ServiceBindingManagedObjectsTestCase.java
   branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/resources/securitymgr/server.policy
   branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/Util.java
   branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/XSLTServiceBindingValueSourceImpl.java
Log:
[JBAS-6856] Executed: "svn merge -r 89127:89308 https://svn.jboss.org/repos/jbossas/branches/Branch_5_x" to bring current w/ Branch_5_x

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/build/build-distr.xml
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/build/build-distr.xml	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/build/build-distr.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -1053,7 +1053,7 @@
     </copy>
 
   	<!-- copy the service binding manager to it's deployment --> 
-    <copy todir="${install.server}/all/conf/bindingservice.sar">
+    <copy todir="${install.server}/all/conf/bindingservice.beans">
      <fileset dir="${_module.output}/lib">
      	<include name="jboss-bindingservice.jar"/>
      </fileset>

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/build/docs/readme.html
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/build/docs/readme.html	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/build/docs/readme.html	2009-05-23 18:55:19 UTC (rev 89313)
@@ -3,54 +3,19 @@
   <meta content="text/html" http-equiv="content-type">
 
   <meta content="JBoss Inc." name="author">
-  <title>JBoss 5.0.1.GA Readme</title>
+  <title>JBoss 5.1.0.GA Release Notes</title>
 
 
 </head>
 <body>
 <a href="http://www.jboss.com"><img src="http://www.jboss.com/images/common/jbosscorp_logo.png" alt="JBoss - A Division of Red Hat" border="0"></a>
-<h1>JBoss
-5.1.0.Beta1
-Release Notes</h1>
+<h1>JBoss 5.1.0.GA Release Notes</h1>
 
-<p>This is the first beta &nbsp;<a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=JBossProductVersioning"><span style="text-decoration: none; font-weight: 700;"></span>release</a> of the <b>JBoss 5.1</b>
-series for the <b>Java
-EE&trade;</b>5
-codebase that fully complies with the
-Java EE 5 conformance testing
-certification requirements. It contains more than 40 bug fixes and
-improvents, including an improved profile service API and a tech
-preview of Web Beans.
+<p>Along with many bug fixes and enhancements, this is the first general release to include our new,
+   significantly improved <a href="http://www.jboss.org/embjopr">open-source console</a>.
 <br>
 </p>
 
-<h4>From 5.0.0.GA</h4>
-This release&nbsp;brings us to the end of a 3+ year
-marathon of redesigning the most popular open-source application server
-over a completely new kernel architecture, the <a href="http://www.jboss.org/jbossmc/">JBoss Microcontainer</a>.
-It also marks the beginning of a new era of innovation for JBoss as we
-will be exploring the capabilities and limitations of the new
-architecture in the releases to come. In our view, JBossAS 5&nbsp;provides
-a healthy foundation and the most advanced and&nbsp;fully extensible,
-cross component model, aspect integration, server runtime environment. 
-For
-information
-on the APIs that
-make up Java EE 5, see
-<a href="http://java.sun.com/javaee/reference/index.jsp">Java
-EE APIs &amp; Docs</a>. A
-tutorial on Java EE 5 can be found
-<a href="http://java.sun.com/javaee/5/docs/tutorial/doc/">here</a>. Please visit also the<a href="http://www.jboss.org/jbossas/docs/"> JBoss AS docs</a> pages as we'll be updating the documents with the latest information, and post your questions to the<a href="http://www.jboss.com/index.html?module=bb&amp;op=viewforum&amp;f=287"> JBossAS 5 User Forum</a>.
-<p>A sample Java EE 5 application
-that can be
-run on top of JBoss 5 and demonstrates many interesting
-technologies is the <b><i>Seam
-Booking Application</i></b>
-available <a href="http://repository.jboss.org/maven2/org/jboss/seam/examples/">here</a>.
-Check out the <a href="http://www.seamframework.org/">JBoss
-Seam</a> framework pages that link to many
-interesting topics for combining&nbsp;Seam with JBossAS 5.</p>
-
 <h2>Overview</h2>
 
 <ul>
@@ -68,121 +33,21 @@
 </ul>
 
 <h2><a name="Highlights">Highlights</a></h2>
-This release includes a tech preview (beta release) of the new JSR-299 Web Beans RI. 
-You can find out more information about Web Beans 
-<a href="http://docs.jboss.org/webbeans/reference/1.0.0.BETA1/en-US/html">here</a>.
-<br/><br/>
-
-Also included is improved support for JDK logging, and an improved profile service API.
-
-See the component updates section below for a list of all other updates.
-
-<h4>From 5.0.0.GA</h4>
-JBoss 5 is the next generation
-of the JBoss Application Server
-build on top of the new <a href="http://www.jboss.com/products/jbossmc">JBoss
-Microcontainer</a>. The JBoss
-Microcontainer is a lightweight
-container for managing POJOs, their deployment, configuration and
-lifecycle. It is a standalone project that replaces the famous JBoss
-JMX Microkernel of the 3.x and 4.x JBoss series. The Microcontainer
-integrates nicely with the JBoss framework for Aspect Oriented
-Programming, <a href="http://labs.jboss.com/portal/jbossaop">JBoss
-AOP</a>. Support for JMX in JBoss 5
-remains strong and MBean
-services written against the old Microkernel are expected to work.
-<p>JBoss5 is designed around the
-advanced concept of a
-<a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=JBoss5DeploymentFramework">Virtual
-Deployment Framework</a> (VDF), that
-takes the aspect oriented
-design of many of the earlier JBoss containers and applies it to the
-deployment layer. Aspectized Deployers operate in a chain over a
-<a href="http://wiki.jboss.org/wiki/Wiki.jsp?page=JBoss5VirtualFileSystem">Virtual
-File System</a> (VFS), analyze
-deployments and produce metadata
-to be used by the JBoss Microcontainer, which in turn instantiates and
-wires together the various pieces of a deployment, controlling their
-lifecycle and dependencies.</p>
-
-<p>Many key features of JBoss 5
-are provided by integrating other
-standalone JBoss projects:</p>
-
 <ul>
+<li><b>New Web Console</b> - This release includes our new administration console. Several updates
+have been made since the CR1 release, including the introduction of WAR metrics. See the full
+release notes for the console <a href="http://www.jboss.org/community/wiki/EmbeddedJOPR120GAReleaseNotes">here</a>.</li>
 
-<li><a href="http://labs.jboss.org/portal/jbossejb3">JBoss
-EJB3</a>
-included with JBoss 5 provides the implementation of the latest
-revision of the Enterprise Java Beans (EJB) specification. EJB 3.0 is a
-deep overhaul and simplification of the EJB specification. EJB 3.0's
-goals are to simplify development, facilitate a test driven approach,
-and focus more on writing plain old java objects (POJOs) rather than
-coding against complex EJB APIs.</li>
-<li><a href="http://www.jboss.com/products/messaging">JBoss
-Messaging</a> is a high performance
-JMS provider in the JBoss
-Enterprise Middleware Stack (JEMS), included with JBoss 5 as the
-default messaging provider. It is also the backbone of the <a href="http://www.jboss.com/products/esb">JBoss ESB</a>
-infrastructure. JBoss Messaging is a complete rewrite of JBossMQ, which
-is the default JMS provider for the JBoss AS 4.x series.</li>
-<li><a href="http://www.jboss.com/products/jbosscache">JBossCache</a>&nbsp;that
-comes in two flavors. A traditional tree-structured node-based
-cache and a <a href="http://labs.jboss.com/file-access/default/members/jbosscache/freezone/docs/2.0.0/PojoCache/en/html/index.html">
-PojoCache</a>, an in-memory,
-transactional, and replicated cache
-system that allows users to operate on simple POJOs transparently
-without active user management of either replication or persistency
-aspects.</li>
-<li><a href="http://labs.jboss.com/portal/jbossws">JBossWS</a>
-is the web services stack for JBoss 5 providing Java EE compatible web
-services, JAX-WS-2.0.</li>
-<li><a href="http://www.jboss.com/products/transactions">JBoss
-Transactions</a> is the default
-transaction manager for JBoss 5.
-JBoss Transactions is founded on industry proven technology and 18 year
-history as a leader in distributed transactions, and is one of the most
-interoperable implementations available.</li>
-<li><a href="http://www.jboss.com/products/jbossweb">JBoss
-Web</a>
-is the Web container in JBoss 5, an implementation based on Apache
-Tomcat that includes the Apache Portable Runtime (APR) and Tomcat
-native technologies to achieve scalability and performance
-characteristics that match and exceed the Apache Http server.</li>
+<li><b>Web Beans Update</b> - In addition, this release includes an updated tech preview of the new JSR-299 Web Beans RI. For more information about Web Beans see the documentation
+<a href="http://docs.jboss.org/webbeans/reference/1.0.0.PREVIEW1/en-US/html">here</a>.</li>
+
+<li><b>Farming Returns</b> - Due to popular demand, the farming service is back! See the following wiki
+page <a href="http://www.jboss.org/community/docs/DOC-13616">here</a>.</li>
 </ul>
+<h2><a name="Compatibility">Compatibility Issues</a></h2>
 
-JBoss 5
-includes&nbsp;features and bug fixes,
-many of them carried over upstream from the 4.x codebase. See the <a href="#Details">Detailed Release Notes</a>
-section for
-the full details.
-<p>A common theme
-for&nbsp;JBossAS 5 is the breaking out of internal subsystems into
-stand-alone projects
-and the introduction of SPIs throughout the server
-codebase.&nbsp;Those changes should not affect directly the end
-user but they are an important part of the JBoss strategy for making
-available the various EE services as independent projects, so that they
-can be wired-together and be consumed<b> </b>&agrave; la carte inside
-different&nbsp;runtime environments and not only&nbsp; inside the JBoss
-Application Server.
-</p>
+There are no known compatibility issues in 5.1.0.GA.
 
-<p>If you are building JBossAS
-from
-source
-you'll&nbsp;notice we are migrating to a maven2 build. At this
-point
-the build is a&nbsp;hybrid one because it declares all JBoss
-dependencies as maven2 artifacts, however after the dependencies are
-resolved/imported the legacy ant based build is used to compile and
-build the distribution. This will&nbsp;change to a full maven build
-at
-some point in time.&nbsp;The jboss maven repo can be found <a href="http://repository.jboss.org/maven2/org/jboss/">here</a>.
-Starting from AS5 CR2, please note how the -sources.jar are also
-downloaded.</p>
-
-<h2><a name="Compatibility">Compatibility Issues</a></h2>
 <h4>from 5.0.1.GA</h4>
 <ul>
   <li>This release resolves issues related to running&nbsp;JBossAS 5 under AIX with an IBM jdk. See JBAS-6506, JBAS-6428.</li>
@@ -301,12 +166,6 @@
 
 <h2><a name="Configuration">Configuration Issues</a></h2>
 
-<ul>
-  <li>The ejb3-timer-service.xml has moved from deploy to
-docs/examples/ejb3 to avoid the runtime overhead, since it's not used
-by default. If you want to use it, move it back to the deploy folder
-and set the <span style="font-family: monospace;" class="postbody">org.jboss.ejb3.timerservice.factory&nbsp;</span><span class="postbody">property to&nbsp;</span><span style="font-family: monospace;" class="postbody">org.jboss.ejb3.timerservice.quartz.QuartzTimerServiceFactory.</span></li>
-</ul>
 <h4>From 5.0.0.GA</h4>
 <p>JBossAS 5.0.0.GA introduces two new configuration, the <span style="font-family: monospace; font-weight: bold;">standard</span><span style="font-weight: bold;"> </span>and the <span style="font-family: monospace; font-weight: bold;">web</span> config.<br>
 </p>
@@ -576,344 +435,232 @@
 
 </ul>
 
-<h2><a name="Libraries">Library Updates</a></h2>
-
-For a full list of the JBoss and thirdparty libraries used with JBoss AS 5.0.1.GA
-check the <a style="font-family: monospace;" href="http://anonsvn.jboss.org/repos/jbossas/tags/JBoss_5_0_1_GA/component-matrix/pom.xml">pom.xml</a>
-found in the component-matrix directory of the source code distribution. To see
-the maven dependency tree you can also do a '<span style="font-family: monospace;">mvn dependency:tree</span>'
-from the <span style="font-family: monospace;">thirdparty</span> directory of the source code distro.<br>
-
-<br>
-
-Some rather important utilized jboss project versions are listed below. You are
-encouraged to browse the individual project's documentation and view
-the release notes at <a href="http://www.jboss.org">www.jboss.org</a>.<br>
-
-<ul>
-
-<li>Web Beans 1.0.0.Beta1</li>
-<li>XNIO 1.2.0.GA</li>
-<li>JDK LogBridge 1.0.0.GA<li>
-<li>JBoss
-Transactions, v4.6.0.CR1A</li>
-<li>JBoss WebServices, v3.1.0.GA</li>
-<li>JBoss
-Messaging, v1.4.3.GA</li>
-<li>JBoss Web, v2.1.2.GA</li>
-<li>JBoss
-AOP, v2.0.1.GA</li>
-<li>JBoss EJB3, v1.0.0</li>
-<li>JBoss
-Microcontainer, v2.0.4.GA</li>
-<li>JBoss Security,
-v2.0.2.SP6</li>
-<li>Hibernate, v3.3.1.GA</li>
-<li>Hibernate
-Entity Manager, v3.4.0.GA</li>
-<li>Hibernate Annotations,
-v3.4.0.GA</li>
-<li>JBoss Cache POJO, v3.0.0.GA</li>
-<li>JBoss
-Cache Core, v3.0.2.GA</li><li>JBoss VFS, v2.1.0.GA</li>
-  <li>JBoss Remoting, v2.5.0.SP2</li>
-
-<li>JGroups, v.2.6.8.GA</li>
-</ul>
-
 <h1><a name="Details">Detailed Release Notes</a></h1>
 
-<h3>Includes versions: JBossAS-5.1.0.Beta1</h3>
-  Release Notes - JBoss Application Server - Version JBossAS-5.1.0.Beta1
-    
+        Release Notes - JBoss Application Server - Version JBossAS-5.1.0.GA
+
 <h2>        Bug
 </h2>
 <ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-4569'>JBAS-4569</a>] -         ClusterPartition.stopService( ) fails when server is shut down
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5936'>JBAS-5936</a>] -         Wrong logging information is shown for components using slf4j (e.g. Hibernate)
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5302'>JBAS-5302</a>] -         StatefulHandleImpl should be able to use legacy invoker method to retrieve EJBObject
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6227'>JBAS-6227</a>] -         Only way to remove a managedcomponent is to remove its deployment
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5563'>JBAS-5563</a>] -         Deployment from deploy-hasingleton broken
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6310'>JBAS-6310</a>] -         Failure in loading classes due to thread stack overflow should be logged as an error.
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5682'>JBAS-5682</a>] -         Profile service does not include newly added content in getModifiedDeployments()
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6500'>JBAS-6500</a>] -         JMX View and ManagementView do not consistently reflect J2EE application state after undeployment
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5713'>JBAS-5713</a>] -         NullPointerException in JavaEEComponentHelper with JBoss-5.0
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6512'>JBAS-6512</a>] -         ServiceBindingManagedObjectsTestCase.testPortsDefault regression
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5929'>JBAS-5929</a>] -         Sub Pooling in JBossManagedConnectionPool MemoryLeak for sparse CRI coverage
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6579'>JBAS-6579</a>] -         Resolve JBoss AS 5.1.0 Test Suite Issues
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6265'>JBAS-6265</a>] -         Servlets should not be using the ejb3 user transaction
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6592'>JBAS-6592</a>] -         Eliminate duplication of CORBA OTS classes in AS 5.1.0 distribution
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6274'>JBAS-6274</a>] -         scanning of the deployDir needs to happen after previous phases are deployed.
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6673'>JBAS-6673</a>] -         VFS cache should handle main context roots better still an issue in 5.0.1
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6276'>JBAS-6276</a>] -         JmsConnectionRequestInfo needs have defaults set before doing allocateConnection()
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6677'>JBAS-6677</a>] -         Cleanup inactive timer service instances for Entity Beans
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6277'>JBAS-6277</a>] -         JmsSessionFactoryImpl should look at MCF for client id when not set by the user
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6745'>JBAS-6745</a>] -         org.jboss.test.cmp2.audit.test.AuditUnitTestCase failing with MySQL - miliseconds not supported
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6282'>JBAS-6282</a>] -         Eliminate duplication of servlet APIs in AS 5 distribution
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6747'>JBAS-6747</a>] -         JaasSecurityManagerService::CallbackHandlerClassName is not being used anywhere
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6283'>JBAS-6283</a>] -         Duplicate entry in jsf-api-sources.jar (javax/faces/component/html/package.html)
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6764'>JBAS-6764</a>] -         Embedded Console issues with standard config
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6287'>JBAS-6287</a>] -         org.jboss.test.hellojrmpiiop.test.HelloTimingStressTestCase fails when run with JDK 6
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6768'>JBAS-6768</a>] -         SubjectFactory usage in JCA needs review for the Datasource Encryption usecase
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6294'>JBAS-6294</a>] -         Use Of IgnoreUndeployLegacyClusteredSessionNotificationPolicy Causes StackOverflow Errors
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6825'>JBAS-6825</a>] -         AS 5 Plugin:  User-created Connection Factory status is DOWN after server restart
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6298'>JBAS-6298</a>] -         Unable to build the AS with IBM JDK 1.6
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6832'>JBAS-6832</a>] -         JBoss AS  JVM Metrics stay the same through the console
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6328'>JBAS-6328</a>] -         jmx-console: Back to MBean button causes error
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6848'>JBAS-6848</a>] -         DataSourceDeploymentMetaData doesnt create property &quot;isSameRMOverrideValue&quot;
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6333'>JBAS-6333</a>] -         &lt;database&gt;-persistence-service.xml is dependent on ChannelFactory even on NonClustered
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6858'>JBAS-6858</a>] -         SVC* variables in bin\service.bat need to be updated from &quot;5.0&quot; to &quot;5.1&quot;
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6336'>JBAS-6336</a>] -         CleanShutdownInterceptor Can Log Container State Incorrectly
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6860'>JBAS-6860</a>] -         ManagedConnectionFactoryDeployment should look for both primitive and wrapper type setters before giving up when setting attributes
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6343'>JBAS-6343</a>] -         JCA adapter inflow does not Roll back messages if using a non-xa connection factory in the JNDIProviderAdapter
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6862'>JBAS-6862</a>] -         ManagedDeploymentImpl unitMOs does not use name from @ManagementObjectID
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6360'>JBAS-6360</a>] -         Multiple redeployments of ear when many 'watched files' are touched in the ear
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6872'>JBAS-6872</a>] -         -Djboss.bind.address definition in run.conf ignored
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6367'>JBAS-6367</a>] -         missing org.codehaus.plexus:plexus-utils:jar:1.5.6
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6874'>JBAS-6874</a>] -         TimerImpl should set ACTIVE state before scheduling to avoid race condition
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6373'>JBAS-6373</a>] -         VFS cache should handle main context roots better
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6880'>JBAS-6880</a>] -         BeanMetaDataICF not finding MetaMapper
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6400'>JBAS-6400</a>] -         ExecutionContext returns the transaction timeout in seconds, but we use that argument to schedule the thread that is in milliseconds.
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6904'>JBAS-6904</a>] -         Ban org.hibernate:hibernate in favor of org.hibernate:hibernate-core
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6407'>JBAS-6407</a>] -         TestResourceAdapterTxInflow can't assume one phase commit
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6914'>JBAS-6914</a>] -         useJBossWebLoader not working when set to true
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6408'>JBAS-6408</a>] -         Add 5_0_0_GA client to compatibility matrix tests
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6921'>JBAS-6921</a>] -         cache-invalidation-service.xml includes invalid JMS topic config
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6410'>JBAS-6410</a>] -         JBoss Security (2.0.2.SP3) serialVersionUID breaks interoperability with external tools (e.g. JBoss Tools)
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6945'>JBAS-6945</a>] -         InvocationContext on the serverside needs to use privileged block for getting TCCL
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6420'>JBAS-6420</a>] -         JBossWebRealm-&gt;hasUserDataPermission check with JBoss Security needs Subject
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6964'>JBAS-6964</a>] -         XSLTServiceBindingValueSourceImpl is missing privileged blocks
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6428'>JBAS-6428</a>] -         HAPartition unable to start with IBM JDK 1.5 - net.jcip.annotations.ThreadSafe not found
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6434'>JBAS-6434</a>] -         REGRESSION: org.jboss.test.compatibility.test.SerialVersionUIDUnitTestCase
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6439'>JBAS-6439</a>] -         Non-DeploymentManager-based HASingletonDeploymentScanner impl results in deploy-hasingleton content removal
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6493'>JBAS-6493</a>] -         AOPLister in web-console doesnt work for JBoss 4.2.* 5.0.*, 5.*,  trunk
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6497'>JBAS-6497</a>] -         Dynamic webservice endpoint deployment doesn't propagate Module in attachments
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6501'>JBAS-6501</a>] -         org.jboss.tools.SerialVersionUID doesn't use JBOSS_HOME/common/** jars
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6507'>JBAS-6507</a>] -         BeanMetaDataICF needs to delegate to AbstractInstanceClassFactory for managed object values
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6523'>JBAS-6523</a>] -         ORB not found message is overly verbose
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6534'>JBAS-6534</a>] -         Graceful shutdown of JBoss Web service does not wait for accepted requests to complete before stopping dependent services
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6544'>JBAS-6544</a>] -         STREAMING_STATE_TRANSFER configs use deprecated attribute
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6561'>JBAS-6561</a>] -         Regression: MTTransactionManagerUnitTestCase.testCommitSameTxInTwoThreads() fails
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6571'>JBAS-6571</a>] -         JDK6 (JMX1.3) ObjectName queries are not working
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6572'>JBAS-6572</a>] -         serialVersionUID mismatch on RegexValidator.class since JSF 1.2_12 upgrade
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6573'>JBAS-6573</a>] -         serialVersionUID mismatch on ManagementViewImpl$ManagedOperationDelegate
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6602'>JBAS-6602</a>] -         Log4jService should use the new JDKLevel class when setting log levels
-</li>
 </ul>
-        
+
 <h2>        Feature Request
 </h2>
 <ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-1808'>JBAS-1808</a>] -         Expose PreparedStatementCache via JMX
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5992'>JBAS-5992</a>] -         Add a ManagedDeployment/ManagedComponent status servlet
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5221'>JBAS-5221</a>] -         tx-connection-factory/no-tx-connection-factory need to be completed
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6754'>JBAS-6754</a>] -         add support for a run.conf equivalent file to run.bat, so environment variable settings can be externalized as they can be for run.sh
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6232'>JBAS-6232</a>] -         DeploymentTemplateInfo needs to support a clone 
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6785'>JBAS-6785</a>] -         add default value to the ManagedProperty interface
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6281'>JBAS-6281</a>] -         Use IgnoreUndeployLegacyClusteredSessionNotificationPolicy as the default ClusteredSessionNotificationPolicy
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6828'>JBAS-6828</a>] -         Add a description property to ServiceBindingMetadata
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6390'>JBAS-6390</a>] -         Add support for parsing IPv6 addresses in org.jnp.interfaces.NamingContext
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6839'>JBAS-6839</a>] -         Update slf4j Version, make logger serializable
 </li>
-</ul>
-    
-<h2>        Patch
-</h2>
-<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6319'>JBAS-6319</a>] -         WAR deployment ObjectName should include virtual host
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6849'>JBAS-6849</a>] -         extended twiddle functionality
 </li>
-</ul>
-    
-<h2>        Quality Risk
-</h2>
-<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6257'>JBAS-6257</a>] -         Typo in firebird-ds.xml
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6861'>JBAS-6861</a>] -         Allow PKCS11 keystores to be used in JaasSecurityDomain
 </li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6873'>JBAS-6873</a>] -         Explicitly configure JGroups diagnostics
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6876'>JBAS-6876</a>] -         Configure binding interface via ServiceBindingManager
+</li>
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6927'>JBAS-6927</a>] -         Update RuntimeComponentDispatcher
+</li>
 </ul>
-            
+
 <h2>        Task
 </h2>
 <ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-2525'>JBAS-2525</a>] -         JSR-196: Java Authentication SPI for Container
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-4154'>JBAS-4154</a>] -         Get the server to run under a security manager
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-2602'>JBAS-2602</a>] -         Next Generation Security Manager Service
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6259'>JBAS-6259</a>] -         Management interface for ServiceBindingManager
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-3707'>JBAS-3707</a>] -         HA/Failover RAR Functionality should be implemented in non-HA RARS.
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6560'>JBAS-6560</a>] -         Port crash recovery plugin in EAP4 to AS 5.1
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5240'>JBAS-5240</a>] -         Log VM arguments in boot.log
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6642'>JBAS-6642</a>] -         Make sure aop deployers work after they have been moved out of the as repo
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5246'>JBAS-5246</a>] -         Open console support
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6772'>JBAS-6772</a>] -         Track component updates - 5.1.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6156'>JBAS-6156</a>] -         Track component updates
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6809'>JBAS-6809</a>] -         Update to JBoss Naming 5.0.2.GA and add unit test for JBNAME-27
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6171'>JBAS-6171</a>] -         Remove &quot;bootstrap&quot; module from AS into its own Project
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6819'>JBAS-6819</a>] -         The value of &quot;Connections In Use Count&quot; that gets displayed in the embedded console as the result of the &quot;List Formatted Sub Pool Statistics&quot; operation does not get updated after connections are closed
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6195'>JBAS-6195</a>] -         Fix JBossWS Integration
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6846'>JBAS-6846</a>] -         Create testcase in AS testsuite for discovery disable option
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6361'>JBAS-6361</a>] -         log write to server.log does not append to the file as expected
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6853'>JBAS-6853</a>] -         Pull the ServiceBindingManager out of the bootstrap
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6371'>JBAS-6371</a>] -         Integrate Web Beans RI
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6864'>JBAS-6864</a>] -         Fix timeout issues in classloader leak test cases
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6375'>JBAS-6375</a>] -         PreferredMasterElectionPolicy unnecessarily parses host/port every election
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6875'>JBAS-6875</a>] -         Have the naming service write its connection URL to a well defined place
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6411'>JBAS-6411</a>] -         Show Java runtime information in boot.log
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6887'>JBAS-6887</a>] -         Bring in ejb3-endpoint-deployer into AS through component-matrix
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6417'>JBAS-6417</a>] -         Move ejb3-timer-service.xml to docs/examples/ejb3
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6905'>JBAS-6905</a>] -         Test target tests-security-manager should use its own server configuration
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6423'>JBAS-6423</a>] -         When JNDI cluster node definition method not available, make it more visible.
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6908'>JBAS-6908</a>] -         fix ordering of proxy-factory-config in standardjboss.xml
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6444'>JBAS-6444</a>] -         remove commons-httpclient.jar from AS distribution
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6929'>JBAS-6929</a>] -         Make HDScanner a Daemon Thread
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6448'>JBAS-6448</a>] -         Removing stale xmbean descriptors
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6931'>JBAS-6931</a>] -         set property xb.builder.useUnorderedSequence in org.jboss.Main
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6470'>JBAS-6470</a>] -         Open console support blockers
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6940'>JBAS-6940</a>] -         Reenable Tomcat SSL tests
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6492'>JBAS-6492</a>] -         Include basic smoke tests of JTS into AS testsuite
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6946'>JBAS-6946</a>] -         ReEnable JACC Security Manager Tests
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6525'>JBAS-6525</a>] -         the usage of DeploymentManger should be independent of isCopyContent
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6526'>JBAS-6526</a>] -         drop the DeploymentPhase from the profileservice-spi
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6555'>JBAS-6555</a>] -         Enhance SerialVersionUIDUnitTestCase
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6556'>JBAS-6556</a>] -         Remove org.jboss.test.ejb3.servlet.unit.HttpUtils
-</li>
 </ul>
-    
-<h2>        Thirdparty Change
-</h2>
-<ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6385'>JBAS-6385</a>] -         Upgrade jboss-javaee.jar to 5.0.1.GA
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6409'>JBAS-6409</a>] -         Upgrade to jboss-server-manager 1.0.1.GA
-</li>
-</ul>
-    
+
 <h2>        Component Upgrade
 </h2>
 <ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6334'>JBAS-6334</a>] -         Update JBoss Messaging
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6533'>JBAS-6533</a>] -         Update JPA to 1.0.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6341'>JBAS-6341</a>] -         Upgrade JBossWS Native to 3.1.0.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6564'>JBAS-6564</a>] -         Include JBoss Negotiation 2.0.3.SP1
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6370'>JBAS-6370</a>] -         Upgrade JGroups to 2.6.8
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6621'>JBAS-6621</a>] -         Update jboss-managed to 2.1.0.SP1
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6430'>JBAS-6430</a>] -         Upgrade EJB3 to 1.1.2
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6652'>JBAS-6652</a>] -         Upgrade AOP to 2.1.1.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6433'>JBAS-6433</a>] -         Upgrade JBossTS to 4.6
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6790'>JBAS-6790</a>] -         Update JBC to 3.1.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6453'>JBAS-6453</a>] -         Update AOP to 2.0.1.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6791'>JBAS-6791</a>] -         Upgrade jboss-ha-server-cache-jbc to 2.0.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6454'>JBAS-6454</a>] -         Update Web Beans to 1.0.0.BETA1
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6835'>JBAS-6835</a>] -         Upgrade JBossWS Native to 3.1.2.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6455'>JBAS-6455</a>] -         Update JBoss Cache to 3.0.2.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6840'>JBAS-6840</a>] -         Upgrade JGroups to 2.6.10
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6458'>JBAS-6458</a>] -         Update JPA to 1.0.0-CR1
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6851'>JBAS-6851</a>] -         Update to transactions 4.6.1.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6459'>JBAS-6459</a>] -         Update VFS to 2.1.0.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6863'>JBAS-6863</a>] -         Upgrade to jboss-cl 2.0.6.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6460'>JBAS-6460</a>] -         Update MDR to 2.0.1.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6882'>JBAS-6882</a>] -         Upgrade EJB3 to 1.1.5
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6461'>JBAS-6461</a>] -         Update MC Managed to 2.0.0.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6890'>JBAS-6890</a>] -         Update slf4j to 1.5.6
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6462'>JBAS-6462</a>] -         Update MC Kernel to 2.0.4.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6891'>JBAS-6891</a>] -         Update slf4j-jboss-logging to 1.0.2
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6463'>JBAS-6463</a>] -         Update CL to 2.0.4.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6892'>JBAS-6892</a>] -         Update common-core to 2.2.14.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6464'>JBAS-6464</a>] -         Update Deployers to 2.0.5.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6893'>JBAS-6893</a>] -         Update jboss-ejb3-endpoint-deployers to 0.1.3
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6465'>JBAS-6465</a>] -         Update Seam-Int to 5.0.2.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6898'>JBAS-6898</a>] -         Update jboss-logging-spi, jboss-logging-log4j, jboss-logging-jdk to 2.1.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6467'>JBAS-6467</a>] -         Update to Security 2.0.2.SP7
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6899'>JBAS-6899</a>] -         Update JBoss LogManager to 1.0.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6468'>JBAS-6468</a>] -         Update to JBossXACML 2.0.3.CR1
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6900'>JBAS-6900</a>] -         Update JBoss LogBridge to 1.0.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6473'>JBAS-6473</a>] -         Update to JBoss Threads 1.0.0.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6901'>JBAS-6901</a>] -         Update JBoss Threads and JBoss Threads Metadata to 1.0.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6474'>JBAS-6474</a>] -         Update to XNIO 1.2.0.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6902'>JBAS-6902</a>] -         Update XNIO Metadata to 1.0.0.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6475'>JBAS-6475</a>] -         Update to JDK LogBridge 1.0.0.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6903'>JBAS-6903</a>] -         Upgrade Naming to 5.0.3.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6476'>JBAS-6476</a>] -         Update to Bootstrap 1.0.0-Beta-1
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6907'>JBAS-6907</a>] -         Update Metadata to 1.0.1.GA
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6505'>JBAS-6505</a>] -         Upgrade JBoss Cache to 3.0.3.GA
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6542'>JBAS-6542</a>] -         Update to jboss-common-core 2.2.11.GA
-</li>
 </ul>
-    
+
 <h2>        Sub-task
 </h2>
 <ul>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-2482'>JBAS-2482</a>] -         Investigate integration of FORM auth with a SAML style identity provider
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5552'>JBAS-5552</a>] -         Synchronized deployment repositories across the cluster
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-3768'>JBAS-3768</a>] -         Define initial persistent format of the profile repository
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6066'>JBAS-6066</a>] -         JSR-196 integration for web layer (Client-CERT)
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5523'>JBAS-5523</a>] -         Add Availability functionality. To know when a ManagedComponent is running or stopped, etc
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6330'>JBAS-6330</a>] -         Hotdeployment management interface
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5529'>JBAS-5529</a>] -         Add support for JBAS, JBossWeb and JBossWeb connector components
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6594'>JBAS-6594</a>] -         org.jboss.test.profileservice.test.ServiceBindingManagedObjectsTestCase
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-5640'>JBAS-5640</a>] -         Wars embedded in sars have discrepencies in deployment Name
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6622'>JBAS-6622</a>] -         Dynamic creation of vhost managed objects
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6137'>JBAS-6137</a>] -         Make sure ProfileService is available remotely in a secured fashion
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6623'>JBAS-6623</a>] -         Web Application (WAR) additional metrics and operations
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6218'>JBAS-6218</a>] -         &quot;org.jboss.util.NotImplementedException:Use a custom InstanceClassFactory&quot; error occurs when trying to create XA or NoTX Datasource via ManagementView.applyTemplate()
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6676'>JBAS-6676</a>] -         Suport for exposing JMX bean as ManagedObject
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6219'>JBAS-6219</a>] -         ManagementView.getTemplate() should return a new copy of the DeploymentTemplateInfo on every call
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6773'>JBAS-6773</a>] -         org.jboss.test.jmx.test.UndeployBrokenPackageUnitTestCase
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6272'>JBAS-6272</a>] -         jrockit - org.jboss.test.jca.test.BaseConnectionManagerUnitTestCase.testAllocationRetryMultiThread
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6812'>JBAS-6812</a>] -         Handle Path, Privileged and other attributes from context.xml
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6285'>JBAS-6285</a>] -         Expose platform mbeans as ManagedComponents
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6823'>JBAS-6823</a>] -         Stopping a JMS destination through the console does not change its availability
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6286'>JBAS-6286</a>] -         Create a ManagedComponent for System properties
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6836'>JBAS-6836</a>] -         org.jboss.test.xml.DynamicLoginConfigUnitTestCase.testJASPIConfig
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6325'>JBAS-6325</a>] -         Add index entries
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6850'>JBAS-6850</a>] -         Override jms xmbean descriptors
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6340'>JBAS-6340</a>] -         Upgrade JBossWS Native to 3.0.5.GA
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6857'>JBAS-6857</a>] -         AS5.1: Password Masking for MC Beans
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6413'>JBAS-6413</a>] -         Upgrade JBoss Security 2.0.2.SP6
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6869'>JBAS-6869</a>] -         types field is null in all RAR ManagedDeployments
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6472'>JBAS-6472</a>] -         Update ProfileService spi
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6885'>JBAS-6885</a>] -         when connected to PS via remote client, calling getComponentsByType(), passing some type that actually is deployed, a &quot;ClassNotFoundException: org.jboss.profileservice.management.ManagedOperationDelegate&quot; is thrown
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6490'>JBAS-6490</a>] -         Upgrade Apache XML Security 1.4.2
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6894'>JBAS-6894</a>] -         PerTxEntityInstanceCache-&gt;removeTimerServiceIfAllCancelledOrExpired needs privileged blocks
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6567'>JBAS-6567</a>] -         Update JSF to 1.2_12
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6895'>JBAS-6895</a>] -         org.jboss.test.profileservice.test.ServerManagedObjectsTestCase
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6581'>JBAS-6581</a>] -         org.jboss.test.ejb3.jbas5713.unit.RefSecondJarUnitTestCase
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6896'>JBAS-6896</a>] -         org.jboss.test.tm.test.MTTransactionManagerUnitTestCase(jts)
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6583'>JBAS-6583</a>] -         org.jboss.test.cluster.defaultcfg.test.ClusterPartitionManagedObjectsTestCase(Default-udp)
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6897'>JBAS-6897</a>] -         tests-security-manager regressions
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6591'>JBAS-6591</a>] -         org.jboss.test.deployers.spaces.test.SpacesUnitTestCase
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6906'>JBAS-6906</a>] -         Tests containing persistence units fail to deploy due to NoClassDefFoundError
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6596'>JBAS-6596</a>] -         org.jboss.test.profileservice.override.*.JmsDestinationTestCases
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6911'>JBAS-6911</a>] -         ManagementView api extensions
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/MODCLUSTER-5'>MODCLUSTER-5</a>] -         HASingletonElectionPolicy suitable for mod_cluster
+<li>[<a href='https://jira.jboss.org/jira/browse/JBAS-6922'>JBAS-6922</a>] -         Regressions in compatibility-matrix tests
 </li>
-<li>[<a href='https://jira.jboss.org/jira/browse/MODCLUSTER-10'>MODCLUSTER-10</a>] -         Define API and SPI for the LoadManager
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/MODCLUSTER-11'>MODCLUSTER-11</a>] -         Default LoadManager impl
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/MODCLUSTER-13'>MODCLUSTER-13</a>] -         LoadMetricSource API
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/MODCLUSTER-14'>MODCLUSTER-14</a>] -         LoadMetricSource impl for gather JBossWeb request metrics
-</li>
-<li>[<a href='https://jira.jboss.org/jira/browse/MODCLUSTER-16'>MODCLUSTER-16</a>] -         LoadMetricSource impl for gathering VM metrics
-</li>
 </ul>
-
 <!-- ======================================================= -->
 <hr>
 <h2><a name="Documentation">Documentation


Property changes on: branches/Branch_5_x_BootstrapLegacyRemoval/build/docs/readme.html
___________________________________________________________________
Name: svn:mime-type
   + text/html

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/cluster/src/main/org/jboss/ha/framework/server/ClusterPartition.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/cluster/src/main/org/jboss/ha/framework/server/ClusterPartition.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/cluster/src/main/org/jboss/ha/framework/server/ClusterPartition.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -64,7 +64,6 @@
 import org.jboss.managed.api.annotation.ManagementComponent;
 import org.jboss.managed.api.annotation.ManagementObject;
 import org.jboss.managed.api.annotation.ManagementObjectID;
-import org.jboss.managed.api.annotation.ManagementObjectRef;
 import org.jboss.managed.api.annotation.ManagementOperation;
 import org.jboss.managed.api.annotation.ManagementProperties;
 import org.jboss.managed.api.annotation.ManagementProperty;
@@ -1741,12 +1740,12 @@
       return Version.description + "( " + Version.cvs + ")";
    }
    
-   @ManagementProperty(name="distributedReplicantManager", use={ViewUse.STATISTIC}, description="The DistributedReplicantManager")
-   @ManagementObjectRef(type="DistributedReplicantManager")
-   public String getDRMName()
-   {
-      return getPartitionName();
-   }
+//   @ManagementProperty(name="distributedReplicantManager", use={ViewUse.STATISTIC}, description="The DistributedReplicantManager")
+//   @ManagementObjectRef(type="DistributedReplicantManager")
+//   public String getDRMName()
+//   {
+//      return getPartitionName();
+//   }
    
    public DistributedReplicantManagerImpl getDistributedReplicantManagerImpl()
    {

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/cluster/src/main/org/jboss/ha/framework/server/DistributedReplicantManagerImpl.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/cluster/src/main/org/jboss/ha/framework/server/DistributedReplicantManagerImpl.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/cluster/src/main/org/jboss/ha/framework/server/DistributedReplicantManagerImpl.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -65,7 +65,8 @@
  * @author  <a href="mailto:pferraro at redhat.com">Paul Ferraro</a>
  * @version $Revision$
  */
- at ManagementObject(isRuntime=true, properties=ManagementProperties.EXPLICIT)
+ at ManagementObject(componentType=@ManagementComponent(type="MCBean", subtype="DistributedReplicantManager"),
+                  properties=ManagementProperties.EXPLICIT)
 public class DistributedReplicantManagerImpl
    implements DistributedReplicantManagerImplMBean,
               HAPartition.HAMembershipExtendedListener,
@@ -198,7 +199,7 @@
    }
    
    @ManagementProperty(use={ViewUse.STATISTIC}, description="The partition's name")
-   @ManagementObjectID(type="HAPartition")
+   @ManagementObjectID(type="DistributedReplicantManager")
    public String getPartitionName()
    {
       return this.partition.getPartitionName();

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/component-matrix/pom.xml
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/component-matrix/pom.xml	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/component-matrix/pom.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -80,11 +80,11 @@
     <version.org.jboss.ejb3.endpoint.deployer>0.1.3</version.org.jboss.ejb3.endpoint.deployer>
     <version.org.jboss.integration>5.1.0.GA</version.org.jboss.integration>
     <version.org.jboss.jbossxb>2.0.1.GA</version.org.jboss.jbossxb>
-    <version.org.jboss.jopr>1.2.0.CR3</version.org.jboss.jopr>    
+    <version.org.jboss.jopr>1.2.0.GA</version.org.jboss.jopr>    
     <version.org.jboss.jpa>1.0.0</version.org.jboss.jpa>
     <version.org.jboss.logbridge>1.0.0.GA</version.org.jboss.logbridge>
     <version.org.jboss.logmanager>1.0.0.GA</version.org.jboss.logmanager>
-    <version.org.jboss.man>2.1.0.CR8</version.org.jboss.man>
+    <version.org.jboss.man>2.1.0.SP1</version.org.jboss.man>
     <version.org.jboss.mdr>2.0.1.GA</version.org.jboss.mdr>
     <version.org.jboss.metadata>1.0.1.GA</version.org.jboss.metadata>
     <version.org.jboss.microcontainer>2.0.6.GA</version.org.jboss.microcontainer>

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/mbeans/src/main/org/jboss/mx/server/InvocationContext.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/mbeans/src/main/org/jboss/mx/server/InvocationContext.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/mbeans/src/main/org/jboss/mx/server/InvocationContext.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -144,7 +144,7 @@
          return NOCLASSES;
       Class[] signatureClassesTemp = new Class[signature.length];
       for (int i = 0; i < signature.length; ++i)
-         signatureClassesTemp[i] = Thread.currentThread().getContextClassLoader().loadClass(signature[i]);
+         signatureClassesTemp[i] = TCLAction.UTIL.getContextClassLoader().loadClass(signature[i]);
       signatureClasses = signatureClassesTemp;
       return signatureClasses;
    }
@@ -313,7 +313,7 @@
       Class isPrimitive = Classes.getPrimitiveTypeForName(clazz);
       if (isPrimitive != null)
          return Classes.getPrimitiveWrapper(isPrimitive);
-      ClassLoader cl = Thread.currentThread().getContextClassLoader();
+      ClassLoader cl = TCLAction.UTIL.getContextClassLoader();
       return cl.loadClass(clazz);
    }
    

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/profileservice/src/main/org/jboss/profileservice/management/ManagedPropertyDelegate.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/profileservice/src/main/org/jboss/profileservice/management/ManagedPropertyDelegate.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/profileservice/src/main/org/jboss/profileservice/management/ManagedPropertyDelegate.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -23,6 +23,7 @@
 
 import java.io.Serializable;
 import java.lang.annotation.Annotation;
+import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
@@ -154,6 +155,11 @@
       return propValue;
    }
 
+   public Collection<String> getAdminViewUses()
+   {
+      return delegate.getAdminViewUses();
+   }
+
    public boolean hasAnnotation(String key)
    {
       return delegate.hasAnnotation(key);

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/profileservice/src/main/org/jboss/profileservice/management/TempManagedComponentImpl.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/profileservice/src/main/org/jboss/profileservice/management/TempManagedComponentImpl.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/profileservice/src/main/org/jboss/profileservice/management/TempManagedComponentImpl.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -21,6 +21,8 @@
  */ 
 package org.jboss.profileservice.management;
 
+import java.io.ObjectStreamException;
+
 import org.jboss.managed.api.ComponentType;
 import org.jboss.managed.api.ManagedCommon;
 import org.jboss.managed.api.ManagedDeployment;
@@ -54,5 +56,12 @@
    {
       return getDelegate();
    }
-   
+
+   private Object writeReplace() throws ObjectStreamException
+   {
+      // Only expose the ManagedComponentImpl
+      ManagedComponentImpl comp = new ManagedComponentImpl(getType(), getDeployment(), getDelegate(), getStateMapper()); 
+      comp.setRunState(getRunState());
+      return comp;
+   }
 }

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/bin/service.bat
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/server/src/bin/service.bat	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/server/src/bin/service.bat	2009-05-23 18:55:19 UTC (rev 89313)
@@ -18,8 +18,8 @@
 REM during the build with ant filter.
 REM
 set SVCNAME=JBAS50SVC
-set SVCDISP=JBoss Application Server 5.0
-set SVCDESC=JBoss Application Server 5.0.0 GA/Platform: Windows x86
+set SVCDISP=JBoss Application Server 5.1
+set SVCDESC=JBoss Application Server 5.1.0 GA/Platform: Windows x86
 set NOPAUSE=Y
 
 REM Suppress killing service on logoff event

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans (from rev 89308, branches/Branch_5_x/server/src/etc/conf/all/bindingservice.beans)

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF (from rev 89308, branches/Branch_5_x/server/src/etc/conf/all/bindingservice.beans/META-INF)

Deleted: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml
===================================================================
--- branches/Branch_5_x/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml	2009-05-23 17:58:00 UTC (rev 89308)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -1,483 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-   
-   <!-- The actual SBM from which services obtain binding information -->
-   <bean name="ServiceBindingManager" class="org.jboss.services.binding.ServiceBindingManager">
-
-      <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.system:service=ServiceBindingManager", exposedInterface=org.jboss.services.binding.ServiceBindingManagerMBean.class, registerDirectly=true)</annotation>
-      
-      <!-- Here we use the ServiceBindingManagementObject as a factory to create the SBM -->
-      <constructor factoryMethod="getServiceBindingManager">     
-         <factory bean="ServiceBindingManagementObject"/>
-      </constructor>
-
-   </bean>
-
-   <!-- Provides management tools with a ProfileService ManagementView 
-        interface to the SBM and its components -->
-   <bean name="ServiceBindingManagementObject" 
-         class="org.jboss.services.binding.managed.ServiceBindingManagementObject">
-         
-      <constructor>
-         <!-- The name of the set of bindings to use for this server -->
-         <parameter>${jboss.service.binding.set:ports-default}</parameter>
-          
-         <!--  The binding sets -->
-         <parameter>
-            <set>
-               <inject bean="PortsDefaultBindings"/>
-               <inject bean="Ports01Bindings"/>
-               <inject bean="Ports02Bindings"/>
-               <inject bean="Ports03Bindings"/>
-            </set>
-         </parameter>
-         
-         <!-- Base binding metadata that is used to create bindings for each set -->
-         <parameter><inject bean="StandardBindings"/></parameter>
-         
-      </constructor>
-   </bean>
-   
-   
-   <!-- The ports-default bindings are obtained by taking the base bindings and adding 0 to each port value  -->
-   <bean name="PortsDefaultBindings"  class="org.jboss.services.binding.impl.ServiceBindingSet">
-      <constructor>
-         <!--  The name of the set -->
-         <parameter>ports-default</parameter>
-         <!-- Default host name -->
-         <parameter>${jboss.bind.address}</parameter>
-         <!-- The port offset -->
-         <parameter>0</parameter>
-         <!-- Set of bindings to which the "offset by X" approach can't be applied -->
-         <parameter><null/></parameter>
-      </constructor>
-   </bean>
-
-   <!-- The ports-01 bindings are obtained by taking the base bindings and adding 100 to each port value -->
-   <bean name="Ports01Bindings" class="org.jboss.services.binding.impl.ServiceBindingSet">
-      <constructor>
-         <!--  The name of the set -->
-         <parameter>ports-01</parameter>
-         <!-- Default host name -->
-         <parameter>${jboss.bind.address}</parameter>
-         <!-- The port offset -->
-         <parameter>100</parameter>
-         <!-- Set of bindings to which the "offset by X" approach can't be applied -->
-         <parameter><null/></parameter>
-      </constructor>
-   </bean>
-
-   <!-- The ports-02 bindings are obtained by taking ports-default and adding 200 to each port value -->
-   <bean name="Ports02Bindings" class="org.jboss.services.binding.impl.ServiceBindingSet">
-      <constructor>
-         <!--  The name of the set -->
-         <parameter>ports-02</parameter>
-         <!-- Default host name -->
-         <parameter>${jboss.bind.address}</parameter>
-         <!-- The port offset -->
-         <parameter>200</parameter>
-         <!-- Set of bindings to which the "offset by X" approach can't be applied -->
-         <parameter><null/></parameter>
-      </constructor>
-   </bean>
-
-   <!-- The ports-03 bindings are obtained by taking ports-default and adding 300 to each port value -->
-   <bean name="Ports03Bindings" class="org.jboss.services.binding.impl.ServiceBindingSet">
-      <constructor>
-         <!--  The name of the set -->
-         <parameter>ports-03</parameter>
-         <!-- Default host name -->
-         <parameter>${jboss.bind.address}</parameter>
-         <!-- The port offset -->
-         <parameter>300</parameter>
-         <!-- Set of bindings to which the "offset by X" approach can't be applied -->
-         <parameter><null/></parameter>
-      </constructor>
-   </bean>
-
-   <!-- Base binding metadata that ServiceBindingStore uses to create bindings for each set -->
-   <bean name="StandardBindings" class="java.util.HashSet">
-      <constructor>
-         <parameter class="java.util.Collection">
-            <set elementClass="org.jboss.services.binding.ServiceBindingMetadata">
-            <!-- ********************* conf/jboss-service.xml ****************** -->
-
-            <!-- Naming Service -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=Naming</property>
-               <property name="bindingName">Port</property>
-               <property name="port">1099</property>
-               <property name="description">The listening socket for the Naming service</property>
-            </bean>
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=Naming</property>
-               <property name="bindingName">RmiPort</property>
-               <property name="port">1098</property>
-               <property name="description">Socket Naming service uses to receive RMI requests from client proxies</property>
-            </bean>
-
-            <!-- Remote classloading service -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=WebService</property>
-               <property name="port">8083</property>
-               <property name="description">Socket for dynamic class and resource loading</property>
-            </bean>
-
-            <!-- Remoting Connector -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">UnifiedInvokerConnector</property>
-               <property name="port">4446</property>
-               <property name="description">Socket for JBoss Remoting Connector used by UnifiedInvoker</property>
-            </bean>
-            
-            <!-- Used to create a multihome Remoting server.   See -->
-            <!-- deploy/remoting-jboss-beans.xml for more details. -->
-            <!--bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">UnifiedInvokerConnector:bindingHome1</property>
-               <parameter>192.168.2.2</property>
-               <property name="port">7777</property>
-               <property name="description">Socket for JBoss Remoting Connector used by UnifiedInvoker on a multihome server</property>
-            </bean-->
-            
-            <!-- Used to create a multihome Remoting server.   See -->
-            <!-- deploy/remoting-jboss-beans.xml for more details. -->
-            <!--bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">UnifiedInvokerConnector:bindingHome2</property>
-               <parameter>10.11.12.238</property>
-               <property name="port">8888</property>
-               <property name="description">Socket for JBoss Remoting Connector used by UnifiedInvoker on a multihome server</property>
-            </bean-->
-
-            <!-- ********************* deploy/legacy-invokers-service.xml ****************** -->
-
-            <!-- RMI/JRMP invoker -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=invoker,type=jrmp</property>
-               <property name="port">4444</property>
-               <property name="description">Socket for the legacy RMI/JRMP invoker</property>
-            </bean>
-
-            <!-- Pooled invoker -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=invoker,type=pooled</property>
-               <property name="port">4445</property>
-               <property name="description">Socket for the legacy Pooled invoker</property>
-            </bean>
-
-            <!-- ********************* deploy/cluster/hajndi-service.xml ****************** -->
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=HAJNDI</property>
-               <property name="bindingName">Port</property>
-               <property name="port">1100</property>
-               <property name="description">The listening socket for the HA-JNDI service</property>
-            </bean>
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=HAJNDI</property>
-               <property name="bindingName">RmiPort</property>
-               <property name="port">1101</property>
-               <property name="description">Socket HA-JNDI service uses to receive RMI requests from client proxies</property>
-            </bean>
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=HAJNDI</property>
-               <property name="bindingName">AutoDiscovery</property>
-               <property name="hostName">${jboss.partition.udpGroup:230.0.0.4}</property>
-               <property name="port">1102</property>
-               <property name="description">Multicast socket on which HA-JNDI listens for auto-discovery requests from clients</property>
-               <!-- This address should not be changed between different 
-                    binding sets; all nodes need to listen on the same 
-                    multicast address -->
-               <property name="fixedHostName">true</property>
-               <!-- This port should not be changed between different 
-                    binding sets; all nodes need to listen on the same port -->
-               <property name="fixedPort">true</property>
-            </bean>
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=HAJNDI</property>
-               <property name="bindingName">AutoDiscoveryInterface</property>
-               <property name="hostName">${jboss.bind.address}</property>
-               <property name="description">Interface for multicast socket on which HA-JNDI listens for auto-discovery requests from clients</property>
-            </bean>
-
-            <!-- ********************* deploy/cluster/ha-legacy-service.xml ****************** -->
-
-            <!-- HA RMI/JRMP invoker -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=invoker,type=jrmpha</property>
-               <property name="port">4447</property>
-               <property name="description">Socket for high availability version of the legacy RMI/JRMP invoker</property>
-            </bean>
-
-            <!-- HA Pooled invoker -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=invoker,type=pooledha</property>
-               <property name="port">4448</property>
-               <property name="description">Socket for high availability version of the legacy Pooled invoker</property>
-            </bean>
-
-            <!-- ********************* deploy/iiop-service.xml ****************** -->
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=CorbaORB</property>
-               <property name="port">3528</property>
-               <property name="description">IIOP socket for the Corba ORB</property>
-            </bean>
-
-            <!-- ********************* deploy/snmp-adaptor.sar **************** -->
-
-            <!-- Trap receiver that acts as an SNMP Manager -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss.jmx:name=SnmpAgent,service=trapd,type=logger</property>
-               <property name="port">1162</property>
-               <property name="description">Socket for the SNMP trap receiver</property>
-            </bean>
-
-            <!-- The SNMP adaptor MBean -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor</property>
-               <property name="port">1161</property>
-               <property name="description">Socket for the SNMP adaptor MBean</property>
-            </bean>
-
-            <!-- ********************* deploy/jmx-remoting.sar **************** -->
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss.remoting:service=JMXConnectorServer,protocol=rmi</property>
-               <property name="port">1090</property>
-               <property name="description">RMI/JRMP socket for connecting to the JMX MBeanServer</property>
-            </bean>
-
-            <!-- ********************* deploy/ejb3-connectors-service.xml **************** -->
-
-            <!-- EJB3 wants to have the service create its own ServiceBinding object
-                 dynamically.  See the value-factory usage in deploy/ejb3-connectors-service.xml -->
-
-
-            <!-- ********************* deploy/jbossweb.sar **************** -->
-            <!-- ********************* deploy/httpha-invoker.sar **************** -->
-
-            <!--
-                JBoss Web server.xml configuration.
-
-                Same binding config can be used by the following services, or really
-                anything else that needs to point to the JBoss Web HTTP connector
-                but doesn't need an XSL Transform
-
-                jboss:service=invoker,type=http
-                jboss:service=invoker,type=http,target=Naming
-                jboss:service=invoker,type=http,target=Naming,readonly=true
-                jboss:service=invoker,type=httpHA
-                jboss:service=invoker,type=http,target=HAJNDI
-                jboss.ws:service=ServiceEndpointManager
-            -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss.web:service=WebServer</property>
-               <property name="port">8080</property>
-               <property name="description">JBoss Web HTTP connector socket; also drives the values for the HTTPS and AJP sockets</property>
-
-               <!--
-                   Inject a XSLT transform configuration (see below) that describes
-                   how to transform server.xml
-                   If the binding value request doesn't require an XSL Transform, this config
-                   will be ignored.
-               -->
-               <property name="serviceBindingValueSourceConfig"><inject bean="JBossWebConnectorXSLTConfig"/></property>
-            </bean>
-
-            <!-- For services like those listed above that need to know the
-                 port of the HTTPS connector -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss.web:service=WebServer</property>
-               <property name="bindingName">HttpsConnector</property>
-               <property name="port">8443</property>
-               <property name="description">JBoss Web HTTPS connector socket</property>
-            </bean>
-
-            <!-- ********************* deploy/messaging/remoting-bisocket-service.xml ********************** -->
-
-            <!-- Standard JBM bisocket connector -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss.messaging:service=Connector,transport=bisocket</property>
-               <property name="port">4457</property>
-               <property name="description">Socket for JBoss Messaging 1.x</property>
-            </bean>
-
-            <!-- ********************* JBoss Messaging 2 **************** -->
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-                <property name="serviceName">JBM2</property>
-                <property name="bindingName">netty-port</property>
-                <property name="port">5445</property>
-                <property name="description">Socket for JBoss Messaging 2.x</property>
-            </bean>
-
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-                <property name="serviceName">JBM2</property>
-                <property name="bindingName">netty-ssl-port</property>
-                <property name="port">5446</property>
-                <property name="description">SSL socket for JBoss Messaging 2.x</property>
-            </bean>
-
-            <!-- ********************* deploy/transaction-jboss-beans.xml ********************** -->
-
-            <!-- JBossTS Recovery Manager -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-                <property name="serviceName">TransactionManager</property>
-                <property name="bindingName">recoveryManager</property>
-                <property name="port">4712</property>
-                <property name="description">Socket for JBossTS Recovery Manager</property>
-            </bean>
-
-            <!-- JBossTS Transaction Status Manager -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-                <property name="serviceName">TransactionManager</property>
-                <property name="bindingName">transactionStatusManager</property>
-                <property name="port">4713</property>
-                <property name="description">Socket for JBossTS Transaction Status Manager</property>
-            </bean>
-
-            <!-- JBossTS SocketProcessId.  The address part is ignored,
-                it will always use localhost/127.0.0.1. -->
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-                <property name="serviceName">TransactionManager</property>
-                <property name="bindingName">socketProcessId</property>
-                <property name="port">4714</property>
-                <property name="description">Socket used to provide unique process id for JBossTS. The address configuration is ignored; will always use localhost/127.0.0.1</property>
-            </bean>
-
-            <!-- ********************* deploy/hsqldb-ds.xml **************** -->
-
-            <!-- Commented out as tcp/ip access to Hypersonic is not enabled by default -->
-            <!--
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss:service=Hypersonic</property>
-               <property name="port">1701</property>
-               <property name="description">TCP/IP socket for remote connection to Hypersonic database</property>
-            </bean>
-            -->
-
-            <!-- ********************* JBoss MQ **************** -->
-
-            <!-- Commented out as JBoss MQ is not installed by default
-                 If you uncomment this and also use jboss.mq:service=InvocationLayer,type=HTTP,
-                 configure the http invocation layer using the jboss.web:service=WebServer binding above
-             -->
-            <!--
-            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
-               <property name="serviceName">jboss.mq:service=InvocationLayer,type=UIL2</property>
-               <property name="port">8093</property>
-               <property name="description">UIL2 socket for JBossMQ</property>
-            </bean>
-            -->
-         </set>
-         </parameter>
-      </constructor>
-   </bean>
-
-   <!-- Conversion of selected bindings into system properties -->
-   <bean name="SystemPropertyBinder" class="org.jboss.services.binding.SystemPropertyBinder">
-
-      <constructor>
-         <parameter>
-            <set>
-               <!-- JBM's remoting connector -->
-               <bean class="org.jboss.services.binding.SystemPropertyBinding">
-                  <constructor>
-                     <parameter>jboss.messaging.connector.bisocket.port</parameter>
-                     <parameter class="int">
-                        <value-factory bean="ServiceBindingManager" method="getIntBinding"
-                                       parameter="jboss.messaging:service=Connector,transport=bisocket"/>
-                     </parameter>
-                  </constructor>
-               </bean>
-               <!-- JBM2 netty connector -->
-               <bean class="org.jboss.services.binding.SystemPropertyBinding">
-                  <constructor>
-                     <parameter>jbm.remoting.netty.port</parameter>
-                     <parameter class="int">
-                        <value-factory bean="ServiceBindingManager" method="getIntBinding">
-                             <parameter>JBM2</parameter>
-                             <parameter>netty-port</parameter>
-                        </value-factory>
-                     </parameter>
-                  </constructor>
-               </bean>
-               <!-- JBM2 netty ssl connector  -->
-               <bean class="org.jboss.services.binding.SystemPropertyBinding">
-                  <constructor>
-                     <parameter>jbm.remoting.netty.ssl.port</parameter>
-                     <parameter class="int">
-                        <value-factory bean="ServiceBindingManager" method="getIntBinding">
-                             <parameter>JBM2</parameter>
-                             <parameter>netty-ssl-port</parameter>
-                        </value-factory>
-                     </parameter>
-                  </constructor>
-               </bean>
-            </set>
-         </parameter>
-      </constructor>
-
-   </bean>
-
-   <!-- XSL Transform to apply to server.xml -->
-   <bean name="JBossWebConnectorXSLTConfig"
-         class="org.jboss.services.binding.impl.XSLTServiceBindingValueSourceConfig">
-
-      <constructor>
-          <parameter><![CDATA[
-   <xsl:stylesheet
-         xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
-
-     <xsl:output method="xml" />
-     <xsl:param name="port"/>
-
-     <xsl:variable name="portAJP" select="$port - 71"/>
-     <xsl:variable name="portHttps" select="$port + 363"/>
-
-     <xsl:template match="/">
-       <xsl:apply-templates/>
-     </xsl:template>
-
-      <xsl:template match = "Connector">
-         <Connector>
-            <xsl:for-each select="@*">
-            <xsl:choose>
-               <xsl:when test="(name() = 'port' and . = '8080')">
-                  <xsl:attribute name="port"><xsl:value-of select="$port" /></xsl:attribute>
-               </xsl:when>
-               <xsl:when test="(name() = 'port' and . = '8009')">
-                  <xsl:attribute name="port"><xsl:value-of select="$portAJP" /></xsl:attribute>
-               </xsl:when>
-               <xsl:when test="(name() = 'redirectPort')">
-                  <xsl:attribute name="redirectPort"><xsl:value-of select="$portHttps" /></xsl:attribute>
-               </xsl:when>
-               <xsl:when test="(name() = 'port' and . = '8443')">
-                  <xsl:attribute name="port"><xsl:value-of select="$portHttps" /></xsl:attribute>
-               </xsl:when>
-               <xsl:otherwise>
-                  <xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute>
-               </xsl:otherwise>
-            </xsl:choose>
-            </xsl:for-each>
-            <xsl:apply-templates/>
-         </Connector>
-      </xsl:template>
-
-     <xsl:template match="*|@*">
-       <xsl:copy>
-         <xsl:apply-templates select="@*|node()"/>
-       </xsl:copy>
-     </xsl:template>
-   </xsl:stylesheet>
-   ]]>
-          </parameter>
-      </constructor>
-   </bean>
-
-</deployment>

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml (from rev 89308, branches/Branch_5_x/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml)
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml	                        (rev 0)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bindingservice.beans/META-INF/bindings-jboss-beans.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -0,0 +1,483 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+   
+   <!-- The actual SBM from which services obtain binding information -->
+   <bean name="ServiceBindingManager" class="org.jboss.services.binding.ServiceBindingManager">
+
+      <annotation>@org.jboss.aop.microcontainer.aspects.jmx.JMX(name="jboss.system:service=ServiceBindingManager", exposedInterface=org.jboss.services.binding.ServiceBindingManagerMBean.class, registerDirectly=true)</annotation>
+      
+      <!-- Here we use the ServiceBindingManagementObject as a factory to create the SBM -->
+      <constructor factoryMethod="getServiceBindingManager">     
+         <factory bean="ServiceBindingManagementObject"/>
+      </constructor>
+
+   </bean>
+
+   <!-- Provides management tools with a ProfileService ManagementView 
+        interface to the SBM and its components -->
+   <bean name="ServiceBindingManagementObject" 
+         class="org.jboss.services.binding.managed.ServiceBindingManagementObject">
+         
+      <constructor>
+         <!-- The name of the set of bindings to use for this server -->
+         <parameter>${jboss.service.binding.set:ports-default}</parameter>
+          
+         <!--  The binding sets -->
+         <parameter>
+            <set>
+               <inject bean="PortsDefaultBindings"/>
+               <inject bean="Ports01Bindings"/>
+               <inject bean="Ports02Bindings"/>
+               <inject bean="Ports03Bindings"/>
+            </set>
+         </parameter>
+         
+         <!-- Base binding metadata that is used to create bindings for each set -->
+         <parameter><inject bean="StandardBindings"/></parameter>
+         
+      </constructor>
+   </bean>
+   
+   
+   <!-- The ports-default bindings are obtained by taking the base bindings and adding 0 to each port value  -->
+   <bean name="PortsDefaultBindings"  class="org.jboss.services.binding.impl.ServiceBindingSet">
+      <constructor>
+         <!--  The name of the set -->
+         <parameter>ports-default</parameter>
+         <!-- Default host name -->
+         <parameter>${jboss.bind.address}</parameter>
+         <!-- The port offset -->
+         <parameter>0</parameter>
+         <!-- Set of bindings to which the "offset by X" approach can't be applied -->
+         <parameter><null/></parameter>
+      </constructor>
+   </bean>
+
+   <!-- The ports-01 bindings are obtained by taking the base bindings and adding 100 to each port value -->
+   <bean name="Ports01Bindings" class="org.jboss.services.binding.impl.ServiceBindingSet">
+      <constructor>
+         <!--  The name of the set -->
+         <parameter>ports-01</parameter>
+         <!-- Default host name -->
+         <parameter>${jboss.bind.address}</parameter>
+         <!-- The port offset -->
+         <parameter>100</parameter>
+         <!-- Set of bindings to which the "offset by X" approach can't be applied -->
+         <parameter><null/></parameter>
+      </constructor>
+   </bean>
+
+   <!-- The ports-02 bindings are obtained by taking ports-default and adding 200 to each port value -->
+   <bean name="Ports02Bindings" class="org.jboss.services.binding.impl.ServiceBindingSet">
+      <constructor>
+         <!--  The name of the set -->
+         <parameter>ports-02</parameter>
+         <!-- Default host name -->
+         <parameter>${jboss.bind.address}</parameter>
+         <!-- The port offset -->
+         <parameter>200</parameter>
+         <!-- Set of bindings to which the "offset by X" approach can't be applied -->
+         <parameter><null/></parameter>
+      </constructor>
+   </bean>
+
+   <!-- The ports-03 bindings are obtained by taking ports-default and adding 300 to each port value -->
+   <bean name="Ports03Bindings" class="org.jboss.services.binding.impl.ServiceBindingSet">
+      <constructor>
+         <!--  The name of the set -->
+         <parameter>ports-03</parameter>
+         <!-- Default host name -->
+         <parameter>${jboss.bind.address}</parameter>
+         <!-- The port offset -->
+         <parameter>300</parameter>
+         <!-- Set of bindings to which the "offset by X" approach can't be applied -->
+         <parameter><null/></parameter>
+      </constructor>
+   </bean>
+
+   <!-- Base binding metadata that ServiceBindingStore uses to create bindings for each set -->
+   <bean name="StandardBindings" class="java.util.HashSet">
+      <constructor>
+         <parameter class="java.util.Collection">
+            <set elementClass="org.jboss.services.binding.ServiceBindingMetadata">
+            <!-- ********************* conf/jboss-service.xml ****************** -->
+
+            <!-- Naming Service -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=Naming</property>
+               <property name="bindingName">Port</property>
+               <property name="port">1099</property>
+               <property name="description">The listening socket for the Naming service</property>
+            </bean>
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=Naming</property>
+               <property name="bindingName">RmiPort</property>
+               <property name="port">1098</property>
+               <property name="description">Socket Naming service uses to receive RMI requests from client proxies</property>
+            </bean>
+
+            <!-- Remote classloading service -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=WebService</property>
+               <property name="port">8083</property>
+               <property name="description">Socket for dynamic class and resource loading</property>
+            </bean>
+
+            <!-- Remoting Connector -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">UnifiedInvokerConnector</property>
+               <property name="port">4446</property>
+               <property name="description">Socket for JBoss Remoting Connector used by UnifiedInvoker</property>
+            </bean>
+            
+            <!-- Used to create a multihome Remoting server.   See -->
+            <!-- deploy/remoting-jboss-beans.xml for more details. -->
+            <!--bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">UnifiedInvokerConnector:bindingHome1</property>
+               <parameter>192.168.2.2</property>
+               <property name="port">7777</property>
+               <property name="description">Socket for JBoss Remoting Connector used by UnifiedInvoker on a multihome server</property>
+            </bean-->
+            
+            <!-- Used to create a multihome Remoting server.   See -->
+            <!-- deploy/remoting-jboss-beans.xml for more details. -->
+            <!--bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">UnifiedInvokerConnector:bindingHome2</property>
+               <parameter>10.11.12.238</property>
+               <property name="port">8888</property>
+               <property name="description">Socket for JBoss Remoting Connector used by UnifiedInvoker on a multihome server</property>
+            </bean-->
+
+            <!-- ********************* deploy/legacy-invokers-service.xml ****************** -->
+
+            <!-- RMI/JRMP invoker -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=invoker,type=jrmp</property>
+               <property name="port">4444</property>
+               <property name="description">Socket for the legacy RMI/JRMP invoker</property>
+            </bean>
+
+            <!-- Pooled invoker -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=invoker,type=pooled</property>
+               <property name="port">4445</property>
+               <property name="description">Socket for the legacy Pooled invoker</property>
+            </bean>
+
+            <!-- ********************* deploy/cluster/hajndi-service.xml ****************** -->
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=HAJNDI</property>
+               <property name="bindingName">Port</property>
+               <property name="port">1100</property>
+               <property name="description">The listening socket for the HA-JNDI service</property>
+            </bean>
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=HAJNDI</property>
+               <property name="bindingName">RmiPort</property>
+               <property name="port">1101</property>
+               <property name="description">Socket HA-JNDI service uses to receive RMI requests from client proxies</property>
+            </bean>
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=HAJNDI</property>
+               <property name="bindingName">AutoDiscovery</property>
+               <property name="hostName">${jboss.partition.udpGroup:230.0.0.4}</property>
+               <property name="port">1102</property>
+               <property name="description">Multicast socket on which HA-JNDI listens for auto-discovery requests from clients</property>
+               <!-- This address should not be changed between different 
+                    binding sets; all nodes need to listen on the same 
+                    multicast address -->
+               <property name="fixedHostName">true</property>
+               <!-- This port should not be changed between different 
+                    binding sets; all nodes need to listen on the same port -->
+               <property name="fixedPort">true</property>
+            </bean>
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=HAJNDI</property>
+               <property name="bindingName">AutoDiscoveryInterface</property>
+               <property name="hostName">${jboss.bind.address}</property>
+               <property name="description">Interface for multicast socket on which HA-JNDI listens for auto-discovery requests from clients</property>
+            </bean>
+
+            <!-- ********************* deploy/cluster/ha-legacy-service.xml ****************** -->
+
+            <!-- HA RMI/JRMP invoker -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=invoker,type=jrmpha</property>
+               <property name="port">4447</property>
+               <property name="description">Socket for high availability version of the legacy RMI/JRMP invoker</property>
+            </bean>
+
+            <!-- HA Pooled invoker -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=invoker,type=pooledha</property>
+               <property name="port">4448</property>
+               <property name="description">Socket for high availability version of the legacy Pooled invoker</property>
+            </bean>
+
+            <!-- ********************* deploy/iiop-service.xml ****************** -->
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=CorbaORB</property>
+               <property name="port">3528</property>
+               <property name="description">IIOP socket for the Corba ORB</property>
+            </bean>
+
+            <!-- ********************* deploy/snmp-adaptor.sar **************** -->
+
+            <!-- Trap receiver that acts as an SNMP Manager -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss.jmx:name=SnmpAgent,service=trapd,type=logger</property>
+               <property name="port">1162</property>
+               <property name="description">Socket for the SNMP trap receiver</property>
+            </bean>
+
+            <!-- The SNMP adaptor MBean -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss.jmx:name=SnmpAgent,service=snmp,type=adaptor</property>
+               <property name="port">1161</property>
+               <property name="description">Socket for the SNMP adaptor MBean</property>
+            </bean>
+
+            <!-- ********************* deploy/jmx-remoting.sar **************** -->
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss.remoting:service=JMXConnectorServer,protocol=rmi</property>
+               <property name="port">1090</property>
+               <property name="description">RMI/JRMP socket for connecting to the JMX MBeanServer</property>
+            </bean>
+
+            <!-- ********************* deploy/ejb3-connectors-service.xml **************** -->
+
+            <!-- EJB3 wants to have the service create its own ServiceBinding object
+                 dynamically.  See the value-factory usage in deploy/ejb3-connectors-service.xml -->
+
+
+            <!-- ********************* deploy/jbossweb.sar **************** -->
+            <!-- ********************* deploy/httpha-invoker.sar **************** -->
+
+            <!--
+                JBoss Web server.xml configuration.
+
+                Same binding config can be used by the following services, or really
+                anything else that needs to point to the JBoss Web HTTP connector
+                but doesn't need an XSL Transform
+
+                jboss:service=invoker,type=http
+                jboss:service=invoker,type=http,target=Naming
+                jboss:service=invoker,type=http,target=Naming,readonly=true
+                jboss:service=invoker,type=httpHA
+                jboss:service=invoker,type=http,target=HAJNDI
+                jboss.ws:service=ServiceEndpointManager
+            -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss.web:service=WebServer</property>
+               <property name="port">8080</property>
+               <property name="description">JBoss Web HTTP connector socket; also drives the values for the HTTPS and AJP sockets</property>
+
+               <!--
+                   Inject a XSLT transform configuration (see below) that describes
+                   how to transform server.xml
+                   If the binding value request doesn't require an XSL Transform, this config
+                   will be ignored.
+               -->
+               <property name="serviceBindingValueSourceConfig"><inject bean="JBossWebConnectorXSLTConfig"/></property>
+            </bean>
+
+            <!-- For services like those listed above that need to know the
+                 port of the HTTPS connector -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss.web:service=WebServer</property>
+               <property name="bindingName">HttpsConnector</property>
+               <property name="port">8443</property>
+               <property name="description">JBoss Web HTTPS connector socket</property>
+            </bean>
+
+            <!-- ********************* deploy/messaging/remoting-bisocket-service.xml ********************** -->
+
+            <!-- Standard JBM bisocket connector -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss.messaging:service=Connector,transport=bisocket</property>
+               <property name="port">4457</property>
+               <property name="description">Socket for JBoss Messaging 1.x</property>
+            </bean>
+
+            <!-- ********************* JBoss Messaging 2 **************** -->
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+                <property name="serviceName">JBM2</property>
+                <property name="bindingName">netty-port</property>
+                <property name="port">5445</property>
+                <property name="description">Socket for JBoss Messaging 2.x</property>
+            </bean>
+
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+                <property name="serviceName">JBM2</property>
+                <property name="bindingName">netty-ssl-port</property>
+                <property name="port">5446</property>
+                <property name="description">SSL socket for JBoss Messaging 2.x</property>
+            </bean>
+
+            <!-- ********************* deploy/transaction-jboss-beans.xml ********************** -->
+
+            <!-- JBossTS Recovery Manager -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+                <property name="serviceName">TransactionManager</property>
+                <property name="bindingName">recoveryManager</property>
+                <property name="port">4712</property>
+                <property name="description">Socket for JBossTS Recovery Manager</property>
+            </bean>
+
+            <!-- JBossTS Transaction Status Manager -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+                <property name="serviceName">TransactionManager</property>
+                <property name="bindingName">transactionStatusManager</property>
+                <property name="port">4713</property>
+                <property name="description">Socket for JBossTS Transaction Status Manager</property>
+            </bean>
+
+            <!-- JBossTS SocketProcessId.  The address part is ignored,
+                it will always use localhost/127.0.0.1. -->
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+                <property name="serviceName">TransactionManager</property>
+                <property name="bindingName">socketProcessId</property>
+                <property name="port">4714</property>
+                <property name="description">Socket used to provide unique process id for JBossTS. The address configuration is ignored; will always use localhost/127.0.0.1</property>
+            </bean>
+
+            <!-- ********************* deploy/hsqldb-ds.xml **************** -->
+
+            <!-- Commented out as tcp/ip access to Hypersonic is not enabled by default -->
+            <!--
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss:service=Hypersonic</property>
+               <property name="port">1701</property>
+               <property name="description">TCP/IP socket for remote connection to Hypersonic database</property>
+            </bean>
+            -->
+
+            <!-- ********************* JBoss MQ **************** -->
+
+            <!-- Commented out as JBoss MQ is not installed by default
+                 If you uncomment this and also use jboss.mq:service=InvocationLayer,type=HTTP,
+                 configure the http invocation layer using the jboss.web:service=WebServer binding above
+             -->
+            <!--
+            <bean class="org.jboss.services.binding.ServiceBindingMetadata">
+               <property name="serviceName">jboss.mq:service=InvocationLayer,type=UIL2</property>
+               <property name="port">8093</property>
+               <property name="description">UIL2 socket for JBossMQ</property>
+            </bean>
+            -->
+         </set>
+         </parameter>
+      </constructor>
+   </bean>
+
+   <!-- Conversion of selected bindings into system properties -->
+   <bean name="SystemPropertyBinder" class="org.jboss.services.binding.SystemPropertyBinder">
+
+      <constructor>
+         <parameter>
+            <set>
+               <!-- JBM's remoting connector -->
+               <bean class="org.jboss.services.binding.SystemPropertyBinding">
+                  <constructor>
+                     <parameter>jboss.messaging.connector.bisocket.port</parameter>
+                     <parameter class="int">
+                        <value-factory bean="ServiceBindingManager" method="getIntBinding"
+                                       parameter="jboss.messaging:service=Connector,transport=bisocket"/>
+                     </parameter>
+                  </constructor>
+               </bean>
+               <!-- JBM2 netty connector -->
+               <bean class="org.jboss.services.binding.SystemPropertyBinding">
+                  <constructor>
+                     <parameter>jbm.remoting.netty.port</parameter>
+                     <parameter class="int">
+                        <value-factory bean="ServiceBindingManager" method="getIntBinding">
+                             <parameter>JBM2</parameter>
+                             <parameter>netty-port</parameter>
+                        </value-factory>
+                     </parameter>
+                  </constructor>
+               </bean>
+               <!-- JBM2 netty ssl connector  -->
+               <bean class="org.jboss.services.binding.SystemPropertyBinding">
+                  <constructor>
+                     <parameter>jbm.remoting.netty.ssl.port</parameter>
+                     <parameter class="int">
+                        <value-factory bean="ServiceBindingManager" method="getIntBinding">
+                             <parameter>JBM2</parameter>
+                             <parameter>netty-ssl-port</parameter>
+                        </value-factory>
+                     </parameter>
+                  </constructor>
+               </bean>
+            </set>
+         </parameter>
+      </constructor>
+
+   </bean>
+
+   <!-- XSL Transform to apply to server.xml -->
+   <bean name="JBossWebConnectorXSLTConfig"
+         class="org.jboss.services.binding.impl.XSLTServiceBindingValueSourceConfig">
+
+      <constructor>
+          <parameter><![CDATA[
+   <xsl:stylesheet
+         xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
+
+     <xsl:output method="xml" />
+     <xsl:param name="port"/>
+
+     <xsl:variable name="portAJP" select="$port - 71"/>
+     <xsl:variable name="portHttps" select="$port + 363"/>
+
+     <xsl:template match="/">
+       <xsl:apply-templates/>
+     </xsl:template>
+
+      <xsl:template match = "Connector">
+         <Connector>
+            <xsl:for-each select="@*">
+            <xsl:choose>
+               <xsl:when test="(name() = 'port' and . = '8080')">
+                  <xsl:attribute name="port"><xsl:value-of select="$port" /></xsl:attribute>
+               </xsl:when>
+               <xsl:when test="(name() = 'port' and . = '8009')">
+                  <xsl:attribute name="port"><xsl:value-of select="$portAJP" /></xsl:attribute>
+               </xsl:when>
+               <xsl:when test="(name() = 'redirectPort')">
+                  <xsl:attribute name="redirectPort"><xsl:value-of select="$portHttps" /></xsl:attribute>
+               </xsl:when>
+               <xsl:when test="(name() = 'port' and . = '8443')">
+                  <xsl:attribute name="port"><xsl:value-of select="$portHttps" /></xsl:attribute>
+               </xsl:when>
+               <xsl:otherwise>
+                  <xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute>
+               </xsl:otherwise>
+            </xsl:choose>
+            </xsl:for-each>
+            <xsl:apply-templates/>
+         </Connector>
+      </xsl:template>
+
+     <xsl:template match="*|@*">
+       <xsl:copy>
+         <xsl:apply-templates select="@*|node()"/>
+       </xsl:copy>
+     </xsl:template>
+   </xsl:stylesheet>
+   ]]>
+          </parameter>
+      </constructor>
+   </bean>
+
+</deployment>

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bootstrap/profile.xml
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bootstrap/profile.xml	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/all/bootstrap/profile.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -19,7 +19,7 @@
          The uri to the deployers folder.
          A list of uris to deploy folders. -->
    <bean name="BootstrapProfileFactory" class="org.jboss.system.server.profileservice.StaticClusteredProfileFactory">
-      <property name="bindingsURI">${jboss.server.home.url}conf/bindingservice.sar</property>
+      <property name="bindingsURI">${jboss.server.home.url}conf/bindingservice.beans</property>
       <property name="bootstrapURI">${jboss.server.home.url}conf/jboss-service.xml</property>
       <property name="deployersURI">${jboss.server.home.url}deployers</property>
       <property name="applicationURIs">

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/default/bootstrap/profile.xml
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/default/bootstrap/profile.xml	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/default/bootstrap/profile.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -19,7 +19,7 @@
 			The uri to the deployers folder.
 			A list of uris to deploy folders. -->
 	<bean name="BootstrapProfileFactory" class="org.jboss.system.server.profileservice.repository.StaticProfileFactory">
-      <property name="bindingsURI">${jboss.server.home.url}conf/bindingservice.sar</property>
+      <property name="bindingsURI">${jboss.server.home.url}conf/bindingservice.beans</property>
       <property name="bootstrapURI">${jboss.server.home.url}conf/jboss-service.xml</property>
 		<property name="deployersURI">${jboss.server.home.url}deployers</property>
 		<property name="applicationURIs">

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans (from rev 89308, branches/Branch_5_x/server/src/etc/conf/minimal/bindingservice.beans)

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF (from rev 89308, branches/Branch_5_x/server/src/etc/conf/minimal/bindingservice.beans/META-INF)

Deleted: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml
===================================================================
--- branches/Branch_5_x/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml	2009-05-23 17:58:00 UTC (rev 89308)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
-   <!--  In the minimal config, bindings-jboss-beans.xml is just a placeholder
-         we use to avoid having to exclude it from conf/profile.xml -->
-
-</deployment>

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml (from rev 89308, branches/Branch_5_x/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml)
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml	                        (rev 0)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/server/src/etc/conf/minimal/bindingservice.beans/META-INF/bindings-jboss-beans.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!--  In the minimal config, bindings-jboss-beans.xml is just a placeholder
+         we use to avoid having to exclude it from conf/profile.xml -->
+
+</deployment>

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/persistence/deployer/PersistenceModificationChecker.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/persistence/deployer/PersistenceModificationChecker.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/persistence/deployer/PersistenceModificationChecker.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -21,11 +21,16 @@
  */ 
 package org.jboss.system.server.profileservice.persistence.deployer;
 
+import java.io.IOException;
 import java.util.List;
 
+import org.jboss.deployers.spi.structure.ContextInfo;
+import org.jboss.deployers.spi.structure.StructureMetaData;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
 import org.jboss.logging.Logger;
+import org.jboss.system.server.profile.basic.XmlIncludeVirtualFileFilter;
 import org.jboss.virtual.VirtualFile;
+import org.jboss.virtual.VirtualFileFilter;
 
 /**
  * @author <a href="mailto:emuckenh at redhat.com">Emanuel Muckenhuber</a>
@@ -33,25 +38,61 @@
  */
 public class PersistenceModificationChecker
 {
+   
    /** The logger. */
    private static final Logger log = Logger.getLogger(PersistenceModificationChecker.class);
    
-   private static final String suffix = ".xml";
+   /** The filter. */
+   private static VirtualFileFilter filter = new XmlIncludeVirtualFileFilter();
    
-   public static boolean hasBeenModified(VFSDeploymentUnit unit, long lastModified)
+   public static boolean hasBeenModified(VFSDeploymentUnit unit, long lastModified) throws Exception
    {
-      List<VirtualFile> files = unit.getMetaDataFiles(null, suffix);
-      for(VirtualFile vf : files)
+      VirtualFile root = unit.getRoot();
+      if (root.isArchive() || root.isLeaf())
       {
-         try
+         if(root.getLastModified() > lastModified)
+            return true;
+      }
+
+      StructureMetaData structureMetaData = unit.getAttachment(StructureMetaData.class);
+      if(structureMetaData == null)
+         return false;
+      
+      ContextInfo info = structureMetaData.getContext(unit.getSimpleName());
+      if(info == null && unit.isTopLevel())
+         info = structureMetaData.getContext("");
+      
+      if(info == null)
+         return false;
+      
+      return hasBeenModifed(root, info, lastModified);
+   }
+
+   protected static boolean hasBeenModifed(VirtualFile root, ContextInfo contextInfo, long lastModified) throws IOException
+   {
+      List<String> metadataPaths = contextInfo.getMetaDataPath();
+      if (metadataPaths != null && metadataPaths.isEmpty() == false)
+      {
+         for (String metaDataPath : metadataPaths)
          {
-            if(vf.getLastModified() > lastModified)
-               return true;            
+            VirtualFile mdpVF = root.getChild(metaDataPath);
+            if (mdpVF != null)
+            {
+               List<VirtualFile> children = mdpVF.getChildren(filter);
+               if (children != null && children.isEmpty() == false)
+               {
+                  for (VirtualFile child : children)
+                  {
+                     if (child.getLastModified() > lastModified)
+                     {
+                        if (log.isTraceEnabled())
+                           log.trace("Metadata location modified: " + child);
+                        return true;
+                     }
+                  }
+               }
+            }
          }
-         catch(Exception e)
-         {
-            log.debug("failed to check modified ", e);
-         }
       }
       return false;
    }

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/persistence/deployer/ProfileServicePersistenceDeployer.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/persistence/deployer/ProfileServicePersistenceDeployer.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/persistence/deployer/ProfileServicePersistenceDeployer.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -27,7 +27,6 @@
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.spi.MetaData;
 import org.jboss.system.server.profileservice.attachments.AttachmentMetaData;
 import org.jboss.system.server.profileservice.attachments.AttachmentStore;
 import org.jboss.system.server.profileservice.attachments.RepositoryAttachmentMetaData;
@@ -91,7 +90,7 @@
          return;
       try
       {
-         internalDeployment((VFSDeploymentUnit) unit);
+         applyPersistentChanges((VFSDeploymentUnit) unit);
       }
       catch(Throwable e)
       {
@@ -99,7 +98,7 @@
       }
    }
    
-   protected void internalDeployment(VFSDeploymentUnit unit) throws Throwable
+   protected void applyPersistentChanges(VFSDeploymentUnit unit) throws Throwable
    {
       VirtualFile vf = unit.getRoot();
       RepositoryAttachmentMetaData metaData = store.loadMetaData(vf);
@@ -109,7 +108,7 @@
       // Check if the deployment was modified
       if(PersistenceModificationChecker.hasBeenModified(unit, metaData.getLastModified()))
       {
-         log.debug("Deployment was modified, not applying persisted information.");
+         log.debug("Deployment was modified, not applying persisted information : " + unit);
          return;
       }
       //
@@ -126,7 +125,6 @@
                   log.warn("Null persisted information for deployment: " + vf);
                }
                // update ...
-               MetaData md = unit.getMetaData();
                getPersistenceFactory().restorePersistenceRoot(root, instance, unit.getClassLoader());
             }
             else

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/repository/AbstractAttachmentStore.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/repository/AbstractAttachmentStore.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/system/src/main/org/jboss/system/server/profileservice/repository/AbstractAttachmentStore.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -30,9 +30,12 @@
 import java.util.ArrayList;
 import java.util.Formatter;
 import java.util.List;
+import java.util.Map;
 
 import org.jboss.deployers.client.plugins.deployment.AbstractDeployment;
 import org.jboss.deployers.client.spi.Deployment;
+import org.jboss.deployers.spi.attachments.AttachmentsFactory;
+import org.jboss.deployers.spi.attachments.MutableAttachments;
 import org.jboss.deployers.structure.spi.DeploymentContext;
 import org.jboss.deployers.structure.spi.main.MainDeployerStructure;
 import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
@@ -139,10 +142,22 @@
    
    public Deployment createDeployment(ProfileDeployment deployment) throws Exception
    {
+      Deployment mcDeployment = null;
       if(deployment.getRoot() == null)
-         return new AbstractDeployment();
+         mcDeployment = new AbstractDeployment(deployment.getName());
+      else
+         mcDeployment = deploymentFactory.createVFSDeployment(deployment.getRoot());
       
-      return deploymentFactory.createVFSDeployment(deployment.getRoot());
+      // Add the deployment attachments as PredeterminedManagedObjects
+      Map<String, Object> attachments = deployment.getAttachments();
+      if(attachments != null && attachments.isEmpty() == false)
+      {
+         MutableAttachments predetermined = AttachmentsFactory.createMutableAttachments();
+         for(String name : attachments.keySet())
+            predetermined.addAttachment(name, attachments.get(name));
+         mcDeployment.setPredeterminedManagedObjects(predetermined);
+      }
+      return mcDeployment;
    }
    
    /**

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/build.xml
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/build.xml	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/build.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -931,6 +931,9 @@
    	  <!-- JBAS-6792 fix temporarily reverted -->
       <!--exclude name="org/jboss/test/cluster/defaultcfg/test/HAServiceUnitTestCase.class"/>
       <exclude name="org/jboss/test/cluster/defaultcfg/test/HASingletonUnitTestCase.class"/-->
+   	
+   	<!-- JBAS-6094, see http://www.jboss.org/index.html?module=bb&op=viewtopic&t=155647 -->
+   	<exclude name="org/jboss/test/cluster/defaultcfg/test/ClusterPartitionManagedObjectsTestCase.class"/>
    </patternset>
 
    <patternset id="aop-with-classloader.excludes">
@@ -997,9 +1000,7 @@
       <antcall target="tomcat-federation-tests"/>
       <antcall target="tests-binding-manager"/>
       <antcall target="tests-jacc-security"/>
-<!--
       <antcall target="tests-jacc-securitymgr"/>
--->
       <antcall target="tests-jacc-security-allstarrole"/>
 <!--
       <antcall target="tests-security-jaspi-unit"/>

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/imports/server-config.xml
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/imports/server-config.xml	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/imports/server-config.xml	2009-05-23 18:55:19 UTC (rev 89313)
@@ -187,7 +187,7 @@
       <server name="tomcat-ssl" host="${node0}">
          <jvmarg value="${jpda.cmdline}" />
          <jvmarg value="-Xms128m" />
-         <jvmarg value="-Xms512m" />
+         <jvmarg value="-Xmx512m" />
          <jvmarg value="-XX:MaxPermSize=512m" />
          <sysproperty key="java.net.preferIPv4Stack" value="true" />
          <sysproperty key="java.endorsed.dirs" value="${jboss.dist}/lib/endorsed" />

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/jacc/test/EJBSpecUnitTestCase.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/jacc/test/EJBSpecUnitTestCase.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/jacc/test/EJBSpecUnitTestCase.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -64,7 +64,7 @@
       //suite.addTest(new EJBSpecUnitTestCase("testDomainInteraction"));
 
       // All are baseclass tests
-      suite.addTest(new EJBSpecUnitTestCase("testSecurityDomain"));      
+      //JBAS-6944 suite.addTest(new EJBSpecUnitTestCase("testSecurityDomain"));      
       suite.addTest(new EJBSpecUnitTestCase("testStatefulCreateCaller"));  
       suite.addTest(new EJBSpecUnitTestCase("testGetCallerPrincipal"));  
       suite.addTest(new EJBSpecUnitTestCase("testPrincipalPropagation"));  

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/ServiceBindingManagedObjectsTestCase.java (from rev 89308, branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/ServiceBindingManagedObjectsTestCase.java)
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/ServiceBindingManagedObjectsTestCase.java	                        (rev 0)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/override/restart/test/ServiceBindingManagedObjectsTestCase.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -0,0 +1,631 @@
+/*
+ * 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.test.profileservice.override.restart.test;
+
+import java.net.InetAddress;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.managed.api.ComponentType;
+import org.jboss.managed.api.ManagedCommon;
+import org.jboss.managed.api.ManagedComponent;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.types.CompositeMetaType;
+import org.jboss.metatype.api.types.ImmutableCompositeMetaType;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
+import org.jboss.metatype.api.values.ArrayValue;
+import org.jboss.metatype.api.values.CollectionValue;
+import org.jboss.metatype.api.values.CompositeValue;
+import org.jboss.metatype.api.values.MapCompositeValueSupport;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.services.binding.ServiceBindingMetadata;
+import org.jboss.services.binding.impl.ServiceBindingSet;
+import org.jboss.services.binding.managed.ServiceBindingMetadataMapper;
+import org.jboss.test.profileservice.test.AbstractProfileServiceTest;
+
+/**
+ * <p>
+ * Profile service ServiceBindingManager persistent update tests.
+ * </p>
+ * 
+ * @see org.jboss.test.profileservice.override.test.ServiceBindingManagedObjectsTestCase
+ * for the tests that add and update the service binding metadata.
+ * 
+ * @author Brian Stansberry
+ * @author Scott.Stark at jboss.org
+ * @version $Revision: 88921 $
+ */
+public class ServiceBindingManagedObjectsTestCase extends AbstractProfileServiceTest
+{
+   public static final CompositeMetaType SERVICE_BINDING_METADATA_TYPE;
+   public static final CompositeMetaType SERVICE_BINDING_SET_TYPE;
+   
+   static
+   {
+      String[] itemNames = {
+            "bindingSetName",
+            "serviceName",
+            "bindingName",
+            "fullyQualifiedName",
+            "description",
+            "hostName",
+            "port",
+            "fixedHostName",
+            "fixedPort"//,
+//            "serviceBindingValueSourceClassName",
+//            "serviceBindingValueSourceConfig"
+      };
+      String[] itemDescriptions = {
+            "binding set to which this binding applies, or null for all sets",
+            "the name of the service to which this binding applies",
+            "a qualifier identifying which particular binding within the service this is",
+            "the fully qualified binding name",
+            "description of the binding",
+            "the host name or string notation IP address to use for the binding",
+            "the port to use for the binding",
+            "whether the host name should remain fixed in all binding sets",
+            "whether the port should remain fixed in all binding sets"//,
+//            "fully qualified classname of specialized object used to process binding results",
+//            ""
+      };
+      MetaType[] itemTypes = {
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.INTEGER_PRIMITIVE,
+            SimpleMetaType.BOOLEAN_PRIMITIVE,
+            SimpleMetaType.BOOLEAN_PRIMITIVE//,
+//            SimpleMetaType.STRING,
+//            new GenericMetaType(ManagedObject)
+      };
+      SERVICE_BINDING_METADATA_TYPE = new ImmutableCompositeMetaType(ServiceBindingMetadata.class.getName(), 
+            "Service Binding Metadata",
+            itemNames, itemDescriptions, itemTypes);
+      
+
+      String[] itemNames2 = {
+            "name",
+            "defaultHostName",
+            "portOffset",
+            "overrideBindings"
+      };
+      String[] itemDescriptions2 = {
+            "the name of the binding set",
+            "the host name that should be used for all bindings whose configuration " +
+               "does not specify fixedHostName=\"true\"",
+            "value to add to the port configuration for a standard binding to " +
+               "derive the port to use in this binding set",
+            "binding configurations that apply only to this binding set, either " +
+               "non-standard bindings or ones that override standard binding configurations",
+      };
+      MetaType[] itemTypes2 = {
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.INTEGER_PRIMITIVE,
+            ServiceBindingMetadataMapper.TYPE
+      };
+      SERVICE_BINDING_SET_TYPE = new ImmutableCompositeMetaType(ServiceBindingSet.class.getName(), 
+            "Service Binding Set", itemNames2, itemDescriptions2, itemTypes2);
+   }
+   
+   /**
+    * <p>
+    * Creates an instance of {@code SecurityManagedObjectsTestCase} with the specified name.
+    * </p>
+    * 
+    * @param name a {@code String} representing the name of this {@code TestCase}.
+    */
+   public ServiceBindingManagedObjectsTestCase(String name)
+   {
+      super(name);
+   }
+
+
+   private ManagedComponent getServiceBindingManagerManagedComponent() throws Exception
+   {
+      ManagementView managementView = getManagementView();
+      ComponentType type = new ComponentType("MCBean", "ServiceBindingManager");
+      ManagedComponent component = managementView.getComponent("ServiceBindingManager", type);
+      assertNotNull(component);
+      return component;
+   }
+
+   private void serviceBindingTest(MetaValue element)
+   {
+      getLog().info(element);
+      
+      assertTrue(element instanceof CompositeValue);
+      
+      CompositeValue compValue = (CompositeValue) element;
+      
+      MetaValue metaval = compValue.get("serviceName");
+      assertNotNull("has serviceName", metaval);
+      assertTrue(metaval instanceof SimpleValue);
+      assertTrue(((SimpleValue) metaval).getValue() instanceof String);
+      
+      metaval = compValue.get("bindingName");
+      if (metaval != null)
+      {
+         assertTrue(metaval instanceof SimpleValue);
+         Object val = ((SimpleValue) metaval).getValue();
+         assertTrue(val instanceof String);
+      }
+      
+      metaval = compValue.get("fullyQualifiedName");
+      assertNotNull("has fullyQualifiedName", metaval);
+      assertTrue(metaval instanceof SimpleValue);
+      assertTrue(((SimpleValue) metaval).getValue() instanceof String);
+      
+      metaval = compValue.get("description");
+      if (metaval != null)
+      {
+         assertTrue(metaval instanceof SimpleValue);
+         Object val = ((SimpleValue) metaval).getValue();
+         assertTrue(val instanceof String);
+      }
+      
+      metaval = compValue.get("hostName");
+      assertNotNull("has hostName", metaval);
+      assertTrue(metaval instanceof SimpleValue);
+      assertTrue(((SimpleValue) metaval).getValue() instanceof String);
+      
+      metaval = compValue.get("bindAddress");
+      assertNotNull("has bindAddress", metaval);
+      assertTrue(metaval instanceof ArrayValue);
+      Object val = ((ArrayValue) metaval).getValue();
+      assertTrue(val instanceof byte[]);
+      
+      metaval = compValue.get("port");
+      assertNotNull("has port", metaval);
+      assertTrue(metaval instanceof SimpleValue);
+      assertEquals("type of port value isn't int", int.class.getName(), metaval.getMetaType().getClassName());
+   }
+   
+   private void serviceBindingSetTest(MetaValue metaValue, Map<String, Integer> offsets) throws Exception
+   {
+      assertTrue(metaValue instanceof CompositeValue);
+      CompositeValue bindingSet = (CompositeValue) metaValue;
+      
+      MetaValue val =  bindingSet.get("name");
+      assertNotNull("property name has no value", val);
+      assertTrue("property name value is SimpleValue", val instanceof SimpleValue);
+      Object simpleVal = ((SimpleValue) val).getValue();
+      assertTrue(simpleVal instanceof String);
+      String name = (String) simpleVal;
+      
+      val =  bindingSet.get("defaultHostName");
+      assertNotNull("property defaultHostName has no value", val);
+      assertEquals("type of defaultHostName value isn't String", String.class.getName(), val.getMetaType().getClassName());
+      assertTrue("property defaultHostName value is SimpleValue", val instanceof SimpleValue);
+      assertEquals(InetAddress.getByName(getServerHost()), InetAddress.getByName((String) ((SimpleValue) val).getValue()));
+      
+      val =  bindingSet.get("portOffset");
+      assertNotNull("property portOffset has no value", val);
+      assertTrue("property portOffset value is SimpleValue", val instanceof SimpleValue);
+      simpleVal = ((SimpleValue) val).getValue();
+      assertTrue(simpleVal instanceof Integer);
+      assertTrue(((Integer) simpleVal).intValue() > -1);
+      offsets.put(name, (Integer) simpleVal);
+      
+      val =  bindingSet.get("overrideBindings");
+      assertNotNull("property overrideBindings has no value", val);
+      assertTrue("property overrideBindings value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] elements = ((CollectionValue) val).getElements();
+      getLog().info(elements);
+      for (MetaValue element : elements)
+      {
+         serviceBindingMetadataTest(element);
+      }
+      
+   }
+   
+   private Checked serviceBindingMetadataTest(MetaValue metaValue)
+   {
+      assertTrue(metaValue instanceof CompositeValue);
+      CompositeValue bindingMetadata = (CompositeValue) metaValue;
+      
+      Checked result = new Checked();
+      
+      MetaValue val =  bindingMetadata.get("fullyQualifiedName");
+      assertNotNull("property fullyQualifiedName has no value", val);
+      assertTrue("property fullyQualifiedName value is SimpleValue", val instanceof SimpleValue);
+      assertNotNull("property fullyQualifiedName value is not null", ((SimpleValue) val).getValue());
+      
+      val =  bindingMetadata.get("serviceName");
+      assertNotNull("property serviceName has no value", val);
+      assertTrue("property serviceName value is SimpleValue", val instanceof SimpleValue);
+      assertNotNull("property serviceName value is not null", ((SimpleValue) val).getValue());
+      
+      val =  bindingMetadata.get("bindingName");
+      if (val != null)
+      {
+         result.bindingName = true;
+         assertNotNull("property bindingName has no value", val);
+         assertTrue("property bindingName value is SimpleValue", val instanceof SimpleValue);
+         assertEquals("type of bindingName value isn't String", String.class.getName(), val.getMetaType().getClassName());
+      }
+      
+      val =  bindingMetadata.get("bindingSetName");
+      if (val != null)
+      {
+         assertNotNull("property bindingSetName has no value", val);
+         assertTrue("property bindingSetName value is SimpleValue", val instanceof SimpleValue);
+         assertEquals("type of bindingSetName value isn't String", String.class.getName(), val.getMetaType().getClassName());
+      }
+      
+      val =  bindingMetadata.get("hostName");
+      if (val != null)
+      {
+         result.hostname = true;
+         assertTrue("property hostName value is SimpleValue", val instanceof SimpleValue);
+         assertEquals("type of hostName value isn't String", String.class.getName(), val.getMetaType().getClassName());
+      }
+      
+      val =  bindingMetadata.get("port");
+      assertNotNull("property port has no value", val);
+      assertTrue("property port value is SimpleValue", val instanceof SimpleValue);
+      assertNotNull("property port value is not null", ((SimpleValue) val).getValue());
+      assertEquals("type of port value isn't int", int.class.getName(), val.getMetaType().getClassName());
+      assertNotNull("property port value is not null", ((SimpleValue) val).getValue());
+      
+      val =  bindingMetadata.get("description");
+      if (val != null)
+      {
+         result.hostname = true;
+         assertNotNull("property hostName has no value", val);
+         assertTrue("property description value is SimpleValue", val instanceof SimpleValue);
+         assertEquals("type of description value isn't String", String.class.getName(), val.getMetaType().getClassName());
+      }
+      
+      val =  bindingMetadata.get("fixedPort");
+      assertNotNull("property bindingName has no value", val);
+      assertTrue("property bindingName value is SimpleValue", val instanceof SimpleValue);
+      assertNotNull("property bindingName value is not null", ((SimpleValue) val).getValue());
+      assertEquals("type of bindingName value isn't boolean", boolean.class.getName(), val.getMetaType().getClassName());
+      assertNotNull("property bindingName value is not null", ((SimpleValue) val).getValue());
+      
+      val =  bindingMetadata.get("fixedHostName");
+      assertNotNull("property bindingName has no value", val);
+      assertTrue("property bindingName value is SimpleValue", val instanceof SimpleValue);
+      assertNotNull("property bindingName value is not null", ((SimpleValue) val).getValue());
+      assertEquals("type of bindingName value isn't boolean", boolean.class.getName(), val.getMetaType().getClassName());
+      assertNotNull("property bindingName value is not null", ((SimpleValue) val).getValue());
+      
+      return result;
+   }
+   
+   public void testUpdatedStandardBindings() throws Exception
+   {
+      ManagedComponent component = getServiceBindingManagerManagedComponent();
+  
+      logHierarchy(component);
+  
+      Map<String, ManagedProperty> properties = component.getProperties();
+      assertNotNull(properties);
+      
+      ManagedProperty prop = properties.get("standardBindings");
+
+      // Before passing the updated component back, store some info about
+      // the binding sets so we can use it later 
+      prop = properties.get("bindingSets");
+      assertNotNull("Missing property bindingSets", prop);
+      MetaValue val =  prop.getValue();
+      assertNotNull("property bindingSets has no value", val);
+      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] elements = ((CollectionValue) val).getElements();
+      assertNotNull(elements);
+      
+      // C) Validate update from B)  
+      
+      component = getServiceBindingManagerManagedComponent();
+      properties = component.getProperties();
+      
+      Map<String, Integer> offsets = new HashMap<String, Integer>();
+      Map<String, String> hosts = new HashMap<String, String>();
+      for (MetaValue mv : elements)
+      {
+         String name = getSimpleValue(mv, "name", String.class);
+         offsets.put(name, getSimpleValue(mv, "portOffset", Integer.class));
+         hosts.put(name, getSimpleValue(mv, "defaultHostName", String.class));
+      }
+      IndexedArray indexedArray = checkAddedBinding(properties, 25, 23456, offsets, hosts);
+      
+   }
+   
+   private IndexedArray checkAddedBinding(Map<String, ManagedProperty> properties, int bindingCount, int basePort, Map<String, Integer> offsets, Map<String, String> hosts)
+   {
+      // Return the array of standard bindings + the pos of the added binding
+      IndexedArray result = new IndexedArray();
+      
+      // Scan for the standard binding
+      
+      ManagedProperty prop = properties.get("standardBindings");
+      assertNotNull("Missing property standardBindings", prop);
+      MetaValue val =  prop.getValue();
+      assertNotNull("property standardBindings has no value", val);
+      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] refreshedElements = ((CollectionValue) val).getElements();
+      assertEquals(bindingCount, refreshedElements.length);
+      result.array = refreshedElements; // pass back to caller
+      boolean sawAdded = false;
+      for (int i = 0; i < refreshedElements.length; i++)
+      {
+         MetaValue mv = refreshedElements[i];
+         if ("AddedStandardBinding".equals(getSimpleValue(mv, "serviceName")))
+         {
+            sawAdded = true;
+            assertEquals("correct bindingName in standard binding", "bindingName", getSimpleValue(mv, "bindingName"));
+            assertEquals("correct description in standard binding", "description", getSimpleValue(mv, "description"));
+            assertNull("correct hostName in standardBinding", getSimpleValue(mv, "hostName"));
+            assertEquals("correct port in standard binding", basePort, getSimpleValue(mv, "port", Integer.class).intValue());
+            assertFalse("correct fixedPort in standard binding", getSimpleValue(mv, "fixedPort", Boolean.class).booleanValue());
+            assertFalse("correct fixedHostName in standard binding", getSimpleValue(mv, "fixedHostName", Boolean.class).booleanValue());
+            
+            result.index = i; // tell caller which pos has the added binding
+            break;
+         }
+      }
+      assertTrue("saw standard binding", sawAdded);
+      
+      // Check that our standard binding metadata generated the expected actual bindings
+      
+      prop = properties.get("serviceBindings");
+      assertNotNull("Missing property serviceBindings", prop);
+      log.info("serviceBindings: " + prop);
+      val = prop.getValue();
+      assertNotNull("property serviceBindings has no value", val);
+      assertTrue("property serviceBindings value is CompositeValue", val instanceof CompositeValue);
+      CompositeValue compVal = (CompositeValue) val;
+      assertEquals("correct number of standard bindings", offsets.size(), compVal.values().size());
+      for (String bindingSetName : offsets.keySet())
+      {
+         MetaValue mv = compVal.get(bindingSetName);
+         assertTrue(mv instanceof CollectionValue);
+         CollectionValue colVal = (CollectionValue) mv;
+         sawAdded = false;
+         for (MetaValue element : colVal.getElements())
+         {
+            if ("AddedStandardBinding".equals(getSimpleValue(element, "serviceName")))
+            {
+               sawAdded = true;
+               assertEquals("correct bindingName in set " + bindingSetName, 
+                            "bindingName", getSimpleValue(element, "bindingName"));
+               assertEquals("correct description in set " + bindingSetName, 
+                     "description", getSimpleValue(element, "description"));
+               assertEquals("correct hostName in set " + bindingSetName, 
+                     hosts.get(bindingSetName), getSimpleValue(element, "hostName"));
+               assertEquals("correct port in set " + bindingSetName, 
+                     basePort + offsets.get(bindingSetName).intValue(), 
+                     getSimpleValue(element, "port", Integer.class).intValue());
+               break;               
+            }
+         }
+         assertTrue("saw AddedStandardBinding in set " + bindingSetName, sawAdded);
+      }      
+      
+      return result;
+   }
+   
+   public void testUpdatedServiceBindingSets() throws Exception
+   {
+      ManagedComponent component = getServiceBindingManagerManagedComponent();
+  
+      logHierarchy(component);
+  
+      Map<String, ManagedProperty> properties = component.getProperties();
+      assertNotNull(properties);
+      
+     
+      // Before updating get a ref to the standard bindings so we can use it
+      // in later validation
+      Map<String, MetaValue> standardBindings = new HashMap<String, MetaValue>();
+      ManagedProperty prop = properties.get("standardBindings");
+      assertNotNull("Missing property standardBindings", prop);
+      MetaValue val =  prop.getValue();
+      assertNotNull("property standardBindings has no value", val);
+      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] elements = ((CollectionValue) val).getElements();
+      assertNotNull("property standardBindings value has elements", elements);
+      for (MetaValue mv : elements)
+      {
+         standardBindings.put(getSimpleValue(mv, "fullyQualifiedName", String.class), mv);
+      }
+      
+      // B) Validate the addition from A) took effect and then UPDATE the added binding set
+      IndexedArray indexedArray = checkAddedBindingSet(properties, 5, 400, 43210, standardBindings);
+   }
+   
+   private IndexedArray checkAddedBindingSet(Map<String, ManagedProperty> properties, int numSets, int portOffset, int overrideBindingPort,
+         Map<String, MetaValue> standardBindings)
+   {
+      IndexedArray result = new IndexedArray();
+      
+      // First confirm the expected binding set is there
+      
+      ManagedProperty prop = properties.get("bindingSets");
+      assertNotNull("Missing property bindingSets", prop);
+      MetaValue val =  prop.getValue();
+      assertNotNull("property bindingSets has no value", val);
+      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] elements = ((CollectionValue) val).getElements();
+      assertNotNull(elements);
+      assertEquals(numSets, elements.length);
+      result.array = elements;
+      boolean sawAdded = false;
+      for (int i = 0; i < elements.length; i++)
+      {
+         MetaValue mv = elements[i];
+         if ("ports-test".equals(getSimpleValue(mv, "name")))
+         {
+            sawAdded = true;
+            assertEquals("added binding set has correct defaultHostName", 
+                  "localhost", getSimpleValue(mv, "defaultHostName"));
+            assertEquals("added binding set has correct portOffset", 
+                  portOffset, getSimpleValue(mv, "portOffset", Integer.class).intValue());
+            MetaValue overVal = ((CompositeValue) mv).get("overrideBindings");
+            assertTrue(overVal instanceof CollectionValue);
+            MetaValue[] overrides = ((CollectionValue) overVal).getElements();
+            assertNotNull("added binding set has overrides", overrides);
+            assertEquals("added binding set has correct # of overrides", 1, overrides.length);
+            mv = overrides[0];
+            assertEquals("added binding set has AddedOverrideBinding", 
+                  "AddedOverrideBinding", getSimpleValue(mv, "serviceName"));
+            assertNull("AddedOverrideBinding has null bindingName", 
+                       getSimpleValue(mv, "bindingName"));
+            assertEquals("AddedOverrideBinding has correct description", 
+                       "description", getSimpleValue(mv, "description"));
+            assertNull("AddedOverrideBinding has null hostName", 
+                  getSimpleValue(mv, "hostName"));
+            assertEquals("AddedOverrideBinding has correct port", 
+                  overrideBindingPort, getSimpleValue(mv, "port", Integer.class).intValue());
+            assertFalse("AddedOverrideBinding has correct fixedHostName", 
+                  getSimpleValue(mv, "fixedHostName", Boolean.class).booleanValue());
+            assertFalse("AddedOverrideBinding has correct fixedPort", 
+                  getSimpleValue(mv, "fixedPort", Boolean.class).booleanValue());
+            result.index = i;
+            break;
+         }
+      }
+      assertTrue(sawAdded);
+      
+      // Next validate the expected actual bindings are there
+      prop = properties.get("serviceBindings");
+      assertNotNull("Missing property serviceBindings", prop);
+      val =  prop.getValue();
+      assertNotNull("property serviceBindings has no value", val);
+      assertTrue("property serviceBindings value is Composite", val instanceof CompositeValue);
+      val = ((CompositeValue) val).get("ports-test");
+      assertNotNull(val);
+      assertTrue("property serviceBindings value is CollectionValue", val instanceof CollectionValue);
+      elements = ((CollectionValue) val).getElements();
+      assertNotNull("property serviceBindings value has elements", elements);
+      assertEquals("property serviceBindings value has correct # of elements", 
+            standardBindings.size() + 1, elements.length);
+      for (MetaValue mv : elements)
+      {
+         String fqn = getSimpleValue(mv, "fullyQualifiedName", String.class);
+         if ("AddedOverrideBinding".equals(fqn))
+         {
+            assertEquals("actual AddedOverrideBinding has correct serviceName", 
+                  "AddedOverrideBinding", getSimpleValue(mv, "serviceName"));
+            assertNull("actual AddedOverrideBinding has null bindingName", 
+                  getSimpleValue(mv, "bindingName"));
+            assertEquals("actual AddedOverrideBinding has correct description", 
+                  "description", getSimpleValue(mv, "description"));
+            assertEquals("actual AddedOverrideBinding has correct port", 
+                  overrideBindingPort + portOffset, getSimpleValue(mv, "port", Integer.class).intValue());
+            assertEquals("actual AddedOverrideBinding has correct hostName", 
+                  "localhost", getSimpleValue(mv, "hostName"));
+         }
+         else
+         {
+            MetaValue standard = standardBindings.get(fqn);
+            assertNotNull(standard);
+            assertEquals("standardBinding " + fqn + " has correct serviceName", 
+                  getSimpleValue(standard, "serviceName"), getSimpleValue(mv, "serviceName"));
+            assertEquals("standardBinding " + fqn + " has correct bindingName", 
+                  getSimpleValue(standard, "bindingName"), getSimpleValue(mv, "bindingName"));
+            assertEquals("standardBinding " + fqn + " has correct description", 
+                  getSimpleValue(standard, "description"), getSimpleValue(mv, "description"));
+            int offset = getSimpleValue(standard, "fixedPort", Boolean.class).booleanValue() ? 0 : portOffset;
+            assertEquals("standardBinding " + fqn + " has correct port", 
+                  getSimpleValue(standard, "port", Integer.class).intValue() + offset, 
+                         getSimpleValue(mv, "port", Integer.class).intValue());
+            String host = getSimpleValue(standard, "fixedHostName", Boolean.class).booleanValue() 
+                                  ? getSimpleValue(standard, "hostName", String.class) 
+                                  : "localhost";
+            assertEquals("standardBinding " + fqn + " has correct hostName", 
+                  host, getSimpleValue(mv, "hostName"));
+         }
+      }
+      
+      return result;
+   }
+
+   private void logHierarchy(ManagedComponent mc)
+   {
+      ManagedCommon child = mc;
+      ManagedCommon mcom = mc.getParent();
+      while (mcom != null)
+      {
+         log.debug("parent of " + child.getName() + " is " + mcom.getName());
+         child = mcom;
+         mcom = mcom.getParent();
+      }
+   }
+   
+   private Object getSimpleValue(MetaValue val, String key)
+   {
+      return getSimpleValue(val, key, Object.class);
+   }
+   
+   private <T> T getSimpleValue(MetaValue val, String key, Class<T> type)
+   {
+      T result = null;
+      assertTrue(val instanceof CompositeValue);
+      CompositeValue cval = (CompositeValue) val;
+      MetaValue mv = cval.get(key);
+      if (mv != null)
+      {
+         assertTrue(mv instanceof SimpleValue);
+         Object obj = ((SimpleValue) mv).getValue();
+         result = type.cast(obj);
+      }
+      return result;
+   }
+   
+   private static MapCompositeValueSupport cloneCompositeValue(CompositeValue toClone)
+   {
+      if (toClone instanceof MapCompositeValueSupport)
+      {
+         return (MapCompositeValueSupport) toClone.clone();
+      }
+      else
+      {
+         CompositeMetaType type = toClone.getMetaType();
+         Map<String, MetaValue> map = new HashMap<String, MetaValue>();
+         for (String key : type.keySet())
+         {
+            map.put(key, toClone.get(key));
+         }
+         return new MapCompositeValueSupport(map, type);
+      }
+   }
+   
+   private class Checked
+   {
+      private boolean hostname;
+      private boolean bindingName;
+   }
+   
+   private class IndexedArray
+   {
+      int index;
+      MetaValue[] array;
+   }
+}

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/override/test/ServiceBindingManagedObjectsTestCase.java (from rev 89308, branches/Branch_5_x/testsuite/src/main/org/jboss/test/profileservice/override/test/ServiceBindingManagedObjectsTestCase.java)
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/override/test/ServiceBindingManagedObjectsTestCase.java	                        (rev 0)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/override/test/ServiceBindingManagedObjectsTestCase.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -0,0 +1,607 @@
+/*
+ * 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.test.profileservice.override.test;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.managed.api.ComponentType;
+import org.jboss.managed.api.ManagedCommon;
+import org.jboss.managed.api.ManagedComponent;
+import org.jboss.managed.api.ManagedProperty;
+import org.jboss.metatype.api.types.CollectionMetaType;
+import org.jboss.metatype.api.types.CompositeMetaType;
+import org.jboss.metatype.api.types.ImmutableCompositeMetaType;
+import org.jboss.metatype.api.types.MetaType;
+import org.jboss.metatype.api.types.SimpleMetaType;
+import org.jboss.metatype.api.values.CollectionValue;
+import org.jboss.metatype.api.values.CollectionValueSupport;
+import org.jboss.metatype.api.values.CompositeValue;
+import org.jboss.metatype.api.values.MapCompositeValueSupport;
+import org.jboss.metatype.api.values.MetaValue;
+import org.jboss.metatype.api.values.SimpleValue;
+import org.jboss.metatype.api.values.SimpleValueSupport;
+import org.jboss.services.binding.ServiceBindingMetadata;
+import org.jboss.services.binding.impl.ServiceBindingSet;
+import org.jboss.services.binding.managed.ServiceBindingMetadataMapper;
+
+/**
+ * <p>
+ * Profile service ServiceBindingManager update tests.
+ * </p>
+ * @see org.jboss.test.profileservice.override.restart.test.ServiceBindingManagedObjectsTestCase
+ * for the tests of the persisted updates.
+ * 
+ * @author Brian Stansberry
+ * @author Scott.Stark at jboss.org
+ * @version $Revision: 88921 $
+ */
+public class ServiceBindingManagedObjectsTestCase extends AbstractProfileServiceTest
+{
+   public static final CompositeMetaType SERVICE_BINDING_METADATA_TYPE;
+   public static final CompositeMetaType SERVICE_BINDING_SET_TYPE;
+   
+   static
+   {
+      String[] itemNames = {
+            "bindingSetName",
+            "serviceName",
+            "bindingName",
+            "fullyQualifiedName",
+            "description",
+            "hostName",
+            "port",
+            "fixedHostName",
+            "fixedPort"//,
+//            "serviceBindingValueSourceClassName",
+//            "serviceBindingValueSourceConfig"
+      };
+      String[] itemDescriptions = {
+            "binding set to which this binding applies, or null for all sets",
+            "the name of the service to which this binding applies",
+            "a qualifier identifying which particular binding within the service this is",
+            "the fully qualified binding name",
+            "description of the binding",
+            "the host name or string notation IP address to use for the binding",
+            "the port to use for the binding",
+            "whether the host name should remain fixed in all binding sets",
+            "whether the port should remain fixed in all binding sets"//,
+//            "fully qualified classname of specialized object used to process binding results",
+//            ""
+      };
+      MetaType[] itemTypes = {
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.INTEGER_PRIMITIVE,
+            SimpleMetaType.BOOLEAN_PRIMITIVE,
+            SimpleMetaType.BOOLEAN_PRIMITIVE//,
+//            SimpleMetaType.STRING,
+//            new GenericMetaType(ManagedObject)
+      };
+      SERVICE_BINDING_METADATA_TYPE = new ImmutableCompositeMetaType(ServiceBindingMetadata.class.getName(), 
+            "Service Binding Metadata",
+            itemNames, itemDescriptions, itemTypes);
+      
+
+      String[] itemNames2 = {
+            "name",
+            "defaultHostName",
+            "portOffset",
+            "overrideBindings"
+      };
+      String[] itemDescriptions2 = {
+            "the name of the binding set",
+            "the host name that should be used for all bindings whose configuration " +
+               "does not specify fixedHostName=\"true\"",
+            "value to add to the port configuration for a standard binding to " +
+               "derive the port to use in this binding set",
+            "binding configurations that apply only to this binding set, either " +
+               "non-standard bindings or ones that override standard binding configurations",
+      };
+      MetaType[] itemTypes2 = {
+            SimpleMetaType.STRING,
+            SimpleMetaType.STRING,
+            SimpleMetaType.INTEGER_PRIMITIVE,
+            ServiceBindingMetadataMapper.TYPE
+      };
+      SERVICE_BINDING_SET_TYPE = new ImmutableCompositeMetaType(ServiceBindingSet.class.getName(), 
+            "Service Binding Set", itemNames2, itemDescriptions2, itemTypes2);
+   }
+   
+   /**
+    * <p>
+    * Creates an instance of {@code SecurityManagedObjectsTestCase} with the specified name.
+    * </p>
+    * 
+    * @param name a {@code String} representing the name of this {@code TestCase}.
+    */
+   public ServiceBindingManagedObjectsTestCase(String name)
+   {
+      super(name);
+   }
+
+   private ManagedComponent getServiceBindingManagerManagedComponent() throws Exception
+   {
+      ManagementView managementView = getManagementView();
+      ComponentType type = new ComponentType("MCBean", "ServiceBindingManager");
+      ManagedComponent component = managementView.getComponent("ServiceBindingManager", type);
+      assertNotNull(component);
+      return component;
+   }
+
+   public void testUpdateServiceBindingSets() throws Exception
+   {
+      ManagedComponent component = getServiceBindingManagerManagedComponent();
+  
+      logHierarchy(component);
+  
+      Map<String, ManagedProperty> properties = component.getProperties();
+      assertNotNull(properties);
+      
+      // A) ADD a new binding set
+      
+      ManagedProperty prop = properties.get("bindingSets");
+      assertNotNull("Missing property bindingSets", prop);
+      MetaValue val =  prop.getValue();
+      assertNotNull("property bindingSets has no value", val);
+      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] origElements = ((CollectionValue) val).getElements();
+      assertNotNull(origElements);
+      MetaValue[] newElements = new MetaValue[origElements.length + 1];
+      System.arraycopy(origElements, 0, newElements, 0, origElements.length);
+      
+
+      Map<String, MetaValue> map = new HashMap<String, MetaValue>();
+      map.put("name", SimpleValueSupport.wrap("ports-test"));
+      map.put("defaultHostName", SimpleValueSupport.wrap("localhost"));
+      map.put("portOffset", SimpleValueSupport.wrap(500));
+      
+      Map<String, MetaValue> metadata = new HashMap<String, MetaValue>();
+      metadata.put("serviceName", SimpleValueSupport.wrap("AddedOverrideBinding"));
+      metadata.put("description", SimpleValueSupport.wrap("description"));
+      metadata.put("port", SimpleValueSupport.wrap(54321));
+      MapCompositeValueSupport newMetadata = new MapCompositeValueSupport(metadata, SERVICE_BINDING_METADATA_TYPE);
+      CollectionValue overrides = new CollectionValueSupport(new CollectionMetaType(Set.class.getName(), SERVICE_BINDING_METADATA_TYPE), new MetaValue[]{newMetadata});
+      
+      map.put("overrideBindings", overrides);
+      MapCompositeValueSupport newElement = new MapCompositeValueSupport(map, SERVICE_BINDING_SET_TYPE);
+      newElements[newElements.length - 1] = newElement;
+      CollectionValue newVal = new CollectionValueSupport(new CollectionMetaType(Set.class.getName(), SERVICE_BINDING_SET_TYPE), newElements);
+      prop.setValue(newVal);
+      
+      // Before updating get a ref to the standard bindings so we can use it
+      // in later validation
+      Map<String, MetaValue> standardBindings = new HashMap<String, MetaValue>();
+      prop = properties.get("standardBindings");
+      assertNotNull("Missing property standardBindings", prop);
+      val =  prop.getValue();
+      assertNotNull("property standardBindings has no value", val);
+      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] elements = ((CollectionValue) val).getElements();
+      assertNotNull("property standardBindings value has elements", elements);
+      for (MetaValue mv : elements)
+      {
+         standardBindings.put(getSimpleValue(mv, "fullyQualifiedName", String.class), mv);
+      }
+      
+      try
+      {
+         getManagementView().updateComponent(component);
+      }
+      catch (Exception e)
+      {
+         log.error("Failed updating " + component, e);
+         throw e;
+      }
+      
+      // B) Validate the addition from A) took effect and then UPDATE the added binding set
+      
+      component = getServiceBindingManagerManagedComponent();  
+      properties = component.getProperties();
+      assertNotNull(properties);
+      
+      IndexedArray indexedArray = checkAddedBindingSet(properties, newElements.length, 500, 54321, standardBindings);
+      
+      prop = properties.get("bindingSets");      
+      assertNotNull("Missing property bindingSets", prop);
+      val =  prop.getValue();
+      assertNotNull("property bindingSets has no value", val);
+      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] updated = newElements.clone();
+      MapCompositeValueSupport updatedBindingSet = cloneCompositeValue((CompositeValue) updated[indexedArray.index]);
+      updatedBindingSet.put("portOffset", SimpleValueSupport.wrap(400));
+      
+      MetaValue[] updatedOverrides = ((CollectionValue) updatedBindingSet.get("overrideBindings")).getElements();
+      assertEquals("single override binding", 1, updatedOverrides.length);
+      MapCompositeValueSupport updatedOverride = cloneCompositeValue((CompositeValue) updatedOverrides[0]);
+      updatedOverride.put("port", SimpleValueSupport.wrap(43210));
+      updatedBindingSet.put("overrideBindings", new CollectionValueSupport(new CollectionMetaType(Set.class.getName(), SERVICE_BINDING_METADATA_TYPE), new MetaValue[]{updatedOverride}));
+      
+      updated[indexedArray.index] = updatedBindingSet;
+      newVal = new CollectionValueSupport(new CollectionMetaType(Set.class.getName(), SERVICE_BINDING_SET_TYPE), updated);
+      prop.setValue(newVal);
+
+      try
+      {
+         getManagementView().updateComponent(component);
+      }
+      catch (Exception e)
+      {
+         log.error("Failed updating " + component, e);
+         throw e;
+      }
+      
+      // C) Validate the update from B) took effect
+      
+      component = getServiceBindingManagerManagedComponent();  
+      properties = component.getProperties();
+      assertNotNull(properties);
+      
+      indexedArray = checkAddedBindingSet(properties, newElements.length, 400, 43210, standardBindings);
+   }
+
+   
+   public void testUpdateStandardBindings() throws Exception
+   {
+      ManagedComponent component = getServiceBindingManagerManagedComponent();
+  
+      logHierarchy(component);
+  
+      Map<String, ManagedProperty> properties = component.getProperties();
+      assertNotNull(properties);
+      
+      ManagedProperty prop = properties.get("standardBindings");
+      assertNotNull("Missing property standardBindings", prop);
+      MetaValue val =  prop.getValue();
+      assertNotNull("property standardBindings has no value", val);
+      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
+      
+      MetaValue[] origElements = ((CollectionValue) val).getElements();
+      assertNotNull(origElements);
+      
+      // A) ADD a new element to "standardBindings"
+      
+      MetaValue[] newElements = new MetaValue[origElements.length + 1];
+      System.arraycopy(origElements, 0, newElements, 0, origElements.length);
+      
+      Map<String, MetaValue> map = new HashMap<String, MetaValue>();
+      map.put("serviceName", SimpleValueSupport.wrap("AddedStandardBinding"));
+      map.put("bindingName", SimpleValueSupport.wrap("bindingName"));
+      map.put("description", SimpleValueSupport.wrap("description"));
+      map.put("port", SimpleValueSupport.wrap(12345));
+      map.put("fixedHostName", SimpleValueSupport.wrap(false));
+      map.put("fixedPort", SimpleValueSupport.wrap(false));
+      MapCompositeValueSupport newElement = new MapCompositeValueSupport(map, SERVICE_BINDING_METADATA_TYPE);
+      newElements[newElements.length - 1] = newElement;
+      
+      CollectionValue newVal = new CollectionValueSupport((CollectionMetaType) val.getMetaType(), newElements);
+      prop.setValue(newVal);
+      
+      // Before passing the updated component back, store some info about
+      // the binding sets so we can use it later 
+      prop = properties.get("bindingSets");
+      assertNotNull("Missing property bindingSets", prop);
+      val =  prop.getValue();
+      assertNotNull("property bindingSets has no value", val);
+      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] elements = ((CollectionValue) val).getElements();
+      assertNotNull(elements);
+      
+      // Two maps we'll use
+      Map<String, Integer> offsets = new HashMap<String, Integer>();
+      Map<String, String> hosts = new HashMap<String, String>();
+      for (MetaValue mv : elements)
+      {
+         String name = getSimpleValue(mv, "name", String.class);
+         offsets.put(name, getSimpleValue(mv, "portOffset", Integer.class));
+         hosts.put(name, getSimpleValue(mv, "defaultHostName", String.class));
+      }
+      
+      try
+      {
+         getManagementView().updateComponent(component);
+      }
+      catch (Exception e)
+      {
+         log.error("Failed updating " + component, e);
+         throw e;
+      }
+      
+      // B) Validate the result of A) and MODIFY the element we added in A
+      
+      component = getServiceBindingManagerManagedComponent();
+      properties = component.getProperties();
+      
+      IndexedArray indexedArray = checkAddedBinding(properties, newElements.length, 12345, offsets, hosts);
+      // We'll update the component again using this MetaValue[]
+      newElements = new MetaValue[indexedArray.array.length];
+      System.arraycopy(indexedArray.array, 0, newElements, 0, newElements.length);
+      
+      MapCompositeValueSupport update = cloneCompositeValue((CompositeValue) indexedArray.array[indexedArray.index]);
+      update.put("port", SimpleValueSupport.wrap(23456));
+      newElements[indexedArray.index] = update;      
+      
+      newVal = new CollectionValueSupport((CollectionMetaType) val.getMetaType(), newElements);
+      properties.get("standardBindings").setValue(newVal);
+      
+      // OK, now update      
+      try
+      {
+         getManagementView().updateComponent(component);
+      }
+      catch (Exception e)
+      {
+         log.error("Failed updating " + component, e);
+         throw e;
+      }
+      
+      // C) Validate update from B) plus REMOVE the element we added 
+      
+      component = getServiceBindingManagerManagedComponent();
+      properties = component.getProperties();
+      
+      indexedArray = checkAddedBinding(properties, newElements.length, 23456, offsets, hosts);
+   }
+
+   private IndexedArray checkAddedBindingSet(Map<String, ManagedProperty> properties, int numSets, int portOffset, int overrideBindingPort,
+         Map<String, MetaValue> standardBindings)
+   {
+      IndexedArray result = new IndexedArray();
+      
+      // First confirm the expected binding set is there
+      
+      ManagedProperty prop = properties.get("bindingSets");
+      assertNotNull("Missing property bindingSets", prop);
+      MetaValue val =  prop.getValue();
+      assertNotNull("property bindingSets has no value", val);
+      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] elements = ((CollectionValue) val).getElements();
+      assertNotNull(elements);
+      assertEquals(numSets, elements.length);
+      result.array = elements;
+      boolean sawAdded = false;
+      for (int i = 0; i < elements.length; i++)
+      {
+         MetaValue mv = elements[i];
+         if ("ports-test".equals(getSimpleValue(mv, "name")))
+         {
+            sawAdded = true;
+            assertEquals("added binding set has correct defaultHostName", 
+                  "localhost", getSimpleValue(mv, "defaultHostName"));
+            assertEquals("added binding set has correct portOffset", 
+                  portOffset, getSimpleValue(mv, "portOffset", Integer.class).intValue());
+            MetaValue overVal = ((CompositeValue) mv).get("overrideBindings");
+            assertTrue(overVal instanceof CollectionValue);
+            MetaValue[] overrides = ((CollectionValue) overVal).getElements();
+            assertNotNull("added binding set has overrides", overrides);
+            assertEquals("added binding set has correct # of overrides", 1, overrides.length);
+            mv = overrides[0];
+            assertEquals("added binding set has AddedOverrideBinding", 
+                  "AddedOverrideBinding", getSimpleValue(mv, "serviceName"));
+            assertNull("AddedOverrideBinding has null bindingName", 
+                       getSimpleValue(mv, "bindingName"));
+            assertEquals("AddedOverrideBinding has correct description", 
+                       "description", getSimpleValue(mv, "description"));
+            assertNull("AddedOverrideBinding has null hostName", 
+                  getSimpleValue(mv, "hostName"));
+            assertEquals("AddedOverrideBinding has correct port", 
+                  overrideBindingPort, getSimpleValue(mv, "port", Integer.class).intValue());
+            assertFalse("AddedOverrideBinding has correct fixedHostName", 
+                  getSimpleValue(mv, "fixedHostName", Boolean.class).booleanValue());
+            assertFalse("AddedOverrideBinding has correct fixedPort", 
+                  getSimpleValue(mv, "fixedPort", Boolean.class).booleanValue());
+            result.index = i;
+            break;
+         }
+      }
+      assertTrue(sawAdded);
+      
+      // Next validate the expected actual bindings are there
+      prop = properties.get("serviceBindings");
+      assertNotNull("Missing property serviceBindings", prop);
+      val =  prop.getValue();
+      assertNotNull("property serviceBindings has no value", val);
+      assertTrue("property serviceBindings value is Composite", val instanceof CompositeValue);
+      val = ((CompositeValue) val).get("ports-test");
+      assertNotNull(val);
+      assertTrue("property serviceBindings value is CollectionValue", val instanceof CollectionValue);
+      elements = ((CollectionValue) val).getElements();
+      assertNotNull("property serviceBindings value has elements", elements);
+      assertEquals("property serviceBindings value has correct # of elements", 
+            standardBindings.size() + 1, elements.length);
+      for (MetaValue mv : elements)
+      {
+         String fqn = getSimpleValue(mv, "fullyQualifiedName", String.class);
+         if ("AddedOverrideBinding".equals(fqn))
+         {
+            assertEquals("actual AddedOverrideBinding has correct serviceName", 
+                  "AddedOverrideBinding", getSimpleValue(mv, "serviceName"));
+            assertNull("actual AddedOverrideBinding has null bindingName", 
+                  getSimpleValue(mv, "bindingName"));
+            assertEquals("actual AddedOverrideBinding has correct description", 
+                  "description", getSimpleValue(mv, "description"));
+            assertEquals("actual AddedOverrideBinding has correct port", 
+                  overrideBindingPort + portOffset, getSimpleValue(mv, "port", Integer.class).intValue());
+            assertEquals("actual AddedOverrideBinding has correct hostName", 
+                  "localhost", getSimpleValue(mv, "hostName"));
+         }
+         else
+         {
+            MetaValue standard = standardBindings.get(fqn);
+            assertNotNull(standard);
+            assertEquals("standardBinding " + fqn + " has correct serviceName", 
+                  getSimpleValue(standard, "serviceName"), getSimpleValue(mv, "serviceName"));
+            assertEquals("standardBinding " + fqn + " has correct bindingName", 
+                  getSimpleValue(standard, "bindingName"), getSimpleValue(mv, "bindingName"));
+            assertEquals("standardBinding " + fqn + " has correct description", 
+                  getSimpleValue(standard, "description"), getSimpleValue(mv, "description"));
+            int offset = getSimpleValue(standard, "fixedPort", Boolean.class).booleanValue() ? 0 : portOffset;
+            assertEquals("standardBinding " + fqn + " has correct port", 
+                  getSimpleValue(standard, "port", Integer.class).intValue() + offset, 
+                         getSimpleValue(mv, "port", Integer.class).intValue());
+            String host = getSimpleValue(standard, "fixedHostName", Boolean.class).booleanValue() 
+                                  ? getSimpleValue(standard, "hostName", String.class) 
+                                  : "localhost";
+            assertEquals("standardBinding " + fqn + " has correct hostName", 
+                  host, getSimpleValue(mv, "hostName"));
+         }
+      }
+      
+      return result;
+   }
+
+   private IndexedArray checkAddedBinding(Map<String, ManagedProperty> properties, int bindingCount, int basePort, Map<String, Integer> offsets, Map<String, String> hosts)
+   {
+      // Return the array of standard bindings + the pos of the added binding
+      IndexedArray result = new IndexedArray();
+      
+      // Scan for the standard binding
+      
+      ManagedProperty prop = properties.get("standardBindings");
+      assertNotNull("Missing property standardBindings", prop);
+      MetaValue val =  prop.getValue();
+      assertNotNull("property standardBindings has no value", val);
+      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
+      MetaValue[] refreshedElements = ((CollectionValue) val).getElements();
+      assertEquals(bindingCount, refreshedElements.length);
+      result.array = refreshedElements; // pass back to caller
+      boolean sawAdded = false;
+      for (int i = 0; i < refreshedElements.length; i++)
+      {
+         MetaValue mv = refreshedElements[i];
+         if ("AddedStandardBinding".equals(getSimpleValue(mv, "serviceName")))
+         {
+            sawAdded = true;
+            assertEquals("correct bindingName in standard binding", "bindingName", getSimpleValue(mv, "bindingName"));
+            assertEquals("correct description in standard binding", "description", getSimpleValue(mv, "description"));
+            assertNull("correct hostName in standardBinding", getSimpleValue(mv, "hostName"));
+            assertEquals("correct port in standard binding", basePort, getSimpleValue(mv, "port", Integer.class).intValue());
+            assertFalse("correct fixedPort in standard binding", getSimpleValue(mv, "fixedPort", Boolean.class).booleanValue());
+            assertFalse("correct fixedHostName in standard binding", getSimpleValue(mv, "fixedHostName", Boolean.class).booleanValue());
+            
+            result.index = i; // tell caller which pos has the added binding
+            break;
+         }
+      }
+      assertTrue("saw standard binding", sawAdded);
+      
+      // Check that our standard binding metadata generated the expected actual bindings
+      
+      prop = properties.get("serviceBindings");
+      assertNotNull("Missing property serviceBindings", prop);
+      log.info("serviceBindings: " + prop);
+      val = prop.getValue();
+      assertNotNull("property serviceBindings has no value", val);
+      assertTrue("property serviceBindings value is CompositeValue", val instanceof CompositeValue);
+      CompositeValue compVal = (CompositeValue) val;
+      assertEquals("correct number of standard bindings", offsets.size(), compVal.values().size());
+      for (String bindingSetName : offsets.keySet())
+      {
+         MetaValue mv = compVal.get(bindingSetName);
+         assertTrue(mv instanceof CollectionValue);
+         CollectionValue colVal = (CollectionValue) mv;
+         sawAdded = false;
+         for (MetaValue element : colVal.getElements())
+         {
+            if ("AddedStandardBinding".equals(getSimpleValue(element, "serviceName")))
+            {
+               sawAdded = true;
+               assertEquals("correct bindingName in set " + bindingSetName, 
+                            "bindingName", getSimpleValue(element, "bindingName"));
+               assertEquals("correct description in set " + bindingSetName, 
+                     "description", getSimpleValue(element, "description"));
+               assertEquals("correct hostName in set " + bindingSetName, 
+                     hosts.get(bindingSetName), getSimpleValue(element, "hostName"));
+               assertEquals("correct port in set " + bindingSetName, 
+                     basePort + offsets.get(bindingSetName).intValue(), 
+                     getSimpleValue(element, "port", Integer.class).intValue());
+               break;               
+            }
+         }
+         assertTrue("saw AddedStandardBinding in set " + bindingSetName, sawAdded);
+      }      
+      
+      return result;
+   }
+
+   private void logHierarchy(ManagedComponent mc)
+   {
+      ManagedCommon child = mc;
+      ManagedCommon mcom = mc.getParent();
+      while (mcom != null)
+      {
+         log.debug("parent of " + child.getName() + " is " + mcom.getName());
+         child = mcom;
+         mcom = mcom.getParent();
+      }
+   }
+   
+   private Object getSimpleValue(MetaValue val, String key)
+   {
+      return getSimpleValue(val, key, Object.class);
+   }
+   
+   private <T> T getSimpleValue(MetaValue val, String key, Class<T> type)
+   {
+      T result = null;
+      assertTrue(val instanceof CompositeValue);
+      CompositeValue cval = (CompositeValue) val;
+      MetaValue mv = cval.get(key);
+      if (mv != null)
+      {
+         assertTrue(mv instanceof SimpleValue);
+         Object obj = ((SimpleValue) mv).getValue();
+         result = type.cast(obj);
+      }
+      return result;
+   }
+   
+   private static MapCompositeValueSupport cloneCompositeValue(CompositeValue toClone)
+   {
+      if (toClone instanceof MapCompositeValueSupport)
+      {
+         return (MapCompositeValueSupport) toClone.clone();
+      }
+      else
+      {
+         CompositeMetaType type = toClone.getMetaType();
+         Map<String, MetaValue> map = new HashMap<String, MetaValue>();
+         for (String key : type.keySet())
+         {
+            map.put(key, toClone.get(key));
+         }
+         return new MapCompositeValueSupport(map, type);
+      }
+   }
+   
+   private class IndexedArray
+   {
+      int index;
+      MetaValue[] array;
+   }
+}

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/test/ServiceBindingManagedObjectsTestCase.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/test/ServiceBindingManagedObjectsTestCase.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/main/org/jboss/test/profileservice/test/ServiceBindingManagedObjectsTestCase.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -24,26 +24,22 @@
 import java.net.InetAddress;
 import java.util.HashMap;
 import java.util.Map;
-import java.util.Set;
 
 import org.jboss.deployers.spi.management.ManagementView;
 import org.jboss.managed.api.ComponentType;
 import org.jboss.managed.api.ManagedCommon;
 import org.jboss.managed.api.ManagedComponent;
 import org.jboss.managed.api.ManagedProperty;
-import org.jboss.metatype.api.types.CollectionMetaType;
 import org.jboss.metatype.api.types.CompositeMetaType;
 import org.jboss.metatype.api.types.ImmutableCompositeMetaType;
 import org.jboss.metatype.api.types.MetaType;
 import org.jboss.metatype.api.types.SimpleMetaType;
 import org.jboss.metatype.api.values.ArrayValue;
 import org.jboss.metatype.api.values.CollectionValue;
-import org.jboss.metatype.api.values.CollectionValueSupport;
 import org.jboss.metatype.api.values.CompositeValue;
 import org.jboss.metatype.api.values.MapCompositeValueSupport;
 import org.jboss.metatype.api.values.MetaValue;
 import org.jboss.metatype.api.values.SimpleValue;
-import org.jboss.metatype.api.values.SimpleValueSupport;
 import org.jboss.services.binding.ServiceBindingMetadata;
 import org.jboss.services.binding.impl.ServiceBindingSet;
 import org.jboss.services.binding.managed.ServiceBindingMetadataMapper;
@@ -53,6 +49,9 @@
  * Profile service ServiceBindingManager tests.
  * </p>
  * 
+ * @see org.jboss.test.profileservice.override.test.ServiceBindingManagedObjectsTestCase
+ * for tests of updating the metadata
+ * 
  * @author Brian Stansberry
  * @version $Revision$
  */
@@ -425,395 +424,7 @@
 //      assertEquals("ports-01", val.getValue());
 //   }
 
-   
-   public void testUpdateStandardBindings() throws Exception
-   {
-      ManagedComponent component = getServiceBindingManagerManagedComponent();
-  
-      logHierarchy(component);
-  
-      Map<String, ManagedProperty> properties = component.getProperties();
-      assertNotNull(properties);
-      
-      ManagedProperty prop = properties.get("standardBindings");
-      assertNotNull("Missing property standardBindings", prop);
-      MetaValue val =  prop.getValue();
-      assertNotNull("property standardBindings has no value", val);
-      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
-      
-      MetaValue[] origElements = ((CollectionValue) val).getElements();
-      assertNotNull(origElements);
-      
-      // A) ADD a new element to "standardBindings"
-      
-      MetaValue[] newElements = new MetaValue[origElements.length + 1];
-      System.arraycopy(origElements, 0, newElements, 0, origElements.length);
-      
-      Map<String, MetaValue> map = new HashMap<String, MetaValue>();
-      map.put("serviceName", SimpleValueSupport.wrap("AddedStandardBinding"));
-      map.put("bindingName", SimpleValueSupport.wrap("bindingName"));
-      map.put("description", SimpleValueSupport.wrap("description"));
-      map.put("port", SimpleValueSupport.wrap(12345));
-      map.put("fixedHostName", SimpleValueSupport.wrap(false));
-      map.put("fixedPort", SimpleValueSupport.wrap(false));
-      MapCompositeValueSupport newElement = new MapCompositeValueSupport(map, SERVICE_BINDING_METADATA_TYPE);
-      newElements[newElements.length - 1] = newElement;
-      
-      CollectionValue newVal = new CollectionValueSupport((CollectionMetaType) val.getMetaType(), newElements);
-      prop.setValue(newVal);
-      
-      // Before passing the updated component back, store some info about
-      // the binding sets so we can use it later 
-      prop = properties.get("bindingSets");
-      assertNotNull("Missing property bindingSets", prop);
-      val =  prop.getValue();
-      assertNotNull("property bindingSets has no value", val);
-      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
-      MetaValue[] elements = ((CollectionValue) val).getElements();
-      assertNotNull(elements);
-      
-      // Two maps we'll use
-      Map<String, Integer> offsets = new HashMap<String, Integer>();
-      Map<String, String> hosts = new HashMap<String, String>();
-      for (MetaValue mv : elements)
-      {
-         String name = getSimpleValue(mv, "name", String.class);
-         offsets.put(name, getSimpleValue(mv, "portOffset", Integer.class));
-         hosts.put(name, getSimpleValue(mv, "defaultHostName", String.class));
-      }
-      
-      try
-      {
-         getManagementView().updateComponent(component);
-      }
-      catch (Exception e)
-      {
-         log.error("Failed updating " + component, e);
-         throw e;
-      }
-      
-      // B) Validate the result of A) and MODIFY the element we added in A
-      
-      component = getServiceBindingManagerManagedComponent();
-      properties = component.getProperties();
-      
-      IndexedArray indexedArray = checkAddedBinding(properties, newElements.length, 12345, offsets, hosts);
-      // We'll update the component again using this MetaValue[]
-      newElements = new MetaValue[indexedArray.array.length];
-      System.arraycopy(indexedArray.array, 0, newElements, 0, newElements.length);
-      
-      MapCompositeValueSupport update = cloneCompositeValue((CompositeValue) indexedArray.array[indexedArray.index]);
-      update.put("port", SimpleValueSupport.wrap(23456));
-      newElements[indexedArray.index] = update;      
-      
-      newVal = new CollectionValueSupport((CollectionMetaType) val.getMetaType(), newElements);
-      properties.get("standardBindings").setValue(newVal);
-      
-      // OK, now update      
-      try
-      {
-         getManagementView().updateComponent(component);
-      }
-      catch (Exception e)
-      {
-         log.error("Failed updating " + component, e);
-         throw e;
-      }
-      
-      // C) Validate update from B) plus REMOVE the element we added 
-      
-      component = getServiceBindingManagerManagedComponent();
-      properties = component.getProperties();
-      
-      indexedArray = checkAddedBinding(properties, newElements.length, 23456, offsets, hosts);
-      
-      // We'll update the component again using this MetaValue[]
-      newElements = new MetaValue[indexedArray.array.length - 1];
-      int j = 0;
-      System.arraycopy(indexedArray.array, 0, newElements, 0, indexedArray.index);
-      System.arraycopy(indexedArray.array, indexedArray.index + 1, newElements, indexedArray.index, indexedArray.array.length - indexedArray.index -1);      
-      
-      newVal = new CollectionValueSupport((CollectionMetaType) val.getMetaType(), newElements);
-      properties.get("standardBindings").setValue(newVal);
-      
-      // OK, now update      
-      try
-      {
-         getManagementView().updateComponent(component);
-      }
-      catch (Exception e)
-      {
-         log.error("Failed updating " + component, e);
-         throw e;
-      }
-      
-      // D) Removal from C) took effect 
-      
-      component = getServiceBindingManagerManagedComponent();
-      properties = component.getProperties();
-      
-      prop = properties.get("standardBindings");
-      assertNotNull("Missing property standardBindings", prop);
-      val =  prop.getValue();
-      assertNotNull("property standardBindings has no value", val);
-      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
-      
-      MetaValue[] finalElements = ((CollectionValue) val).getElements();
-      assertNotNull(finalElements);
-      assertEquals(origElements.length, finalElements.length);
-      for (MetaValue mv : finalElements)
-      {
-         assertFalse("AddedStandardBinding".equals(getSimpleValue(mv, "serviceName")));
-      }
-      
-      prop = properties.get("serviceBindings");
-      assertNotNull("Missing property serviceBindings", prop);
-      log.info("serviceBindings: " + prop);
-      val = prop.getValue();
-      assertNotNull("property serviceBindings has no value", val);
-      assertTrue("property serviceBindings value is CompositeValue", val instanceof CompositeValue);
-      CompositeValue compVal = (CompositeValue) val;
-      assertEquals(offsets.size(), compVal.values().size());
-      for (String bindingSetName : offsets.keySet())
-      {
-         MetaValue mv = compVal.get(bindingSetName);
-         assertTrue(mv instanceof CollectionValue);
-         CollectionValue colVal = (CollectionValue) mv;
-         for (MetaValue element : colVal.getElements())
-         {
-            assertFalse("AddedStandardBinding".equals(getSimpleValue(element, "serviceName")));
-         }
-      }    
-   }
-   
-   private IndexedArray checkAddedBinding(Map<String, ManagedProperty> properties, int bindingCount, int basePort, Map<String, Integer> offsets, Map<String, String> hosts)
-   {
-      // Return the array of standard bindings + the pos of the added binding
-      IndexedArray result = new IndexedArray();
-      
-      // Scan for the standard binding
-      
-      ManagedProperty prop = properties.get("standardBindings");
-      assertNotNull("Missing property standardBindings", prop);
-      MetaValue val =  prop.getValue();
-      assertNotNull("property standardBindings has no value", val);
-      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
-      MetaValue[] refreshedElements = ((CollectionValue) val).getElements();
-      assertEquals(bindingCount, refreshedElements.length);
-      result.array = refreshedElements; // pass back to caller
-      boolean sawAdded = false;
-      for (int i = 0; i < refreshedElements.length; i++)
-      {
-         MetaValue mv = refreshedElements[i];
-         if ("AddedStandardBinding".equals(getSimpleValue(mv, "serviceName")))
-         {
-            sawAdded = true;
-            assertEquals("correct bindingName in standard binding", "bindingName", getSimpleValue(mv, "bindingName"));
-            assertEquals("correct description in standard binding", "description", getSimpleValue(mv, "description"));
-            assertNull("correct hostName in standardBinding", getSimpleValue(mv, "hostName"));
-            assertEquals("correct port in standard binding", basePort, getSimpleValue(mv, "port", Integer.class).intValue());
-            assertFalse("correct fixedPort in standard binding", getSimpleValue(mv, "fixedPort", Boolean.class).booleanValue());
-            assertFalse("correct fixedHostName in standard binding", getSimpleValue(mv, "fixedHostName", Boolean.class).booleanValue());
-            
-            result.index = i; // tell caller which pos has the added binding
-            break;
-         }
-      }
-      assertTrue("saw standard binding", sawAdded);
-      
-      // Check that our standard binding metadata generated the expected actual bindings
-      
-      prop = properties.get("serviceBindings");
-      assertNotNull("Missing property serviceBindings", prop);
-      log.info("serviceBindings: " + prop);
-      val = prop.getValue();
-      assertNotNull("property serviceBindings has no value", val);
-      assertTrue("property serviceBindings value is CompositeValue", val instanceof CompositeValue);
-      CompositeValue compVal = (CompositeValue) val;
-      assertEquals("correct number of standard bindings", offsets.size(), compVal.values().size());
-      for (String bindingSetName : offsets.keySet())
-      {
-         MetaValue mv = compVal.get(bindingSetName);
-         assertTrue(mv instanceof CollectionValue);
-         CollectionValue colVal = (CollectionValue) mv;
-         sawAdded = false;
-         for (MetaValue element : colVal.getElements())
-         {
-            if ("AddedStandardBinding".equals(getSimpleValue(element, "serviceName")))
-            {
-               sawAdded = true;
-               assertEquals("correct bindingName in set " + bindingSetName, 
-                            "bindingName", getSimpleValue(element, "bindingName"));
-               assertEquals("correct description in set " + bindingSetName, 
-                     "description", getSimpleValue(element, "description"));
-               assertEquals("correct hostName in set " + bindingSetName, 
-                     hosts.get(bindingSetName), getSimpleValue(element, "hostName"));
-               assertEquals("correct port in set " + bindingSetName, 
-                     basePort + offsets.get(bindingSetName).intValue(), 
-                     getSimpleValue(element, "port", Integer.class).intValue());
-               break;               
-            }
-         }
-         assertTrue("saw AddedStandardBinding in set " + bindingSetName, sawAdded);
-      }      
-      
-      return result;
-   }
-   
-   public void testUpdateServiceBindingSets() throws Exception
-   {
-      ManagedComponent component = getServiceBindingManagerManagedComponent();
-  
-      logHierarchy(component);
-  
-      Map<String, ManagedProperty> properties = component.getProperties();
-      assertNotNull(properties);
-      
-      // A) ADD a new binding set
-      
-      ManagedProperty prop = properties.get("bindingSets");
-      assertNotNull("Missing property bindingSets", prop);
-      MetaValue val =  prop.getValue();
-      assertNotNull("property bindingSets has no value", val);
-      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
-      MetaValue[] origElements = ((CollectionValue) val).getElements();
-      assertNotNull(origElements);
-      MetaValue[] newElements = new MetaValue[origElements.length + 1];
-      System.arraycopy(origElements, 0, newElements, 0, origElements.length);
-      
 
-      Map<String, MetaValue> map = new HashMap<String, MetaValue>();
-      map.put("name", SimpleValueSupport.wrap("ports-test"));
-      map.put("defaultHostName", SimpleValueSupport.wrap("localhost"));
-      map.put("portOffset", SimpleValueSupport.wrap(500));
-      
-      Map<String, MetaValue> metadata = new HashMap<String, MetaValue>();
-      metadata.put("serviceName", SimpleValueSupport.wrap("AddedOverrideBinding"));
-      metadata.put("description", SimpleValueSupport.wrap("description"));
-      metadata.put("port", SimpleValueSupport.wrap(54321));
-      MapCompositeValueSupport newMetadata = new MapCompositeValueSupport(metadata, SERVICE_BINDING_METADATA_TYPE);
-      CollectionValue overrides = new CollectionValueSupport(new CollectionMetaType(Set.class.getName(), SERVICE_BINDING_METADATA_TYPE), new MetaValue[]{newMetadata});
-      
-      map.put("overrideBindings", overrides);
-      MapCompositeValueSupport newElement = new MapCompositeValueSupport(map, SERVICE_BINDING_SET_TYPE);
-      newElements[newElements.length - 1] = newElement;
-      CollectionValue newVal = new CollectionValueSupport(new CollectionMetaType(Set.class.getName(), SERVICE_BINDING_SET_TYPE), newElements);
-      prop.setValue(newVal);
-      
-      // Before updating get a ref to the standard bindings so we can use it
-      // in later validation
-      Map<String, MetaValue> standardBindings = new HashMap<String, MetaValue>();
-      prop = properties.get("standardBindings");
-      assertNotNull("Missing property standardBindings", prop);
-      val =  prop.getValue();
-      assertNotNull("property standardBindings has no value", val);
-      assertTrue("property standardBindings value is CollectionValue", val instanceof CollectionValue);
-      MetaValue[] elements = ((CollectionValue) val).getElements();
-      assertNotNull("property standardBindings value has elements", elements);
-      for (MetaValue mv : elements)
-      {
-         standardBindings.put(getSimpleValue(mv, "fullyQualifiedName", String.class), mv);
-      }
-      
-      try
-      {
-         getManagementView().updateComponent(component);
-      }
-      catch (Exception e)
-      {
-         log.error("Failed updating " + component, e);
-         throw e;
-      }
-      
-      // B) Validate the addition from A) took effect and then UPDATE the added binding set
-      
-      component = getServiceBindingManagerManagedComponent();  
-      properties = component.getProperties();
-      assertNotNull(properties);
-      
-      IndexedArray indexedArray = checkAddedBindingSet(properties, newElements.length, 500, 54321, standardBindings);
-      
-      prop = properties.get("bindingSets");      
-      assertNotNull("Missing property bindingSets", prop);
-      val =  prop.getValue();
-      assertNotNull("property bindingSets has no value", val);
-      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
-      MetaValue[] updated = newElements.clone();
-      MapCompositeValueSupport updatedBindingSet = cloneCompositeValue((CompositeValue) updated[indexedArray.index]);
-      updatedBindingSet.put("portOffset", SimpleValueSupport.wrap(400));
-      
-      MetaValue[] updatedOverrides = ((CollectionValue) updatedBindingSet.get("overrideBindings")).getElements();
-      assertEquals("single override binding", 1, updatedOverrides.length);
-      MapCompositeValueSupport updatedOverride = cloneCompositeValue((CompositeValue) updatedOverrides[0]);
-      updatedOverride.put("port", SimpleValueSupport.wrap(43210));
-      updatedBindingSet.put("overrideBindings", new CollectionValueSupport(new CollectionMetaType(Set.class.getName(), SERVICE_BINDING_METADATA_TYPE), new MetaValue[]{updatedOverride}));
-      
-      updated[indexedArray.index] = updatedBindingSet;
-      newVal = new CollectionValueSupport(new CollectionMetaType(Set.class.getName(), SERVICE_BINDING_SET_TYPE), updated);
-      prop.setValue(newVal);
-
-      try
-      {
-         getManagementView().updateComponent(component);
-      }
-      catch (Exception e)
-      {
-         log.error("Failed updating " + component, e);
-         throw e;
-      }
-      
-      // C) Validate the update from B) took effect and then REMOVE the added binding set
-      
-      component = getServiceBindingManagerManagedComponent();  
-      properties = component.getProperties();
-      assertNotNull(properties);
-      
-      indexedArray = checkAddedBindingSet(properties, newElements.length, 400, 43210, standardBindings);
-      
-      // We'll update the component again using this MetaValue[]
-      newElements = new MetaValue[indexedArray.array.length - 1];
-      System.arraycopy(indexedArray.array, 0, newElements, 0, indexedArray.index);
-      System.arraycopy(indexedArray.array, indexedArray.index + 1, newElements, indexedArray.index, indexedArray.array.length - indexedArray.index -1);      
-      
-      newVal = new CollectionValueSupport((CollectionMetaType) val.getMetaType(), newElements);
-      properties.get("bindingSets").setValue(newVal);
-      
-      try
-      {
-         getManagementView().updateComponent(component);
-      }
-      catch (Exception e)
-      {
-         log.error("Failed updating " + component, e);
-         throw e;
-      }
-      
-      // D) Confirm the added binding set is now gone
-      
-      component = getServiceBindingManagerManagedComponent();  
-      properties = component.getProperties();
-      assertNotNull(properties);
-      
-      prop = properties.get("bindingSets");
-      assertNotNull("Missing property bindingSets", prop);
-      val =  prop.getValue();
-      assertNotNull("property bindingSets has no value", val);
-      assertTrue("property bindingSets value is CollectionValue", val instanceof CollectionValue);
-      MetaValue[] finalElements = ((CollectionValue) val).getElements();
-      assertNotNull("property bindingSets value has elements", finalElements);
-      assertEquals("correct number of binding sets after removal", 
-                   origElements.length, finalElements.length);
-      for (MetaValue mv : finalElements)
-      {
-         assertFalse("ports-test".equals(getSimpleValue(mv, "name")));
-      }
-      prop = properties.get("serviceBindings");
-      assertNotNull("Missing property serviceBindings", prop);
-      val =  prop.getValue();
-      assertTrue(val instanceof CompositeValue);
-      assertNull("no actual bindings for ports-test", ((CompositeValue) val).get("ports-test"));
-   }
-   
    private IndexedArray checkAddedBindingSet(Map<String, ManagedProperty> properties, int numSets, int portOffset, int overrideBindingPort,
          Map<String, MetaValue> standardBindings)
    {

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/resources/securitymgr/server.policy
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/resources/securitymgr/server.policy	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/testsuite/src/resources/securitymgr/server.policy	2009-05-23 18:55:19 UTC (rev 89313)
@@ -54,6 +54,12 @@
    permission java.security.AllPermission;
 };
 
+grant codeBase "jar:file:${jboss.server.home.dir}/common/lib/log4j.jar!/" {
+   permission java.lang.RuntimePermission "getClassLoader";
+};
+grant codeBase "jar:file:${jboss.server.home.dir}/common/lib/servlet-api.jar!/" {
+   permission java.lang.RuntimePermission "getClassLoader";
+};
 
 //********************************************
 // Trusted core JBoss code (VFS URL Version)
@@ -86,6 +92,10 @@
 //*******************************************************
 // Trusted Specific JBoss Code (REAL URL Version)
 //*******************************************************
+grant codeBase "file:${jboss.server.home.dir}/conf/bindingservice.beans/jboss-bindingservice.jar/-"{
+   permission java.io.FilePermission "${jboss.home.dir}/deploy/jbossweb.sar/server.xml", "read";
+};
+
 grant codeBase "file:${jboss.server.home.dir}/deploy/http-invoker.sar/invoker.war/-" {
    permission javax.management.MBeanPermission "*", "addNotificationListener,getAttribute";
    permission java.lang.RuntimePermission "getClassLoader";
@@ -99,6 +109,7 @@
    permission javax.management.MBeanTrustPermission "register";
    permission java.net.SocketPermission "*", "accept,listen,resolve";
    permission java.lang.RuntimePermission "getClassLoader";
+   permission java.util.logging.LoggingPermission "control";
 };
 
 
@@ -110,6 +121,12 @@
    permission java.lang.RuntimePermission "getClassLoader";
 };
 
+grant codeBase "jar:file:${jboss.server.home.dir}/conf/bindingservice.beans/jboss-bindingservice.jar!/"{
+   permission java.util.PropertyPermission "*", "write";
+   permission java.io.FilePermission "${jboss.server.home.dir}/deploy/jbossweb.sar/server.xml", "read";
+   permission java.io.FilePermission "${jboss.server.home.dir}/tmp/-", "write,delete";
+};
+
 grant codeBase "jar:file:${jboss.server.home.dir}/deploy/jboss-local-jdbc.rar!/jboss-local-jdbc.jar" {
    permission java.lang.RuntimePermission "getClassLoader";
 };

Copied: branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/SecurityActions.java (from rev 89308, branches/Branch_5_x/varia/src/main/org/jboss/services/binding/impl/SecurityActions.java)
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/SecurityActions.java	                        (rev 0)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/SecurityActions.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2008, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.services.binding.impl;
+
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+
+/**
+ *  Privileged Blocks
+ *  @author Anil.Saldhana at redhat.com
+ *  @since  Sep 10, 2007 
+ *  @version $Revision: 88886 $
+ */
+class SecurityActions
+{
+   static ClassLoader getContextClassLoader()
+   {
+      return AccessController.doPrivileged(new PrivilegedAction<ClassLoader>()
+      {
+         public ClassLoader run()
+         { 
+            return Thread.currentThread().getContextClassLoader();
+         }
+      });
+   }
+   
+   static String getSystemProperty(final String key, final String defaultValue)
+   {
+      return AccessController.doPrivileged(new PrivilegedAction<String>()
+      {
+         public String run()
+         { 
+            return System.getProperty(key, defaultValue); 
+         }
+      });
+   }
+}
\ No newline at end of file

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/Util.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/Util.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/Util.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -140,7 +140,7 @@
    
    public static File createTempFile() throws IOException
    {
-      String tmpName = System.getProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_DIR);
+      String tmpName = System.getProperty(JBossASServerConfig.PROP_KEY_JBOSSAS_SERVER_TEMP_DIR,"");
       File tempDirectory = new File(tmpName);
       File targetFile = File.createTempFile("service-binding", ".tmp", tempDirectory);
       targetFile.deleteOnExit();

Modified: branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/XSLTServiceBindingValueSourceImpl.java
===================================================================
--- branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/XSLTServiceBindingValueSourceImpl.java	2009-05-23 18:15:43 UTC (rev 89312)
+++ branches/Branch_5_x_BootstrapLegacyRemoval/varia/src/main/org/jboss/services/binding/impl/XSLTServiceBindingValueSourceImpl.java	2009-05-23 18:55:19 UTC (rev 89313)
@@ -34,6 +34,8 @@
 import java.io.Writer;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.security.AccessController;
+import java.security.PrivilegedExceptionAction;
 import java.util.Map;
 
 import javax.xml.transform.Result;
@@ -64,7 +66,7 @@
 {
    private static final Logger log = Logger.getLogger(XSLTServiceBindingValueSourceImpl.class);
    
-   public String getResourceServiceBindingValue(ServiceBinding binding, String input)
+   public String getResourceServiceBindingValue(ServiceBinding binding, final String input)
    {
       if (input == null)
          throw new IllegalArgumentException("input cannot be null");
@@ -74,9 +76,15 @@
       Reader reader = null;
       try
       {
-         reader = Util.getInputStreamReader(input);
+         reader = AccessController.doPrivileged(new PrivilegedExceptionAction<Reader>()
+         {
+            public Reader run() throws IOException
+            { 
+               return Util.getInputStreamReader(input);
+            }
+         });
       }
-      catch (IOException e)
+      catch (Exception e)
       {
          throw new RuntimeException("Caught IOException during transformation", e);
       }
@@ -160,14 +168,20 @@
       File targetFile = null;
       try
       {
-         targetFile = Util.createTempFile();
+         targetFile = AccessController.doPrivileged(new PrivilegedExceptionAction<File>()
+         {
+            public File run() throws Exception
+            {
+               return Util.createTempFile();
+            }
+         });
          writer = new OutputStreamWriter(new FileOutputStream(targetFile));
          
          doXslTransform(binding, config, reader, writer);
 
          return targetFile;
       }
-      catch (IOException e)
+      catch (Exception e)
       {
          throw new RuntimeException("Caught IOException during transformation", e);
       }




More information about the jboss-cvs-commits mailing list