You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by Alan Raison <Al...@luminary.co.uk> on 2009/05/18 18:29:03 UTC

Building in Eclipse

Hi

Does anyone have any experience (preferably successful) of building
openjpa-kernel in Eclipse?

I've found that checking out each sub-project from trunk usually works
fine when building against a released version (as then I can download
the pre-compiled openjpa-kernel from the maven repo) but this doesn't
work so well when working with trunk.

Working from the command line is fine but a bit limited in Windows -
especially when trying to patch the source!

My specific issue is that Eclipse complains of compile errors in the
(src/main/java/)org.apache.openjpa.kernel.jpql package as these files
depend on the jjtree sources.  If I add target/generated-sources/javacc
to the build path I get a name clash with the SimpleNode class in both
the src/main/java and target/generated-sources/javacc folders.  I also
tried adding the target/generated-sources/jjtree folder in place of the
target/generated-sources/javacc folder but this didn't work either.

Sorry if I am being thick with this.  I need my IDE!! ;)

Alan


Re: Building in Eclipse

Posted by Michael Dick <mi...@gmail.com>.
Hi Alan,

I use the maven eclipse plugin to generate eclipse .project and .classpath
files. I have to do a little massaging afterwards but it does 90% of the
work for me.  You'll still have to add the generated-sources stuff though.

I usually add target/generated-sources/javacc to the build path and remove
the directory with the duplicate SimpleNode. FWIW I've attached the
.classpath file that I use with trunk. It relies on the M2_REPO classpath
variable being defined and pointing to your local Maven repository so you
might have some massaging to do too.

Hope this helps,

-mike

On Mon, May 18, 2009 at 11:29 AM, Alan Raison <Al...@luminary.co.uk>wrote:

> Hi
>
> Does anyone have any experience (preferably successful) of building
> openjpa-kernel in Eclipse?
>
> I've found that checking out each sub-project from trunk usually works
> fine when building against a released version (as then I can download
> the pre-compiled openjpa-kernel from the maven repo) but this doesn't
> work so well when working with trunk.
>
> Working from the command line is fine but a bit limited in Windows -
> especially when trying to patch the source!
>
> My specific issue is that Eclipse complains of compile errors in the
> (src/main/java/)org.apache.openjpa.kernel.jpql package as these files
> depend on the jjtree sources.  If I add target/generated-sources/javacc
> to the build path I get a name clash with the SimpleNode class in both
> the src/main/java and target/generated-sources/javacc folders.  I also
> tried adding the target/generated-sources/jjtree folder in place of the
> target/generated-sources/javacc folder but this didn't work either.
>
> Sorry if I am being thick with this.  I need my IDE!! ;)
>
> Alan
>
>

Re: Building in Eclipse

Posted by Michael Dick <mi...@gmail.com>.
On Fri, Jun 5, 2009 at 12:02 PM, srini.krish <sr...@gmail.com>wrote:

>
> Hi,
>  I tried setting up with eclipse and was successful too.. :)
> I exactly followed this link given by Michael
>
> [1]
>
> http://cwiki.apache.org/confluence/display/openjpa/Building#Building-Eclipse
>
> But there were a couple of points that were not mentioned..
>
> 1. M2_REPO - variable need to be created in eclipse which points to the
> local repository.


Thanks for pointing this out. I've been adding the variable manually for a
long time. The eclipse plugin should do it for you if you run :
$ mvn eclipse:configur-workspace -Dworkspace=${path to your eclipse
workspace}

I haven't tested it yet though, but I can give it a try tonight and add to
the wiki.

2. Under OpenJPA-kernal, the jjtree and javacc folders were added to
> exclusion filters.. Instead I added them to my source folders..
>

Thanks again. For trunk you should only need javacc (at least that works for
me). For older branches I believe you need them both.

I didnt understand why they were added to exclusion fileset.. is there any
> harm in having them under source folder?
>

No harm at all. Includes + excludes + eclipse:eclipse are a bit ticklish.
Glad you got it up and running.

-mike


