Bringing up this thread again. Karan, you want to take a crack at implementing this? Seems we have everything we need pre-requisite wise.

I think the easiest thing would be for us to follow this pattern,...

<openejb>
<Deployments dir="dir1" hotdeploy='false'/> // disable hotdeploy for
dir1
<Deployments dir="dir2" /> // dir2 will be polled every x seconds (
the default deployInterval)
</openejb>

..along with as second attribute 'deployInterval' just in case they wanted to change that.

And in the new system.properties file we could add something like this for controlling the defaults:

deployments.hotdeploy=true
deployments.deployInterval=10

Thoughts?

-David


On Jan 30, 2007, at 4:45 PM, Karan Malhi wrote:

Hi David,

I think i mixed the two in trying to explain what I was suggesting. Here is
what I was thinking

=>By default we could have hotdeploy to true i.e. even if i have something
like below, still dir1 and dir2 (or any other deployment) should be
hotdeployed every x seconds:

<openejb>
     <Deployments dir="dir1" />
     <Deployments dir="dir2" />
</openejb>

=> We should explicitly be able to disable hotdeploy
<openejb>
<hotDeploy enable='false' />
     <Deployments dir="dir1" />
     <Deployments dir="dir2" />
</openejb>

=> We should be able to set the deployInterval
<openejb>
<hotDeploy deployInterval='10'/> // we do not need explicitly set enable to
true because hotdeploy would be true by default
     <Deployments dir="dir1" />
     <Deployments dir="dir2" />
</openejb>

=> However <Deployments> should be allowed to override the hotdeploy
property. For example, lets say i have two dirs, dir1 and dir2. I know for sure that code in dir1 will never change (or change so infrequently that I could make the changes and simply restart instead of polling frequently) and all the work has to be deployed in dir2. In that case, i do not want to poll
dir1 and I could do the following:

<openejb>
<Deployments dir="dir1" hotdeploy='false'/> // disable hotdeploy for
dir1
<Deployments dir="dir2" /> // dir2 will be polled every x seconds (
the default deployInterval)
</openejb>

The whole objective is to make it clear and easier for openejb newbies like me to create and deploy an EJB. Setting it to true by default will result in
one less step for an individual to perform if she/he was just getting
started with openejb. People experienced enough with openejb will know/learn
on how to disable hotdeploy using the conf file.

I agree with you that a System property could replace the <hotDeploy>
element under <openejb> .


On 1/26/07, Karan Malhi <[EMAIL PROTECTED]> wrote:

Actually if hotdeploy is set to true by default then Option 1 could be

<openejb>
<hotdeploy enable='false' pollInterval='5' /> // the enable attribute
could take true or false.
</openejb>

On 1/26/07, Karan Malhi < [EMAIL PROTECTED]> wrote:
>
> OPTION I
> -----------------
> It could be under the <openejb> element
>
> <openejb>
> <hotdeploy pollInterval='5' /> <!-- This pollInterval could be in
> seconds or milliseconds. I personally prefer to use seconds --->
> </openejb>
>
> OPTION II
> ---------------
> <openejb>
>       <Deployments jar="c:/my/app/a.jar" hotdeploy='true'
> pollInterval='5' />
> </openejb>
>
> By default hotdeploy should be set to true if not mentioned in the
> openejb.conf with a poll interval of x seconds (I dont know what would
> be the best interval for polling)
>
> I like OPTION I better because adding attributes to the <Deployments>
> element might lead to something like
> <openejb>
>       <Deployments jar="c:/my/app/a.jar" hotdeploy='true'
> pollInterval='5'/>  // poll interval of 5 seconds
>       <Deployments jar="c:/my/app/b.jar" hotdeploy='true'
> pollInterval='10'/>  // poll interval of 10 seconds
> </openejb>
> So what would be a desired behaviour in this case, you would need to > poll in different intervals for different jars. I cannot think of any case
> requiring this feature.
>
> However <Deployments> should be allowed to override the hotdeploy
> property. For example, lets say i have two dirs, dir1 and dir2. I know for > sure that code in dir1 will never change (or change so infrequently that I > could make the changes and simply restart instead of polling frequently) and > all the work has to be deployed in dir2. In that case, i do not want to poll
> dir1 and I could do the following:
>
> <openejb>
>       <hotdeploy pollInterval='5' />
> <Deployments dir="dir1" hotdeploy='false'/> // disable hotdeploy
> for dir1
> <Deployments dir="dir2" /> // dir2 will be polled every 5 seconds
> </openejb>
>
> I think the attribute 'pollInterval' could be replaced by something more > intuitive. Something which doent expose the "nature (polling)" of hotdeploy
>
>
> On 1/26/07, David Blevins <[EMAIL PROTECTED]> wrote:
> >
> > Ok, so I plugged in the ability for us to remove applications from
> > the system at runtime.  We also have the ability to add them at
> > runtime.
> >
> > See this test for how it basically works:
> >
> > http://svn.apache.org/repos/asf/incubator/openejb/trunk/ openejb3/ > > container/openejb-core/src/test/java/org/apache/openejb/ assembler/
> > classic/RedeployTest.java
> >
> > I've even added a class that we can use for scanning directories
> > (org.apache.openejb.util.DirectoryMonitor).  At this point we are
> > just moments away from some sort of hot deploy / undeploy directory
> > where people can drop apps.
> >
> > http://svn.apache.org/repos/asf/incubator/openejb/trunk/ openejb3/
> > container/openejb-core/src/main/java/org/apache/openejb/util/
> > DirectoryMonitor.java
> >
> > What we're lacking is some intelligent way to configure all this in > > your openejb.conf file. At minimum someone should be able to specify > > whether or not they want to scan past the initial startup and what > > the poll interval might be. We could potentially just add these as
> > attributes on the <Deployments> element of our conf.
> >
> > Thoughts, ideas?  Brainstorming welcome.
> >
> > -David
> >
> >
>
>
> --
> Karan Malhi
>



--
Karan Malhi




--
Karan Malhi

Reply via email to