On Tue, Jul 21, 2009 at 1:46 PM, Martin Grotzke <
[email protected]> wrote:

> On Tue, 2009-07-21 at 11:02 -0700, Assaf Arkin wrote:
> > On Tue, Jul 21, 2009 at 2:50 AM, Martin Grotzke <
> > [email protected]> 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 <
> > > > [email protected]> 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
> > > >
> > > > >
> > > > >
> > > > >
> > > > > Thanx && cheers,
> > > > > Martin
> > > > >
> > > > >
> > >
>

Reply via email to