> Thanks and Regards,
> -Srini
>
>
>
> Alan Raison wrote:
> >
> > Thanks all, I've got it working now :)
> >
> > Alan
> >
> >
> > -----Original Message-----
> > From: Michael Dick [mailto:michael.d.dick@gmail.com]
> > Sent: 18 May 2009 22:45
> > To: dev@openjpa.apache.org
> > Subject: Re: Building in Eclipse
> >
> > I think this is a variation on the "one big project" approach that some
> > people seem to like. I prefer to build each module as a separate
> > compilable
> > unit (ie the way maven does). The benefit is that when I break access
> > rules
> > (ie try to reference something from openjpa-jdbc in openjpa-kernel) my
> > eclipse build failes before I do a real maven build..
> >
> > It's all personal preference though and YMMV.. IDEA and NetBeans have
> > built
> > in maven support that (I'm told) works pretty nice. I can't give up
> > Eclipse's incremental compiles though.
> >
> > FWIW the steps for the multiple module approach are on our wiki at [1].
> If
> > you're willing to start from scratch that might be a good place to do.
> >
> > Donald's done a great job of updating that section of the wiki to keep it
> > up
> > to date (thanks Donald).
> >
> > [1]
> >
> http://cwiki.apache.org/confluence/display/openjpa/Building#Building-Eclipse
> >
> > Hope this helps,
> >
> > -mike
> >
> > On Mon, May 18, 2009 at 1:13 PM, Pinaki Poddar <pp...@apache.org>
> wrote:
> >
> >>
> >> Hi Alan,
> >>  I build/debug OpenJPA in Eclipse in a somewhat non-kosher way. The
> >> complexity arises because OpenJPA is a multi-module project and requires
> >> some javaCC generated source code.
> >>  So I am not prescribing the steps but purely describing what works for
> >> me.
> >>
> >>  1. checkout openjpa source code to say a directory X. You can check the
> >> project out from Eclipse itself too. Then ignore Step 3.
> >>  2. compile with maven -- this will create javacc generated source code
> >> which is required for next steps.
> >> Also it will fetch the dependent libraries in local maven repository.
> >>  3. create an Eclipse project with root directory X
> >>  4. add a whole bunch of 'source folders' to the Eclipse project (see
> >> attached .classpath and .project
> >> files). The output for each of these 'source folders' are different and
> >> should match maven target directory to keep maven and Eclipse build in
> >> synch.
> >>  5. Define a bunch of 'User Libraries' and attach the corresponding jar
> >> that Step 2 has placed in local maven repository.
> >>
> >>  Now the Eclipse project can be cleaned and built with 3 errors about
> >> javaCC generated code. I still could not get rid of them -- but they
> >> seemed
> >> to be harmless enough for me so far.
> >>
> >> =============== .project file ======================================
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <projectDescription>
> >>        <name>trunk</name>
> >>        <comment></comment>
> >>        <projects>
> >>        </projects>
> >>        <buildSpec>
> >>                <buildCommand>
> >>                        <name>org.eclipse.jdt.core.javabuilder</name>
> >>                        <arguments>
> >>                        </arguments>
> >>                </buildCommand>
> >>        </buildSpec>
> >>        <natures>
> >>                <nature>org.eclipse.jdt.core.javanature</nature>
> >>        </natures>
> >> </projectDescription>
> >>
> >> ============== .classpath file
> ==========================================
> >> <?xml version="1.0" encoding="UTF-8"?>
> >> <classpath>
> >>        <classpathentry kind="src" output="openjpa-lib/target/classes"
> >> path="openjpa-lib/src/main/java"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-jdbc/target/test-classes"
> >> path="openjpa-jdbc/src/test/java"/>
> >>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> >> path="openjpa-kernel/target/generated-sources/jjtree"/>
> >>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> >> path="openjpa-kernel/target/generated-sources/javacc"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-lib/target/test-classes"
> >> path="openjpa-lib/src/test/java">
> >>                <attributes>
> >>                        <attribute name="maven.type" value="test"/>
> >>                </attributes>
> >>        </classpathentry>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-lib/src/main/resources"
> >> path="openjpa-lib/src/main/resources"/>
> >>        <classpathentry excluding="**" kind="src"
> output="openjpa-project"
> >> path="openjpa-project"/>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-lib/src/test/resources"
> >> path="openjpa-lib/src/test/resources"/>
> >>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> >> path="openjpa-kernel/src/main/java"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-kernel/target/test-classes"
> >> path="openjpa-kernel/src/test/java">
> >>                <attributes>
> >>                        <attribute name="maven.type" value="test"/>
> >>                </attributes>
> >>        </classpathentry>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-kernel/src/main/resources"
> >> path="openjpa-kernel/src/main/resources"/>
> >>        <classpathentry kind="src" output="openjpa-jdbc/target/classes"
> >> path="openjpa-jdbc/src/main/java"/>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-jdbc/src/main/resources"
> >> path="openjpa-jdbc/src/main/resources"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-persistence/target/classes"
> >> path="openjpa-persistence/src/main/java"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-persistence/target/test-classes"
> >> path="openjpa-persistence/src/test/java">
> >>                <attributes>
> >>                        <attribute name="maven.type" value="test"/>
> >>                </attributes>
> >>        </classpathentry>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-persistence/target/classes"
> >> path="openjpa-persistence/src/main/resources"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-persistence-jdbc/target/classes"
> >> path="openjpa-persistence-jdbc/src/main/java"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-persistence-jdbc/target/test-classes"
> >> path="openjpa-persistence-jdbc/src/test/java">
> >>                <attributes>
> >>                        <attribute name="maven.type" value="test"/>
> >>                </attributes>
> >>        </classpathentry>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-persistence-jdbc/src/main/resources"
> >> path="openjpa-persistence-jdbc/src/main/resources"/>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-persistence-jdbc/src/test/resources"
> >> path="openjpa-persistence-jdbc/src/test/resources"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-xmlstore/target/classes"
> >> path="openjpa-xmlstore/src/main/java"/>
> >>        <classpathentry kind="src" output="openjpa-slice/target/classes"
> >> path="openjpa-slice/src/main/java"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-slice/target/test-classes"
> >> path="openjpa-slice/src/test/java">
> >>                <attributes>
> >>                        <attribute name="maven.type" value="test"/>
> >>                </attributes>
> >>        </classpathentry>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-slice/src/main/resources"
> >> path="openjpa-slice/src/main/resources"/>
> >>        <classpathentry excluding="**" kind="src"
> >> output="openjpa-slice/src/test/resources"
> >> path="openjpa-slice/src/test/resources"/>
> >>        <classpathentry excluding="reversemapping/*.java" kind="src"
> >> output="openjpa-examples/target/classes"
> >> path="openjpa-examples/src/main/java"/>
> >>        <classpathentry kind="src"
> >> output="openjpa-examples/target/test-classes"
> >> path="openjpa-examples/src/test/java">
> >>                <attributes>
> >>                        <attribute name="maven.type" value="test"/>
> >>                </attributes>
> >>        </classpathentry>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/APACHE_ANT"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_COLL"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LANG"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LOG"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_POOL"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/HSQLDB"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/JMS"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/JPA_2.0_PD"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/JTA"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/LOG4J"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/POSTGRES"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/REGEX"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/SERP_1.13.1"/>
> >>        <classpathentry exported="true" kind="con"
> >> path="org.eclipse.jdt.USER_LIBRARY/UOW"/>
> >>        <classpathentry kind="output" path="bin"/>
> >> </classpath>
> >>
> >>
> >>
> >>
> >> Alan Raison wrote:
> >> >
> >> > Hi
> >> >
> >> > Does anyone have any experience (preferably successful) of building
> >> > openjpa-kernel in Eclipse?
> >> >
> >> > I've found that checking out each sub-project from trunk usually works
> >> > fine when building against a released version (as then I can download
> >> > the pre-compiled openjpa-kernel from the maven repo) but this doesn't
> >> > work so well when working with trunk.
> >> >
> >> > Working from the command line is fine but a bit limited in Windows -
> >> > especially when trying to patch the source!
> >> >
> >> > My specific issue is that Eclipse complains of compile errors in the
> >> > (src/main/java/)org.apache.openjpa.kernel.jpql package as these files
> >> > depend on the jjtree sources.  If I add
> target/generated-sources/javacc
> >> > to the build path I get a name clash with the SimpleNode class in both
> >> > the src/main/java and target/generated-sources/javacc folders.  I also
> >> > tried adding the target/generated-sources/jjtree folder in place of
> the
> >> > target/generated-sources/javacc folder but this didn't work either.
> >> >
> >> > Sorry if I am being thick with this.  I need my IDE!! ;)
> >> >
> >> > Alan
> >> >
> >> >
> >> >
> >>
> >>
> >> -----
> >> Pinaki Poddar                      http://ppoddar.blogspot.com/
> >>
> >> http://www.linkedin.com/in/pinakipoddar
> >> OpenJPA PMC Member/Committer
> >> JPA Expert Group Member
> >> --
> >> View this message in context:
> >> http://n2.nabble.com/Building-in-Eclipse-tp2934132p2934719.html
> >> Sent from the OpenJPA Developers mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> --
> View this message in context:
> http://n2.nabble.com/Building-in-Eclipse-tp2934132p3031676.html
> Sent from the OpenJPA Developers mailing list archive at Nabble.com.
>
>

