opensubscriber
   Find in this group all groups
 
Unknown more information…

o : openejb-dev@incubator.apache.org 2 March 2007 • 1:49AM -0500

Re: Hotdeploy/Undeploy
by David Blevins

REPLY TO AUTHOR
 
REPLY TO GROUP




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 <karan.malhi@gmai...> 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 < karan.malhi@gmai...> 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 <david.blevins@visi...> 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

Bookmark with:

Delicious   Digg   reddit   Facebook   StumbleUpon

Related Messages

opensubscriber is not affiliated with the authors of this message nor responsible for its content.