Re: Hudson and Client-Side Classes
Re: Hudson and Client-Side Classes
- Subject: Re: Hudson and Client-Side Classes
- From: David Avendasora <email@hidden>
- Date: Mon, 15 Jun 2009 20:19:44 -0400
On Jun 15, 2009, at 6:28 PM, Chuck Hill wrote:
Ah Grasshopper,
When you can build cleanly with Ant, then you will be ready to
leave us.
I hate Ant. I'd probably hate Maven worser.
On Jun 15, 2009, at 3:14 PM, David Avendasora wrote:
Progress. I have two new things:
First, I missed these to lines in the Ant debug:
fileset: Setup scanner in dir /Developer/Hudson/Workspaces/
BakeryManagementD2JavaClient/Trunk/Libraries with
patternSet{ includes: [*.jar] excludes: [] }
fileset: Setup scanner in dir /Developer/WebObjects/bestmaid/
Library/WebObjects/Extensions with patternSet{ includes: [*.jar]
excludes: [] }
So, it is scanning files in the project "Libraries" directory,
whether they are on the classpath or not!
Maybe. Which task is this for? What does your build.xml say for
this task?
build.woapp.
And lookie there:
<lib dir="Libraries">
<include name="*.jar" />
</lib>
I checked, and this little gem is in the build.xml file of all the App
and Framework project templates.
I'm guessing there's a reason that it just loads everything in
Libraries, but it's counterintuitive when the incremental builder
doesn't do that. Not as far as I can tell, anyway.
Is that right? Even if there are files in the Libraries directory,
that doesn't automatically put them on the classpath, you still
have to add them, so I wouldn't think that Ant should be
specifically going out of it's way to find them there.
Reality is that which when you stop believing in it refuses to go
away.
:-P
The same should hold true for /Library/WebObjects/Extensions/ if
people shouldn't be putting stuff in there, and it seems to cause a
lot of confusion, why go and automatically load everything in there?
For compatibility with how the runtime works. Just because people
say that you should not be putting things in there, does not mean
that other people will listen.
Can we at least make Ant write "You moron! There's stuff in the
WebObjects/Extensions directory. Get rid of it." into the console if
the directory isn't empty? It would have only mildly hurt my feelings
yesterday, but would have saved me a few hours time.
Second, I added an external .jar file to my project, it shows up in
the .classpath file in the project, but Ant is _not_ loading that
one. Why?
How did you add it? What does it look like in the .classpath file?
In the Build Path properties window I clicked the "Add External JARs"
button and selected it. It is the client-side jar of EODistribution
(Since WOLips doesn't automatically add the client-side jars to the
classpath when you add a framework to the build path).
<classpathentry kind="lib" path="/Developer/WebObjects/bestmaid/
System/Library/Frameworks/JavaEODistribution.framework/Versions/A/
WebServerResources/Java/JavaEODistribution.jar"/>
Dave
Chuck
On Jun 15, 2009, at 4:10 PM, David Avendasora wrote:
Hold on.
Where is Ant loading the classpath from? I assumed it was from
the .classpath file in the project, but I changed the classpath to
no load wojavaclient.jar anymore, but it still references it.
Dave
On Jun 15, 2009, at 3:10 PM, David Avendasora wrote:
It appears that Ant is loading the kind="lib" entry from the
project's .classpath file first even though it is the last entry
in the .classpath file.
I the ant classpath listing below, you'll see that the first .jar
on the classpath is wojavaclient.jar which has all the
com.webobjects.foundation classes in it and since it is loading
first, it's winning. Right? But in the .classpath file of the
project, the wojavaclient.jar is the _last_ entry. See below also.
It then appears to load the rest of the .classpath file
(type="con") in the order specified.
Dave
[wocompile] '-classpath'
[wocompile] '/Developer/Hudson/Workspaces/
BakeryManagementD2JavaClient/Trunk/bin:/Developer/Hudson/
Workspaces/BakeryManagementD2JavaClient/Trunk/Libraries/
wojavaclient.jar:/Developer/WebObjects/bestmaid/Library/
Frameworks/BMExtensions.framework/Resources/Java/
bmextensions.jar:/Developer/WebObjects/bestmaid/Library/
Frameworks/ERExtensions.framework/Resources/Java/
ERExtensions.jar:/Developer/WebObjects/bestmaid/Library/
Frameworks/MicrosoftPlugIn.framework/Resources/Java/
microsoftplugin.jar:/Developer/WebObjects/bestmaid/Library/
Frameworks/ERJars.framework/Resources/Java/ERJars.jar:/Developer/
WebObjects/bestmaid/Library/Frameworks/ERJars.framework/Resources/
Java/erxservletadaptor.jar:/Developer/WebObjects/bestmaid/Library/
Frameworks/ERJars.framework/Resources/Java/erxwo54.jar:/Developer/
WebObjects/bestmaid/Library/Frameworks/ERJars.framework/Resources/
Java/icu4j-3_8_1.jar:/Developer/WebObjects/bestmaid/Library/
Frameworks/ERJars.framework/Resources/Java/junit.jar:/Developer/
WebObjects/bestmaid/Library/Frameworks/ERJars.framework/Resources/
Java/log4j-1.2.14.jar:/Developer/WebObjects/bestmaid/Library/
Frameworks/ERJars.framework/Resources/Java/slf4j-api-1.5.0.jar:/
Developer/WebObjects/bestmaid/Library/Frameworks/ERJars.framework/
Resources/Java/slf4j-log4j12-1.5.0.jar:/Developer/WebObjects/
bestmaid/Library/Frameworks/BakeryManagementFoundation.framework/
Resources/Java/bakerymanagementfoundation.jar:/Developer/
WebObjects/bestmaid/Library/Frameworks/ERJavaMail.framework/
Resources/Java/activation-1.1.1.jar:/Developer/WebObjects/
bestmaid/Library/Frameworks/ERJavaMail.framework/Resources/Java/
dsn-1.4.1.jar:/Developer/WebObjects/bestmaid/Library/Frameworks/
ERJavaMail.framework/Resources/Java/ERJavaMail.jar:/Developer/
WebObjects/bestmaid/Library/Frameworks/ERJavaMail.framework/
Resources/Java/imap-1.4.1.jar:/Developer/WebObjects/bestmaid/
Library/Frameworks/ERJavaMail.framework/Resources/Java/
mailapi-1.4.1.jar:/Developer/WebObjects/bestmaid/Library/
Frameworks/ERJavaMail.framework/Resources/Java/pop3-1.4.1.jar:/
Developer/WebObjects/bestmaid/Library/Frameworks/
ERJavaMail.framework/Resources/Java/smtp-1.4.1.jar:/Developer/
WebObjects/bestmaid/Library/Frameworks/JavaWOExtensions.framework/
Resources/Java/JavaWOExtensions.jar:/Developer/WebObjects/
bestmaid/System/Library/Frameworks/JavaDirectToWeb.framework/
Resources/Java/javadirecttoweb.jar:/Developer/WebObjects/bestmaid/
System/Library/Frameworks/JavaDTWGeneration.framework/Resources/
Java/javadtwgeneration.jar:/Developer/WebObjects/bestmaid/System/
Library/Frameworks/JavaEOAccess.framework/Resources/Java/
javaeoaccess.jar:/Developer/WebObjects/bestmaid/System/Library/
Frameworks/JavaEOApplication.framework/Resources/Java/
javaeoapplication.jar:/Developer/WebObjects/bestmaid/System/
Library/Frameworks/JavaEOControl.framework/Resources/Java/
javaeocontrol.jar:/Developer/WebObjects/bestmaid/System/Library/
Frameworks/JavaEODistribution.framework/Resources/Java/
javaeodistribution.jar:/Developer/WebObjects/bestmaid/System/
Library/Frameworks/JavaEOGeneration.framework/Resources/Java/
javaeogeneration.jar:/Developer/WebObjects/bestmaid/System/
Library/Frameworks/JavaEOInterface.framework/Resources/Java/
javaeointerface.jar:/Developer/WebObjects/bestmaid/System/Library/
Frameworks/JavaEOInterfaceSwing.framework/Resources/Java/
javaeointerfaceswing.jar:/Developer/WebObjects/bestmaid/System/
Library/Frameworks/JavaEOProject.framework/Resources/Java/
javaeoproject.jar:/Developer/WebObjects/bestmaid/System/Library/
Frameworks/JavaEORuleSystem.framework/Resources/Java/
javaeorulesystem.jar:/Developer/WebObjects/bestmaid/System/
Library/Frameworks/JavaFoundation.framework/Resources/Java/
javafoundation.jar:/Developer/WebObjects/bestmaid/System/Library/
Frameworks/JavaJDBCAdaptor.framework/Resources/Java/
javajdbcadaptor.jar:/Developer/WebObjects/bestmaid/System/Library/
Frameworks/JavaWebObjects.framework/Resources/Java/
javawebobjects.jar:/Developer/WebObjects/bestmaid/System/Library/
Frameworks/JavaWOJSPServlet.framework/Resources/Java/
javawojspservlet.jar:/usr/share/ant/lib/ant-launcher.jar:/
Developer/Hudson/Dependencies/woproject.jar:/usr/share/ant/lib/
ant-jai.jar:/usr/share/ant/lib/ant-jmf.jar:/usr/share/ant/lib/ant-
junit.jar:/usr/share/ant/lib/ant-nodeps.jar:/usr/share/ant/lib/
ant-swing.jar:/usr/share/ant/lib/ant-testutil.jar:/usr/share/ant/
lib/ant-trax.jar:/usr/share/ant/lib/ant.jar:/usr/share/ant/lib/
xercesImpl.jar:/usr/share/ant/lib/xml-apis.jar'
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="Sources"/>
<classpathentry kind="con" path="WOFramework/BMExtensions"/>
<classpathentry kind="con" path="WOFramework/ERExtensions"/>
<classpathentry kind="con" path="WOFramework/MicrosoftPlugIn"/>
<classpathentry kind="con" path="WOFramework/ERJars"/>
<classpathentry kind="con" path="WOFramework/
BakeryManagementFoundation"/>
<classpathentry kind="con" path="WOFramework/ERJavaMail"/>
<classpathentry kind="con" path="WOFramework/JavaWOExtensions"/>
<classpathentry kind="con" path="WOFramework/JavaDirectToWeb"/>
<classpathentry kind="con" path="WOFramework/JavaDTWGeneration"/>
<classpathentry kind="con" path="WOFramework/JavaEOAccess"/>
<classpathentry kind="con" path="WOFramework/JavaEOApplication"/>
<classpathentry kind="con" path="WOFramework/JavaEOControl"/>
<classpathentry kind="con" path="WOFramework/JavaEODistribution"/>
<classpathentry kind="con" path="WOFramework/JavaEOGeneration"/>
<classpathentry kind="con" path="WOFramework/JavaEOInterface"/>
<classpathentry kind="con" path="WOFramework/
JavaEOInterfaceSwing"/>
<classpathentry kind="con" path="WOFramework/JavaEOProject"/>
<classpathentry kind="con" path="WOFramework/JavaEORuleSystem"/>
<classpathentry kind="con" path="WOFramework/JavaFoundation"/>
<classpathentry kind="con" path="WOFramework/JavaJDBCAdaptor"/>
<classpathentry kind="con" path="WOFramework/JavaWebObjects"/>
<classpathentry kind="con" path="WOFramework/JavaWOJSPServlet"/>
<classpathentry kind="con"
path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="lib" path="Libraries/wojavaclient.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
On Jun 15, 2009, at 2:06 PM, Mike Schrag wrote:
this is all determined by classpath/framework ordering, so it
obviously looks like the order is wrong somehow ... hudson isn't
doing anything special here, so i would run ant with debug
manually and see what's going on. it should fail identically
from commandline.
On Jun 15, 2009, at 1:34 PM, David Avendasora wrote:
Hi All (mostly Mike, again)
I've gotten all my frameworks and applications to successfully
build with Hudson, including fully embedded servlet
deployments, except for one.
Of course it is a Java Client project that makes use of some
client-side classes from one of my frameworks that is failing.
Here's the situation:
I'm using Generics with WO 5.3.3. Normally you'd use Wonder to
get Generic versions of com.webobjects.foundation.NSArray and
friends, only ERExtensions doesn't create a client-side jar for
use with WebStart Java Client apps (WebServerResources/Java/
ERExtensions.jar), so I had to create my own framework that
does. I've included my BMExtensions.framework on the classpath
of my Project and ensured that it loads prior to even
ERExtensions.framework. No big deal, and running the Ant build
from within Eclipse handles things just fine (I'm guessing it
is really looking at the server-side class), but when Hudson
tries to build the project, I get:
compile:
[mkdir] Created dir: /Developer/Hudson/Workspaces/
BakeryManagementD2JavaClient/Trunk/bin
[wocompile] Compiling 262 source files to /Developer/Hudson/
Workspaces/BakeryManagementD2JavaClient/Trunk/bin
[wocompile] /Developer/Hudson/Workspaces/
BakeryManagementD2JavaClient/Trunk/Sources/com/bestmaid/
bakeryManagement/client/integration/_ExternalCustomer.java:62:
type com.webobjects.foundation.NSArray does not take parameters
[wocompile] public
NSArray
<com.bestmaid.bakeryManagement.client.orderManagement.Customer>
bmCustomers() {
[wocompile] ^
So it is obviously using JavaFoundation.framework's version of
NSArray instead of my custom one, or even the ERExtensions
server-side one. How do I override which one it is using to do
the compile so it won't fail?
Thanks,
Dave
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
--
Chuck Hill Senior Consultant / VP Development
Come to WOWODC'09 in San Fran this June!
http://www.wocommunity.org/wowodc09/
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden