Issue 320 in glassdb: Clean up WAGemStoneRunSmalltalkServer & WAGemStoneSmalltalkServer + scripts

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Issue 320 in glassdb: Clean up WAGemStoneRunSmalltalkServer & WAGemStoneSmalltalkServer + scripts

glassdb
Status: New
Owner: ----
Labels: Type-Defect Priority-Medium GLASS-Server Version-GLASS0.231

New issue 320 by [hidden email]: Clean up WAGemStoneRunSmalltalkServer  
& WAGemStoneSmalltalkServer + scripts
http://code.google.com/p/glassdb/issues/detail?id=320

I made two classes (WAGemStoneRunSmalltalkServer &  
WAGemStoneSmalltalkServer) and wrote two bash scripts to allow someone to  
start and run a Gem that runs a long running process.  In my case it was to  
run a Zinc server for interacting with the Tropo service to send and  
receive SMS messages.

Dale generously offered to cleanup and integrate the attached scripts as  
described in the emails pasted below:


Hi Dale,

Thanks for the update.  When I emailed earlier I was just hoping it hadn't  
been missed.  I appreciate the work you've been putting in on getting Pharo  
and Gemstone cross-compatible.


Paul




On 09/06/2011 08:06 PM, Dale Henrichs wrote:
> Paul,

> I have integrated your code from  
> Seaside-GemStone-Tools-Production-PaulDeBruicker.10 into the 3.0.6  
> release and I'll take a look at it tomorrow ...

> Dale

> ----- Original Message -----
> | From: "Paul DeBruicker"<[hidden email]>
> | To: "Dale Henrichs"<[hidden email]>
> | Sent: Tuesday, September 6, 2011 5:38:36 AM
> | Subject: Re: Zinc, Seaside, Gemstone, Tropo....
> |
> | Hi Dale,
> |
> |
> |     Did you ever get a chance to review the scripts I wrote/process I
> | developed to run a server in a background gem?
> |
> | Thanks
> |
> | Paul
> |
> |
> |
> |
> |
> | On 04/16/2011 11:43 AM, Dale Henrichs wrote:
> |>  Paul,
> |>
> |>  Haha, neither am I:)
> |>
> |>  The more use cases I look at though, the better I will be able to
> |>  understand a more general way to structure things so that it is
> |>  easier to extend in the future...
> |>
> |>  Dale
> |>
> |>  On Apr 16, 2011, at 7:10 AM, Paul DeBruicker wrote:
> |>
> |>>  On 04/15/2011 05:33 PM, Dale Henrichs wrote:
> |>>>
> |>>>  I also want to look at your scripts to see if I can generalize
> |>>>  things a
> |>>>  bit more ...
> |>>
> |>>  Yes make whatever changes you think are appropriate.  I'm not at
> |>>  all
> |>>  confident its the right or good way to do what I want its just the
> |>>  first
> |>>  way that worked.
> |>>
> |>>
> |>>  Paul
> |>
> | On 04/15/2011 05:33 PM, Dale Henrichs wrote:
> |>  Paul,
> |>
> |>  I plan to extract the info in this email and submit an Issue report
> |>  against glass to include these changes in the next release or so:)
> |>
> |>  I also want to look at your scripts to see if I can generalize
> |>  things a bit more ...
> |>
> |>  Let me know if you don't want me to do that:)
> |>
> |>  Dale
> |>
> |>
> |>  On 04/15/2011 02:15 PM, Paul DeBruicker wrote:
> |>>  Thanks for the feedback guys.
> |>>
> |>>  Norbert- I was not checking your jenkins server but am glad its
> |>>  there
> |>>  making builds and verifying that what I'm changing works
> |>>  elsewhere. So
> |>>  thanks for that.
> |>>
> |>>
> |>>
> |>>  As of now here is what we've got:
> |>>
> |>>
> |>>  The Zinc seaside adaptor in Gemstone works exactly like the one
> |>>  for
> |>>  Swazoo.  e.g.
> |>>
> |>>  Doing:
> |>>
> |>>  WAGemStoneRunSeasideGems default
> |>>      name: 'Zinc';
> |>>      adaptorClass: WAGsZincAdaptor;
> |>>      port: #(8080);
> |>>      yourself.
> |>>  WAGemStoneRunSeasideGems restartGems
> |>>
> |>>  in a workspace gets you a copy of the Zinc Seaside server adaptor
> |>>  running in its own gem.
> |>>
> |>>  doing:
> |>>
> |>>  WAGsZincAdaptor startOn: 8080.
> |>>
> |>>  in a workspace gets you a copy of the adaptor blocking your
> |>>  GemTools.  I
> |>>  think Zinc may be slower than Swazoo but I only did a dumb check
> |>>  on my
> |>>  laptop with siege running
> |>>
> |>>  siege -b -c 10 http://localhost:8080/examples/counter
> |>>
> |>>  But performance is not why I wanted it in Gemstone.
> |>>
> |>>
> |>>
> |>>
> |>>  I also added two classes to the Seaside-GemStone-Tools-Production
> |>>  package that allow you to run an arbitrary server on an arbitrary
> |>>  number
> |>>  of ports each in its own Gem.  The classes are
> |>>  WAGemStoneRunSmalltalkServer and WAGemStoneSmalltalkServer.  They
> |>>  also
> |>>  need two bash scripts (runSmalltalkServer and
> |>>  startSmalltalkServer) that
> |>>  I attached.  I think I did it in a way that removes my need to
> |>>  have
> |>>  ZnServer have its own singleton.  The bash scripts are very
> |>>  similar to
> |>>  the runSeasideGems30 and service VM start script and the
> |>>  classes+scripts
> |>>  are used like this:
> |>>
> |>>  "Add a server"
> |>>  WAGemStoneRunSmalltalkServer addServerOfClass: TpZincWaitForSms
> |>>  withName: 'Zinc-SMS' on: #(8080).
> |>>  "check that it was added"
> |>>  WAGemStoneRunSmalltalkServer serverNames.
> |>>  "start the server you just added in a Gem"
> |>>  WAGemStoneRunSmalltalkServer restartGemsNamed: 'Zinc-SMS'.
> |>>  "stop the server"
> |>>  WAGemStoneRunSmalltalkServer stopGemsNamed: 'Zinc-SMS'.
> |>>  "remove the server"
> |>>  WAGemStoneRunSmalltalkServer removeServerNamed:'Zinc-SMS'.
> |>>  "check that it was removed"
> |>>  WAGemStoneRunSmalltalkServer serverNames.
> |>>
> |>>
> |>>  I did all this because I wanted to port my Tropo package so I
> |>>  could
> |>>  interact with people through voice telephone calls&   text
> |>>  messages. The
> |>>  tropo software also interfaces to twitter&   IM.
> |>>   (http://www.tropo.com)
> |>>  It had been working in pharo and it also works now in Gemstone.
> |>>   I've
> |>>  been testing my SMS's this afternoon.  It took me a while to RTFM
> |>>  and
> |>>  learn that RcQueues only actually remove on an add.
> |>>
> |>>  Anyway. Here we are.
> |>>
> |>>  Paul
> |>>
> |>>
> |>>
> |>>
> |>>
> |>
> |
> |>
> |
> |



Attachments:
        runSmalltalkServer  1.5 KB
        startSmalltalkServer  2.7 KB