Packaging Seaside in 8.5

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
23 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Packaging Seaside in 8.5

Randy Nelson-2
Hello,
Are there any documents or general advice to help with packaging a headless Seaside app specifically for 8.5? My service starts and actually opens port 8080, (my default), but the Seaside server does not seem to respond and web page requests result in a 503 "Service Unavailable". I've looked on Instantiations site and did find a discussion at http://forums.instantiations.com/topic-12-5573.html  but that had to do with 8.02. I did try modifying my packaging instructions per the packaging instructions listed in the thread anyway...but that was unsuccessful. 
Of course I've gone through the list of packaging errors and even set rules for any Seaside, Grease, etc... app I can find to not reduce...no luck. Clearly I'm missing something...any ideas?

Thanks
Randy

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
As I mentioned in my blog - but I did not get any reaction - I think, that with 8.5 the packaging situation with Seaside is not getting easier:

In general you will need the application SeasideCoreApp. This application depends - as a prerequisite - on GreaseVASTCoreApp. GreaseVASTCoreApp has a new prerequisite in 8.5: EmClassDevelopment. With this prerequisite you also depends on the applications EsCodeGeneration and EmLibraryInterface applications. This brings up stuff of the development tools into the packager work, which is  pretty bad stuff and it seems to make it even more harder for the headless packaging stuff.

I've done some demos (actually with 8.03. I tried to switch to 8.5 before that, but gave up in the first run) last weekend for a customer and as a result from this work I got several conclusions (in the field of experimental development):

* before even working on a project: think about (cross-) packaging: That means for me: when starting with a new Seaside programming project under VA, bring up a useless GUI and package this stuff as early as you can. When this works, you may continue with your work. This is of course a pretty bad (wrong) way - but in general you will not have time to solve these packaging problems in the end phase of your demo time and it shows, that VA has big, big problems here.

* with every new Seaside application this pain repeats again and again ...

I urgently request Instantiations

* to introduce an easy packaging system. This means: do NOT reduce all applications found in the prerequisite chain of your application. I assume, that the programmer IS maintaining its prerequisite chain correctly.

* use application name to differentiate between runtime "RunApp" and development time "EditApp" application to help developers to choose the right applications. IBM did this in the early days of this product.


Due to these packaging problems I consider more and more to use Pharo for experimental programming in the Seaside area

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/-2Gu31klJEIJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Randy Nelson-2
Marten,

Thanks for your excellent response. I really appreciate the time you took to consider my request. This is what I've found.
I thought I had included the prereqs you mentioned. I had, but as I was going through and verifying, I noticed this interesting app, SeasideAdaptersSstApp, that I had not made a prereq. So I added it and repackaged - no luck. So in browsing the image contents for the 100th time, I thought I might as well tell the packager to not reduce SeassideAdaptersSstApp...that didn't work either *but* I did get a new response from my http request: "MessageNotUnderstood: WARenderer>>form....Ha! Now I have something to work with. Sure enough, I browsed image contents and found 2 implementors of form that I thought would be applicable, WAHtmlCanvas and WARenderCanvas. WAHtmlCanvas had been greatly reduced but it looked like it reduced truly what I didn't use and kept what I did. So I really didn't want to force it to include a bunch of stuff I wasn't using, so I told it to not reduce WARenderCanvas...SUCCESS! 

I completely agree with your comments that this shouldn't be as hard as it is...hopefully Instantiations will consider your request to make this process easier.

Well, after a long struggle, I'm back in business. I wish I could have spent that time adding functionality to my app but I grateful that I'm back on track.

Thanks again for your consideration - it was key to finally solving this puzzle. I hope this helps others down the road.

Randy

On Wed, Sep 21, 2011 at 3:25 AM, Marten Feldtmann <[hidden email]> wrote:
As I mentioned in my blog - but I did not get any reaction - I think, that with 8.5 the packaging situation with Seaside is not getting easier:

In general you will need the application SeasideCoreApp. This application depends - as a prerequisite - on GreaseVASTCoreApp. GreaseVASTCoreApp has a new prerequisite in 8.5: EmClassDevelopment. With this prerequisite you also depends on the applications EsCodeGeneration and EmLibraryInterface applications. This brings up stuff of the development tools into the packager work, which is  pretty bad stuff and it seems to make it even more harder for the headless packaging stuff.

I've done some demos (actually with 8.03. I tried to switch to 8.5 before that, but gave up in the first run) last weekend for a customer and as a result from this work I got several conclusions (in the field of experimental development):