RE: Building in Eclipse

Posted by "srini.krish" <sr...@gmail.com>.
Hi,
 I tried setting up with eclipse and was successful too.. :) 
I exactly followed this link given by Michael 

[1]
http://cwiki.apache.org/confluence/display/openjpa/Building#Building-Eclipse

But there were a couple of points that were not mentioned.. 

1. M2_REPO - variable need to be created in eclipse which points to the
local repository.
2. Under OpenJPA-kernal, the jjtree and javacc folders were added to
exclusion filters.. Instead I added them to my source folders..

I didnt understand why they were added to exclusion fileset.. is there any
harm in having them under source folder?

Thanks and Regards,
-Srini



Alan Raison wrote:
> 
> Thanks all, I've got it working now :)
> 
> AlanĀ 
> 
> 
> -----Original Message-----
> From: Michael Dick [mailto:michael.d.dick@gmail.com] 
> Sent: 18 May 2009 22:45
> To: dev@openjpa.apache.org
> Subject: Re: Building in Eclipse
> 
> I think this is a variation on the "one big project" approach that some
> people seem to like. I prefer to build each module as a separate
> compilable
> unit (ie the way maven does). The benefit is that when I break access
> rules
> (ie try to reference something from openjpa-jdbc in openjpa-kernel) my
> eclipse build failes before I do a real maven build..
> 
> It's all personal preference though and YMMV.. IDEA and NetBeans have
> built
> in maven support that (I'm told) works pretty nice. I can't give up
> Eclipse's incremental compiles though.
> 
> FWIW the steps for the multiple module approach are on our wiki at [1]. If
> you're willing to start from scratch that might be a good place to do.
> 
> Donald's done a great job of updating that section of the wiki to keep it
> up
> to date (thanks Donald).
> 
> [1]
> http://cwiki.apache.org/confluence/display/openjpa/Building#Building-Eclipse
> 
> Hope this helps,
> 
> -mike
> 
> On Mon, May 18, 2009 at 1:13 PM, Pinaki Poddar <pp...@apache.org> wrote:
> 
>>
>> Hi Alan,
>>  I build/debug OpenJPA in Eclipse in a somewhat non-kosher way. The
>> complexity arises because OpenJPA is a multi-module project and requires
>> some javaCC generated source code.
>>  So I am not prescribing the steps but purely describing what works for
>> me.
>>
>>  1. checkout openjpa source code to say a directory X. You can check the
>> project out from Eclipse itself too. Then ignore Step 3.
>>  2. compile with maven -- this will create javacc generated source code
>> which is required for next steps.
>> Also it will fetch the dependent libraries in local maven repository.
>>  3. create an Eclipse project with root directory X
>>  4. add a whole bunch of 'source folders' to the Eclipse project (see
>> attached .classpath and .project
>> files). The output for each of these 'source folders' are different and
>> should match maven target directory to keep maven and Eclipse build in
>> synch.
>>  5. Define a bunch of 'User Libraries' and attach the corresponding jar
>> that Step 2 has placed in local maven repository.
>>
>>  Now the Eclipse project can be cleaned and built with 3 errors about
>> javaCC generated code. I still could not get rid of them -- but they
>> seemed
>> to be harmless enough for me so far.
>>
>> =============== .project file ======================================
>> <?xml version="1.0" encoding="UTF-8"?>
>> <projectDescription>
>>        <name>trunk</name>
>>        <comment></comment>
>>        <projects>
>>        </projects>
>>        <buildSpec>
>>                <buildCommand>
>>                        <name>org.eclipse.jdt.core.javabuilder</name>
>>                        <arguments>
>>                        </arguments>
>>                </buildCommand>
>>        </buildSpec>
>>        <natures>
>>                <nature>org.eclipse.jdt.core.javanature</nature>
>>        </natures>
>> </projectDescription>
>>
>> ============== .classpath file ==========================================
>> <?xml version="1.0" encoding="UTF-8"?>
>> <classpath>
>>        <classpathentry kind="src" output="openjpa-lib/target/classes"
>> path="openjpa-lib/src/main/java"/>
>>        <classpathentry kind="src"
>> output="openjpa-jdbc/target/test-classes"
>> path="openjpa-jdbc/src/test/java"/>
>>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
>> path="openjpa-kernel/target/generated-sources/jjtree"/>
>>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
>> path="openjpa-kernel/target/generated-sources/javacc"/>
>>        <classpathentry kind="src"
>> output="openjpa-lib/target/test-classes"
>> path="openjpa-lib/src/test/java">
>>                <attributes>
>>                        <attribute name="maven.type" value="test"/>
>>                </attributes>
>>        </classpathentry>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-lib/src/main/resources"
>> path="openjpa-lib/src/main/resources"/>
>>        <classpathentry excluding="**" kind="src" output="openjpa-project"
>> path="openjpa-project"/>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-lib/src/test/resources"
>> path="openjpa-lib/src/test/resources"/>
>>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
>> path="openjpa-kernel/src/main/java"/>
>>        <classpathentry kind="src"
>> output="openjpa-kernel/target/test-classes"
>> path="openjpa-kernel/src/test/java">
>>                <attributes>
>>                        <attribute name="maven.type" value="test"/>
>>                </attributes>
>>        </classpathentry>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-kernel/src/main/resources"
>> path="openjpa-kernel/src/main/resources"/>
>>        <classpathentry kind="src" output="openjpa-jdbc/target/classes"
>> path="openjpa-jdbc/src/main/java"/>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-jdbc/src/main/resources"
>> path="openjpa-jdbc/src/main/resources"/>
>>        <classpathentry kind="src"
>> output="openjpa-persistence/target/classes"
>> path="openjpa-persistence/src/main/java"/>
>>        <classpathentry kind="src"
>> output="openjpa-persistence/target/test-classes"
>> path="openjpa-persistence/src/test/java">
>>                <attributes>
>>                        <attribute name="maven.type" value="test"/>
>>                </attributes>
>>        </classpathentry>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-persistence/target/classes"
>> path="openjpa-persistence/src/main/resources"/>
>>        <classpathentry kind="src"
>> output="openjpa-persistence-jdbc/target/classes"
>> path="openjpa-persistence-jdbc/src/main/java"/>
>>        <classpathentry kind="src"
>> output="openjpa-persistence-jdbc/target/test-classes"
>> path="openjpa-persistence-jdbc/src/test/java">
>>                <attributes>
>>                        <attribute name="maven.type" value="test"/>
>>                </attributes>
>>        </classpathentry>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-persistence-jdbc/src/main/resources"
>> path="openjpa-persistence-jdbc/src/main/resources"/>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-persistence-jdbc/src/test/resources"
>> path="openjpa-persistence-jdbc/src/test/resources"/>
>>        <classpathentry kind="src"
>> output="openjpa-xmlstore/target/classes"
>> path="openjpa-xmlstore/src/main/java"/>
>>        <classpathentry kind="src" output="openjpa-slice/target/classes"
>> path="openjpa-slice/src/main/java"/>
>>        <classpathentry kind="src"
>> output="openjpa-slice/target/test-classes"
>> path="openjpa-slice/src/test/java">
>>                <attributes>
>>                        <attribute name="maven.type" value="test"/>
>>                </attributes>
>>        </classpathentry>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-slice/src/main/resources"
>> path="openjpa-slice/src/main/resources"/>
>>        <classpathentry excluding="**" kind="src"
>> output="openjpa-slice/src/test/resources"
>> path="openjpa-slice/src/test/resources"/>
>>        <classpathentry excluding="reversemapping/*.java" kind="src"
>> output="openjpa-examples/target/classes"
>> path="openjpa-examples/src/main/java"/>
>>        <classpathentry kind="src"
>> output="openjpa-examples/target/test-classes"
>> path="openjpa-examples/src/test/java">
>>                <attributes>
>>                        <attribute name="maven.type" value="test"/>
>>                </attributes>
>>        </classpathentry>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/APACHE_ANT"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_COLL"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LANG"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LOG"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_POOL"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/HSQLDB"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/JMS"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/JPA_2.0_PD"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/JTA"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/LOG4J"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/POSTGRES"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/REGEX"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/SERP_1.13.1"/>
>>        <classpathentry exported="true" kind="con"
>> path="org.eclipse.jdt.USER_LIBRARY/UOW"/>
>>        <classpathentry kind="output" path="bin"/>
>> </classpath>
>>
>>
>>
>>
>> Alan Raison wrote:
>> >
>> > Hi
>> >
>> > Does anyone have any experience (preferably successful) of building
>> > openjpa-kernel in Eclipse?
>> >
>> > I've found that checking out each sub-project from trunk usually works
>> > fine when building against a released version (as then I can download
>> > the pre-compiled openjpa-kernel from the maven repo) but this doesn't
>> > work so well when working with trunk.
>> >
>> > Working from the command line is fine but a bit limited in Windows -
>> > especially when trying to patch the source!
>> >
>> > My specific issue is that Eclipse complains of compile errors in the
>> > (src/main/java/)org.apache.openjpa.kernel.jpql package as these files
>> > depend on the jjtree sources.  If I add target/generated-sources/javacc
>> > to the build path I get a name clash with the SimpleNode class in both
>> > the src/main/java and target/generated-sources/javacc folders.  I also
>> > tried adding the target/generated-sources/jjtree folder in place of the
>> > target/generated-sources/javacc folder but this didn't work either.
>> >
>> > Sorry if I am being thick with this.  I need my IDE!! ;)
>> >
>> > Alan
>> >
>> >
>> >
>>
>>
>> -----
>> Pinaki Poddar                      http://ppoddar.blogspot.com/
>>
>> http://www.linkedin.com/in/pinakipoddar
>> OpenJPA PMC Member/Committer
>> JPA Expert Group Member
>> --
>> View this message in context:
>> http://n2.nabble.com/Building-in-Eclipse-tp2934132p2934719.html
>> Sent from the OpenJPA Developers mailing list archive at Nabble.com.
>>
>>
> 
> 

-- 
View this message in context: http://n2.nabble.com/Building-in-Eclipse-tp2934132p3031676.html
Sent from the OpenJPA Developers mailing list archive at Nabble.com.


RE: Building in Eclipse

Posted by Alan Raison <Al...@luminary.co.uk>.
Thanks all, I've got it working now :)

AlanĀ 


-----Original Message-----
From: Michael Dick [mailto:michael.d.dick@gmail.com] 
Sent: 18 May 2009 22:45
To: dev@openjpa.apache.org
Subject: Re: Building in Eclipse

I think this is a variation on the "one big project" approach that some
people seem to like. I prefer to build each module as a separate compilable
unit (ie the way maven does). The benefit is that when I break access rules
(ie try to reference something from openjpa-jdbc in openjpa-kernel) my
eclipse build failes before I do a real maven build..

It's all personal preference though and YMMV.. IDEA and NetBeans have built
in maven support that (I'm told) works pretty nice. I can't give up
Eclipse's incremental compiles though.

FWIW the steps for the multiple module approach are on our wiki at [1]. If
you're willing to start from scratch that might be a good place to do.

Donald's done a great job of updating that section of the wiki to keep it up
to date (thanks Donald).

[1]
http://cwiki.apache.org/confluence/display/openjpa/Building#Building-Eclipse

Hope this helps,

-mike

On Mon, May 18, 2009 at 1:13 PM, Pinaki Poddar <pp...@apache.org> wrote:

>
> Hi Alan,
>  I build/debug OpenJPA in Eclipse in a somewhat non-kosher way. The
> complexity arises because OpenJPA is a multi-module project and requires
> some javaCC generated source code.
>  So I am not prescribing the steps but purely describing what works for me.
>
>  1. checkout openjpa source code to say a directory X. You can check the
> project out from Eclipse itself too. Then ignore Step 3.
>  2. compile with maven -- this will create javacc generated source code
> which is required for next steps.
> Also it will fetch the dependent libraries in local maven repository.
>  3. create an Eclipse project with root directory X
>  4. add a whole bunch of 'source folders' to the Eclipse project (see
> attached .classpath and .project
> files). The output for each of these 'source folders' are different and
> should match maven target directory to keep maven and Eclipse build in
> synch.
>  5. Define a bunch of 'User Libraries' and attach the corresponding jar
> that Step 2 has placed in local maven repository.
>
>  Now the Eclipse project can be cleaned and built with 3 errors about
> javaCC generated code. I still could not get rid of them -- but they seemed
> to be harmless enough for me so far.
>
> =============== .project file ======================================
> <?xml version="1.0" encoding="UTF-8"?>
> <projectDescription>
>        <name>trunk</name>
>        <comment></comment>
>        <projects>
>        </projects>
>        <buildSpec>
>                <buildCommand>
>                        <name>org.eclipse.jdt.core.javabuilder</name>
>                        <arguments>
>                        </arguments>
>                </buildCommand>
>        </buildSpec>
>        <natures>
>                <nature>org.eclipse.jdt.core.javanature</nature>
>        </natures>
> </projectDescription>
>
> ============== .classpath file ==========================================
> <?xml version="1.0" encoding="UTF-8"?>
> <classpath>
>        <classpathentry kind="src" output="openjpa-lib/target/classes"
> path="openjpa-lib/src/main/java"/>
>        <classpathentry kind="src" output="openjpa-jdbc/target/test-classes"
> path="openjpa-jdbc/src/test/java"/>
>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> path="openjpa-kernel/target/generated-sources/jjtree"/>
>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> path="openjpa-kernel/target/generated-sources/javacc"/>
>        <classpathentry kind="src" output="openjpa-lib/target/test-classes"
> path="openjpa-lib/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-lib/src/main/resources"
> path="openjpa-lib/src/main/resources"/>
>        <classpathentry excluding="**" kind="src" output="openjpa-project"
> path="openjpa-project"/>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-lib/src/test/resources"
> path="openjpa-lib/src/test/resources"/>
>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> path="openjpa-kernel/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-kernel/target/test-classes"
> path="openjpa-kernel/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-kernel/src/main/resources"
> path="openjpa-kernel/src/main/resources"/>
>        <classpathentry kind="src" output="openjpa-jdbc/target/classes"
> path="openjpa-jdbc/src/main/java"/>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-jdbc/src/main/resources"
> path="openjpa-jdbc/src/main/resources"/>
>        <classpathentry kind="src"
> output="openjpa-persistence/target/classes"
> path="openjpa-persistence/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-persistence/target/test-classes"
> path="openjpa-persistence/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-persistence/target/classes"
> path="openjpa-persistence/src/main/resources"/>
>        <classpathentry kind="src"
> output="openjpa-persistence-jdbc/target/classes"
> path="openjpa-persistence-jdbc/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-persistence-jdbc/target/test-classes"
> path="openjpa-persistence-jdbc/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-persistence-jdbc/src/main/resources"
> path="openjpa-persistence-jdbc/src/main/resources"/>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-persistence-jdbc/src/test/resources"
> path="openjpa-persistence-jdbc/src/test/resources"/>
>        <classpathentry kind="src" output="openjpa-xmlstore/target/classes"
> path="openjpa-xmlstore/src/main/java"/>
>        <classpathentry kind="src" output="openjpa-slice/target/classes"
> path="openjpa-slice/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-slice/target/test-classes"
> path="openjpa-slice/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-slice/src/main/resources"
> path="openjpa-slice/src/main/resources"/>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-slice/src/test/resources"
> path="openjpa-slice/src/test/resources"/>
>        <classpathentry excluding="reversemapping/*.java" kind="src"
> output="openjpa-examples/target/classes"
> path="openjpa-examples/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-examples/target/test-classes"
> path="openjpa-examples/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/APACHE_ANT"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_COLL"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LANG"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LOG"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_POOL"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/HSQLDB"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/JMS"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/JPA_2.0_PD"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/JTA"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/LOG4J"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/POSTGRES"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/REGEX"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/SERP_1.13.1"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/UOW"/>
>        <classpathentry kind="output" path="bin"/>
> </classpath>
>
>
>
>
> Alan Raison wrote:
> >
> > Hi
> >
> > Does anyone have any experience (preferably successful) of building
> > openjpa-kernel in Eclipse?
> >
> > I've found that checking out each sub-project from trunk usually works
> > fine when building against a released version (as then I can download
> > the pre-compiled openjpa-kernel from the maven repo) but this doesn't
> > work so well when working with trunk.
> >
> > Working from the command line is fine but a bit limited in Windows -
> > especially when trying to patch the source!
> >
> > My specific issue is that Eclipse complains of compile errors in the
> > (src/main/java/)org.apache.openjpa.kernel.jpql package as these files
> > depend on the jjtree sources.  If I add target/generated-sources/javacc
> > to the build path I get a name clash with the SimpleNode class in both
> > the src/main/java and target/generated-sources/javacc folders.  I also
> > tried adding the target/generated-sources/jjtree folder in place of the
> > target/generated-sources/javacc folder but this didn't work either.
> >
> > Sorry if I am being thick with this.  I need my IDE!! ;)
> >
> > Alan
> >
> >
> >
>
>
> -----
> Pinaki Poddar                      http://ppoddar.blogspot.com/
>
> http://www.linkedin.com/in/pinakipoddar
> OpenJPA PMC Member/Committer
> JPA Expert Group Member
> --
> View this message in context:
> http://n2.nabble.com/Building-in-Eclipse-tp2934132p2934719.html
> Sent from the OpenJPA Developers mailing list archive at Nabble.com.
>
>

