geronimo-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Shiva Kumar H R" <shiv...@gmail.com>
Subject Re: Help with the Geronimo Eclipse Plugin
Date Tue, 21 Aug 2007 16:57:41 GMT
JIRA GERONIMODEVTOOLS-185 created to track this.

- Shiva

On 8/18/07, Shiva Kumar H R <shivahr@gmail.com> wrote:
>
> That's great. I will create a JIRA for this on Monday.
>
> - Shiva
>
> On 8/16/07, James Ervin <jeervin@gmail.com > wrote:
> >
> > I modified the part of the processJavaProject() method that deals with
> > containers like so:
> >
> > SharedLibEntryCreationOperation.java:
> > processJavaProject()
> >            <--- Begin code snippet --->
> >            if( kind == IClasspathEntry.CPE_CONTAINER )
> >            {
> >                 if( entry.getPath().segment( 0 ).startsWith(
> > "org.eclipse.jdt.launching" ) )
> >                     continue;
> >                 if( entry.getPath().segment( 0 ).startsWith(
> > "org.eclipse.jst." ) )
> >                     continue;
> >                 if( entry.getPath().segment( 0 ).startsWith(
> > "org.eclipse.wst" ) )
> >                     continue;
> > //                if(
> > "org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER ".equals(
> > entry.getPath().toString() ) )
> > //                {
> >                 final IClasspathContainer container =
> > JavaCore.getClasspathContainer(entry.getPath(), javaProject);
> >                 final IClasspathEntry[] containerEntries =
> > container.getClasspathEntries();
> >                 for( int j = 0; j  < containerEntries.length; j++ )
> >                     addEntry( entries, resolveVarOrLibEntry(
> > containerEntries[ j ] ) );
> > //                }
> >             }
> >            <--- End Code Snippet --->
> >
> > This seems to work for me.  I am checking for the JDT JRE container,
> > any WTP containers and then ignoring those entries.
> >
> > Can anyone see any side-effects to this?
> >
> > James
> >
> > On 8/16/07, Shiva Kumar H R <shivahr@gmail.com> wrote:
> > > Looks like I won't be able to resolve this with my current code
> > knowledge. Will dig into this more tomorrow.
> > >
> > > - Shiva
> > >
> > >
> > >
> > > On 8/15/07, James Ervin < jeervin@gmail.com> wrote:
> > > > I was thinking about this and I believe the reason that the full
> > resolved class path is not considered is because it would include entries
> > from both the JRE classpath container and the Web-App Libraries classpath
> > container.  Is this correct?  If it is, it would seem easier to just exclude
> > those classpath containers and then resolve the rest?
> > > >
> > > > Thanks,
> > > > James
> > > >
> > > >
> > > >
> > > > On 8/15/07, James Ervin < jeervin@gmail.com> wrote:
> > > > >  I was just following up to see if anyone saw any side effects
> > from considering the resolved classpath of a java project instead of just
> > the raw classpath?
> > > > >
> > > > >
> > > > > Thanks,
> > > > > James
> > > > >
> > > > >
> > > > > On 8/13/07,  James Ervin <jeervin@gmail.com > wrote:
> > > > > >    I was looking at the method a bit and it seems as though
the
> > only classpath container that is recognized is the maven classpath
> > container.  Perhaps by using the resolved classpath or by removing the if
> > statement that checks for the maven classpath container exclusively would be
> > enough.  Maybe the code could be simplified by using getResolvedClasspath()
> > since I don' t think you would need to call a resolveVarOrLibEntry() method
> > anymore.
> > > > > >
> > > > > > Thanks for pointer btw...  You brightened my morning....
> > > > > >
> > > > > > Thanks,
> > > > > > James
> > > > > >
> > > > > >
> > > > > >
> > > > > > On 8/13/07,  James Ervin < jeervin@gmail.com> wrote:
> > > > > > > Oh that would be awesome.... thanks.... please let me know
of
> > your results ASAP.
> > > > > > >
> > > > > > > Thanks,
> > > > > > > James
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On 8/13/07, Shiva Kumar H R <     shivahr@gmail.com>
wrote:
> > > > > > > > Hi James,
> > > > > > > > Looks like this is what you are looking for (I hit
across
> > this by searching for "getRawClasspath" in plug-in source):
> > > > > > > > "processJavaProject() method of
> > org.apache.geronimo.st.core.operations.SharedLibEntryCreationOperation.java  in
> > plugins/org.apache.geronimo.st.core"
> > > > > > > >
> > > > > > > > Now seeing if changing this to getResolvedClasspath
(as you
> > suggest), would lead to any side effects.
> > > > > > > >
> > > > > > > > - Shiva
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On 8/9/07,  James Ervin <jeervin@gmail.com>
wrote:
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On 8/8/07, Tim McConnell < tim.mcconne@gmail.com>
wrote:
> > > > > > > > > >  Hi again James, Sorry for the delay but
I've been
> > trying to fully understand
> > > > > > > > > > what you're trying to accomplish. Have you
considered
> > using the shared lib
> > > > > > > > > > support that is already provided by the
Geronimo plugin
> > publish/deploy
> > > > > > > > > > functionality ?? If I correctly understand
what you're
> > trying to accomplish the
> > > > > > > > > > shared lib support should work for you.
It's not obvious
> > to me though why you
> > > > > > > > > > are so adverse to using the built-in publish/deploy
> > capabilities of the plugin.
> > > > > > > > > > Finally, have you considered upgrading to
the latest
> > versions of Geronimo and
> > > > > > > > > > the plugin ?? Geronimo 2.0 is currently
being voted on
> > for release, and the
> > > > > > > > > > plugin will be voted on for release shortly
thereafter.
> > Just curious. Thanks
> > > > > > > > > > much....
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Thanks for the reply, I actually am using a Publish
> > Operation to set the shared library support, so yes I am using some of that
> > support.  The issue I am having is the fact that when the Geronimo plugin is
> > computing the <Project-Name>.eclipse.jar manifest for the
> > ${GERONIMO_HOME}/shared/lib directory, it seems to only consider the raw
> > classpath from the Eclipse JDT.  In other words, it appears almost as though
> > its using   org.eclipse.jdt.core.IJavaProject.getRawClasspath() instead
> > of org.eclipse.jdt.core.IJavaProject.getResolvedClasspath().  I say
> > almost, because it will resolve Classpath Variable entries.  The net effect
> > is that I have to hard code entries in the .classpath file for each jar file
> > I want in that manifest, but that is what classpath containers are supposed
> > to help you with.
> > > > > > > > >  I have considered it, but the circumstances
are such that
> > I have to use what I am given so far.  I will look at version 2.0 and
> > the latest from the plugin, but that leads me to one of my earlier questions
> > in my first post.  Where in the plugin do I look for where it is computing
> > the manifest for the <Project-Name>.eclipse.jar?  I have to admit I am a bit
> > of a newbie when it comes to EMF (I'm not sure that I hate it, but I have
> > yet to see what I really like about it.  The idea seems very interesting,
> > but I am not crazy about the results I have seen so far) and well the
> > Geronimo Plugin source tree seems almost as big as WTP's at this point, so
> > any pointers would be most appreciated.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > James
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > James Ervin wrote:
> > > > > > > > > > > Tim,
> > > > > > > > > > > Thanks for the reply.  Reviewing the
plugins installed
> > it looks as
> > > > > > > > > > > though the plugin is at version 1.0.0
with the
> > > > > > > > > > > org.apache.geronimo.runtime.v1 plugin
at version 1.0.1.  Hmm
> > I don't see
> > > > > > > > > > > a feature.  I am not quite sure the
version of
> > geronimo.  It comes
> > > > > > > > > > > bundled and is installed by a script
so I am not
> > entirely sure of the
> > > > > > > > > > > version.  My educated guess is that
it is at version
> > 1.2.  The version
> > > > > > > > > > > of WTP is 1.5.x.
> > > > > > > > > > >
> > > > > > > > > > > Its not straightforward to offer a
sample app, since I
> > can't really
> > > > > > > > > > > offer up my plugin, so I will describe
it.
> > > > > > > > > > >
> > > > > > > > > > > When you add a project dependency for
a web app, I
> > noticed that the
> > > > > > > > > > > Geronimo Eclipse plugin will generate
a jar file in
> > the
> > > > > > > > > > > ${GERONIMO_HOME}/shared/lib directory
with the name
> > > > > > > > > > > ${PROJECT_NAME}.eclipse.jar.  In that
jar there is a
> > manifest that is
> > > > > > > > > > > pointing at the java source output
directories for the
> > web app project
> > > > > > > > > > > and the output directories for any
project
> > dependencies.  It would be
> > > > > > > > > > > nice to customize that, but that is
just fine for
> > now.  The shared/lib
> > > > > > > > > > > directory is also where I generate
a jar file that
> > contains a manifest
> > > > > > > > > > > describing the set of shared libraries
that all
> > deployed web apps will
> > > > > > > > > > > share.
> > > > > > > > > > >
> > > > > > > > > > > If I add a classpath entry directly
in the .classpath
> > file for a library
> > > > > > > > > > > jar dependency, it will show in the
> > ${PROJECT_NAME}.eclipse.jar just
> > > > > > > > > > > fine.  The problem comes in that I
want to use a
> > classpath container to
> > > > > > > > > > > resolve library dependencies and not
have to manage
> > entries directly in
> > > > > > > > > > > the .classpath file.  Even when the
container resolves
> > down to a set of
> > > > > > > > > > > flat jar files, it does not matter.
 It seems that the