* before even working on a project: think about (cross-) packaging: That means for me: when starting with a new Seaside programming project under VA, bring up a useless GUI and package this stuff as early as you can. When this works, you may continue with your work. This is of course a pretty bad (wrong) way - but in general you will not have time to solve these packaging problems in the end phase of your demo time and it shows, that VA has big, big problems here.

* with every new Seaside application this pain repeats again and again ...

I urgently request Instantiations

* to introduce an easy packaging system. This means: do NOT reduce all applications found in the prerequisite chain of your application. I assume, that the programmer IS maintaining its prerequisite chain correctly.

* use application name to differentiate between runtime "RunApp" and development time "EditApp" application to help developers to choose the right applications. IBM did this in the early days of this product.


Due to these packaging problems I consider more and more to use Pharo for experimental programming in the Seaside area

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/-2Gu31klJEIJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Thomas Koschate-2
In reply to this post by Marten Feldtmann-2
And as it turns out, there doesn't even appear to be a reason to prereq EmClassDevelopment in GreaseVASTCoreApp.  At least it shows up as a mismatched prereq.  Possibly it's there to pull in EsCompiler, but there are better applications to use for that.

Tom

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/aS-HmX4ym1sJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Louis LaBrunda
In reply to this post by Marten Feldtmann-2
I add my vote to Marten's call for some help from Instantiations with packaging Seaside images.  Maybe we can have a simple means of telling the packager to NOT reduce ANY of the Seaside apps.  This should help us get working packaged Seaside apps sooner.  The images may be larger than they would be if reduced well but I for one will trade the smaller image and time it takes to load the larger image for an easier packaging experience.  Those of us who really need the smaller image size can always package the hard way.

Lou

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/lrc0udXZMioJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Gabriel Cotelli
In reply to this post by Randy Nelson-2
Hi,
In case it's useful whe are using the following rules in VA 8.0.2 (not tried in VA 8.5 yet) for packaging a Unix Headless image with Seaside.

(Just the seaside related stuff)

Do a "doNotReduceSubApplicationNamed:"
for evey in:
  • GreaseCoreApp
  • GreaseVASTCoreApp
  • SstHttpServletSupport
  • SstWebServicesHttpSupport
  • SstWebServicesHttpsSupport
  • SstWebServicesSoap12App
  • JavascriptCoreApp
  • JavascriptVASTCoreApp
  • JQueryCoreApp
  • JQueryUIApp
  • PrototypeCoreApp
  • ScriptaculousComponentsApp
  • ScriptaculousCoreApp
  • SeasideAdaptorsSstApp
  • SeasideCanvasApp
  • SeasideComponentApp
  • SeasideCoreApp
  • SeasideEnvironmentApp
  • SeasideFlowApp
  • SeasideHTML5App
  • SeasideInternetExplorerApp
  • SeasideRenderLoopApp
  • SeasideSessionApp
  • SeasideToolsCoreApp
  • SeasideVASTContinuationApp
  • SeasideVASTCoreApp
  • SeasideVASTEnvironmentApp
  • SeasideVASTFlowApp
  • SeasideWidgetsApp
Do a  doNotReduceClassNamed: #SstHttpSessionManager
doNotReduceClassNamed: #SstHttpSession

As Thomas already mentioned if EmClassDevelopment is an unneeded pre-requisite of GreaseVASTCoreApp, create a new edition and remove it before doing the packaging.

Sadly the packaging stuff is usually trial and error. 

Regards,
Gabriel

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/xgIzihd9mP4J.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
If this list is correct - and some candidates are questionable - it means, that for each Seaside (standalone-) application you want to create, you have to repeat to add these rules to your packaging system.

Do you see, what I mean ? This is boring repeatable work - quite the opposite Smalltalkers want to do in an experimental environment. And each (VA-) developer has to find out lists like the one above and this takes hours ... and now think about cross deployment and headless deployment.

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/6t8BjdTIV9sJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Gabriel Cotelli
Marten,
I'm with you on this. If instantiations provide a short guide for packaging the frameworks included in the product, it will save us a lot of time lost in trial and error for packaging 3rd party code. Seaside and Glorp, at least, needs such a kind of thing.

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/7QIXxc7wEdsJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

jtuchel
In reply to this post by Marten Feldtmann-2
Marten,

not that I think it's a perfect solution, but you could concentrate all the rules in a Packaging Instruction class and use it as a template / superclass for individual applications. But if it's that simple, Instantiations could probably ship one quite easily, along with the ones that IBM shipped for a long time already.

Joachim

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/Q1vfhiz0-K4J.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

jtuchel
In reply to this post by Gabriel Cotelli
Gabriel,

thanks a lot for sharing. This list is impressive, and I guess it's going to be real hard work to fine tune these rules. 

