I wanted to do something where a just created the properties for each
club based on the URL and pass resources and a directory to the jsp
pages.  I think in my case it would be best on the server to have just
one set of pages running even if there is a bit more overhead processing
the pages.  This would save on ram usage, which I could then use for
caching of pages to increase the speed of the site.

Also this way I can seperate the content/configuration (which I would
store in a directory stucture for all the clubs) from the logic which
would be a struts application. 

This was the type of thing that I was doing before except that
previously I was passing a clubID in the URL. This is no longer an
option because every club needs to be accessabe from just a standard URL
without a query string.

I also need to integrate this with some parts from an existing PHP site
which I'm sure is going to add some complexity to the site. And I don't
want to have to erase and rebuild 50 sites everytime I need to fix a
little problem. Which with my client happens several times a day.

Thanks for the help.
mike



On Tue, 2002-05-14 at 06:38, [EMAIL PROTECTED] wrote:
> 
> 
> 
> You're not reading this wrong. I'm advocating creating 50 webapps (and 50
> war files) if you have 50 sites.
> 
> But I've always felt that disk space and server memory are cheap compared
> to developer time. CPU requirements would likely be the same with either
> approach.
> 
> Don't run from ghosts - that is, don't spend a lot of effort programming
> around hardware limitations that don't exist or that can be eliminated by a
> few hundred dollars in parts. Developer time is the critical resource - not
> hardware.
> 
> I believe that this approach (driving the site customization at build-time
> versus run-time) will give you a simpler codebase that's likely to be
> eaiser (i.e. faster) to develop.
> 
> However, if you want to drive the customization at run-time, you could do
> so with a similar approach:
> 
>  - Still drive every thing that is site-specific from properties.
>  - Create a cache of Properties objects (or ResourceBundles) in a Hashmap
> that gets loaded at start-up (and potentially allow for dynamic reload
> without restarting the server). These Properties objects would contain all
> site-specific values.
>  -  To build the View (i.e. jsp) for each request retrieve the Properties
> object containing the propery values for that site based on some lookup
> driven by the url/uri requested.
>  - You could create a <SetSiteProperties> tag that attached the Properties
> object to the Request with some known attribute name - this type of
> behavior occurs throughout Struts so you could find examples somewhere in
> the code.
>  - Then the html output is customized by the Properties.
> 
> Gosh - now that I look at this, it doesn't look that hard either....
> 
> What do you think?
> 
> 
> 
> 
> 
> Mike Karl <[EMAIL PROTECTED]> on 05/13/2002 07:07:07 PM
> 
> Please respond to "Struts Users Mailing List"
>       <[EMAIL PROTECTED]>
> 
> To:   Struts Users Mailing List <[EMAIL PROTECTED]>
> cc:    (bcc: Kevin Bedell/Systems/USHO/SunLife)
> Subject:  Re: Multiple sites using one struts application.
> 
> 
> Would this then build me an application for each site?  So it would copy
> the files over for each site.  I don't know that this is viable because
> I have 50 or so sites that would be running on one server.  What I would
> like is just one set of files running at a time and not 50 so that I
> could save on server resources.  Or am I reading this wrong.
> 
> thanks
> mike
> 
> 
> On Mon, 2002-05-13 at 15:31, [EMAIL PROTECTED] wrote:
> >
> >
> >
> >
> > I believe this is a build/deploy question as much as a Struts question.
> But
> > here goes:
> >
> > 1. Drive virtually everything from your application.properties file. All
> > these properties are available to your Action classes. For example,
> define
> > the path to your images directory there, the club name, the jdbc url,
> etc.)
> >
> > 2. Create each site as it's own web app - but keep everything in a SINGLE
> > SOURCE CONTROL REPOSITORY version. You will create specific sites ONLY AT
> > BUILD TIME. Again - only one version exists in source control. Call this
> > The Template.
> >
> >      This is critical. No site-specific code or properties get checked in
> > with The Template. Everything is driven from the application.properties
> > file.
> >
> > 3. Define the values in this application.properties file using "tokens",
> > not actual values. For example:
> >
> >      in The Template application.properties for Struts:
> >
> >      club.name=CLUB_NAME
> >      path.to.images=IMAGE_PATH
> >      site.jdbc.url=JDBC_URL
> >
> >      - etc. -
> >
> > 4. Then, for each actual site, create a seperate "properties" file
> > containing the specific values for that site. For example:
> >
> >      in "club1.properties"
> >
> >      club.name=Fred's Club
> >      path.to.images=/fredimages/images
> >      site.jdbc.url="jdbc:oracle:thin:@123.45.67.89:1521:orcl"
> >
> >      - etc. -
> >
> > 5. At build time, use Ant's "<replace>" target to replace the "tokens" in
> > the struts application.properties file with the site-specific values from
> > the site-specific properties files. That is:
> >
> >
> >           <replace
> >               file="path/to/struts/application.properties"
> >               propertyFile="path/to/specific/club.properties" >
> >             <replacefilter
> >               token="CLUB_NAME"
> >               property="club.name"/>
> >             <replacefilter
> >               token="IMAGE_PATH"
> >               property="path.to.images"/>
> >             <replacefilter
> >               token="JDBC_URL"
> >               property="site.jdbc.url"/>
> >           </replace>
> >
> >
> >      See details on the Ant <replace> tag at:
> http://jakarta.apache.org/ant/manual/CoreTasks/replace.html
> >
> > 6. Create a different ant target to build each site. And maybe a
> "build-all" to build all the sites.
> >
> >      There's a bit of work here getting things organized. But this will
> allow you to generate sites from The Template as a build/configuration
> process
> >  - not as a development issue.
> >
> > Summary:
> >
> > 1.   Drive EVERYTHING site specific from the application.properties file
> > 2.   Use tokens in the application.properties file instead of actual
> values
> > 3.   Create the actual sites at build/deploy time using Ant and the
> <replace> target.
> >
> > This will work!
> >
> >
> > FWIW -
> > Kevin
> >
> >
> >
> >
> >
> > Mike Karl <[EMAIL PROTECTED]> on 05/13/2002 04:51:36 PM
> >
> > Please respond to "Struts Users Mailing List"
> >       <[EMAIL PROTECTED]>
> >
> > To:   [EMAIL PROTECTED]
> > cc:    (bcc: Kevin Bedell/Systems/USHO/SunLife)
> > Subject:  Multiple sites using one struts application.
> >
> >
> > Hello,
> > I'm building a site for a group of clubs.  All the sites will have the
> > same set of pages and actions.
> >
> > For instance:
> >
> > http://clubsites/club1/index.jsp
> > http://clubsites/club2/index.jsp
> > http://clubsites/club3/index.jsp
> > http://anothersite/club4/index.jsp
> >
> > All of these sites would basically be the same in terms of layout and
> > functionality except that the would have different images.  They may
> > also connect to seperate database. How can I set up a site like this so
> > that I can use the same pages for all of the clubs but pass different
> > configurations so that I can render the pages with their own images.
> >
> > thanks
> > mike
> >
> >
> >
> > --
> > To unsubscribe, e-mail:   <
> > mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: <
> > mailto:[EMAIL PROTECTED]>
> >
> >
> >
> >
> >
> >
> >
> >
> ---------------------------------------------------------------------------
> > This e-mail message (including attachments, if any) is intended for the
> use
> > of the individual or entity to which it is addressed and may contain
> > information that is privileged, proprietary , confidential and exempt
> from
> > disclosure.  If you are not the intended recipient, you are notified that
> > any dissemination, distribution or copying of this communication is
> > strictly prohibited.  If you have received this communication in error,
> > please notify the sender and erase this e-mail message immediately.
> >
> ---------------------------------------------------------------------------
> >
> >
> > --
> > To unsubscribe, e-mail:   <
> mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail: <
> mailto:[EMAIL PROTECTED]>
> --
> Mike Karl
> 
> Montana Connect
> 851 Bridger Dr.
> Bozeman, MT 59715
> (406) 556-1800
> 
> [EMAIL PROTECTED]
> 
> --
> To unsubscribe, e-mail:   <
> mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <
> mailto:[EMAIL PROTECTED]>
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------------
> This e-mail message (including attachments, if any) is intended for the use
> of the individual or entity to which it is addressed and may contain
> information that is privileged, proprietary , confidential and exempt from
> disclosure.  If you are not the intended recipient, you are notified that
> any dissemination, distribution or copying of this communication is
> strictly prohibited.  If you have received this communication in error,
> please notify the sender and erase this e-mail message immediately.
> ---------------------------------------------------------------------------
> 
> 
> --
> To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
-- 
Mike Karl

Montana Connect
851 Bridger Dr.
Bozeman, MT 59715
(406) 556-1800

[EMAIL PROTECTED]

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to