Menu

Adempiere modular Extension framework (OSGi)

2008-07-30
2013-03-08
1 2 3 4 > >> (Page 1 of 4)
  • András Schmidt

    András Schmidt - 2008-07-30

    Hi!

    I have read some posts about planning to integrate a modular framework with ADempiere. Sorry I can't find them now so I can not link them. Though I have done some work on the issue.
    My approach was integrating OSGI into ADempiere.

    The features are:

    - Start an embedded OSGI container both on client and server
    - Allow installing, starting and stopping modules without restarting the server
    - Offer classes to be "loaded" as a service by registering them as an osgi service.

    The only changes made to the software are:
    - replace class.forName(name) constructions throughout the code with ClassLoaderUtil.loadClass(name). It is imperative as the few lines of class loading n-plicates code all around the project. This util handles OSGI extension mechanisms _and_ class.forName mechanism. OSGI class loading and later extension mechanisms can then be integrated at a single point.
    - Hook OSGI startup to server and client startup.
    - Include apache felix Osgi framework jar into the project.
    - Add a plugin autoloader funcionality to OSGI that scans a directory for new plugins, so installing a plugin does not require hacking with configuration files.

    This way new improvements could be programmed as modules without the need to change a single line of the build.xml files. It would be much easier to maintain the whole project. Maybe currently integrated parts of the project could be moved to separate OSGI bundles.

    In my testing environment OSGI integration already works except for web start. Is the community interested in this solution?

    András Schmidt

     
    • dellph

      dellph - 2008-07-30

      András,

           Wow this would be great :)  maybe could easily create vertical solutions just making sets of plugins. :) how can we test this?

      dellph

       
      • Ngigi Waithaka

        Ngigi Waithaka - 2008-07-30

        Andras,

        If you could pull of this, I think you would triple the number of contributions into AD. We have previously debated this subject and it has always come down to "..we don't have a plugin architecture..."

        Regards
        Ngigi Waithaka
        Adempiere A1

         
        • dellph

          dellph - 2009-03-21

          joergviola,

                 I have tested your and it works great! hopefully everybody will support it and improve it and indeed adempiere. will become more modular and will grow more fast. thanks joergviola for your greate contribution.

          dellph

           
    • Heng Sin

      Heng Sin - 2008-07-30

      Hi,

      Yes, this have been discuss before and OSGi is one of the prefer module framework. I believe this is a great
      enhancement if you can pull this off.

      Regards,
      Low

       
    • András Schmidt

      András Schmidt - 2008-07-30

      Hi!

      I am happy to hear that you are interested in the feature.

      I have created a wiki entry on adempiere web page, a blog entry on my companies page and sent the patch on sourceforge. The links are:

      http://www.adempiere.com/wiki/index.php/ADempiere/OSGi_Integration

      http://i-erp.i-logic.hu/?q=content/osgi-embedder-adempiere-and-other-projects

      https://sourceforge.net/tracker/index.php?func=detail&aid=2032859&group_id=176962&atid=879334

      You can try it by patching your ADempiere. If you like the implementation someone with commit rights should commit it to trunk.

      I aimed the wiki and the blog entry to be enough documentation. If you have questions don't hesitate to ask me!

      regards,
      András Schmidt

       
      • Redhuan D. Oon

        Redhuan D. Oon - 2008-07-31

        Andras,
        I will put u as one of our contributing member for that in our site and project. U may send your work as patches if they are small enough in the trackers. If u need commit rights, please ask. Probably u can send it to contributions folder then for a start.

        Have a nice day.
        red1

         
        • András Schmidt

          András Schmidt - 2008-07-31

          > I will put u as one of our contributing member for that in our site and project.

          Thank you, that's real pleasure!

          András Schmidt

           
          • Redhuan D. Oon

            Redhuan D. Oon - 2008-08-01

            U re most welcome! I already put your name into our dev list. As for country in our www.adempiere.org i check your biodata in SF and seems that u are in Hungary, so shuld i put u for that?

             
    • Trifon (An ADempiere founder)

      Hello András Schmidt,

      i would like to congratulate you for the nice work and for the willingness to share it with Adempiere community.

      I have reviewed your patch and if understand correctly it will not break existing Adempiere strucutre.
      It just add another packaging/shipment option for Adempiere. So if patch is intergated it will allow Adempiere to be shipped as OSGi application. Is my understanding correct?

      Kind regards,
      Trifon

       
      • András Schmidt

        András Schmidt - 2008-07-31

        Hello Trifon,

        > So if patch is intergated it will allow Adempiere to be shipped as OSGi application.

        Not exactly. ADempiere will not be an OSGi application but it will embed one such a way that extensions can be written as an OSGi plugin.

        The benefit would be that at every point where classes are loaded ClassByNameUtil (all occurences of Class.forName() should be changed to this) the classes can be implemented in OSGi plugin.

        On the long run some modules of ADempiere could be moved to separate OSGi bundles and at the end the whole project can be modularized and can become an OSGi application. In my experience I have found that service oriented modular design has benefit on code maintainability and quality too. To support the idea you should see the success of Eclipse which is built on OSGi now (and was built on an OSGi like framework for long before).

        András Schmidt

         
    • Ramiro Vergara

      Ramiro Vergara - 2008-08-01

      András,

      Great work.

      This could be the start of breakthrough for ADempiere.

      Ramiro

       
    • Joerg Viola

      Joerg Viola - 2009-03-13

      Hi,

      I stumbled over this thread while looking for a way to enable plugins in Adempiere.
      Nice work, András!

      I adopted the sources to the current trunk and repackaged it as a patches.jar (so that
      one is not required to patch the sources themself).
      However I am not convinced by the ClassLoading approach (overwrite classes by plugins),
      but would like some kind of event listener mechanism. Therefore, I created an
      OSGi-service acting as a registry for event listeners.

      Lets take a plugin reacting to user-logins as an example:

      It simply has a method like that:

          public void start(BundleContext context) throws Exception {
              ServiceReference reference = context.getServiceReference(IAdempiereRegistry.class.getName());
              registry = (IAdempiereRegistry) context.getService(reference);
              listener = registry.addLoginListener(new LoginListener());
          }

      where the LoginListener qould consist for example of:

          public void login(LoginEvent event) {
              System.out.println("Login performed: "+event.getUsername());
          }

      It is also quite simple to hook the entry points in Adempiere, in this example in
      org.compiere.util.Login.validateLogin:

          AdempiereOsgiIntegration.getRegistry().fireLogin(new LoginEvent(AD_User_ID));

      That way, the Registry-Service would act as a facade seperating plugins from Adempiere
      core, making them more stable.

      If you are interested, I certainly would provide patches.jar and the example plugin
      or the full sources.

      Cheers - Joerg

       
      • Heng Sin

        Heng Sin - 2009-03-14

        Hi,

        Not sure you have read this before, this is pretty good article on the approach on building extension and services using osgi - http://www.eclipsezone.com/articles/extensions-vs-services/ , a bit old now but still pretty relevant.

        For the registry approach, eclipse osgi framework ( equinox ) already have a very good extension registry bunlde that can be reuse.

        The other things to look at is how to integrate the current Adempiere extension approach with OSGi, for e.g, the modelValidator, we can either implement a extension registry approach, dynamic lookup of services or enter the osgi service name as the model validator classname.

        Regards,
        Low

         
      • Trifon (An ADempiere founder)

        hi Joerg,

        >However I am not convinced by the ClassLoading approach (overwrite classes by plugins),
        >but would like some kind of event listener mechanism. Therefore, I created an 
        >OSGi-service acting as a registry for event listeners.

        I agree that Plug-in(Listener) approach is better.

        Can you please attach sources to contribution request?

        Kind regards,
        Trifon

         
      • Rajan Ahmad

        Rajan Ahmad - 2009-03-17

        Joerg,

        I hope you have rekindle the OSGi thread, it is a fav with the developers and silent supporters like me. You approach is superior, I like your service approach of event listeners. Are you using topics ?

        -Ahmad, Rajan

         
      • Joerg Viola

        Joerg Viola - 2009-03-19

        Thanks for your feedback.

        As hengsin suggested, I took a look at Equinox and it seems superior to felix
        since it provides extension points as plugin hooks.
        Certainly plugin developers will be more or less tied to eclipse, then.

        Unfortunately, I ran into classloading problems: How to expose Adempiere
        internal classes to plugins under Equinox? - I'm working on that.

        Nevertheless, there is a design decision to be done:
        - Do we want to expose internal Adempiere Interfaces (eg. ModelValidator, PO and such)
          to plugins? - This would reduce effort, but tie plugins to the core.
        - Or do we want an "Adempiere facade", separating plugins from the core? -
          Then changes to the core would not immediately affect plugins.

        Me advise would be: Lets go the first way for some alpha stage and gain
        experience.

        Last point: Could you please review the section "Plugins?" here:
        http://www.adempiere.com/wiki/index.php/ADempiere/OSGi_Integration
        and comment on what plugins you expect to be built and what they must be able to do?

         
    • Joerg Viola

      Joerg Viola - 2009-03-21

      Phew,
      this was harder work than expected for an OSGi/Equinox dummy like me.
      But eventually I got it working.
      Thanks to hengsin for the links. Finally I favored an extension fragment over buddy loading.

      The patch is here:
      https://sourceforge.net/tracker2/?func=detail&aid=2700937&group_id=176962&atid=879334
      Since a patch is limited in size, you must add the following jars from an eclipse distribution
      to the directory Adempiere-patch/lib after unpacking:
      org.eclipse.core.contenttype_3.3.0.v20080604-1400.jar
      org.eclipse.core.jobs_3.4.0.v20080512.jar
      org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar
      org.eclipse.core.runtime_3.4.0.v20080512.jar
      org.eclipse.equinox.app_1.1.0.v20080421-2006.jar
      org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
      org.eclipse.equinox.preferences_3.2.201.R34x_v20080709.jar
      org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar
      org.eclipse.osgi.services_3.1.200.v20071203.jar
      org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
      org.eclipse.update.configurator_3.2.201.R34x_v20080819.jar

      A little documentation can be found here:
      http://www.adempiere.com/wiki/index.php/Equinox_Integration

      BEWARE: This is pre-alpha.
      Do not expect to have it installed without any trouble.
      It is only tested in the appserver setup with the ZK UI, not in the swing client
      (though it shoud work there - I will test that, too).

      This release should simply demonstrate the feasibility and the basic concept.

      Feedback welcome as usual!

       
    • Joerg Viola

      Joerg Viola - 2009-03-21

      Phew,
      this was harder work than expected for an OSGi/Equinox dummy like me.
      But eventually I got it working.
      Thanks to hengsin for the links. Finally I favored an extension fragment over buddy loading.

      The patch is here:
      https://sourceforge.net/tracker2/?func=detail&aid=2700937&group_id=176962&atid=879334
      Since a patch is limited in size, you must add the following jars from an eclipse distribution
      to the directory Adempiere-patch/lib after unpacking:
      org.eclipse.core.contenttype_3.3.0.v20080604-1400.jar
      org.eclipse.core.jobs_3.4.0.v20080512.jar
      org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar
      org.eclipse.core.runtime_3.4.0.v20080512.jar
      org.eclipse.equinox.app_1.1.0.v20080421-2006.jar
      org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
      org.eclipse.equinox.preferences_3.2.201.R34x_v20080709.jar
      org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar
      org.eclipse.osgi.services_3.1.200.v20071203.jar
      org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
      org.eclipse.update.configurator_3.2.201.R34x_v20080819.jar

      A little documentation can be found here:
      http://www.adempiere.com/wiki/index.php/Equinox_Integration

      BEWARE: This is pre-alpha.
      Do not expect to have it installed without any trouble.
      It is only tested in the appserver setup with the ZK UI, not in the swing client
      (though it shoud work there - I will test that, too).

      This release should simply demonstrate the feasibility and the basic concept.

      Feedback welcome as usual!

       
      • Victor Perez Juarez

        Hi  Joerg

        Great work with the OSGi, I tried to  followed you instruction, but I cant not get that work

        this my Startup jboss:

        20:53:29,311 INFO  [STDOUT] CLogFile[/Users/e-Evolution/Documents/workspace/adempiereTrunk/adempiere/Adempiere/log/2009-03-21_7.log,Level=ALL]
        20:53:29,315 ERROR [STDERR] *** 2009-03-21 20:53:29.315 Adempiere Log (ConsoleHandler) ***
        20:53:29.314 Adempiere.startup: Adempiere(r) Release 3.5.3a_2008-12-21 -Smart Suite ERP,CRM and SCM- (c) 1999-2009 Adempiere (r); Implementation: ADempiere - Supported by ADempiere community
        20:53:29,315 INFO  [STDOUT] *** 2009-03-21 20:53:29.315 Adempiere Log (CLogConsole) ***
        20:53:29.314 Adempiere.startup: Adempiere(r) Release 3.5.3a_2008-12-21 -Smart Suite ERP,CRM and SCM- (c) 1999-2009 Adempiere (r); Implementation: ADempiere - Supported by ADempiere community
        20:53:29,316 ERROR [STDERR] 20:53:29.316 Ini.loadProperties: /Users/e-Evolution/Documents/workspace/adempiereTrunk/adempiere/Adempiere/Adempiere.properties #33
        20:53:29,316 INFO  [STDOUT] 20:53:29.316 Ini.loadProperties: /Users/e-Evolution/Documents/workspace/adempiereTrunk/adempiere/Adempiere/Adempiere.properties #33
        20:53:29,567 ERROR [STDERR] [INFO] MLog clients using com.mchange.v2.log.FallbackMLog logging.
        20:53:29,794 ERROR [STDERR] [INFO] Initializing c3p0-0.9.1.2 [built 21-May-2007 15:04:56; debug? true; trace: 10]
        20:53:30,090 ERROR [STDERR] [INFO] Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3, acquireRetryAttempts -> 2, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> AdempiereDS, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> org.postgresql.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge16l80c8h3b3tgrh40|4aaeba54, idleConnectionTestPeriod -> 1200, initialPoolSize -> 10, jdbcUrl -> jdbc:postgresql://localhost:5432/adempiere?encoding=UNICODE, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 1200, maxIdleTimeExcessConnections -> 1200, maxPoolSize -> 150, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 5, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> SELECT Version FROM AD_System, properties -> {user=******, password=******}, propertyCycle -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]
        20:53:30,857 INFO  [STDOUT] Starting Equinox...
        20:53:30,967 ERROR [STDERR] -----------> EMail.setFrom: you @ company.org: javax.mail.internet.AddressException: Illegal whitespace in address in string ``you @ company.org''
        20:53:31,003 ERROR [STDERR] -----------> EMail.setFrom: you @ company.org: javax.mail.internet.AddressException: Illegal whitespace in address in string ``you @ company.org''
        20:53:31,005 ERROR [STDERR] -----------> EMail.addTo: you @ company.org: javax.mail.internet.AddressException: Illegal whitespace in address in string ``you @ company.org''
        20:53:31,005 ERROR [STDERR] -----------> EMail.addTo: you @ company.org: javax.mail.internet.AddressException: Illegal whitespace in address in string ``you @ company.org''
        20:53:31,006 ERROR [STDERR] -----------> EMail.isValid: From is invalid=null
        20:53:31,006 ERROR [STDERR] -----------> EMail.isValid: From is invalid=null
        20:53:31,007 ERROR [STDERR] -----------> EMail.isValid: From is invalid=null
        20:53:31,007 ERROR [STDERR] -----------> EMail.isValid: From is invalid=null
        20:53:31,007 ERROR [STDERR] -----------> MClient.sendEMail: Could NOT Send Email: Server started: ? to you @ company.org: Invalid Data (System)
        20:53:31,008 ERROR [STDERR] -----------> MClient.sendEMail: Could NOT Send Email: Server started: ? to you @ company.org: Invalid Data (System)
        20:53:31,101 INFO  [TomcatDeployer] deploy, ctxPath=/admin, warUrl=.../tmp/deploy/tmp21039adempiereRoot-exp.war/
        20:53:31,266 ERROR [STDERR] ===========> Env.getContextAsDate: No value for: #Date
        20:53:31,364 INFO  [STDOUT] Listening on port 1234 ...
        20:53:32,233 ERROR [STDERR] ===========> Env.getContextAsDate: No value for: #Date
        20:53:32,655 INFO  [TomcatDeployer] deploy, ctxPath=/, warUrl=.../tmp/deploy/tmp21042adempiereWebCM-exp.war/

        So I get     

        20:53:30,857 INFO  [STDOUT] Starting Equinox
        20:53:31,364 INFO  [STDOUT] Listening on port 1234 ...

        But I can not see the plugins , so my files configuration

        adempiere/Adempiere/jboss/server/adempiere/deploy/adempiere.ear/lib

        drwxr-xr-x  16 e-Evolution  staff     544 Mar 21 20:53 .
        drwxr-xr-x  16 e-Evolution  staff     544 Mar 21 20:27 ..
        -rw-r--r--@  1 e-Evolution  staff    6148 Mar 21 20:28 .DS_Store
        drwxr-xr-x   7 e-Evolution  staff     238 Mar 21 20:53 configuration
        -rw-r--r--   1 e-Evolution  staff   86977 Mar 21 19:03 org.eclipse.core.contenttype_3.3.0.v20080604-1400.jar
        -rw-r--r--   1 e-Evolution  staff   82559 Mar 21 19:03 org.eclipse.core.jobs_3.4.1.R34x_v20081128.jar
        -rw-r--r--   1 e-Evolution  staff   21219 Mar 21 19:03 org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar
        -rw-r--r--   1 e-Evolution  staff   69026 Mar 21 19:03 org.eclipse.core.runtime_3.4.0.v20080512.jar
        -rw-r--r--   1 e-Evolution  staff   79869 Mar 21 19:03 org.eclipse.equinox.app_1.1.0.v20080421-2006.jar
        -rw-r--r--   1 e-Evolution  staff   94652 Mar 21 19:03 org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
        -rw-r--r--   1 e-Evolution  staff  104285 Mar 21 19:03 org.eclipse.equinox.preferences_3.2.201.R34x_v20080709.jar
        -rw-r--r--   1 e-Evolution  staff  172943 Mar 21 19:03 org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar
        -rw-r--r--   1 e-Evolution  staff   63666 Mar 21 19:03 org.eclipse.osgi.services_3.1.200.v20071203.jar
        -rw-r--r--   1 e-Evolution  staff  997240 Mar 21 19:03 org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
        -rw-r--r--   1 e-Evolution  staff   98001 Mar 21 19:03 org.eclipse.update.configurator_3.2.201.R34x_v20080819.jar
        drwxr-xr-x   6 e-Evolution  staff     204 Mar 21 20:49 plugins

        adempiere/Adempiere/jboss/server/adempiere/deploy/adempiere.ear/lib/configuration

        drwxr-xr-x   7 e-Evolution  staff  238 Mar 21 20:53 .
        drwxr-xr-x  16 e-Evolution  staff  544 Mar 21 20:53 ..
        -rw-r--r--   1 e-Evolution  staff  285 Mar 21 19:03 config.ini
        drwxr-xr-x   3 e-Evolution  staff  102 Mar 21 20:10 org.eclipse.core.runtime
        drwxr-xr-x   3 e-Evolution  staff  102 Mar 21 20:10 org.eclipse.equinox.app
        drwxr-xr-x   6 e-Evolution  staff  204 Mar 21 20:10 org.eclipse.osgi
        drwxr-xr-x   5 e-Evolution  staff  170 Mar 21 20:53 org.eclipse.update

        adempiere/Adempiere/jboss/server/adempiere/deploy/adempiere.ear/lib/plugins

        drwxr-xr-x   6 e-Evolution  staff   204 Mar 21 20:49 .
        drwxr-xr-x  16 e-Evolution  staff   544 Mar 21 20:53 ..
        -rw-r--r--@  1 e-Evolution  staff  6148 Mar 21 20:14 .DS_Store
        -rw-r--r--   1 e-Evolution  staff  3268 Mar 21 20:30 AdempiereEquinox_1.0.0.jar
        -rw-r--r--   1 e-Evolution  staff   849 Mar 21 20:30 AdempiereExtension_1.0.0.jar
        -rw-r--r--   1 e-Evolution  staff  2354 Mar 21 20:49 TestPlugin_1.0.0.jar

        Some idea the what is issue?

        kind regards
        Victor Perez
        www.e-evolution.com

         
        • Joerg Viola

          Joerg Viola - 2009-03-22

          Thanx for testing.
          Could yould you please:
          > telnet localhost 1234
          > ss
          What is the output? You see the bundle named  AdempiereEquinox_1.0.0? - Note its <id> and:
          > stop <id>
          > start <id>
          What do you see on the JBoss console?

           
          • Victor Perez Juarez

            Hi  Joerg!

            I execute the telnet and this are the result

            e-Evolution:~ e-Evolution$ telnet localhost 1234
            Trying ::1...
            Connected to localhost.
            Escape character is '^]'.

            osgi> ss

            Framework is launched.

            id    State       Bundle
            0    ACTIVE      org.eclipse.osgi_3.4.3.R34x_v20081215-1030
                            Fragments=10
            1    ACTIVE      org.eclipse.equinox.common_3.4.0.v20080421-2006
            2    ACTIVE      org.eclipse.update.configurator_3.2.201.R34x_v20080819
            3    ACTIVE      org.eclipse.core.runtime_3.4.0.v20080512
            4    ACTIVE      org.eclipse.core.jobs_3.4.1.R34x_v20081128
            5    ACTIVE      org.eclipse.equinox.registry_3.4.0.v20080516-0950
            6    ACTIVE      org.eclipse.equinox.preferences_3.2.201.R34x_v20080709
            7    ACTIVE      org.eclipse.core.contenttype_3.3.0.v20080604-1400
            8    ACTIVE      org.eclipse.equinox.app_1.1.0.v20080421-2006
            9    <<LAZY>>    AdempiereEquinox_1.0.0
            10    RESOLVED    AdempiereExtension_1.0.0
                            Master=0
            11    <<LAZY>>    TestPlugin_1.0.0

            osgi> stop 9

            osgi> start 9

            14:11:09,967 ERROR [STDERR] -----------> MClient.sendEmailNow: Could NOT Send Email: Inactivity Alert: Request 10000002 to admin @ gardenworld.com: Invalid Data (GardenWorld) [11]
            14:11:50,266 INFO  [STDOUT] Adempiere Host Bundle started
            14:11:50,266 INFO  [STDOUT] Got Val Engine: ModelValidationEngine[Validators=#1, ModelChange=#1, DocValidate=#1]
            14:11:50,269 INFO  [STDOUT] ModelValidator on: AD_User
            14:11:50,270 INFO  [STDOUT] Hello World!!

            So I saw that my issue is that the  AdempiereEquinox  is with status LAZY

            What is the reason some top?

            I want implement you OSGi to Libero in special to replication functionality and account engine.

            Can I get your help for get this goal?

            Thank a lot
            Victor Perez
            www.e-evolution.com

             
            • Joerg Viola

              Joerg Viola - 2009-03-23

              Hi Victor,

              uuh - I just discovered that there is some persistent state in equinox.
              After having deleted all files from lib/configuration (besides config.ini), I had exactly the same behaviour as you. This in fact is the correct behaviour since the eclipse configurator does install all bundles found but not start them.

              There are some discussions on how to auto-start plugins, but there seem to be some problems related to this. Thus I solved it by starting the AdempiereEquinox host bundle explicitely, the other plugins are then started automatically (since their extensions are resolved, I guess).

              I have uploaded a fixed version (only of the patch project) to the tracker:
              https://sourceforge.net/tracker2/?func=detail&aid=2700937&group_id=176962&atid=879334

              Applying OSGi to libero in fact was one of the most advanced goals I had when starting the OSGi thing...
              I would love to support you but please keep in mind:
              1. I am not (yet) an OSGi/Equinox wizard, so please do not always expect immediate answers
              2. The challenge is not OSGi, but cleanly seperating libero code from ADempiere core - but you are the one who can do this, I guess ;-)
              We should start be enumerating what has to be done to a running Adempiere instance to get libero running (new Windows, tabs, fields, tables, columns, processes, callouts - and what else?). And maybe we should start a new thread for this.

              Regards, joerg

               
      • Heng Sin

        Heng Sin - 2009-03-22

        Hi,

        I'm glad that you have make good progress, very good work indeed.

        Another interesting component provided by Equinox is the p2 installer ( http://wiki.eclipse.org/Equinox_p2_Installer ), probably can be a way to build a new online installer & updater for Adempiere.

        Regards,
        Low
        P.S Do you mind to explain what's the advantage of using framework extension over the buddy class loading approach ?

         
1 2 3 4 > >> (Page 1 of 4)

Log in to post a comment.