> > plugin does not
> > > > > > > > > > > check the resolved classpath of a java
project and
> > only checks the raw
> > > > > > > > > > > classpath.  Shouldn't it construct
the classpath by
> > checking all project
> > > > > > > > > > > dependencies and by using the resolved,
and not raw,
> > classpath?
> > > > > > > > > > >
> > > > > > > > > > > I am faced with a significant rewrite
right now if I
> > cannot figure out a
> > > > > > > > > > > solution, any help would be really
appreciated.
> > > > > > > > > > >
> > > > > > > > > > > Thanks,
> > > > > > > > > > > James
> > > > > > > > > > >
> > > > > > > > > > > On 8/7/07, * Tim McConnell* <
> > tim.mcconne@gmail.com
> > > > > > > > > > > <mailto: tim.mcconne@gmail.com>>
wrote:
> > > > > > > > > > >
> > > > > > > > > > >     Hi James, which version of Geronimo
and the
> > Geronimo plugin are you
> > > > > > > > > > >     using ??
> > > > > > > > > > >     Also, do you have an example test
app that you
> > could attach that
> > > > > > > > > > >     demonstrates
> > > > > > > > > > >     the failure ??
> > > > > > > > > > >
> > > > > > > > > > >     James Ervin wrote:
> > > > > > > > > > >      > Hello,
> > > > > > > > > > >      > I am a developer working
on an Eclipse plugin
> > attempting to use
> > > > > > > > > > >     WTP to
> > > > > > > > > >        >      > help ppl write Service
Based web
> > apps.  Why am I asking a question on
> > > > > > > > > > >      > the geronimo user group?
 Well because I am