Re: Building in Eclipse

Posted by Michael Dick <mi...@gmail.com>.
I think this is a variation on the "one big project" approach that some
people seem to like. I prefer to build each module as a separate compilable
unit (ie the way maven does). The benefit is that when I break access rules
(ie try to reference something from openjpa-jdbc in openjpa-kernel) my
eclipse build failes before I do a real maven build..

It's all personal preference though and YMMV.. IDEA and NetBeans have built
in maven support that (I'm told) works pretty nice. I can't give up
Eclipse's incremental compiles though.

FWIW the steps for the multiple module approach are on our wiki at [1]. If
you're willing to start from scratch that might be a good place to do.

Donald's done a great job of updating that section of the wiki to keep it up
to date (thanks Donald).

[1]
http://cwiki.apache.org/confluence/display/openjpa/Building#Building-Eclipse

Hope this helps,

-mike

On Mon, May 18, 2009 at 1:13 PM, Pinaki Poddar <pp...@apache.org> wrote:

>
> Hi Alan,
>  I build/debug OpenJPA in Eclipse in a somewhat non-kosher way. The
> complexity arises because OpenJPA is a multi-module project and requires
> some javaCC generated source code.
>  So I am not prescribing the steps but purely describing what works for me.
>
>  1. checkout openjpa source code to say a directory X. You can check the
> project out from Eclipse itself too. Then ignore Step 3.
>  2. compile with maven -- this will create javacc generated source code
> which is required for next steps.
> Also it will fetch the dependent libraries in local maven repository.
>  3. create an Eclipse project with root directory X
>  4. add a whole bunch of 'source folders' to the Eclipse project (see
> attached .classpath and .project
> files). The output for each of these 'source folders' are different and
> should match maven target directory to keep maven and Eclipse build in
> synch.
>  5. Define a bunch of 'User Libraries' and attach the corresponding jar
> that Step 2 has placed in local maven repository.
>
>  Now the Eclipse project can be cleaned and built with 3 errors about
> javaCC generated code. I still could not get rid of them -- but they seemed
> to be harmless enough for me so far.
>
> =============== .project file ======================================
> <?xml version="1.0" encoding="UTF-8"?>
> <projectDescription>
>        <name>trunk</name>
>        <comment></comment>
>        <projects>
>        </projects>
>        <buildSpec>
>                <buildCommand>
>                        <name>org.eclipse.jdt.core.javabuilder</name>
>                        <arguments>
>                        </arguments>
>                </buildCommand>
>        </buildSpec>
>        <natures>
>                <nature>org.eclipse.jdt.core.javanature</nature>
>        </natures>
> </projectDescription>
>
> ============== .classpath file ==========================================
> <?xml version="1.0" encoding="UTF-8"?>
> <classpath>
>        <classpathentry kind="src" output="openjpa-lib/target/classes"
> path="openjpa-lib/src/main/java"/>
>        <classpathentry kind="src" output="openjpa-jdbc/target/test-classes"
> path="openjpa-jdbc/src/test/java"/>
>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> path="openjpa-kernel/target/generated-sources/jjtree"/>
>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> path="openjpa-kernel/target/generated-sources/javacc"/>
>        <classpathentry kind="src" output="openjpa-lib/target/test-classes"
> path="openjpa-lib/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-lib/src/main/resources"
> path="openjpa-lib/src/main/resources"/>
>        <classpathentry excluding="**" kind="src" output="openjpa-project"
> path="openjpa-project"/>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-lib/src/test/resources"
> path="openjpa-lib/src/test/resources"/>
>        <classpathentry kind="src" output="openjpa-kernel/target/classes"
> path="openjpa-kernel/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-kernel/target/test-classes"
> path="openjpa-kernel/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-kernel/src/main/resources"
> path="openjpa-kernel/src/main/resources"/>
>        <classpathentry kind="src" output="openjpa-jdbc/target/classes"
> path="openjpa-jdbc/src/main/java"/>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-jdbc/src/main/resources"
> path="openjpa-jdbc/src/main/resources"/>
>        <classpathentry kind="src"
> output="openjpa-persistence/target/classes"
> path="openjpa-persistence/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-persistence/target/test-classes"
> path="openjpa-persistence/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-persistence/target/classes"
> path="openjpa-persistence/src/main/resources"/>
>        <classpathentry kind="src"
> output="openjpa-persistence-jdbc/target/classes"
> path="openjpa-persistence-jdbc/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-persistence-jdbc/target/test-classes"
> path="openjpa-persistence-jdbc/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-persistence-jdbc/src/main/resources"
> path="openjpa-persistence-jdbc/src/main/resources"/>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-persistence-jdbc/src/test/resources"
> path="openjpa-persistence-jdbc/src/test/resources"/>
>        <classpathentry kind="src" output="openjpa-xmlstore/target/classes"
> path="openjpa-xmlstore/src/main/java"/>
>        <classpathentry kind="src" output="openjpa-slice/target/classes"
> path="openjpa-slice/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-slice/target/test-classes"
> path="openjpa-slice/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-slice/src/main/resources"
> path="openjpa-slice/src/main/resources"/>
>        <classpathentry excluding="**" kind="src"
> output="openjpa-slice/src/test/resources"
> path="openjpa-slice/src/test/resources"/>
>        <classpathentry excluding="reversemapping/*.java" kind="src"
> output="openjpa-examples/target/classes"
> path="openjpa-examples/src/main/java"/>
>        <classpathentry kind="src"
> output="openjpa-examples/target/test-classes"
> path="openjpa-examples/src/test/java">
>                <attributes>
>                        <attribute name="maven.type" value="test"/>
>                </attributes>
>        </classpathentry>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/APACHE_ANT"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_COLL"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LANG"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LOG"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/COMMONS_POOL"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/HSQLDB"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/JMS"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/JPA_2.0_PD"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/JTA"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/LOG4J"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/POSTGRES"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/REGEX"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/SERP_1.13.1"/>
>        <classpathentry exported="true" kind="con"
> path="org.eclipse.jdt.USER_LIBRARY/UOW"/>
>        <classpathentry kind="output" path="bin"/>
> </classpath>
>
>
>
>
> Alan Raison wrote:
> >
> > Hi
> >
> > Does anyone have any experience (preferably successful) of building
> > openjpa-kernel in Eclipse?
> >
> > I've found that checking out each sub-project from trunk usually works
> > fine when building against a released version (as then I can download
> > the pre-compiled openjpa-kernel from the maven repo) but this doesn't
> > work so well when working with trunk.
> >
> > Working from the command line is fine but a bit limited in Windows -
> > especially when trying to patch the source!
> >
> > My specific issue is that Eclipse complains of compile errors in the
> > (src/main/java/)org.apache.openjpa.kernel.jpql package as these files
> > depend on the jjtree sources.  If I add target/generated-sources/javacc
> > to the build path I get a name clash with the SimpleNode class in both
> > the src/main/java and target/generated-sources/javacc folders.  I also
> > tried adding the target/generated-sources/jjtree folder in place of the
> > target/generated-sources/javacc folder but this didn't work either.
> >
> > Sorry if I am being thick with this.  I need my IDE!! ;)
> >
> > Alan
> >
> >
> >
>
>
> -----
> Pinaki Poddar                      http://ppoddar.blogspot.com/
>
> http://www.linkedin.com/in/pinakipoddar
> OpenJPA PMC Member/Committer
> JPA Expert Group Member
> --
> View this message in context:
> http://n2.nabble.com/Building-in-Eclipse-tp2934132p2934719.html
> Sent from the OpenJPA Developers mailing list archive at Nabble.com.
>
>

