I-Dempiere Origins: HengSin
THIS PAGE IS BASED ON THE ORIGINAL INFORMATION OF THE LOW HENG SIN IMPLEMENTATION OF ADempiere-OSGi, OVER THE VERSION MAINTAINED BY CARLOS RUIZ "Branch GlobalQSS Adempiere361"
Project Space
- Low Heng Sin improvement Equinox_Integration ADempiere+OSGi of implementation is done in another project space under Kenai.
- His version is based on 3.6.0LTS
- It is undergoing extensive refactoring by Heng Sin and testing review documentation by Redhuan D. Oon.
- It is due for beta release as early as December-end, 2010.
Backyard Info
- There is some newbie setup experience documented here.
Improvements
- Lighter and smaller due to change of App Server to Tomcat instead of JBoss.
- Workflow Editor boxes look more UML-like*.
- Managing the crossing of IDs among different instances with OSGI HengSin/UUID Generator.
- Exporting any Window in 2Pack format.
OSGI Roadmap - November 2010
- Hengsin is doing more refactoring to the source in his Kenai repository.
- Callout package is now a separate bundle. So is 2Pack 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.**
- More feedback on tests will be organised and reported in I-Dempiere Origins: OSGI Hengsin/Beta] and the Kenai project forum.
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
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
- You have to run setup-alt to get your tomcat.server.xml settings right.
- 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)
- 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)
- Other issues of launching can be resolved by checking and validating the plugins at the launch config window, ensuring args has -console added.
Latest Status - Kenai Revision: 6600
- 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).
- Debugged this is probably caused by 'IncompatibleClassChangeError' on JTable. (in progress). - Redhuan D. Oon 02:56, 21 November 2010 (UTC)
- Found out that this is due to bundle split of the org.compiere.report.core between BASE and UI.SWING bundles. Temporary refactoring workaround by moving the entire BASE.org.compiere.report.core to UI.SWING. Now the JTable works for Account Viewer. - Redhuan D. Oon 14:41, 21 November 2010 (UTC)
- Resolved by Hengsin revision 6584 here.
- Log file or log tracing has an issue. It stops at the message 'Adempiere Log (CLogConsole)'.
- False alarm. I traced it to find out that the Log file is written at /Users/red1/Log/<name of log file> as timestamped in *** 2010-12-02 20:38:10.527 Adempiere Log (CLogConsole) ***
- However the checkbox to create TraceFile in Preferences has no effect. This is non critical issue. The Kenai project is thus regarded very testable - Redhuan D. Oon 12:55, 2 December 2010 (UTC)
- Meanwhile all further issues and related version changes will be tracked here at I-Dempiere Origins: OSGI HengSin/Issues. It also contain related documented learning experience.
- I have to give a B+ for this project even though it is at alpha stage.
FootNotes
*Execute this code in your DB to get the Workflow Editor view rightly positioned:
UPDATE ADEMPIERE.AD_WF_Node SET xposition = 1, yposition = 1;
**Testing is done by basing on the DB of a working ADempiere 3.6.0LTS. So you should have that running in order to follow the actions here.
***You have to create an empty folder preferably same name as your target.platform in the workspace project folder. During creation in Preferences>Plugin>TargetPlatform>Add>Empty>Directory, point your target.platform to that folder. During materializing you will notice that folder getting populated (immediately you get artifacts.xml and later, plugin folder).
- If it times out with failure to read from remote error, and your Package Explorer is still empty, repeat the Import Projects step and it will resume from where it stops.
****There may be other non-started bundles you need to manually START:
For adempiere-server
- org.adempiere.tomcat.config
- org.eclipse.gemini.web.tomcat
- org.adempiere.webstore
For adempiere-client (add -console arg in the adempiere-client.sh if it is not there)
- org.eclipse.core.runtime
- org.eclipse.equinox.event
- org.eclipse.equinox.ds
- org.eclipse.equinox.services
- org.adempiere.base
Note to MacBook users
- Apple Mac OSX has an issue with launching X on 1st 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
- Resolved in latest build. Tomcat's server.xml is properly set during install.app.
- To check, go to org.adempiere.tomcat.config/META-INF/tomcat/server.xml.
Full Beta Testing
- In preparation for full beta release and testing please go to I-Dempiere Origins: OSGI Hengsin/Beta].
Download
- OSGI Download Directory as of Revision 6643.
- ExpDat.dmp sample
- adempiere-client - unzip and test on your ADempiere instance.
- adempiere-server - unzip and test on your ADempiere instance.
- 2Pack App Sample
- 2Pack Data Sample
- Run Packin of both these zip files and relogin GardenWorld to see it working.
- Follow the README.txt included in the adempiere-client.jar or from the OSGI Directory.
Links
- SourceForge Discussion Thread for making comments or requests.
- Redhuan D. Oon - Wiki Documenter / Tester
- Low Heng Sin - AD OSGI present architect
- Joerg Viola - AD OSGI pioneer architect
- Kenai repository of OSGI HengSin.
- I-Dempiere Origins: OSGI Hengsin/Beta Testing in progress
- I-Dempiere Origins: OSGI HengSin/Issues in progress
- OSGI HengSin/2Pack/Debugging in progress
Volunteers?
- If you wish to assist please sign in below:
- (sign) / (type of assistance)
- Mdlibunao / Testing and module development
- Michael Gendrala / Testing and module development