> > attempting to use Apache
> > > > > > > > > > >      > Geronimo as the primary J2EE
container.
> > > > > > > > > > >      >
> > > > > > > > > > >      > My problem is this, I need
to be able to deploy
> > libraries (yes I
> > > > > > > > > > >     know
> > > > > > > > > > >      > about the PublishOperation
and that I can
> > generate a jar with a big
> > > > > > > > > > >      > manifest file enumerating
all shared libraries)
> > that are only used by
> > > > > > > > > > >      > one particular web app or
dependent web
> > app.  So I have a classpath
> > > > > > > > > > >      > container, the trouble is
that the Apache
> > Geronimo plugin that I have
> > > > > > > > > > >      > access to does not seem to
care about entries
> > in classpath
> > > > > > > > > > >     containers,
> > > > > > > > > > >      > only those that are directly
enumerated in a
> > .classpath file (bad
> > > > > > > > > > >     form
> > > > > > > > > > >      > IMHO).
> > > > > > > > > > >      >
> > > > > > > > > > >      > I have attempted to deploy
libs into
> > WebContent/WEB-INF/lib, but on
> > > > > > > > > > >      > windows WTP ( or some plugin
) keeps the bloody
> > file lock and
> > > > > > > > > > >     will not
> > > > > > > > > > >      > let me update or delete it.
 I even attempted
