Avatar

Level 1

Hi all,

Is there any way to force ADEP to return results from data services in simple AS3 Arrays, not ArrayCollections? Here are my situation:

In my project I use ADEP Data Management Services. To connect to ADEP services we use RTMP channel defined in services-config.xml:


<?xml version="1.0" encoding="UTF-8"?>


<services-config>


...


     <services>


          <service-include file-path="remoting-config.xml" />


          <service-include file-path="proxy-config.xml" />


          <service-include file-path="messaging-config.xml" />


          <service-include file-path="data-management-config.xml" />


          <service-include file-path="managed-remoting-config.xml" />



          <service class="fiber.data.services.ModelDeploymentService" id="model-deploy-service" />


   


          <default-channels>


               <channel ref="my-rtmp"/>


          </default-channels>


     </services>


...


     <channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel">


          <endpoint url="rtmp://{server.name}:1000" class="flex.messaging.endpoints.RTMPEndpoint"/>


          <properties>


               <idle-timeout-minutes>20</idle-timeout-minutes>


               <block-rtmpt-polling-clients>true</block-rtmpt-polling-clients>


               <rtmpt-poll-wait-millis-on-client>0</rtmpt-poll-wait-millis-on-client>


          </properties>


     </channel-definition>


...


</services-config>


To manage data in database we defined data services in data-management-config.xml like this:


<?xml version="1.0" encoding="UTF-8"?>


<service id="data-service" class="flex.data.DataService">



    <adapters>


        <adapter-definition id="java-dao" class="flex.data.adapters.JavaAdapter"/>


        <adapter-definition id="mr-java-dao" class="flex.data.adapters.ManagedRemotingDataAdapter" />


        <adapter-definition id="actionscript" class="flex.data.adapters.ASObjectAdapter" default="true"/>


    </adapters>



    <default-channels>


        <channel ref="my-rtmp"/>


    </default-channels>



    <destination id="SomeProduct.SomeItems">


        <adapter ref="java-dao" />


        <properties>


            <source>flex.data.assemblers.SQLAssembler</source>


            <scope>application</scope>


            <metadata>


                <identity property="ID" />


            </metadata>


            <server>


                <database>


                    <datasource>java:comp/env/jdbc/SP</datasource>


                </database>


                <actionscript-class>com.somecompany.classes.SomeCoolClass</actionscript-class>


                <create-item>


                    <procedure name="SomeItems_Insert">


                        <procedure-param property-value="#Session_ID#" />


                        <procedure-param property-value="#Division_ID#" />


                        <procedure-param property-value="#Salesrep_ID#" />


                        <procedure-param property-value="#Area_Code#" />


                        <procedure-param property-value="#Item_ID#" />


                    </procedure>


                    <id-query>SELECT IDENT_CURRENT('Work_Area_Item')</id-query>


                </create-item>


                <fill>


                    <name>all</name>


                    <procedure name="SomeItems_Get">


                        <procedure-param property-value="#Session_ID#" />


                        <procedure-param property-value="#Last_Sync_Time#" />


                    </procedure>


                </fill>


                <update-item>


                    <procedure name="SomeItems_Update">


                        <procedure-param property-value="#Session_ID#" />


                        <procedure-param property-value="#Division_ID#" />


                        <procedure-param property-value="#Salesrep_ID#" />


                        <procedure-param property-value="#Area_Code#" />


                        <procedure-param property-value="#Item_ID#" />


                   </procedure>


                </update-item>


                <delete-item>


                    <procedure name="SomeItems_Delete">


                        <procedure-param property-value="#Session_ID#" />


                        <procedure-param property-value="#Item_ID#" />


                    </procedure>


                </delete-item>


            </server>


        </properties>


    </destination>



</service>


By default, ADEP returns results from SomeProduct.SomeItems destination to Flex side as ArrayCollection of SomeCoolClass instances but I need the data to be returned in simple AS3 Arrays. Recently, I found that there is small optional serialization configuration in channel-definition that should resolve my problem. So I updated my channel-definition in services-config.xml to this:


<channel-definition id="my-rtmp" class="mx.messaging.channels.RTMPChannel">


     <endpoint url="rtmp://{server.name}:1000" class="flex.messaging.endpoints.RTMPEndpoint"/>


     <properties>


          <serialization>


               <legacy-collection>true</legacy-collection>


          </serialization>


          <idle-timeout-minutes>20</idle-timeout-minutes>


          <block-rtmpt-polling-clients>true</block-rtmpt-polling-clients>


          <rtmpt-poll-wait-millis-on-client>0</rtmpt-poll-wait-millis-on-client>


     </properties>


</channel-definition>


However, result are still returned in ArrayCollections.

Any ideas?

Thanks in advance