12 Replies Latest reply on May 3, 2006 5:44 PM by eguerra

    Client VM Requirements

    eguerra

      Hi everybody,

      What are the VM requirments in the client side ? Im planning to use JBoss Remoting in a wireless network where the client side is a PDA that have VM restrictions.What your opinion about it ?

      Thanks in advance for your help.

      Regards,

      Eduardo

        • 1. Re: Client VM Requirements

          JDK 1.4 and higher is the current requirement. However, I am guessing would work in some J2ME envrionments if just using the socket transport, but don't know all the jdk api restrictions (think only a small subset of the java.net packaged classes are available).

          If you can let us know the restrictions, can try to modify the remoting client invoker to comply (and may add a new transport just for the J2ME case).

          Thanks.

          -Tom

          • 2. Re: Client VM Requirements
            eguerra

            Thanks Tom,

            My solution will just use socket transport. I'll try to discover th restrictions and let you know.

            Eduardo

            • 3. Re: Client VM Requirements
              eguerra

              Hi Tom,

              The PDA client VM is a J2ME CDC 1.0 Personal Profile (WEME from IBM). It means that the restrictions are the same for the J2SE 1.2.2. I have opened the Jboss Remoting source code in Eclipse using J2SE 1.2.2 and found the following problems in the classes I think are needed in the client side:

              1) org.jboss.remoting.transport.socket.SocketClientInvoker --> we don't have in java.net: SocketFactory, SocketTimeout and Socket.isConnected()
              2) org.jboss.remoting.InvokerLocator --> String.replaceAll

              I need to know what are all the classes needed in the client side to build a jboss-remoting-client-pda.jar . Can you help me with it ?

              Regards,

              Eduardo

              • 4. Re: Client VM Requirements

                So are not going to be able to use socket transport on your micro client as is based on the class and methods you mentioned that are not supported.

                I don't know J2ME very well, but if you would be willing to help with testing (and maybe a little coding here and there), I'd be willing to create a special socket based transport for j2me (which would extend the one we have now, but remove the code references not allowed in j2me as you have pointed out above). Could also then package a jboss-remoting-client-pda.jar as well with the distribution.

                • 5. Re: Client VM Requirements
                  eguerra

                  I´m very interested in help with testing and coding the special socket based transport for j2me. I´ve decided to use Jboss Remoting in a real J2ME project in my company, so I will need it.

                  So what is next step ? I think it´s necessary to know all the code references not allowed in j2me. To do this, I need to know the list of classes needed only in the client side. I can discover that, but if you know it could be faster.

                  Regards,

                  Eduardo

                  • 6. Re: Client VM Requirements

                    I've created a jira issue for this (http://jira.jboss.com/jira/browse/JBREM-416). Will need to get modified SocketClientInvoker implemented first, then will move onto creating a j2me jar for testing. Will probably have to be a trial and error on what needs to be stripped out.

                    • 7. Re: Client VM Requirements

                      Hey Eduardo. I am working on the mico implementation of SocketClientInvoker. Was wondering if you could tell me which of the listings on http://java.sun.com/javame/downloads/index.html I should look at to see what API I should try to comply to? There are many there and am just looking for javadoc of classes that will be supported (so can make sure I am in line with that).

                      Thanks.

                      -Tom

                      • 8. Re: Client VM Requirements
                        eguerra

                        Hi Tom,

                        You should try to comply to the J2ME Personal Profile 1.0 (JSR 62). It is the richest profile of the CDC Configuration and is supported by the IBM J9 VM (popular PDA VM).

                        Let me know If I can help with something else.

                        Eduardo

                        • 9. Re: Client VM Requirements

                          I downloaded pp-1_0_01-src-linux-i686.zip (appears that only linux distribution is available?). Frankly speaking, I am totally lost. I have played around with emulators before (from Ericson, Motorola, etc.), but this does not seem to be the same. What would you suggest as the best way to actually compile and run tests under J2ME?

                          Thanks.

                          -Tom

                          • 10. Re: Client VM Requirements
                            eguerra

                            In J2ME there are two configurations named CLDC (more limited resources devices, eg. celular phones) and CDC (limited resources devices, eg. PDAs). The best way to compile and run tests under J2ME is using emulators. For CDLC there are many emulators available for Eclipse and Netbeans IDEs. For CDC, to my knowledgment, only Netbeans has an emulator called "NetBeans Mobility Pack". As I'm an Eclipse user I've done a workaround that I describe below:

                            1. Install the IBM J9 VM - CDC 1.0 - Personal Profile (it implements the CDC Foundation Profile and Personal Profile) [1]
                            2. Install the Eclipse J9 launch plugin [2]
                            3. Config the Eclipse J9 launch plugin:

                            - Click Window->Preferences, then select Java->Installed JREs
                            - Add a new JRE
                            - Choose "J9 VM"
                            - Provide an appropriate name such as "Foundation" or "Personal" (depends on your target profile)
                            - For JRE home, point to your J9 installation path
                            - Uncheck "Use default system libraries"
                            - Delete all libraries listed
                            - Add new libraries that point to your desired configuration. I.e.:
                            %J9_HOME%/lib/charconv.zip
                            %J9_HOME%/lib/jclFoundation10/classes.zip
                            %J9_HOME%/lib/jclFoundation10/locale.zip

                            PS: For Personal Profile you should add the jars in the lib/jclFoundation/ppro10 folder also

                            - Click OK



                            4. Set sample project to use Foundation JRE

                            - Right click on ercpHello project
                            - Select Properties and Java Build Path
                            - Select Libraries tab
                            - Remove JRE System Library
                            - Click Add Library and select JRE System Library
                            - Check Alternate JRE, and select "Foundation" or "Personal" JRE, then click Finish


                            [1] https://www14.software.ibm.com/webapp/iwm/web/reg/download.do?pkgid=&S_SRCID=weme&source=weme&S_TACT=104CBW71&S_CMP=&S_PKG=dl61_linux&s=&ltype=input&l=English+U.S.&mtype=input&m=download&id=2006-04-06+13%3A40%3A41.975747R&fam=&cat=&cp=UTF-8#

                            [2] http://dev.eclipse.org/viewcvs/index.cgi/*checkout*/jdt-debug-home/plugins/org.eclipse.jdt.launching.j9/org.eclipse.jdt.launching.j9_20040318.zip?rev=1.1&content-type=application/zip

                            • 11. Re: Client VM Requirements

                              Hi Eduardo. Looks like I am just not going to have time to setup a dev for this. I have made changes within HEAD for a micro socket client invoker, which should work in terms of API provided within J2ME. Would it be possible for you to take on testing for this and provide feedback as to any other changes I need to make?

                              • 12. Re: Client VM Requirements
                                eguerra

                                Hi Tom, I'll do it and come back soon.

                                Thanks.