> > to deploy the libs
> > > > > > > > > > >     to a
> > > > > > > > > > >      > separate directory and then
told WTP via a
> > <wb-resource/> tag in
> > > > > > > > > > >     the WST
> > > > > > > > > > >      > common component configuration
file where to
> > find it.  The lib
> > > > > > > > > > >     showed up
> > > > > > > > > > >      > in the list of WebApp Libraries,
but then when
> > deployed to
> > > > > > > > > > >     Geronimo it
> > > > > > > > > > >      > was not recognized.
> > > > > > > > > > >      >
> > > > > > > > > > >      > I have tried this and a few
other
> > combinations.  The only one
> > > > > > > > > > >     that has
> > > > > > > > > > >      > worked is if I create a new
shared lib entry
> > jar (bad form since
> > > > > > > > > > >     not all
> > > > > > > > > > >      > web apps on the container
will want the given
> > set of libraries)
> > > > > > > > > > >     or if I
> > > > > > > > > > >      > enumerate the libraries one
by one directly in
> > the .classpath
> > > > > > > > > > >     (classpath
> > > > > > > > > > >      > containers anyone?).
> > > > > > > > > > >      >
> > > > > > > > > > >      > Is there anyway to make the
plugin respect the
> > classpath
> > > > > > > > > > >     container?  Or
> > > > > > > > > > >      > at least give me a clue through
the bloody EMF
> > wilderness as to
> > > > > > > > > > >     where in
> > > > > > > > > > >      > the plugin the deployment
configuration is
> > determined so that I can
> > > > > > > > > > >      > consider my options (you
know like a
> > patch...)?  I am at my wits end,
> > > > > > > > > > >      > any help would be most appreciated.
> > > > > > > > > > >      >
> > > > > > > > > > >      > Thanks,
> > > > > > > > > > >      > --
> > > > > > > > > > >      > James E. Ervin
> > > > > > > > > > >      >
> > > > > > > > > > >      > A human being should be able
to change a
> > diaper, plan an invasion,
> > > > > > > > > > >      > butcher a hog, conn a ship,
design a building,
> > write a sonnet,
> > > > > > > > > > >     balance
> > > > > > > > > > >      > accounts, build a wall, set
a bone, comfort the
> > dying, take
> > > > > > > > > > >     orders, give
> > > > > > > > > > >      > orders, cooperate, act alone,
solve equations,
> > analyze a new problem,
> > > > > > > > > > >      > pitch manure, program a computer,
cook a tasty
> > meal, fight
> > > > > > > > > > >     efficiently,
> > > > > > > > > > >      > die gallantly. Specialization
is for insects.
> > > > > > > > > > >      > -Robert A. Heinlein
> > > > > > > > > > >      >
> > > > > > > > > > >      > Blog:       http://iacobus.blogspot.com
> > > > > > > > > > >
> > > > > > > > > > >     --
> > > > > > > > > > >     Thanks,
> > > > > > > > > > >     Tim McConnell
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > --
> > > > > > > > > > > James E. Ervin, IV
> > > > > > > > > > >
> > > > > > > > > > > A human being should be able to change
a diaper, plan
> > an invasion,
> > > > > > > > > > > butcher a hog, conn a ship, design
a building, write a
> > sonnet, balance
> > > > > > > > > > > accounts, build a wall, set a bone,
comfort the dying,
> > take orders, give
> > > > > > > > > > > orders, cooperate, act alone, solve
equations, analyze
> > a new problem,
> > > > > > > > > > > pitch manure, program a computer, cook
a tasty meal,
> > fight efficiently,
> > > > > > > > > > > die gallantly. Specialization is for
insects.
> > > > > > > > > > > -Robert A. Heinlein
> > > > > > > > > > >
> > > > > > > > > > > Blog:        http://iacobus.blogspot.com
> > > > > > > > > >
> > > > > > > > > > --
> > > > > > > > > > Thanks,
> > > > > > > > > > Tim McConnell
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > > James E. Ervin, IV
> > > > > > > > >
> > > > > > > > > A human being should be able to change a diaper,
plan an
> > invasion, butcher a hog, conn a ship, design a building, write a sonnet,
> > balance accounts, build a wall, set a bone, comfort the dying, take orders,
> > give orders, cooperate, act alone, solve equations, analyze a new problem,
> > pitch manure, program a computer, cook a tasty meal, fight efficiently, die
> > gallantly. Specialization is for insects.
> > > > > > > > > -Robert A. Heinlein
> > > > > > > > >
> > > > > > > > > Blog: http://iacobus.blogspot.com
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > >
> > > > > > > James E. Ervin, IV
> > > > > > >
> > > > > > > A human being should be able to change a diaper, plan an
> > invasion, butcher a hog, conn a ship, design a building, write a sonnet,
> > balance accounts, build a wall, set a bone, comfort the dying, take orders,
> > give orders, cooperate, act alone, solve equations, analyze a new problem,
> > pitch manure, program a computer, cook a tasty meal, fight efficiently, die
> > gallantly. Specialization is for insects.
> > > > > > > -Robert A. Heinlein
> > > > > > >
> > > > > > > Blog: http://iacobus.blogspot.com
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > >
> > > > > > James E. Ervin, IV
> > > > > >
> > > > > > A human being should be able to change a diaper, plan an
> > invasion, butcher a hog, conn a ship, design a building, write a sonnet,
> > balance accounts, build a wall, set a bone, comfort the dying, take orders,
> > give orders, cooperate, act alone, solve equations, analyze a new problem,
> > pitch manure, program a computer, cook a tasty meal, fight efficiently, die
> > gallantly. Specialization is for insects.
> > > > > > -Robert A. Heinlein
> > > > > >
> > > > > > Blog: http://iacobus.blogspot.com
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > >
> > > > > James E. Ervin, IV
> > > > >
> > > > > A human being should be able to change a diaper, plan an invasion,
> > butcher a hog, conn a ship, design a building, write a sonnet, balance
> > accounts, build a wall, set a bone, comfort the dying, take orders, give
> > orders, cooperate, act alone, solve equations, analyze a new problem, pitch
> > manure, program a computer, cook a tasty meal, fight efficiently, die
> > gallantly. Specialization is for insects.
> > > > > -Robert A. Heinlein
> > > > >
> > > > > Blog: http://iacobus.blogspot.com
> > > >
> > > >
> > > >
> > > > --
> > > >
> > > > James E. Ervin, IV
> > > >
> > > > A human being should be able to change a diaper, plan an invasion,
> > butcher a hog, conn a ship, design a building, write a sonnet, balance
> > accounts, build a wall, set a bone, comfort the dying, take orders, give
> > orders, cooperate, act alone, solve equations, analyze a new problem, pitch
> > manure, program a computer, cook a tasty meal, fight efficiently, die
> > gallantly. Specialization is for insects.
> > > > -Robert A. Heinlein
> > > >
> > > > Blog: http://iacobus.blogspot.com
> > >
> > >
> >
> >
> >
> > --
> > James E. Ervin, IV
> >
> > A human being should be able to change a diaper, plan an invasion,
> > butcher a hog, conn a ship, design a building, write a sonnet, balance
> > accounts, build a wall, set a bone, comfort the dying, take orders,
> > give orders, cooperate, act alone, solve equations, analyze a new
> > problem, pitch manure, program a computer, cook a tasty meal, fight
> > efficiently, die gallantly. Specialization is for insects.
> > -Robert A. Heinlein
> >
> > Blog: http://iacobus.blogspot.com
> >
>
>

Mime
View raw message