> 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.
Using Ant you could just rebuild and deploy only one site at a time (or
parts of a site).
As they say - TIMTOWTDI!
FWIW -
Kevn
Mike Karl <[EMAIL PROTECTED]> on 05/14/2002 12:37:30 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.
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]>
---------------------------------------------------------------------------
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]>