http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/012fad7c/attic/apps/team/WEB-INF/src/features/bootstrapservices/MessagingBootstrapService.java
----------------------------------------------------------------------
diff --git 
a/attic/apps/team/WEB-INF/src/features/bootstrapservices/MessagingBootstrapService.java
 
b/attic/apps/team/WEB-INF/src/features/bootstrapservices/MessagingBootstrapService.java
index b1a81ac..60f78ba 100755
--- 
a/attic/apps/team/WEB-INF/src/features/bootstrapservices/MessagingBootstrapService.java
+++ 
b/attic/apps/team/WEB-INF/src/features/bootstrapservices/MessagingBootstrapService.java
@@ -1,330 +1,330 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package features.bootstrapservices;
-
-import java.util.Hashtable;
-
-import flex.messaging.MessageDestination;
-import flex.messaging.config.ConfigMap;
-import flex.messaging.config.NetworkSettings;
-import flex.messaging.config.ServerSettings;
-import flex.messaging.config.ThrottleSettings;
-import flex.messaging.config.ThrottleSettings.Policy;
-import flex.messaging.services.AbstractBootstrapService;
-import flex.messaging.services.Service;
-import flex.messaging.services.messaging.adapters.JMSAdapter;
-import flex.messaging.services.messaging.adapters.JMSSettings;
-
-/**
- * This BootstrapService is used to dynamicaly create a Messaging Service 
along 
- * with its Messaging Destinations without the need for any configuration 
files.
- */
-public class MessagingBootstrapService extends AbstractBootstrapService
-{
-    
-    /**
-     * Called by the <code>MessageBroker</code> after all of the server 
-     * components are created but right before they are started. This is 
-     * usually the place to create dynamic components.
-     * 
-     * @param id Id of the <code>AbstractBootstrapService</code>.
-     * @param properties Properties for the 
<code>AbstractBootstrapService</code>. 
-     */
-    public void initialize(String id, ConfigMap properties)
-    {
-        Service messagingService = createService();
-        createDestination1(messagingService);
-        createDestination2(messagingService);
-    }
-
-    /**
-     * Called by the <code>MessageBroker</code> as server starts. Useful for
-     * custom code that needs to run after all the components are initialized
-     * and the server is starting up. 
-     */    
-    public void start()
-    {
-        // No-op.
-    }
-
-    /**
-     * Called by the <code>MessageBroker</code> as server stops. Useful for 
-     * custom code that needs to run as the server is shutting down.
-     */
-    public void stop()
-    {
-        // No-op.
-    }
-
-    /*
-    <?xml version="1.0" encoding="UTF-8"?>
-    <service id="message-service" 
class="flex.messaging.services.MessageService">
-
-    <!-- Example messaging-config.xml -->
-
-    <adapters>
-        <!--
-           id: a unique id specifying the adapter
-           class: the Flex Enterprise class which implements the adapter
-             possible values: 
flex.messaging.services.messaging.adapters.ActionScriptAdapter
-                              
flex.messaging.services.messaging.adapters.JMSAdapter
-                              coldfusion.flex.CFEventGatewayAdapter
-           default: an optional attribute identifying the adapter to use when 
none is specified
-        -->
-        <adapter-definition id="actionscript" 
class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" 
default="true" />
-        <adapter-definition id="jms" 
class="flex.messaging.services.messaging.adapters.JMSAdapter"/>
-     </adapters>
-     */
-    private Service createService()
-    {
-        String serviceId = "messaging-service";
-        String serviceClass = "flex.messaging.services.MessageService";
-        Service messageService = broker.createService(serviceId, serviceClass);
-
-        messageService.registerAdapter("actionscript", 
"flex.messaging.services.messaging.adapters.ActionScriptAdapter");
-        messageService.registerAdapter("jms", 
"flex.messaging.services.messaging.adapters.JMSAdapter");
-        messageService.setDefaultAdapter("actionscript");
-
-        return messageService;
-    }
-
-    /*
-    <!-- Example ActionScriptAdapter destination -->
-    <destination id="MyTopic">
-        <properties>
-            <network>
-                <!--
-                   Idle time in minutes for a subscriber to receive no messages
-                   that triggers it to be automatically unsubscribed.
-                   0 means don't force subscribers to unsubscribe 
automatically.
-                   Default value is 0.
-                -->
-                <subscription-timeout-minutes>0</subscription-timeout-minutes>
-
-                <!--
-                   Throttling can be set up destination-wide as well as 
per-client. 
-                   The inbound policy may be NONE, ERROR or IGNORE and the 
outbound policy may be NONE and IGNORE.
-                   All throttle frequency values are considered the maximum 
allowed messages per second.
-                   A frequency of 0 disables throttling altogether.
-                -->
-                <throttle-inbound policy="ERROR" max-frequency="0"/>
-                <throttle-outbound policy="IGNORE" max-frequency="0"/>
-            </network>
-
-            <server>
-                <!-- Max number of messages to maintain in memory cache -->
-                <max-cache-size>1000</max-cache-size>
-
-                <!-- message-time-to-live of 0 means live forever -->
-                <message-time-to-live>0</message-time-to-live>
-
-                <!-- 
-                   The subtopic feature lets you divide the messages that a 
Producer component sends to a destination 
-                   into specific categories at the destination.  You can 
configure a Consumer component that subscribes to 
-                   the destination to receive only messages sent to a specific 
subtopic or set of subtopics.  You use 
-                   wildcard characters (*) to send or receive messages from 
more than one subtopic.  The subtopic-separator 
-                   element is optional; the default value is period
-                -->
-                <allow-subtopics>true</allow-subtopics>
-                <subtopic-separator>.</subtopic-separator>
-
-                <!-- 
-                    Used to choose the algorithm for routing messages in a 
cluster.
-                    When set to server-to-server (the default), subscriptions 
are 
-                    broadcast through the cluster to ensure each server knows 
which 
-                    destinations, subtopics, and selector expressions define 
subscriptions
-                    for clients connected to other servers.  When a data 
message
-                    arrives, it is then only sent to servers who have clients 
interested
-                    in that message.  The other value for this setting 
"broadcast"
-                    will simply broadcast all data messages to all servers.  
In this
-                    mode, subscribe/unsubscribe messages are not sent across 
the cluster
-                -->
-                
<cluster-message-routing>server-to-server</cluster-message-routing>
-            </server>
-        </properties>
-
-        <channels>
-            <!--
-               Set the ref id of the default channels to use as transport for 
this service.
-               The channel is defined elsewhere using the channel-definition 
tag.
-            -->
-            <channel ref="my-polling-amf"/>
-        </channels>
-    </destination>
-    */
-    private void createDestination1(Service service)
-    {
-        String destinationId = "MyTopic";
-        MessageDestination destination = 
(MessageDestination)service.createDestination(destinationId);
-        
-        NetworkSettings ns = new NetworkSettings();
-        ns.setSubscriptionTimeoutMinutes(0);
-        ThrottleSettings ts = new ThrottleSettings();
-        ts.setInboundPolicy(Policy.ERROR);
-        ts.setIncomingDestinationFrequency(0);
-        ts.setOutboundPolicy(Policy.IGNORE);
-        ts.setOutgoingDestinationFrequency(0);
-        ns.setThrottleSettings(ts);
-        destination.setNetworkSettings(ns);
-        
-        ServerSettings ss = new ServerSettings();
-        ss.setMessageTTL(0);
-        ss.setBroadcastRoutingMode("server-to-server");
-        destination.setServerSettings(ss);
-
-        destination.addChannel("my-polling-amf");
-    }
-
-    /*
-    <!-- Example JMSAdapter destination -->
-    <destination id="MyJMSTopic">
-        <properties>
-            <server>
-                <!-- Optional. Default is false. This option is currently only 
used by JMS
-                     adapter when the destination-type is Topic. In that case, 
durable JMS
-                     consumers will be used by the JMS adapter. Note that this 
does not 
-                     guarantee durability between Flex clients and JMS adapter 
but rather
-                     between JMS adapter and JMS server.
-                <durable>false</durable>
-            </server>
-
-            <!-- For specifics on JMS, please reference the Java Message 
Service specification or your J2EE server documentation -->
-            <jms>
-                <!--
-                   This determines whether the adapter is performing topic 
(pub/sub) or queue (point-to-point) messaging.
-                   This element is optional and defaults to Topic.
-
-                <destination-type>Topic</destination-type>
-                -->
-
-                <!--
-                   The name of the destination in JMS
-                   This element is optional and defaults to the destination id
-
-                <destination-name>FlexTopic</destination-name>
-                -->
-
-                <!--
-                   The javax.jms.Message type which the adapter should use for 
this destination.
-                   Supported types: javax.jms.TextMessage, 
javax.jms.ObjectMessage
-                -->
-                <message-type>javax.jms.TextMessage</message-type>
-
-                <!-- The name of the JMS connection factory in JNDI -->
-                
<connection-factory>jms/flex/TopicConnectionFactory</connection-factory>
-
-                <!-- The name of the destination in JNDI -->
-                
<destination-jndi-name>jms/topic/flex/simpletopic</destination-jndi-name>
-
-                <!-- The JMS DeliveryMode for producers -->
-                <delivery-mode>NON_PERSISTENT</delivery-mode>
-
-                <!-- The JMS priority for messages sent by Flash producers -->
-                <message-priority>DEFAULT_PRIORITY</message-priority>
-
-                <!--
-                   The message acknowledgement mode for the JMS adapter
-                   None of these modes require any action on the part of the 
Flex messaging client.
-                   Supported modes:
-                     AUTO_ACKNOWLEDGE - the JMS provider client runtime 
automatically acknowledges the messages
-                     DUPS_OK_ACKNOWLEDGE - auto-acknowledgement of the 
messages is not required
-                     CLIENT_ACKNOWLEDGE - the JMS adapter should acknowledge 
that the message was received
-                -->
-                <acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
-
-                <!-- The JMS session transaction mode -->
-                <transacted-sessions>false</transacted-sessions>
-                
-                <!--
-                    The maximum number of producer proxies that this 
destination
-                    should use when communicating with the JMS Server. The 
default
-                    is 1 which implies all clients using this destinatin will
-                    share the same connection to the JMS server.
-                -->
-                <max-producers>1</max-producers>
-                
-                <!-- (Optional) JNDI environment. Use when using JMS on a 
remote JNDI server. 
-                Used to specify the JNDI environment to access an external JMS 
provider. 
-                -->
-                <initial-context-environment>
-                    <property>
-                        <name>Context.SECURITY_PRINCIPAL</name>
-                        <value>anonymous</value>
-                    </property>
-                    <property>
-                        <name>Context.SECURITY_CREDENTIALS</name>
-                        <value>anonymous</value>
-                    </property>
-                    <property>
-                        <name>Context.PROVIDER_URL</name>
-                        <value>http://{server.name}:1856</value>
-                    </property>
-                    <property>
-                        <name>Context.INITIAL_CONTEXT_FACTORY</name>
-                        
<value>fiorano.jms.runtime.naming.FioranoInitialContextFactory</value>
-                    </property>
-                </initial-context-environment>
-            </jms>
-        </properties>
-
-        <channels>
-            <channel ref="my-polling-amf"/>
-        </channels>
-
-        <security>
-            <security-constraint ref="sample-users"/>
-        </security>
-
-        <adapter ref="jms"/>
-    </destination>
-     */
-    private void createDestination2(Service service)
-    {
-        String destinationId = "MyJMSTopic";
-        MessageDestination destination = 
(MessageDestination)service.createDestination(destinationId);
-
-        ServerSettings ss = new ServerSettings();
-        ss.setDurable(false);
-        destination.setServerSettings(ss);
-
-        String adapterId = "jms";
-        JMSAdapter adapter = (JMSAdapter)destination.createAdapter(adapterId);
-
-        // JMS settings are set at the adapter level
-        JMSSettings jms = new JMSSettings();
-        jms.setDestinationType("Topic");
-        jms.setMessageType("javax.jms.TextMessage");
-        jms.setConnectionFactory("jms/flex/TopicConnectionFactory");
-        jms.setDestinationJNDIName("jms/topic/flex/simpletopic");
-        jms.setDeliveryMode("NON_PERSISTENT");
-        //jms.setMessagePriority(javax.jms.Message.DEFAULT_PRIORITY);
-        jms.setAcknowledgeMode("AUTO_ACKNOWLEDGE");
-        jms.setMaxProducers(1);
-        Hashtable envProps = new Hashtable();
-        envProps.put("Context.SECURITY_PRINCIPAL", "anonymous");
-        envProps.put("Context.SECURITY_CREDENTIALS", "anonymous");
-        envProps.put("Context.PROVIDER_URL", "http://{server.name}:1856";);
-        envProps.put("Context.INITIAL_CONTEXT_FACTORY", 
"fiorano.jms.runtime.naming.FioranoInitialContextFactory");
-        jms.setInitialContextEnvironment(envProps);
-        adapter.setJMSSettings(jms);
-
-        destination.setSecurityConstraint("sample-users");
-
-        destination.addChannel("my-polling-amf");
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package features.bootstrapservices;
+
+import java.util.Hashtable;
+
+import flex.messaging.MessageDestination;
+import flex.messaging.config.ConfigMap;
+import flex.messaging.config.NetworkSettings;
+import flex.messaging.config.ServerSettings;
+import flex.messaging.config.ThrottleSettings;
+import flex.messaging.config.ThrottleSettings.Policy;
+import flex.messaging.services.AbstractBootstrapService;
+import flex.messaging.services.Service;
+import flex.messaging.services.messaging.adapters.JMSAdapter;
+import flex.messaging.services.messaging.adapters.JMSSettings;
+
+/**
+ * This BootstrapService is used to dynamicaly create a Messaging Service 
along 
+ * with its Messaging Destinations without the need for any configuration 
files.
+ */
+public class MessagingBootstrapService extends AbstractBootstrapService
+{
+    
+    /**
+     * Called by the <code>MessageBroker</code> after all of the server 
+     * components are created but right before they are started. This is 
+     * usually the place to create dynamic components.
+     * 
+     * @param id Id of the <code>AbstractBootstrapService</code>.
+     * @param properties Properties for the 
<code>AbstractBootstrapService</code>. 
+     */
+    public void initialize(String id, ConfigMap properties)
+    {
+        Service messagingService = createService();
+        createDestination1(messagingService);
+        createDestination2(messagingService);
+    }
+
+    /**
+     * Called by the <code>MessageBroker</code> as server starts. Useful for
+     * custom code that needs to run after all the components are initialized
+     * and the server is starting up. 
+     */    
+    public void start()
+    {
+        // No-op.
+    }
+
+    /**
+     * Called by the <code>MessageBroker</code> as server stops. Useful for 
+     * custom code that needs to run as the server is shutting down.
+     */
+    public void stop()
+    {
+        // No-op.
+    }
+
+    /*
+    <?xml version="1.0" encoding="UTF-8"?>
+    <service id="message-service" 
class="flex.messaging.services.MessageService">
+
+    <!-- Example messaging-config.xml -->
+
+    <adapters>
+        <!--
+           id: a unique id specifying the adapter
+           class: the Flex Enterprise class which implements the adapter
+             possible values: 
flex.messaging.services.messaging.adapters.ActionScriptAdapter
+                              
flex.messaging.services.messaging.adapters.JMSAdapter
+                              coldfusion.flex.CFEventGatewayAdapter
+           default: an optional attribute identifying the adapter to use when 
none is specified
+        -->
+        <adapter-definition id="actionscript" 
class="flex.messaging.services.messaging.adapters.ActionScriptAdapter" 
default="true" />
+        <adapter-definition id="jms" 
class="flex.messaging.services.messaging.adapters.JMSAdapter"/>
+     </adapters>
+     */
+    private Service createService()
+    {
+        String serviceId = "messaging-service";
+        String serviceClass = "flex.messaging.services.MessageService";
+        Service messageService = broker.createService(serviceId, serviceClass);
+
+        messageService.registerAdapter("actionscript", 
"flex.messaging.services.messaging.adapters.ActionScriptAdapter");
+        messageService.registerAdapter("jms", 
"flex.messaging.services.messaging.adapters.JMSAdapter");
+        messageService.setDefaultAdapter("actionscript");
+
+        return messageService;
+    }
+
+    /*
+    <!-- Example ActionScriptAdapter destination -->
+    <destination id="MyTopic">
+        <properties>
+            <network>
+                <!--
+                   Idle time in minutes for a subscriber to receive no messages
+                   that triggers it to be automatically unsubscribed.
+                   0 means don't force subscribers to unsubscribe 
automatically.
+                   Default value is 0.
+                -->
+                <subscription-timeout-minutes>0</subscription-timeout-minutes>
+
+                <!--
+                   Throttling can be set up destination-wide as well as 
per-client. 
+                   The inbound policy may be NONE, ERROR or IGNORE and the 
outbound policy may be NONE and IGNORE.
+                   All throttle frequency values are considered the maximum 
allowed messages per second.
+                   A frequency of 0 disables throttling altogether.
+                -->
+                <throttle-inbound policy="ERROR" max-frequency="0"/>
+                <throttle-outbound policy="IGNORE" max-frequency="0"/>
+            </network>
+
+            <server>
+                <!-- Max number of messages to maintain in memory cache -->
+                <max-cache-size>1000</max-cache-size>
+
+                <!-- message-time-to-live of 0 means live forever -->
+                <message-time-to-live>0</message-time-to-live>
+
+                <!-- 
+                   The subtopic feature lets you divide the messages that a 
Producer component sends to a destination 
+                   into specific categories at the destination.  You can 
configure a Consumer component that subscribes to 
+                   the destination to receive only messages sent to a specific 
subtopic or set of subtopics.  You use 
+                   wildcard characters (*) to send or receive messages from 
more than one subtopic.  The subtopic-separator 
+                   element is optional; the default value is period
+                -->
+                <allow-subtopics>true</allow-subtopics>
+                <subtopic-separator>.</subtopic-separator>
+
+                <!-- 
+                    Used to choose the algorithm for routing messages in a 
cluster.
+                    When set to server-to-server (the default), subscriptions 
are 
+                    broadcast through the cluster to ensure each server knows 
which 
+                    destinations, subtopics, and selector expressions define 
subscriptions
+                    for clients connected to other servers.  When a data 
message
+                    arrives, it is then only sent to servers who have clients 
interested
+                    in that message.  The other value for this setting 
"broadcast"
+                    will simply broadcast all data messages to all servers.  
In this
+                    mode, subscribe/unsubscribe messages are not sent across 
the cluster
+                -->
+                
<cluster-message-routing>server-to-server</cluster-message-routing>
+            </server>
+        </properties>
+
+        <channels>
+            <!--
+               Set the ref id of the default channels to use as transport for 
this service.
+               The channel is defined elsewhere using the channel-definition 
tag.
+            -->
+            <channel ref="my-polling-amf"/>
+        </channels>
+    </destination>
+    */
+    private void createDestination1(Service service)
+    {
+        String destinationId = "MyTopic";
+        MessageDestination destination = 
(MessageDestination)service.createDestination(destinationId);
+        
+        NetworkSettings ns = new NetworkSettings();
+        ns.setSubscriptionTimeoutMinutes(0);
+        ThrottleSettings ts = new ThrottleSettings();
+        ts.setInboundPolicy(Policy.ERROR);
+        ts.setIncomingDestinationFrequency(0);
+        ts.setOutboundPolicy(Policy.IGNORE);
+        ts.setOutgoingDestinationFrequency(0);
+        ns.setThrottleSettings(ts);
+        destination.setNetworkSettings(ns);
+        
+        ServerSettings ss = new ServerSettings();
+        ss.setMessageTTL(0);
+        ss.setBroadcastRoutingMode("server-to-server");
+        destination.setServerSettings(ss);
+
+        destination.addChannel("my-polling-amf");
+    }
+
+    /*
+    <!-- Example JMSAdapter destination -->
+    <destination id="MyJMSTopic">
+        <properties>
+            <server>
+                <!-- Optional. Default is false. This option is currently only 
used by JMS
+                     adapter when the destination-type is Topic. In that case, 
durable JMS
+                     consumers will be used by the JMS adapter. Note that this 
does not 
+                     guarantee durability between Flex clients and JMS adapter 
but rather
+                     between JMS adapter and JMS server.
+                <durable>false</durable>
+            </server>
+
+            <!-- For specifics on JMS, please reference the Java Message 
Service specification or your J2EE server documentation -->
+            <jms>
+                <!--
+                   This determines whether the adapter is performing topic 
(pub/sub) or queue (point-to-point) messaging.
+                   This element is optional and defaults to Topic.
+
+                <destination-type>Topic</destination-type>
+                -->
+
+                <!--
+                   The name of the destination in JMS
+                   This element is optional and defaults to the destination id
+
+                <destination-name>FlexTopic</destination-name>
+                -->
+
+                <!--
+                   The javax.jms.Message type which the adapter should use for 
this destination.
+                   Supported types: javax.jms.TextMessage, 
javax.jms.ObjectMessage
+                -->
+                <message-type>javax.jms.TextMessage</message-type>
+
+                <!-- The name of the JMS connection factory in JNDI -->
+                
<connection-factory>jms/flex/TopicConnectionFactory</connection-factory>
+
+                <!-- The name of the destination in JNDI -->
+                
<destination-jndi-name>jms/topic/flex/simpletopic</destination-jndi-name>
+
+                <!-- The JMS DeliveryMode for producers -->
+                <delivery-mode>NON_PERSISTENT</delivery-mode>
+
+                <!-- The JMS priority for messages sent by Flash producers -->
+                <message-priority>DEFAULT_PRIORITY</message-priority>
+
+                <!--
+                   The message acknowledgement mode for the JMS adapter
+                   None of these modes require any action on the part of the 
Flex messaging client.
+                   Supported modes:
+                     AUTO_ACKNOWLEDGE - the JMS provider client runtime 
automatically acknowledges the messages
+                     DUPS_OK_ACKNOWLEDGE - auto-acknowledgement of the 
messages is not required
+                     CLIENT_ACKNOWLEDGE - the JMS adapter should acknowledge 
that the message was received
+                -->
+                <acknowledge-mode>AUTO_ACKNOWLEDGE</acknowledge-mode>
+
+                <!-- The JMS session transaction mode -->
+                <transacted-sessions>false</transacted-sessions>
+                
+                <!--
+                    The maximum number of producer proxies that this 
destination
+                    should use when communicating with the JMS Server. The 
default
+                    is 1 which implies all clients using this destinatin will
+                    share the same connection to the JMS server.
+                -->
+                <max-producers>1</max-producers>
+                
+                <!-- (Optional) JNDI environment. Use when using JMS on a 
remote JNDI server. 
+                Used to specify the JNDI environment to access an external JMS 
provider. 
+                -->
+                <initial-context-environment>
+                    <property>
+                        <name>Context.SECURITY_PRINCIPAL</name>
+                        <value>anonymous</value>
+                    </property>
+                    <property>
+                        <name>Context.SECURITY_CREDENTIALS</name>
+                        <value>anonymous</value>
+                    </property>
+                    <property>
+                        <name>Context.PROVIDER_URL</name>
+                        <value>http://{server.name}:1856</value>
+                    </property>
+                    <property>
+                        <name>Context.INITIAL_CONTEXT_FACTORY</name>
+                        
<value>fiorano.jms.runtime.naming.FioranoInitialContextFactory</value>
+                    </property>
+                </initial-context-environment>
+            </jms>
+        </properties>
+
+        <channels>
+            <channel ref="my-polling-amf"/>
+        </channels>
+
+        <security>
+            <security-constraint ref="sample-users"/>
+        </security>
+
+        <adapter ref="jms"/>
+    </destination>
+     */
+    private void createDestination2(Service service)
+    {
+        String destinationId = "MyJMSTopic";
+        MessageDestination destination = 
(MessageDestination)service.createDestination(destinationId);
+
+        ServerSettings ss = new ServerSettings();
+        ss.setDurable(false);
+        destination.setServerSettings(ss);
+
+        String adapterId = "jms";
+        JMSAdapter adapter = (JMSAdapter)destination.createAdapter(adapterId);
+
+        // JMS settings are set at the adapter level
+        JMSSettings jms = new JMSSettings();
+        jms.setDestinationType("Topic");
+        jms.setMessageType("javax.jms.TextMessage");
+        jms.setConnectionFactory("jms/flex/TopicConnectionFactory");
+        jms.setDestinationJNDIName("jms/topic/flex/simpletopic");
+        jms.setDeliveryMode("NON_PERSISTENT");
+        //jms.setMessagePriority(javax.jms.Message.DEFAULT_PRIORITY);
+        jms.setAcknowledgeMode("AUTO_ACKNOWLEDGE");
+        jms.setMaxProducers(1);
+        Hashtable envProps = new Hashtable();
+        envProps.put("Context.SECURITY_PRINCIPAL", "anonymous");
+        envProps.put("Context.SECURITY_CREDENTIALS", "anonymous");
+        envProps.put("Context.PROVIDER_URL", "http://{server.name}:1856";);
+        envProps.put("Context.INITIAL_CONTEXT_FACTORY", 
"fiorano.jms.runtime.naming.FioranoInitialContextFactory");
+        jms.setInitialContextEnvironment(envProps);
+        adapter.setJMSSettings(jms);
+
+        destination.setSecurityConstraint("sample-users");
+
+        destination.addChannel("my-polling-amf");
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/012fad7c/attic/apps/team/WEB-INF/src/features/bootstrapservices/RemotingBootstrapService.java
----------------------------------------------------------------------
diff --git 
a/attic/apps/team/WEB-INF/src/features/bootstrapservices/RemotingBootstrapService.java
 
b/attic/apps/team/WEB-INF/src/features/bootstrapservices/RemotingBootstrapService.java
index 4765c8c..8422a17 100755
--- 
a/attic/apps/team/WEB-INF/src/features/bootstrapservices/RemotingBootstrapService.java
+++ 
b/attic/apps/team/WEB-INF/src/features/bootstrapservices/RemotingBootstrapService.java
@@ -1,220 +1,220 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package features.bootstrapservices;
-
-import flex.messaging.config.ConfigMap;
-import flex.messaging.services.AbstractBootstrapService;
-import flex.messaging.services.Service;
-import flex.messaging.services.remoting.RemotingDestination;
-
-/**
- * This BootstrapService is used to dynamicaly create a Remoting Service along 
- * with its Remoting Destinations without the need for any configuration files.
- */
-public class RemotingBootstrapService extends AbstractBootstrapService
-{
-
-    /**
-     * Called by the <code>MessageBroker</code> after all of the server 
-     * components are created but right before they are started. This is 
-     * usually the place to create dynamic components.
-     * 
-     * @param id Id of the <code>AbstractBootstrapService</code>.
-     * @param properties Properties for the 
<code>AbstractBootstrapService</code>. 
-     */
-    public void initialize(String id, ConfigMap properties)
-    {
-        Service remotingService = createService();
-        createDestination1(remotingService);
-        createDestination2(remotingService);
-        createDestination3(remotingService);
-    }
-
-    /**
-     * Called by the <code>MessageBroker</code> as server starts. Useful for
-     * custom code that needs to run after all the components are initialized
-     * and the server is starting up. 
-     */    
-    public void start()
-    {
-        // No-op.
-    }
-
-    /**
-     * Called by the <code>MessageBroker</code> as server stops. Useful for 
-     * custom code that needs to run as the server is shutting down.
-     */
-    public void stop()
-    {
-        // No-op.
-    }
-
-    /*
-    <?xml version="1.0" encoding="UTF-8"?>
-    <service id="remoting-service" 
class="flex.messaging.services.RemotingService">
-
-        <!-- Example remoting-config.xml -->
-
-        <!--
-            The set of adapters available for this service. A service uses an 
-            adapter to handle the implementation specifc details of a 
-            destination.
-        -->
-        <adapters>
-            <!--
-                id: A unique id for this adapter-definition. Destinations use 
this
-                    id to select which adapter should be used to process 
requests.
-                class: The implementation class for the adapter. A single 
Remoting 
-                    Service adapter ships with Flex 2:
-                        flex.messaging.services.remoting.adapters.JavaAdapter
-                default: An optional boolean attribute identifying the adapter 
to
-                    use when none is specified for a destination.
-            -->
-            <adapter-definition id="java-object"
-                class="flex.messaging.services.remoting.adapters.JavaAdapter"
-                default="true"/>
-        </adapters>
-
-        <!--
-            The set of default channels to use to transport messages to 
-            remoting-service destinations.
-        -->
-        <default-channels>
-           <!--
-               ref: A reference to a channel-definition id. Channels are 
defined
-               in the top level configuration file.
-            -->
-            <channel ref="my-amf"/>
-            <channel ref="my-http"/>
-        </default-channels>
-    */
-    private Service createService()
-    {
-        String serviceId = "remoting-service";
-        String serviceClass = "flex.messaging.services.RemotingService";
-        Service remotingService = broker.createService(serviceId, 
serviceClass);
-
-        String adapterId = "java-object";
-        String adapterClass = 
"flex.messaging.services.remoting.adapters.JavaAdapter";
-        remotingService.registerAdapter(adapterId, adapterClass);
-        remotingService.setDefaultAdapter(adapterId);
-
-        remotingService.addDefaultChannel("my-amf");
-        remotingService.addDefaultChannel("my-http");
-
-        return remotingService;
-    }
-
-    /*
-    <!-- 
-        A simple example. 
-        
-        This destination uses the default set of channels 'my-amf' and 
-        'my-http', relies on the default adapter configured for this service, 
-        'java-object' (an instance of JavaAdapter), will use the default 
factory
-        of the JavaAdapter - the flex.messaging.factories.JavaFactory, and 
-        POJO instances of the class specified by the source property will be 
-        created in the default scope, the 'request' scope.
-    -->
-    <destination id="sample">
-        <properties>
-            <!-- source is the Java class name of the destination -->
-            <source>my.company.SampleService</source>
-        </properties>
-    </destination>
-     */
-    private void createDestination1(Service service)
-    {
-        String destinationId = "sample";
-        RemotingDestination destination = 
(RemotingDestination)service.createDestination(destinationId);
-        destination.setSource("my.company.SampleService");
-    }
-
-    /*
-    <!-- 
-        A more complex example.
-
-        A custom factory is used to create instances of the source specified
-        for this destination. Instances will be shared between requests in
-        the same session. This destination also restricts access to 
-        authenticated users who are in the 'sampleusers' role.
-    -->
-    <destination id="sampleByFactoryAndSecure">
-        <security>
-            <security-constraint ref="sample-users" />
-        </security>
-        <properties>
-            <!-- 
-                myJavaFactory is defined in the main configuration file. The 
-                source and all other properties are used by the factory to 
-                create the java class. Factory instance provides the java class
-                based on the properties provided such as scope.
-            -->
-            <factory>myJavaFactory</factory>
-            <source>my.company.SampleService</source>
-            <!-- Possible scope values are request, session or application. -->
-            <scope>session</scope>
-        </properties>
-    </destination>
-     */
-    private void createDestination2(Service service)
-    {
-        String destinationId = "sampleByFactoryAndSecure";
-        RemotingDestination destination = 
(RemotingDestination)service.createDestination(destinationId);
-        destination.setSecurityConstraint("sample-users");
-        destination.setFactory("myJavaFactory");
-        destination.setSource("my.company.SampleService");
-        destination.setScope("session");
-    }
-
-    /*
-    <!--
-        A verbose example using child tags.
-    -->
-    <destination id="sampleVerbose">
-        <channels>
-            <channel ref="my-secure-amf" />
-            <channel ref="my-secure-http" />
-        </channels>
-        <adapter ref="java-object" />
-        <security>
-            <security-constraint ref="sample-users" />
-        </security>
-        <properties>
-            <source>my.company.SampleService</source>
-            <scope>session</scope>
-            <factory>myJavaFactory</factory>
-        </properties>
-    </destination>
-     */
-    private void createDestination3(Service service)
-    {
-        String destinationId = "sampleVerbose";
-        RemotingDestination destination = 
(RemotingDestination)service.createDestination(destinationId);
-        destination.addChannel("my-secure-amf");
-        destination.addChannel("my-secure-http");
-        
-        String adapterId = "java-object";
-        destination.createAdapter(adapterId);
-        
-        destination.setSecurityConstraint("sample-users");
-        destination.setSource("my.company.SampleService");
-        destination.setScope("session");
-        destination.setFactory("myJavaFactory");
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package features.bootstrapservices;
+
+import flex.messaging.config.ConfigMap;
+import flex.messaging.services.AbstractBootstrapService;
+import flex.messaging.services.Service;
+import flex.messaging.services.remoting.RemotingDestination;
+
+/**
+ * This BootstrapService is used to dynamicaly create a Remoting Service along 
+ * with its Remoting Destinations without the need for any configuration files.
+ */
+public class RemotingBootstrapService extends AbstractBootstrapService
+{
+
+    /**
+     * Called by the <code>MessageBroker</code> after all of the server 
+     * components are created but right before they are started. This is 
+     * usually the place to create dynamic components.
+     * 
+     * @param id Id of the <code>AbstractBootstrapService</code>.
+     * @param properties Properties for the 
<code>AbstractBootstrapService</code>. 
+     */
+    public void initialize(String id, ConfigMap properties)
+    {
+        Service remotingService = createService();
+        createDestination1(remotingService);
+        createDestination2(remotingService);
+        createDestination3(remotingService);
+    }
+
+    /**
+     * Called by the <code>MessageBroker</code> as server starts. Useful for
+     * custom code that needs to run after all the components are initialized
+     * and the server is starting up. 
+     */    
+    public void start()
+    {
+        // No-op.
+    }
+
+    /**
+     * Called by the <code>MessageBroker</code> as server stops. Useful for 
+     * custom code that needs to run as the server is shutting down.
+     */
+    public void stop()
+    {
+        // No-op.
+    }
+
+    /*
+    <?xml version="1.0" encoding="UTF-8"?>
+    <service id="remoting-service" 
class="flex.messaging.services.RemotingService">
+
+        <!-- Example remoting-config.xml -->
+
+        <!--
+            The set of adapters available for this service. A service uses an 
+            adapter to handle the implementation specifc details of a 
+            destination.
+        -->
+        <adapters>
+            <!--
+                id: A unique id for this adapter-definition. Destinations use 
this
+                    id to select which adapter should be used to process 
requests.
+                class: The implementation class for the adapter. A single 
Remoting 
+                    Service adapter ships with Flex 2:
+                        flex.messaging.services.remoting.adapters.JavaAdapter
+                default: An optional boolean attribute identifying the adapter 
to
+                    use when none is specified for a destination.
+            -->
+            <adapter-definition id="java-object"
+                class="flex.messaging.services.remoting.adapters.JavaAdapter"
+                default="true"/>
+        </adapters>
+
+        <!--
+            The set of default channels to use to transport messages to 
+            remoting-service destinations.
+        -->
+        <default-channels>
+           <!--
+               ref: A reference to a channel-definition id. Channels are 
defined
+               in the top level configuration file.
+            -->
+            <channel ref="my-amf"/>
+            <channel ref="my-http"/>
+        </default-channels>
+    */
+    private Service createService()
+    {
+        String serviceId = "remoting-service";
+        String serviceClass = "flex.messaging.services.RemotingService";
+        Service remotingService = broker.createService(serviceId, 
serviceClass);
+
+        String adapterId = "java-object";
+        String adapterClass = 
"flex.messaging.services.remoting.adapters.JavaAdapter";
+        remotingService.registerAdapter(adapterId, adapterClass);
+        remotingService.setDefaultAdapter(adapterId);
+
+        remotingService.addDefaultChannel("my-amf");
+        remotingService.addDefaultChannel("my-http");
+
+        return remotingService;
+    }
+
+    /*
+    <!-- 
+        A simple example. 
+        
+        This destination uses the default set of channels 'my-amf' and 
+        'my-http', relies on the default adapter configured for this service, 
+        'java-object' (an instance of JavaAdapter), will use the default 
factory
+        of the JavaAdapter - the flex.messaging.factories.JavaFactory, and 
+        POJO instances of the class specified by the source property will be 
+        created in the default scope, the 'request' scope.
+    -->
+    <destination id="sample">
+        <properties>
+            <!-- source is the Java class name of the destination -->
+            <source>my.company.SampleService</source>
+        </properties>
+    </destination>
+     */
+    private void createDestination1(Service service)
+    {
+        String destinationId = "sample";
+        RemotingDestination destination = 
(RemotingDestination)service.createDestination(destinationId);
+        destination.setSource("my.company.SampleService");
+    }
+
+    /*
+    <!-- 
+        A more complex example.
+
+        A custom factory is used to create instances of the source specified
+        for this destination. Instances will be shared between requests in
+        the same session. This destination also restricts access to 
+        authenticated users who are in the 'sampleusers' role.
+    -->
+    <destination id="sampleByFactoryAndSecure">
+        <security>
+            <security-constraint ref="sample-users" />
+        </security>
+        <properties>
+            <!-- 
+                myJavaFactory is defined in the main configuration file. The 
+                source and all other properties are used by the factory to 
+                create the java class. Factory instance provides the java class
+                based on the properties provided such as scope.
+            -->
+            <factory>myJavaFactory</factory>
+            <source>my.company.SampleService</source>
+            <!-- Possible scope values are request, session or application. -->
+            <scope>session</scope>
+        </properties>
+    </destination>
+     */
+    private void createDestination2(Service service)
+    {
+        String destinationId = "sampleByFactoryAndSecure";
+        RemotingDestination destination = 
(RemotingDestination)service.createDestination(destinationId);
+        destination.setSecurityConstraint("sample-users");
+        destination.setFactory("myJavaFactory");
+        destination.setSource("my.company.SampleService");
+        destination.setScope("session");
+    }
+
+    /*
+    <!--
+        A verbose example using child tags.
+    -->
+    <destination id="sampleVerbose">
+        <channels>
+            <channel ref="my-secure-amf" />
+            <channel ref="my-secure-http" />
+        </channels>
+        <adapter ref="java-object" />
+        <security>
+            <security-constraint ref="sample-users" />
+        </security>
+        <properties>
+            <source>my.company.SampleService</source>
+            <scope>session</scope>
+            <factory>myJavaFactory</factory>
+        </properties>
+    </destination>
+     */
+    private void createDestination3(Service service)
+    {
+        String destinationId = "sampleVerbose";
+        RemotingDestination destination = 
(RemotingDestination)service.createDestination(destinationId);
+        destination.addChannel("my-secure-amf");
+        destination.addChannel("my-secure-http");
+        
+        String adapterId = "java-object";
+        destination.createAdapter(adapterId);
+        
+        destination.setSecurityConstraint("sample-users");
+        destination.setSource("my.company.SampleService");
+        destination.setScope("session");
+        destination.setFactory("myJavaFactory");
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/012fad7c/attic/apps/team/WEB-INF/src/features/messaging/customadapter/CustomActionscriptAdapter.java
----------------------------------------------------------------------
diff --git 
a/attic/apps/team/WEB-INF/src/features/messaging/customadapter/CustomActionscriptAdapter.java
 
b/attic/apps/team/WEB-INF/src/features/messaging/customadapter/CustomActionscriptAdapter.java
index 28f02ce..c5fa57e 100755
--- 
a/attic/apps/team/WEB-INF/src/features/messaging/customadapter/CustomActionscriptAdapter.java
+++ 
b/attic/apps/team/WEB-INF/src/features/messaging/customadapter/CustomActionscriptAdapter.java
@@ -1,96 +1,96 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package features.messaging.customadapter;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import flex.messaging.MessageClient;
-import flex.messaging.MessageClientListener;
-import flex.messaging.messages.CommandMessage;
-import flex.messaging.services.messaging.adapters.ActionScriptAdapter;
-
-/**
- * A sample custom adapter that keeps track its own subscriptions.
- */
-public class CustomActionscriptAdapter extends ActionScriptAdapter implements 
MessageClientListener
-{
-    /**
-     * Set of subscriptions (clientIds).
-     */
-    private Set<String> clientIds = new HashSet<String>();
-
-    /**
-     * Default constructor adds itself as the MessageClient created listener so
-     * it can get creation notifications as Consumers subscribe (and 
MessageClients
-     * get created for them on the server).
-     */
-    public CustomActionscriptAdapter()
-    {
-        MessageClient.addMessageClientCreatedListener(this);
-    }
-
-    /**
-     * Manage method is called when Consumer subscribes/unsubscribes.
-     * Override to update the clientIds set.
-     */
-    @Override public Object manage(CommandMessage commandMessage)
-    {
-        int operation = commandMessage.getOperation();
-        String clientId = (String)commandMessage.getClientId();
-        switch (operation)
-        {
-            case CommandMessage.SUBSCRIBE_OPERATION:
-                clientIds.add(clientId);
-                break;
-            case CommandMessage.UNSUBSCRIBE_OPERATION:
-                clientIds.remove(clientId);
-                break;
-            default:
-                break;
-        }
-        return super.manage(commandMessage);
-    }
-
-    /**
-     * Return true, so manage method gets called as Consumer subscribes.
-     */
-    public boolean handlesSubscriptions()
-    {
-        return true;
-    }
-
-    /**
-     * Implements {@link 
MessageClientListener#messageClientCreated(MessageClient)}
-     */
-    public void messageClientCreated(MessageClient messageClient)
-    {
-        // Add the adapter as MessageClient destroyed listener, so it can get
-        // destruction notifications as the MessageClient gets destroyed due to
-        // Consumer unsubscribe, disconnect, or session invalidation.
-        messageClient.addMessageClientDestroyedListener(this);
-    }
-
-    /**
-     * Implements {@link 
MessageClientListener#messageClientDestroyed(MessageClient)}
-     */
-    public void messageClientDestroyed(MessageClient messageClient)
-    {
-        String clientId = (String)messageClient.getClientId();
-        clientIds.remove(clientId);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package features.messaging.customadapter;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import flex.messaging.MessageClient;
+import flex.messaging.MessageClientListener;
+import flex.messaging.messages.CommandMessage;
+import flex.messaging.services.messaging.adapters.ActionScriptAdapter;
+
+/**
+ * A sample custom adapter that keeps track its own subscriptions.
+ */
+public class CustomActionscriptAdapter extends ActionScriptAdapter implements 
MessageClientListener
+{
+    /**
+     * Set of subscriptions (clientIds).
+     */
+    private Set<String> clientIds = new HashSet<String>();
+
+    /**
+     * Default constructor adds itself as the MessageClient created listener so
+     * it can get creation notifications as Consumers subscribe (and 
MessageClients
+     * get created for them on the server).
+     */
+    public CustomActionscriptAdapter()
+    {
+        MessageClient.addMessageClientCreatedListener(this);
+    }
+
+    /**
+     * Manage method is called when Consumer subscribes/unsubscribes.
+     * Override to update the clientIds set.
+     */
+    @Override public Object manage(CommandMessage commandMessage)
+    {
+        int operation = commandMessage.getOperation();
+        String clientId = (String)commandMessage.getClientId();
+        switch (operation)
+        {
+            case CommandMessage.SUBSCRIBE_OPERATION:
+                clientIds.add(clientId);
+                break;
+            case CommandMessage.UNSUBSCRIBE_OPERATION:
+                clientIds.remove(clientId);
+                break;
+            default:
+                break;
+        }
+        return super.manage(commandMessage);
+    }
+
+    /**
+     * Return true, so manage method gets called as Consumer subscribes.
+     */
+    public boolean handlesSubscriptions()
+    {
+        return true;
+    }
+
+    /**
+     * Implements {@link 
MessageClientListener#messageClientCreated(MessageClient)}
+     */
+    public void messageClientCreated(MessageClient messageClient)
+    {
+        // Add the adapter as MessageClient destroyed listener, so it can get
+        // destruction notifications as the MessageClient gets destroyed due to
+        // Consumer unsubscribe, disconnect, or session invalidation.
+        messageClient.addMessageClientDestroyedListener(this);
+    }
+
+    /**
+     * Implements {@link 
MessageClientListener#messageClientDestroyed(MessageClient)}
+     */
+    public void messageClientDestroyed(MessageClient messageClient)
+    {
+        String clientId = (String)messageClient.getClientId();
+        clientIds.remove(clientId);
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/012fad7c/attic/apps/team/WEB-INF/src/features/messaging/serverpush/ServerPushService.java
----------------------------------------------------------------------
diff --git 
a/attic/apps/team/WEB-INF/src/features/messaging/serverpush/ServerPushService.java
 
b/attic/apps/team/WEB-INF/src/features/messaging/serverpush/ServerPushService.java
index 4acfd37..5f46143 100755
--- 
a/attic/apps/team/WEB-INF/src/features/messaging/serverpush/ServerPushService.java
+++ 
b/attic/apps/team/WEB-INF/src/features/messaging/serverpush/ServerPushService.java
@@ -1,130 +1,130 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package features.messaging.serverpush;
-
-import java.util.concurrent.Callable;
-import java.util.concurrent.Executors;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
-
-import flex.messaging.FlexContext;
-import flex.messaging.MessageBroker;
-import flex.messaging.messages.AsyncMessage;
-import flex.messaging.messages.Message;
-import flex.messaging.util.UUIDUtils;
-
-/**
- * This class can be used as a remote object by Flex client to start/stop 
pushing
- * messages from the server.
- */
-public class ServerPushService
-{
-    static int INFINITE_RUN = -1;
-
-    ScheduledExecutorService messagePushService;
-    MessageBroker broker;
-    int messageCount;
-    int currentRunCount;
-    int runCount;
-
-    public ServerPushService()
-    {
-        broker = FlexContext.getMessageBroker();
-    }
-
-    /**
-     * Push the specified number of messages per the specified number of 
millis,
-     * runCount number of times (-1 means indefinitely) to the specified 
destination.
-     */
-    public void startPush(String destinationId, int numberOfMessages, long 
numberOfMillis, int runCount)
-    {
-        startPush(destinationId, null, numberOfMessages, numberOfMillis, 
runCount);
-    }
-
-    /**
-     * Push the specified number of messages per the specified number of 
millis,
-     * runCount number of times (-1 means indefinitely) to the specified 
destination
-     * and subtopic.
-     */
-    public void startPush(String destinationId, String subtopic, int 
numberOfMessages, long numberOfMillis, int runCount)
-    {
-        if (messagePushService == null)
-            messagePushService = Executors.newScheduledThreadPool(10);
-
-        this.runCount = runCount;
-        currentRunCount = 0;
-
-        System.out.println("*** ServerPushService started: sending '" + 
numberOfMessages
-                + "' messages in '" + numberOfMillis + "ms' to destination '" 
+ destinationId + "'[" + subtopic + "].");
-
-        MessageSenderCallable msc = new MessageSenderCallable(destinationId, 
subtopic, numberOfMessages, numberOfMillis);
-        messagePushService.schedule(msc, numberOfMillis, 
TimeUnit.MILLISECONDS);
-    }
-
-    public void stopPush()
-    {
-        if (messagePushService != null)
-        {
-            System.out.println("*** ServerPushService stopped.");
-            messagePushService.shutdown();
-            messagePushService = null;
-        }
-    }
-
-    class MessageSenderCallable implements Callable<Object>
-    {
-        private String destinationId;
-        private int numberOfMessages;
-        private long numberOfMillis;
-        private String subtopic;
-
-        public MessageSenderCallable(String destinationId, String subtopic, 
int numberOfMessages, long numberOfMillis)
-        {
-            this.destinationId = destinationId;
-            this.numberOfMessages = numberOfMessages;
-            this.numberOfMillis = numberOfMillis;
-            this.subtopic = subtopic;
-        }
-
-        public Object call() throws Exception
-        {
-            for (int i = 0; i < numberOfMessages; i++)
-            {
-                Message message = createMessage();
-                broker.routeMessageToService(message, null);
-            }
-            if (runCount == INFINITE_RUN || ++currentRunCount < runCount)
-            {
-                MessageSenderCallable messageSenderCallable = new 
MessageSenderCallable(destinationId, subtopic, numberOfMessages, 
numberOfMillis);
-                messagePushService.schedule(messageSenderCallable, 
numberOfMillis, TimeUnit.MILLISECONDS);
-            }
-            return null;
-        }
-
-        private Message createMessage()
-        {
-            AsyncMessage msg = new AsyncMessage();
-            msg.setDestination(destinationId);
-            msg.setMessageId(UUIDUtils.createUUID(false));
-            msg.setTimestamp(System.currentTimeMillis());
-            msg.setBody("Foo" + messageCount++);
-            if (subtopic != null)
-                msg.setHeader(AsyncMessage.SUBTOPIC_HEADER_NAME, subtopic);
-            return msg;
-        }
-    }
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package features.messaging.serverpush;
+
+import java.util.concurrent.Callable;
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.TimeUnit;
+
+import flex.messaging.FlexContext;
+import flex.messaging.MessageBroker;
+import flex.messaging.messages.AsyncMessage;
+import flex.messaging.messages.Message;
+import flex.messaging.util.UUIDUtils;
+
+/**
+ * This class can be used as a remote object by Flex client to start/stop 
pushing
+ * messages from the server.
+ */
+public class ServerPushService
+{
+    static int INFINITE_RUN = -1;
+
+    ScheduledExecutorService messagePushService;
+    MessageBroker broker;
+    int messageCount;
+    int currentRunCount;
+    int runCount;
+
+    public ServerPushService()
+    {
+        broker = FlexContext.getMessageBroker();
+    }
+
+    /**
+     * Push the specified number of messages per the specified number of 
millis,
+     * runCount number of times (-1 means indefinitely) to the specified 
destination.
+     */
+    public void startPush(String destinationId, int numberOfMessages, long 
numberOfMillis, int runCount)
+    {
+        startPush(destinationId, null, numberOfMessages, numberOfMillis, 
runCount);
+    }
+
+    /**
+     * Push the specified number of messages per the specified number of 
millis,
+     * runCount number of times (-1 means indefinitely) to the specified 
destination
+     * and subtopic.
+     */
+    public void startPush(String destinationId, String subtopic, int 
numberOfMessages, long numberOfMillis, int runCount)
+    {
+        if (messagePushService == null)
+            messagePushService = Executors.newScheduledThreadPool(10);
+
+        this.runCount = runCount;
+        currentRunCount = 0;
+
+        System.out.println("*** ServerPushService started: sending '" + 
numberOfMessages
+                + "' messages in '" + numberOfMillis + "ms' to destination '" 
+ destinationId + "'[" + subtopic + "].");
+
+        MessageSenderCallable msc = new MessageSenderCallable(destinationId, 
subtopic, numberOfMessages, numberOfMillis);
+        messagePushService.schedule(msc, numberOfMillis, 
TimeUnit.MILLISECONDS);
+    }
+
+    public void stopPush()
+    {
+        if (messagePushService != null)
+        {
+            System.out.println("*** ServerPushService stopped.");
+            messagePushService.shutdown();
+            messagePushService = null;
+        }
+    }
+
+    class MessageSenderCallable implements Callable<Object>
+    {
+        private String destinationId;
+        private int numberOfMessages;
+        private long numberOfMillis;
+        private String subtopic;
+
+        public MessageSenderCallable(String destinationId, String subtopic, 
int numberOfMessages, long numberOfMillis)
+        {
+            this.destinationId = destinationId;
+            this.numberOfMessages = numberOfMessages;
+            this.numberOfMillis = numberOfMillis;
+            this.subtopic = subtopic;
+        }
+
+        public Object call() throws Exception
+        {
+            for (int i = 0; i < numberOfMessages; i++)
+            {
+                Message message = createMessage();
+                broker.routeMessageToService(message, null);
+            }
+            if (runCount == INFINITE_RUN || ++currentRunCount < runCount)
+            {
+                MessageSenderCallable messageSenderCallable = new 
MessageSenderCallable(destinationId, subtopic, numberOfMessages, 
numberOfMillis);
+                messagePushService.schedule(messageSenderCallable, 
numberOfMillis, TimeUnit.MILLISECONDS);
+            }
+            return null;
+        }
+
+        private Message createMessage()
+        {
+            AsyncMessage msg = new AsyncMessage();
+            msg.setDestination(destinationId);
+            msg.setMessageId(UUIDUtils.createUUID(false));
+            msg.setTimestamp(System.currentTimeMillis());
+            msg.setBody("Foo" + messageCount++);
+            if (subtopic != null)
+                msg.setHeader(AsyncMessage.SUBTOPIC_HEADER_NAME, subtopic);
+            return msg;
+        }
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/012fad7c/attic/apps/team/WEB-INF/src/features/remoting/AMFConnectionTest.java
----------------------------------------------------------------------
diff --git 
a/attic/apps/team/WEB-INF/src/features/remoting/AMFConnectionTest.java 
b/attic/apps/team/WEB-INF/src/features/remoting/AMFConnectionTest.java
index 55c6574..8bf62a5 100755
--- a/attic/apps/team/WEB-INF/src/features/remoting/AMFConnectionTest.java
+++ b/attic/apps/team/WEB-INF/src/features/remoting/AMFConnectionTest.java
@@ -1,76 +1,76 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package features.remoting;
-
-import flex.messaging.io.amf.client.AMFConnection;
-import flex.messaging.io.amf.client.exceptions.ClientStatusException;
-import flex.messaging.io.amf.client.exceptions.ServerStatusException;
-
-/**
- * An AMFConnection sample that talks to a remoting destination.
- */
-public class AMFConnectionTest
-{
-    private static final String DEFAULT_URL = 
"http://localhost:8400/team/messagebroker/amf";;
-    private static final String DEFAULT_DESTINATION_ID = "remoting_AMF";
-
-    /**
-     * Given a remote method name, returns the AMF connection call needed using
-     * the default destination id.
-     */
-    private static String getOperationCall(String method)
-    {
-        return DEFAULT_DESTINATION_ID + "." + method;
-    }
-
-    // Not a test, just an example to show how to use AMFConnection.
-    public static void main(String[] args2)
-    {
-        // Create the AMF connection.
-        AMFConnection amfConnection = new AMFConnection();
-
-        // Connect to the remote url.
-        try
-        {
-            amfConnection.connect(DEFAULT_URL);
-        }
-        catch (ClientStatusException cse)
-        {
-            cse.printStackTrace();
-        }
-
-        // Make a remoting call and retrieve the result.
-        try
-        {
-            Object result = amfConnection.call(getOperationCall("echo"), 
"Foo");
-            System.out.println("Result: " + result);
-        }
-        catch (ClientStatusException cse)
-        {
-            cse.printStackTrace();
-        }
-        catch (ServerStatusException sse)
-        {
-            sse.printStackTrace();
-        }
-        finally
-        {
-            System.out.println("Done");
-            amfConnection.close();
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package features.remoting;
+
+import flex.messaging.io.amf.client.AMFConnection;
+import flex.messaging.io.amf.client.exceptions.ClientStatusException;
+import flex.messaging.io.amf.client.exceptions.ServerStatusException;
+
+/**
+ * An AMFConnection sample that talks to a remoting destination.
+ */
+public class AMFConnectionTest
+{
+    private static final String DEFAULT_URL = 
"http://localhost:8400/team/messagebroker/amf";;
+    private static final String DEFAULT_DESTINATION_ID = "remoting_AMF";
+
+    /**
+     * Given a remote method name, returns the AMF connection call needed using
+     * the default destination id.
+     */
+    private static String getOperationCall(String method)
+    {
+        return DEFAULT_DESTINATION_ID + "." + method;
+    }
+
+    // Not a test, just an example to show how to use AMFConnection.
+    public static void main(String[] args2)
+    {
+        // Create the AMF connection.
+        AMFConnection amfConnection = new AMFConnection();
+
+        // Connect to the remote url.
+        try
+        {
+            amfConnection.connect(DEFAULT_URL);
+        }
+        catch (ClientStatusException cse)
+        {
+            cse.printStackTrace();
+        }
+
+        // Make a remoting call and retrieve the result.
+        try
+        {
+            Object result = amfConnection.call(getOperationCall("echo"), 
"Foo");
+            System.out.println("Result: " + result);
+        }
+        catch (ClientStatusException cse)
+        {
+            cse.printStackTrace();
+        }
+        catch (ServerStatusException sse)
+        {
+            sse.printStackTrace();
+        }
+        finally
+        {
+            System.out.println("Done");
+            amfConnection.close();
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/012fad7c/attic/apps/team/WEB-INF/src/features/remoting/EchoService.java
----------------------------------------------------------------------
diff --git a/attic/apps/team/WEB-INF/src/features/remoting/EchoService.java 
b/attic/apps/team/WEB-INF/src/features/remoting/EchoService.java
index a50712f..818a3ac 100755
--- a/attic/apps/team/WEB-INF/src/features/remoting/EchoService.java
+++ b/attic/apps/team/WEB-INF/src/features/remoting/EchoService.java
@@ -1,130 +1,130 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * A simple class that simply echoes back the provided text. Used by remoting
- * samples.
- */
-package features.remoting;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import features.remoting.externalizable.ExternalizableClass;
-import flex.messaging.io.BeanProxy;
-import flex.messaging.io.PropertyProxyRegistry;
-
-public class EchoService
-{
-    // Making sure the read-only properties of ReadOnly class are serialized
-    // back to the client.
-    static
-    {
-        PropertyProxyRegistry registry = PropertyProxyRegistry.getRegistry();
-        BeanProxy beanProxy = new BeanProxy();
-        beanProxy.setIncludeReadOnly(true);
-        registry.register(ReadOnly.class, beanProxy);
-    }
-
-    public String echo(String text)
-    {
-        return "I received '" + text + "' from you";
-    }
-
-    public int echoInt(int value)
-    {
-        return value;
-    }
-
-    public boolean echoBoolean(boolean value)
-    {
-        return value;
-    }
-
-    public List echoDenseArray(List array)
-    {
-        return array;
-    }
-
-    public Map echoSparseArray(Map array)
-    {
-        return array;
-    }
-
-    public Map echoMap(Map map)
-    {
-        return map;
-    }
-
-    public Map echoDictionary(Map dict)
-    {
-        return dict;
-    }
-
-    public Object echoIntVector(Object vector)
-    {
-        return vector;
-    }
-
-    public Object echoUIntVector(Object vector)
-    {
-        return vector;
-    }
-
-    public Object echoDoubleVector(Object vector)
-    {
-        return vector;
-    }
-
-    public Object echoObjectVector(Object vector)
-    {
-        return vector;
-    }
-
-    public Object echoStringVector(Object vector)
-    {
-        return vector;
-    }
-
-    public ExternalizableClass echoExternalizableClass(ExternalizableClass 
value)
-    {
-        return value;
-    }
-
-    public ReadOnly echoReadOnly()
-    {
-        ReadOnly ro = new ReadOnly("property1");
-        return ro;
-    }
-
-    // A Class that only has a read-only property.
-    public class ReadOnly
-    {
-        private String property;
-
-        public ReadOnly(String property)
-        {
-            this.property = property;
-        }
-
-        public String getProperty()
-        {
-            return property;
-        }
-    }
-}
-
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/**
+ * A simple class that simply echoes back the provided text. Used by remoting
+ * samples.
+ */
+package features.remoting;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import features.remoting.externalizable.ExternalizableClass;
+import flex.messaging.io.BeanProxy;
+import flex.messaging.io.PropertyProxyRegistry;
+
+public class EchoService
+{
+    // Making sure the read-only properties of ReadOnly class are serialized
+    // back to the client.
+    static
+    {
+        PropertyProxyRegistry registry = PropertyProxyRegistry.getRegistry();
+        BeanProxy beanProxy = new BeanProxy();
+        beanProxy.setIncludeReadOnly(true);
+        registry.register(ReadOnly.class, beanProxy);
+    }
+
+    public String echo(String text)
+    {
+        return "I received '" + text + "' from you";
+    }
+
+    public int echoInt(int value)
+    {
+        return value;
+    }
+
+    public boolean echoBoolean(boolean value)
+    {
+        return value;
+    }
+
+    public List echoDenseArray(List array)
+    {
+        return array;
+    }
+
+    public Map echoSparseArray(Map array)
+    {
+        return array;
+    }
+
+    public Map echoMap(Map map)
+    {
+        return map;
+    }
+
+    public Map echoDictionary(Map dict)
+    {
+        return dict;
+    }
+
+    public Object echoIntVector(Object vector)
+    {
+        return vector;
+    }
+
+    public Object echoUIntVector(Object vector)
+    {
+        return vector;
+    }
+
+    public Object echoDoubleVector(Object vector)
+    {
+        return vector;
+    }
+
+    public Object echoObjectVector(Object vector)
+    {
+        return vector;
+    }
+
+    public Object echoStringVector(Object vector)
+    {
+        return vector;
+    }
+
+    public ExternalizableClass echoExternalizableClass(ExternalizableClass 
value)
+    {
+        return value;
+    }
+
+    public ReadOnly echoReadOnly()
+    {
+        ReadOnly ro = new ReadOnly("property1");
+        return ro;
+    }
+
+    // A Class that only has a read-only property.
+    public class ReadOnly
+    {
+        private String property;
+
+        public ReadOnly(String property)
+        {
+            this.property = property;
+        }
+
+        public String getProperty()
+        {
+            return property;
+        }
+    }
+}
+

http://git-wip-us.apache.org/repos/asf/flex-blazeds/blob/012fad7c/attic/apps/team/WEB-INF/src/features/remoting/externalizable/ExternalizableClass.java
----------------------------------------------------------------------
diff --git 
a/attic/apps/team/WEB-INF/src/features/remoting/externalizable/ExternalizableClass.java
 
b/attic/apps/team/WEB-INF/src/features/remoting/externalizable/ExternalizableClass.java
index 897cb82..c681502 100755
--- 
a/attic/apps/team/WEB-INF/src/features/remoting/externalizable/ExternalizableClass.java
+++ 
b/attic/apps/team/WEB-INF/src/features/remoting/externalizable/ExternalizableClass.java
@@ -1,43 +1,43 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package features.remoting.externalizable;
-
-import java.io.Externalizable;
-import java.io.IOException;
-import java.io.ObjectInput;
-import java.io.ObjectOutput;
-
-/**
- * A simple class that uses Externalizable interface to read and write its 
properties.
- */
-public class ExternalizableClass implements Externalizable
-{
-    private String property1;
-    private String property2;
-
-    public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException
-    {
-        property1 = (String)in.readObject();
-        property2 = (String)in.readObject();
-    }
-
-    public void writeExternal(ObjectOutput out) throws IOException
-    {
-        out.writeObject(property1);
-        out.writeObject(property2);
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package features.remoting.externalizable;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+/**
+ * A simple class that uses Externalizable interface to read and write its 
properties.
+ */
+public class ExternalizableClass implements Externalizable
+{
+    private String property1;
+    private String property2;
+
+    public void readExternal(ObjectInput in) throws IOException, 
ClassNotFoundException
+    {
+        property1 = (String)in.readObject();
+        property2 = (String)in.readObject();
+    }
+
+    public void writeExternal(ObjectOutput out) throws IOException
+    {
+        out.writeObject(property1);
+        out.writeObject(property2);
+    }
+}

Reply via email to