OpenJPA
  1. OpenJPA
  2. OPENJPA-1412

OpenJPA Eclipse Tooling plugin/s, Bytecode Enhancer Builder

    Details

    • Type: New Feature New Feature
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: tooling
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      I have built an Eclipse plug-in which allows a user to run the OpenJPA Bytecode Enhancer as a project builder.

      Other functions than enhancement which make sense in Eclipse, e.g. schema generation, could be added in the future.

      The thing works, and has been already undergone some performance testing to try to be optimal.

      The initial contribution will not yet have headless build scripts, but I or a friend of mine may contribute this later based on the new Maven3+Tycho. It does have however an easy one click Eclipse update-site generation thingie which may be enough very short term: in a PDE, just open the site.xml in openjpa-updatesite and click "Build All".

      1. OpenJPA-Eclipse-Builder-with-Maven3-Tycho.zip
        205 kB
        Michael Vorburger
      2. OpenJPA-Eclipse-Builder.zip
        258 kB
        Michael Vorburger

        Issue Links

          Activity

          Hide
          Pinaki Poddar added a comment -

          Hi,
          This is an excellent contribution.
          How to compile/build/deploy this stuff?
          Can you provide some more details on build/deployment of the plugin starting from the *.zip attachement in an Eclipse IDE and/or command-line environment?

          I did click 'Build All' on site.xml – but magically nothing happened

          I could compile by looking for eclipse plugin jars it depends on. This is the list in Eclipse 3.4.2

          ECLIPSE_HOME/plugins/org.eclipse.jface_3.4.2.M20090107-0800.jar
          ECLIPSE_HOME/plugins/org.eclipse.ui.workbench_3.4.2.M20090127-1700.jar
          ECLIPSE_HOME/plugins/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar
          ECLIPSE_HOME/plugins/org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar
          ECLIPSE_HOME/plugins/org.eclipse.core.runtime_3.4.0.v20080512.jar
          ECLIPSE_HOME/plugins/org.eclipse.core.resources_3.4.2.R34x_v20090126.jar
          ECLIPSE_HOME/plugins/org.eclipse.jdt_3.4.2.r342_v20090128.jar
          ECLIPSE_HOME/plugins/org.eclipse.jdt.core_3.4.4.v_894_R34x.jar
          ECLIPSE_HOME/plugins/org.eclipse.core.jobs_3.4.1.R34x_v20081128.jar
          ECLIPSE_HOME/plugins/org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar
          ECLIPSE_HOME/plugins/org.eclipse.jdt.launching_3.4.1.v20080729_r341.jar

          Show
          Pinaki Poddar added a comment - Hi, This is an excellent contribution. How to compile/build/deploy this stuff? Can you provide some more details on build/deployment of the plugin starting from the *.zip attachement in an Eclipse IDE and/or command-line environment? I did click 'Build All' on site.xml – but magically nothing happened I could compile by looking for eclipse plugin jars it depends on. This is the list in Eclipse 3.4.2 ECLIPSE_HOME/plugins/org.eclipse.jface_3.4.2.M20090107-0800.jar ECLIPSE_HOME/plugins/org.eclipse.ui.workbench_3.4.2.M20090127-1700.jar ECLIPSE_HOME/plugins/org.eclipse.equinox.common_3.4.0.v20080421-2006.jar ECLIPSE_HOME/plugins/org.eclipse.osgi_3.4.3.R34x_v20081215-1030.jar ECLIPSE_HOME/plugins/org.eclipse.core.runtime_3.4.0.v20080512.jar ECLIPSE_HOME/plugins/org.eclipse.core.resources_3.4.2.R34x_v20090126.jar ECLIPSE_HOME/plugins/org.eclipse.jdt_3.4.2.r342_v20090128.jar ECLIPSE_HOME/plugins/org.eclipse.jdt.core_3.4.4.v_894_R34x.jar ECLIPSE_HOME/plugins/org.eclipse.core.jobs_3.4.1.R34x_v20081128.jar ECLIPSE_HOME/plugins/org.eclipse.equinox.registry_3.4.0.v20080516-0950.jar ECLIPSE_HOME/plugins/org.eclipse.jdt.launching_3.4.1.v20080729_r341.jar
          Hide
          Michael Vorburger added a comment - - edited

          Said friend of mine has kindly lent an evening to this effort: find attached new OpenJPA-Eclipse-Builder-with-Maven3-Tycho.zip which builds the whole thing (including a ready-to-publish update-site!) in an unattended/headless mode suitable for an integration server via "mvn install" ! The ONLY pre-requisite is having an http://www.apache.org/dist/maven/binaries/apache-maven-3.0-alpha-5-bin.zip

          More info about how this magic works on http://tycho.sonatype.org/.

          Show
          Michael Vorburger added a comment - - edited Said friend of mine has kindly lent an evening to this effort: find attached new OpenJPA-Eclipse-Builder-with-Maven3-Tycho.zip which builds the whole thing (including a ready-to-publish update-site!) in an unattended/headless mode suitable for an integration server via "mvn install" ! The ONLY pre-requisite is having an http://www.apache.org/dist/maven/binaries/apache-maven-3.0-alpha-5-bin.zip More info about how this magic works on http://tycho.sonatype.org/ .
          Hide
          Donald Woods added a comment -

          Michael, thanks for contributing this, but is there anyway you can make a Maven 2.0/2.2 friendly build? We perform headless builds of our Eclipse plugins over in Geronimo, as we can't/shouldn't expect a manual GUI build process for any pieces of OpenJPA that we want to release.....

          Also, you need to give attribution to "said friend" by including their name, as we need to include any contributors names in the svn commits.

          Show
          Donald Woods added a comment - Michael, thanks for contributing this, but is there anyway you can make a Maven 2.0/2.2 friendly build? We perform headless builds of our Eclipse plugins over in Geronimo, as we can't/shouldn't expect a manual GUI build process for any pieces of OpenJPA that we want to release..... Also, you need to give attribution to "said friend" by including their name, as we need to include any contributors names in the svn commits.
          Hide
          Donald Woods added a comment -

          Michael, can you also submit a CLA, since this is a rather large contribution?
          http://www.apache.org/licenses/#clas
          Once you have a CLA on file, we can also add you as a contributor in JIRA (which will allow you to assign issues to yourself along with some other edit privileges) and an editor to the wiki, so you can help document how to build/use the plugin.

          Show
          Donald Woods added a comment - Michael, can you also submit a CLA, since this is a rather large contribution? http://www.apache.org/licenses/#clas Once you have a CLA on file, we can also add you as a contributor in JIRA (which will allow you to assign issues to yourself along with some other edit privileges) and an editor to the wiki, so you can help document how to build/use the plugin.
          Hide
          Craig L Russell added a comment -

          Michael's ICLA has been recorded.

          Show
          Craig L Russell added a comment - Michael's ICLA has been recorded.
          Hide
          Michael Vorburger added a comment -

          Attribution: The 'said friend''s name is Kai Kreuzer, @see e.g. http://kaikreuzer.blogspot.com/. His contribution, just like mine, is in a private/individual capacity. Kai has confirmed to me in private email that he is licensing the contributed stuff (pom.xml build files using Maven v3 & Tycho) under the Apache License, Version 2.0.

          I've clarified the "Maven (v3 req.) friendly build" for "headless builds" in private email with Donald & Pinaki. (It's all already there in the OpenJPA-Eclipse-Builder-with-Maven3-Tycho.zip, there was just confusion because of the first OpenJPA-Eclipse-Builder.zip which did not.)

          Now what next?

          Show
          Michael Vorburger added a comment - Attribution: The 'said friend''s name is Kai Kreuzer, @see e.g. http://kaikreuzer.blogspot.com/ . His contribution, just like mine, is in a private/individual capacity. Kai has confirmed to me in private email that he is licensing the contributed stuff (pom.xml build files using Maven v3 & Tycho) under the Apache License, Version 2.0. I've clarified the "Maven (v3 req.) friendly build" for "headless builds" in private email with Donald & Pinaki. (It's all already there in the OpenJPA-Eclipse-Builder-with-Maven3-Tycho.zip, there was just confusion because of the first OpenJPA-Eclipse-Builder.zip which did not.) Now what next?
          Hide
          Donald Woods added a comment -

          I added you to the openjpa-contributors group in JIRA, which will allow you to assign issues to yourself.
          For the wiki, you'll need to create an account first (preferably the same userid as JIRA) at -
          http://cwiki.apache.org/confluence/display/openjpa/Index

          Show
          Donald Woods added a comment - I added you to the openjpa-contributors group in JIRA, which will allow you to assign issues to yourself. For the wiki, you'll need to create an account first (preferably the same userid as JIRA) at - http://cwiki.apache.org/confluence/display/openjpa/Index
          Hide
          Donald Woods added a comment -

          So far, I haven't been able to build the contrib/devtools content on my Mac (10.6.2) using Maven 3.0-alpha-5.... Tried adding some tycho settings in my settings.xml, but that didn't resolve it. Don't have time right now to dig into it more.
          Guessing tycho has some macosx problems, as I'm seeing exceptions while its looking for SWT and something about fragment bundles...

          Show
          Donald Woods added a comment - So far, I haven't been able to build the contrib/devtools content on my Mac (10.6.2) using Maven 3.0-alpha-5.... Tried adding some tycho settings in my settings.xml, but that didn't resolve it. Don't have time right now to dig into it more. Guessing tycho has some macosx problems, as I'm seeing exceptions while its looking for SWT and something about fragment bundles...
          Hide
          Kai Kreuzer added a comment -

          We indeed only tested it on Windows so far. I just tried to do it on my Mac, but I couldn't even get Maven3 itself working yet... Will try again in the coming days. If you have a chance to build it on Windows that should be the quickest way for the moment.

          Show
          Kai Kreuzer added a comment - We indeed only tested it on Windows so far. I just tried to do it on my Mac, but I couldn't even get Maven3 itself working yet... Will try again in the coming days. If you have a chance to build it on Windows that should be the quickest way for the moment.
          Hide
          Kai Kreuzer added a comment -

          I was now able to reproduce the build problems on MacOS. It indeed seems that it is expecting the Win32 SWT libraries to be present. As we do not have any platform specific dependencies in our plugin/feature, it must be tycho which (currently) is Windows specific. So I do not have any suggestion for building it on Mac through Maven3 - but I guess your automatic build systems won't be Mac-based, right?

          Show
          Kai Kreuzer added a comment - I was now able to reproduce the build problems on MacOS. It indeed seems that it is expecting the Win32 SWT libraries to be present. As we do not have any platform specific dependencies in our plugin/feature, it must be tycho which (currently) is Windows specific. So I do not have any suggestion for building it on Mac through Maven3 - but I guess your automatic build systems won't be Mac-based, right?
          Hide
          Michael Vorburger added a comment -

          Just in case there is anybody else interested: Pinaki (I think) has meanwhile pushed the attached code to https://svn.apache.org/repos/asf/openjpa/trunk/contrib/devtools/ (and it still builds just fine, on Win at least).

          Show
          Michael Vorburger added a comment - Just in case there is anybody else interested: Pinaki (I think) has meanwhile pushed the attached code to https://svn.apache.org/repos/asf/openjpa/trunk/contrib/devtools/ (and it still builds just fine, on Win at least).
          Hide
          Donald Woods added a comment -

          Moved code to its own subproject area under https://svn.apache.org/repos/asf/openjpa/devtools/trunk/ in preparation of a OpenJPA 2.0.0 release this month. Website updates and automated builds will come next...

          Show
          Donald Woods added a comment - Moved code to its own subproject area under https://svn.apache.org/repos/asf/openjpa/devtools/trunk/ in preparation of a OpenJPA 2.0.0 release this month. Website updates and automated builds will come next...
          Hide
          Donald Woods added a comment -

          I've uploaded a copy of the nightly build for those interested to try -
          http://people.apache.org/~dwoods/openjpa/devtools/updatesite/
          I still need to finish reviewing the files with RAT and IANAL along with updating the version to match the level of OpenJPA being used. Also, we still need some docs on how to use it....

          Show
          Donald Woods added a comment - I've uploaded a copy of the nightly build for those interested to try - http://people.apache.org/~dwoods/openjpa/devtools/updatesite/ I still need to finish reviewing the files with RAT and IANAL along with updating the version to match the level of OpenJPA being used. Also, we still need some docs on how to use it....
          Hide
          Michael Vorburger added a comment -

          I've done (well, started...) to create some documentation.. see http://cwiki.apache.org/confluence/display/test/OpenJPA+Eclipse+Tooling.

          Show
          Michael Vorburger added a comment - I've done (well, started...) to create some documentation.. see http://cwiki.apache.org/confluence/display/test/OpenJPA+Eclipse+Tooling .
          Hide
          Michael Vorburger added a comment - - edited

          Documentation v1.0 completed (I'll leave it at this for now), and now moved to http://cwiki.apache.org/confluence/display/openjpa/Enhancement+with+Eclipse

          Show
          Michael Vorburger added a comment - - edited Documentation v1.0 completed (I'll leave it at this for now), and now moved to http://cwiki.apache.org/confluence/display/openjpa/Enhancement+with+Eclipse
          Hide
          Donald Woods added a comment -

          unassigning as I won't get to this any time soon

          Show
          Donald Woods added a comment - unassigning as I won't get to this any time soon
          Hide
          Michael Dick added a comment -

          This is a great idea, but there's a little code cleanup that needs to be done.

          The pathmatch package lists a few authors who have not filed a CLA - and we'll need to get their permission to use the code before we can release the plugin on an Apache website. We should also remove the copyright statements (with the authors' permission) per ASF source header conventions [1]. Note that the original authors do still hold the copyrights, but the statement should be removed.

          I also this we should be careful about the use of @author tags [2].

          Bureaucracy aside I think there's some interest in getting this plugin up to date.

          [1] http://www.apache.org/legal/src-headers.html
          [2] http://markmail.org/message/7rut2end2vsw5me7

          Show
          Michael Dick added a comment - This is a great idea, but there's a little code cleanup that needs to be done. The pathmatch package lists a few authors who have not filed a CLA - and we'll need to get their permission to use the code before we can release the plugin on an Apache website. We should also remove the copyright statements (with the authors' permission) per ASF source header conventions [1] . Note that the original authors do still hold the copyrights, but the statement should be removed. I also this we should be careful about the use of @author tags [2] . Bureaucracy aside I think there's some interest in getting this plugin up to date. [1] http://www.apache.org/legal/src-headers.html [2] http://markmail.org/message/7rut2end2vsw5me7
          Hide
          Rick Curtis added a comment -

          I vote a big +1 on getting this feature ready for prime time.

          Show
          Rick Curtis added a comment - I vote a big +1 on getting this feature ready for prime time.
          Show
          Michael Vorburger added a comment - https://github.com/vorburger/openjpa-eclipse
          Hide
          Rick Curtis added a comment -

          For anyone looking for the changes that were checked in at rev 900590...

          @See Rev : 979843 – Move openjpa/devtools/ ==> openjpa/eclipse/

          Show
          Rick Curtis added a comment - For anyone looking for the changes that were checked in at rev 900590... @See Rev : 979843 – Move openjpa/devtools/ ==> openjpa/eclipse/
          Hide
          Rick Curtis added a comment -

          Michael -

          Have you tried running this on Helios? I was able to recreate OPENJPA-1887 when running on Helios, but it seems to work fine on 3.4.1(my normal dev env). I haven't spend enough time to figure out if this is dependent on my scenario, or the dev env.... Figured I'd check with you before I went much further.

          Thanks,
          Rick

          Show
          Rick Curtis added a comment - Michael - Have you tried running this on Helios? I was able to recreate OPENJPA-1887 when running on Helios, but it seems to work fine on 3.4.1(my normal dev env). I haven't spend enough time to figure out if this is dependent on my scenario, or the dev env.... Figured I'd check with you before I went much further. Thanks, Rick

            People

            • Assignee:
              Unassigned
              Reporter:
              Michael Vorburger
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:

                Development