On Wed, Jul 22, 2009 at 6:48 AM, Martin Grotzke
martin.grot...@javakaffee.de wrote:
Hi Assaf,
thanx a lot, now I got it - it's so easy :-)
I also updated the wiki:
http://cwiki.apache.org/confluence/display/BUILDR/How+to+run+jetty
Nice.
Assaf
http://cwiki.apache.org/confluence/display/BUILDR/How+to+run+jetty
Thanx cheers,
Martin
On Wed, 2009-07-22 at 02:05 -0700, Assaf Arkin wrote:
On Tue, Jul 21, 2009 at 1:46 PM, Martin Grotzke
martin.grot...@javakaffee.de wrote:
On Tue, 2009-07-21 at 11:02 -0700, Assaf Arkin wrote:
On Tue, Jul 21, 2009 at 2:50 AM, Martin Grotzke
martin.grot...@javakaffee.de wrote:
Hi Assaf,
thanx for your response! Unfortunately, I don't see how/where to
use
the
Jetty.new exactly.
When I just Jetty.new(foo, http://localhost:8090;) then buildr
complains about
uninitialized constant Jetty
Try Buildr::Jetty.new( …
Sorry, but I just don't get it. Where shall this go to? I still want to
be able to run jetty in two subprojects. What I'm using in one
subproject until now is this:
task(jetty=[package(:war), jetty.use]) do |task|
jetty.deploy(http://localhost:8080;, task.prerequisites.first)
puts 'Press CTRL-C to stop Jetty'
trap 'SIGINT' do
jetty.stop
end
Thread.stop
end
What is required so that I can use different instances of jetty in
different subprojects?
When you call the jetty method, you get a single instance of the Jetty
class
[1]. That's clearly not what you want, so don't call the jetty method --
create the instance directly and use that instance instead of the one
returned by the jetty method. It's just an object and all you need is a
variable to reference it.
Assaf
[1]
http://github.com/apache/buildr/blob/a25989f6aaa79a25e9727237977cde248918286e/addon/buildr/jetty.rb#L244-246
Thanx cheers,
Martin
To limit namespace pollution, everything is defined in the Buildr
namespace.
A lot of stuff is also conveniently accessible from the global
namespace,
so global namespace is good place to look for thing, if not there,
try
the
Buildr namespace.
Assaf
Can you provide a more complete example?
Thanx cheers,
Martin
On Mon, 2009-07-20 at 20:04 -0700, Assaf Arkin wrote:
On Mon, Jul 20, 2009 at 8:57 AM, Martin Grotzke
martin.grot...@javakaffee.de wrote:
Hi,
our project contains several subprojects. Two of them I want to
run
with
jetty, both instances shall be running at the same time.
To change the port for one of the instances, I use
jetty.url = http://localhost:8090;
in the context of one subproject, but this seems to change also
the
url
for the jetty task defined in the different subproject.
That's how I define the jetty tasks:
define myproj do
define subprojA do
...
task(jetty=[package(:war), jetty.use]) do |task|
jetty.deploy(http://localhost:8080;,
task.prerequisites.first)
puts 'Press CTRL-C to stop Jetty'
trap 'SIGINT' do
jetty.stop
end
Thread.stop
end
end
define subprojB do
jetty.url = http://localhost:8090;
task(jetty=[package(:war), jetty.use]) do |task|
jetty.deploy(http://localhost:8090;,
task.prerequisites.first)
puts 'Press CTRL-C to stop Jetty'
trap 'SIGINT' do
jetty.stop
end
Thread.stop
end
end
end
When I run the first jetty with
buildr myproj:subprojA
it fails with
...
Starting Jetty at http://localhost:8090
1 [main] INFO org.mortbay.log - Logging to
org.slf4j.impl.SimpleLogger(org.mortbay.log) via
org.mortbay.log.Slf4jLog
15 [main] INFO org.mortbay.log - jetty-6.1.3
74 [main] INFO org.mortbay.log - Started SocketConnector @
0.0.0.0:8090
Jetty started
Buildr aborted!
Connection refused - connect(2)
Is it somehow possible to run several jetty instances for
different
subprojects?
Each time you call the jetty method it will return the same one
instance
of
jetty. The jetty task is run after the buildfile, at which point
the
last
value you set to jetty.url is the current value, which happens to
be
8090.
If you want multiple instances, Jetty.new(name, url) and give
each
one a
different URL. Name is used to namespace the setup/teardown/use
task, so
you can use the same name for all instances, or pick different
one.
Assaf