Re: Building in Eclipse

Posted by Pinaki Poddar <pp...@apache.org>.
Hi Alan,
  I build/debug OpenJPA in Eclipse in a somewhat non-kosher way. The
complexity arises because OpenJPA is a multi-module project and requires
some javaCC generated source code.
 So I am not prescribing the steps but purely describing what works for me.

  1. checkout openjpa source code to say a directory X. You can check the
project out from Eclipse itself too. Then ignore Step 3.
  2. compile with maven -- this will create javacc generated source code
which is required for next steps.
Also it will fetch the dependent libraries in local maven repository.
  3. create an Eclipse project with root directory X
  4. add a whole bunch of 'source folders' to the Eclipse project (see
attached .classpath and .project
files). The output for each of these 'source folders' are different and
should match maven target directory to keep maven and Eclipse build in
synch.
  5. Define a bunch of 'User Libraries' and attach the corresponding jar
that Step 2 has placed in local maven repository. 

  Now the Eclipse project can be cleaned and built with 3 errors about
javaCC generated code. I still could not get rid of them -- but they seemed
to be harmless enough for me so far.

=============== .project file ======================================
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<name>trunk</name>
	<comment></comment>
	<projects>
	</projects>
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
	<natures>
		<nature>org.eclipse.jdt.core.javanature</nature>
	</natures>
</projectDescription>

============== .classpath file ==========================================
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" output="openjpa-lib/target/classes"
path="openjpa-lib/src/main/java"/>
	<classpathentry kind="src" output="openjpa-jdbc/target/test-classes"
path="openjpa-jdbc/src/test/java"/>
	<classpathentry kind="src" output="openjpa-kernel/target/classes"
path="openjpa-kernel/target/generated-sources/jjtree"/>
	<classpathentry kind="src" output="openjpa-kernel/target/classes"
path="openjpa-kernel/target/generated-sources/javacc"/>
	<classpathentry kind="src" output="openjpa-lib/target/test-classes"
path="openjpa-lib/src/test/java">
		<attributes>
			<attribute name="maven.type" value="test"/>
		</attributes>
	</classpathentry>
	<classpathentry excluding="**" kind="src"
output="openjpa-lib/src/main/resources"
path="openjpa-lib/src/main/resources"/>
	<classpathentry excluding="**" kind="src" output="openjpa-project"
path="openjpa-project"/>
	<classpathentry excluding="**" kind="src"
output="openjpa-lib/src/test/resources"
path="openjpa-lib/src/test/resources"/>
	<classpathentry kind="src" output="openjpa-kernel/target/classes"
path="openjpa-kernel/src/main/java"/>
	<classpathentry kind="src" output="openjpa-kernel/target/test-classes"