I hope we can keep the stuff somewhere (I'll link to it on my blog, both for myself, and for anybody who might be interested in a few months time ... ;-)

Joachim

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/CldxrITcm5kJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
In reply to this post by Gabriel Cotelli
SstHttpSessionManager and SstHttpSession are defined in SstHttpServletSupport application and therefore should not be reduced due to the first rule.

In earlier experiences I noticed, that sometimes a rule gets into the production system to remove unused constants in PoolDictionaries - and one of these dictionaries were the HTTP status code values.

I just played around again in this topic and I get more or less the same list. But I get warnings during the packaging process, which are not that clear (#CwAppContext references in passive packaging).

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/VsPaIeW8HqoJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
And more or less the whole IC packaging process is even more complicated - though I think, that this kind of packaging could be getting more interesting in this server area and distributed computing, multithreading stuff.


--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/nQ32rcwHGP4J.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Douglas Swartz
Hello Marten,

You said:
> And more or less the whole IC packaging process is even more
> complicated - though I think, that this kind of packaging could be
> getting more interesting in this server area and distributed
> computing, multithreading stuff.    

I have always felt the complications of IC packaging are more hassle
than they're worth. The biggest problem I have with IC packaging is
all the version checks it does to attempt to guarantee I have a
"consistent" set of ICs. Even if I package a backward compatible base
IC, dependent ICs have to be repackaged to work with it. I would love
for an Instantiations person (I almost said IBM) to tell me that's not
true. Thus I have always packaged single monolothic headless images
for my servers.

All that said, however, IC packaging might simplify packaging a
Seaside app. This is because the reduction rule for ICs is "No
reduction". Because by its nature an IC can't know which methods and
classes will be used, it doesn't any throw away. Memory is much more
generous on modern machines, so the lack of reduction shouldn't really
be an issue, especially as IC packaged apps can share program code
between processes.

--
 Doug swartz

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
I just managed to build my first Seaside ICded application under Windows and actually this was much easier than all that reducing stuff. I will write down some instructions how to do it under Windows, BUT:

Sadly distributing your application via IC's in headless server env. is said not to be a first class distribution way. When building your desktop apps you get those IC's from Instantiations. When building headless server apps you are totally on your own - you have to build ALL IC's (from the Kernel to your application stuff).

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/IpPmzuRnSLIJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
In reply to this post by Douglas Swartz
Hello Doug,

well I created now several ICs for my headless server and tried to load/unload components on the fly via Seaside code. Loading of the component worked without any problems - but unloading has never worked so far. I get messages, indicating that lots of methods of the SubApplication, Application hierarchy are not there (though I thought I had EmImageSupport included). Any idea ?

By working in this area I wished to have a non GUI to create the ICs without user interaction.

Any idea here ?

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/AEKTdJedJTEJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
Unloading is working too - amazing - now it's time to come to the more interesting things :-))))))

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/TjUdOs6BtN8J.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
In reply to this post by Douglas Swartz
Hello Doug,

I just made this for a very simple component (add a new method and call this method). Created the IC and two dependent ICs were loaded without problems (and I did not recreate them).

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/sG7VMgovCGQJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Douglas Swartz
In reply to this post by Marten Feldtmann-2
Hello Marten,

Monday, September 26, 2011, 2:03:14 PM, you wrote:

> By working in this area I wished to have a non GUI to create the ICs
> without user interaction. Any idea here ?

I've occasionally thought it would be really useful to be able
to package a headless image from a single mouse click, or from a
command line. It would be great to enable continuous integration. In
the approach I was thinking of you would have to build the passive
image, load the code into it, then do the packaging.

It would certainly be doable, but it's just always seemed like more
work than I wanted to bite off.

--
Doug Swartz

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.

Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Marten Feldtmann-2
I think the work of Tom Koschate is the way to go ...

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/_Ba-Ur9BIHQJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
Reply | Threaded
Open this post in threaded view
|

Re: Packaging Seaside in 8.5

Thomas Koschate-2
Unfortunately, as Marten has discovered, the scripted build tools are broken in 8.5, apparently due to some change in the image startup process that I haven't yet figured out.  I've been occupied trying to get my code base to load in 8.5, an effort remarkably hindered by the change to EmSystemConfiguration>>#vaVersion.

Tom

--
You received this message because you are subscribed to the Google Groups "VA Smalltalk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/va-smalltalk/-/FWH0hDYrNscJ.
To post to this group, send email to [hidden email].
To unsubscribe from this group, send email to [hidden email].
For more options, visit this group at http://groups.google.com/group/va-smalltalk?hl=en.
12