OSGI HengSin

From ADempiere
Revision as of 18:06, 20 November 2010 by Red1 (Talk) (Launching from Eclipse: put an image)

Jump to: navigation, search
This Wiki is read-only for reference purposes to avoid broken links.
Heng Sin seen here with two of his technology assistants

Project Space

  • Heng Sin implementation of OSGI is done in another project space under Kenai.
  • His version is based on 3.6.0LTS
  • It is considered alpha stage as certain issues such as Java Client Webstart and refactoring is pending testing.
  • It is due for better use in 2011.

Improvements

WorkflowUI.gif
  • One of the improvements there is the Workflow Editor where boxes look more UML-like.

Backyard Info

  • There is something newbie setup experience documented here.

OSGI Roadmap - November 2010

  • Hengsin is doing more refactoring to the source in his Kenai repository.
    • Callout package is now a separate bundle but Hengsin wants to rewrite it when he can find time later.
    • The launching products are separated into 'adempiere-server' and 'adempiere-client'.
    • Buckminster, a Maven-like plugin in Eclipse is used to manage the import of plugins and builds.
    • The source is launchable from Eclipse for ZKAjax UI and SwingClient.
    • Hengsin is trying to release a beta candidate in a month or so.
    • Meanwhile Redhuan D. Oon is writing up his own guide and experience as led by Hengsin in his new OSGI update.
      • Testing is done by basing on the DB of another working ADempiere 3.6.0LTS. So you should have that done in order to follow the actions here.
    • More feedback on tests will be organised and reported in the Kenai project forum.

Note to MacBook users

ADempiere is now reduced to pure plugins - Eclipse view of OSGI Project by Heng Sin
  • Apple Mac OSX has an issue with launching X on 2nd thread and this is solved by removing the -ws ${target.ws} argument in the launch script. (Hengsin)
  • When debugging from Eclipse, you may need to hack the Tomcat.server.xml to point to your port 8088, and https to 4443

Preparing Your Eclipse IDE

  • You should use the latest Helios version with Equinox and Buckminster plugins udpated.

Getting the Kenai Project into your Eclipse

  • Firstly you should have got a HG Clone into your PC from the Mercurial repository.
  • In a fresh workspace of Eclipse, you create a new empty EquinoxTarget.platform (via Preferences>Plugin)
  • Then Import Projects > Select an import source from Buckminster > Materialize from Buckminster.
    • Browse for the URL under the plugin org.adempiere.sdk.feature selecting the adempiere.cquery.
    • Eclipse will import from the web all the needed plugins into the new target platform folder you created.

Launching from Eclipse

Launch scripts already prepared to appear in Eclipse project

We first setup the properties file one time. You can do the following by giving the values that you already have for your current ADempiere setup in the same machine. So it will reuse your DB.

  • Under the Run As Configurations you will see some launch items.
  • Select install.app (CLI) or install.console.app (GUI) to set the properties file. This is similar to RUN_setup in ADempiere speak.
  • Launch server.product (RUN_Server2.sh in ADempiere speak) to get the Web UI working.
    • You now can access the Web UI using, http://<localhost>:<port>/ without the /admin suffix.
  • Launch swingclient.product to get the JavaClient up and running.

Build and deploying binary

There are two binaries or 'products' created from this OSGI project. One is adempiere-server for launching the server-side Web UI service and adempiere-client for launching the Java Client.

Server Side

  • Go to the plugin (at your Eclipse Package Explorer) right click at org.adempiere.server-feature
  • Select Buckminster > Invoke Action
  • Select create.product
  • In the Properties file line, select workspace again the same i.e. org.adempiere.server-feature drill down to buckminster.properties (or any other depending on your OS) and you should end up with something like: /Users/red1/Documents/workspace/hengsin~development/org.adempiere.server-feature/buckminster.properties in the field. Give it an OK.
  • Press OK to the Buckminster action dialog box and this will take some minutes to compile
  • Find under your desktop a buckminster.output folder
    • Look for a particular folder that contains adempiere-server folder. (hint: org.adempiere.server_1.0.0-eclipse.feature).
    • Put that to your Applications-Home (server-side) location and continue in ADempiere speak.

Client Side

  • Go to the plugin (at your Eclipse Package Explorer) right click at org.adempiere.ui.swing-feature
  • Select Buckminster > Invoke Action
  • Select create.product
  • In the Properties file line, select workspace again the same i.e. org.adempiere.ui.swing-feature drill down to buckminster.properties (or any other depending on your OS) and you should end up with something like: /Users/red1/Documents/workspace/hengsin~development/org.adempiere.server-feature/buckminster.properties in the field. Give it an OK.
  • Press OK to the Buckminster action dialog box and this will take some minutes to compile
  • Find under your desktop a buckminster.output folder
    • Look for a particular folder that contains adempiere-client folder. (hint: org.adempiere.ui.swing_1.0.0-eclipse.feature).
    • Put that to your Applications-Home (client-side) location and continue in ADempiere speak.


Launching from Binary

adempiere-server

  • You should have the following shell or batch executables in your adempiere-server (this is now your ADempiere_Home but server side).
    • setup.sh (previously RUN_setup.sh)
    • setup-alt.sh (this works better in my case)
    • adempiere-server.sh (RUN_server2.sh)
    • adempiere-client.sh (RUN_Adempiere.sh)
    • console-setup.sh
  • You may need to give chmod 777 to your HOME directory first
  • When you ./adempiere-server.sh you will get to run the Web UI as http://<localhost>:<port>/
  • If it does not run you can within the CLI Terminal window look for OSGI bundle status by keying in 'ss'.
    • Look for the bundle number of the org.adempiere.ui or ..zk bundles.
    • Key in start <bundle no.> and try the Web UI again.

adempiere-client

  • You should have the adempiere.client.sh or .bat in your <ADempiere_Home/client side>
  • You just run this shell accordingly similar to the advice for server side.

Issues

  • As of today when launching adempiere-client binary i have all the adempiere bundles not resolved and when started will give such The bundle "org.adempiere.ui_1.0.0.v20101116-0531 [58]" could not be resolved. Reason: Missing Constraint: Bundle-RequiredExecutionEnvironment: JavaSE-1.6
    • There is documentation on this from the web and i will spend some time reading first. - Redhuan D. Oon 13:56, 17 November 2010 (UTC)
      • This is solved (for MacBook users) by going to your System Preferences > Java > and putting the 1.6 as top of list. So this is solved - Redhuan D. Oon 00:34, 20 November 2010 (UTC)

Latest Status

  • This project is proven launchable from Eclipse and from binaries. (If it works on a not-so-Java-centric MacBook, it can work anywhere else).
  • ZK Ajax UI seems to work as far as any trashing i done so far - new windows, reports, views, accts, JSR223 Rules, etc.
  • Java Client works also as above just that the Accounts Viewer definitely get stuck but exitable. (will confirm from a Windows platform later).
  • Log file or log tracing has an issue. It stops at the message 'Adempiere Log (CLogConsole)'.
  • I have to give a B+ for this project even though it is at alpha stage.

How Do You Score?

Tell me what marks you like to give my documenting work here. I do not expect an A+ but who knows. :)

  • (sign here with marks)