path="openjpa-kernel/src/test/java">
		<attributes>
			<attribute name="maven.type" value="test"/>
		</attributes>
	</classpathentry>
	<classpathentry excluding="**" kind="src"
output="openjpa-kernel/src/main/resources"
path="openjpa-kernel/src/main/resources"/>
	<classpathentry kind="src" output="openjpa-jdbc/target/classes"
path="openjpa-jdbc/src/main/java"/>
	<classpathentry excluding="**" kind="src"
output="openjpa-jdbc/src/main/resources"
path="openjpa-jdbc/src/main/resources"/>
	<classpathentry kind="src" output="openjpa-persistence/target/classes"
path="openjpa-persistence/src/main/java"/>
	<classpathentry kind="src" output="openjpa-persistence/target/test-classes"
path="openjpa-persistence/src/test/java">
		<attributes>
			<attribute name="maven.type" value="test"/>
		</attributes>
	</classpathentry>
	<classpathentry excluding="**" kind="src"
output="openjpa-persistence/target/classes"
path="openjpa-persistence/src/main/resources"/>
	<classpathentry kind="src" output="openjpa-persistence-jdbc/target/classes"
path="openjpa-persistence-jdbc/src/main/java"/>
	<classpathentry kind="src"
output="openjpa-persistence-jdbc/target/test-classes"
path="openjpa-persistence-jdbc/src/test/java">
		<attributes>
			<attribute name="maven.type" value="test"/>
		</attributes>
	</classpathentry>
	<classpathentry excluding="**" kind="src"
output="openjpa-persistence-jdbc/src/main/resources"
path="openjpa-persistence-jdbc/src/main/resources"/>
	<classpathentry excluding="**" kind="src"
output="openjpa-persistence-jdbc/src/test/resources"
path="openjpa-persistence-jdbc/src/test/resources"/>
	<classpathentry kind="src" output="openjpa-xmlstore/target/classes"
path="openjpa-xmlstore/src/main/java"/>
	<classpathentry kind="src" output="openjpa-slice/target/classes"
path="openjpa-slice/src/main/java"/>
	<classpathentry kind="src" output="openjpa-slice/target/test-classes"
path="openjpa-slice/src/test/java">
		<attributes>
			<attribute name="maven.type" value="test"/>
		</attributes>
	</classpathentry>
	<classpathentry excluding="**" kind="src"
output="openjpa-slice/src/main/resources"
path="openjpa-slice/src/main/resources"/>
	<classpathentry excluding="**" kind="src"
output="openjpa-slice/src/test/resources"
path="openjpa-slice/src/test/resources"/>
	<classpathentry excluding="reversemapping/*.java" kind="src"
output="openjpa-examples/target/classes"
path="openjpa-examples/src/main/java"/>
	<classpathentry kind="src" output="openjpa-examples/target/test-classes"
path="openjpa-examples/src/test/java">
		<attributes>
			<attribute name="maven.type" value="test"/>
		</attributes>
	</classpathentry>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/APACHE_ANT"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/COMMONS_COLL"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LANG"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/COMMONS_LOG"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/COMMONS_POOL"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/HSQLDB"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/JMS"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/JPA_2.0_PD"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/JTA"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/LOG4J"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/POSTGRES"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/REGEX"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/SERP_1.13.1"/>
	<classpathentry exported="true" kind="con"
path="org.eclipse.jdt.USER_LIBRARY/UOW"/>
	<classpathentry kind="output" path="bin"/>
</classpath>

 


Alan Raison wrote:
> 
> Hi
> 
> Does anyone have any experience (preferably successful) of building
> openjpa-kernel in Eclipse?
> 
> I've found that checking out each sub-project from trunk usually works
> fine when building against a released version (as then I can download
> the pre-compiled openjpa-kernel from the maven repo) but this doesn't
> work so well when working with trunk.
> 
> Working from the command line is fine but a bit limited in Windows -
> especially when trying to patch the source!
> 
> My specific issue is that Eclipse complains of compile errors in the
> (src/main/java/)org.apache.openjpa.kernel.jpql package as these files
> depend on the jjtree sources.  If I add target/generated-sources/javacc
> to the build path I get a name clash with the SimpleNode class in both
> the src/main/java and target/generated-sources/javacc folders.  I also
> tried adding the target/generated-sources/jjtree folder in place of the
> target/generated-sources/javacc folder but this didn't work either.
> 
> Sorry if I am being thick with this.  I need my IDE!! ;)
> 
> Alan
> 
> 
> 


-----
Pinaki Poddar                      http://ppoddar.blogspot.com/
                                      
http://www.linkedin.com/in/pinakipoddar
OpenJPA PMC Member/Committer
JPA Expert Group Member
-- 
View this message in context: http://n2.nabble.com/Building-in-Eclipse-tp2934132p2934719.html
Sent from the OpenJPA Developers mailing list archive at Nabble.com.