[opencms-dev] Struts integration

Anil K Patel anil at aditisoft.com
Fri Feb 7 17:24:26 CET 2003


Alex,
Thanks for good info.


Regards
Anil K Patel
Aditisoft Inc
www.aditisoft.com

--- Kenneth Lewelling <klewelling at curoalemanz.com> wrote:
> Alex,
> 
> Thanks for the information, that is exactly what I need. 
> 
> Kenneth Lewelling
> http://opencmsstruts.sourceforge.net
> 
> -----Original Message-----
> From: owner-opencms-dev at www.opencms.org
> [mailto:owner-opencms-dev at www.opencms.org]On Behalf Of Alexander
> Kandzior
> Sent: Friday, February 07, 2003 5:19 AM
> To: opencms-dev at www.opencms.org
> Subject: RE: [opencms-dev] Struts integration 
> 
> 
> Kenneth (and Anil),
> 
> we already do have a default mechanism for events in OpenCms since
> the
> early 5.0 betas. You should use that one instead of inventing a new
> one.
> 
> 
> To check out how this works, have a look at the JavaDoc of:
> 
> com.opencms.flex.CmsEventListener
> com.opencms.flex.CmsEvent
> 
> Also check out methods:
> 
> com.opencms.core.A_OpenCms.addCmsEventListener()
> com.opencms.core.A_OpenCms.removeCmsEventListener()
> com.opencms.core.A_OpenCms.fireCmsEvent()
> 
> And for a use-case in the current core:
> 
> com.opencms.flex.cache.CmsFlexCache.CmsFlexCache() line 167 
> com.opencms.flex.cache.CmsFlexCache.cmsEvent() (method)
> com.opencms.file.CmsObject.pulishProject() line 2556
> com.opencms.file.CmsObject.fireEvent() (method)
> 
> The only core change required would be to add a "fireEvent(...)"
> after a
> file save operation in general (a good idea anyway, probaly also for
> copy / move / delete operations etc.). Your struts class could just
> register to listen for this "save" or "change" event(s) and then
> perform
> any action as needed. 
> 
> Best Regards,
> Alex.
> 
> Alexander Kandzior
> Alkacon Software - The OpenCms Experts
> http://www.alkacon.com
> 
> 
> 
> 
> 
> 
> 
> > -----Original Message-----
> > From: owner-opencms-dev at www.opencms.org 
> > [mailto:owner-opencms-dev at www.opencms.org] On Behalf Of 
> > Kenneth Lewelling
> > Sent: Friday, February 07, 2003 5:47 AM
> > To: opencms-dev at www.opencms.org
> > Subject: RE: [opencms-dev] Struts integration 
> > 
> > 
> > Anil,
> > 
> > Wow that sounds like it would be perfect. I'll work around 
> > the configuration editing untill your release.
> > 
> > Thanks
> > Kenneth Lewelling
> > http://opencmsstruts.sourceforge.net
> > 
> > -----Original Message-----
> > From: owner-opencms-dev at www.opencms.org 
> > [mailto:owner-opencms-dev at www.opencms.org]On Behalf Of Anil K Patel
> > Sent: Thursday, February 06, 2003 8:41 PM
> > To: opencms-dev at www.opencms.org
> > Subject: Re: [opencms-dev] Struts integration
> > 
> > 
> > Kenneth,
> > We can make OpenCMS perfom specific action on file save.
> > I am very close(just few days) to Releasing a Applet Based 
> > Source code and WYS... Editor integrated with OpenCMS. Also 
> > There is another motivation for you to use this Editor, 
> > Source Editor is XML syntex aware. If you want I can extend 
> > it to fire event on file Save.
> > 
> > Regards
> > Anil K Patel
> > Aditisoft Inc
> > www.aditisoft.com
> > 
> > 
> > 
> > 
> > 
> > not perform a specific action w
> > --- Kenneth Lewelling <klewelling at curoalemanz.com> wrote:
> > > Hello again.
> > >
> > > I am working on the Struts integration and ran into a small 
> > problem. 
> > > As far as I can tell there is no way to perform a specific 
> > action when 
> > > a document
> > > in the sourcecode editor is saved. If this is not the case please
> > > ignore the
> > > rest of this message and just let me know how.
> > >
> > > First I will present a little background on why I want to do
> this, 
> > > then a possible solution I thought up. Struts uses a
> configuration 
> > > file, usualy
> > > name struts-config.xml (Struts can have more than one
> configuration
> > > file you
> > > would just change the name or the namespace). For Struts to be
> > > integrated
> > > into OpenCms this file will need to be editable within OpenCms.
> My
> > > solution
> > > to this was add a new folder beneath the system folder in the
> VFS,
> > > where
> > > each Struts application in OpenCms has its own folder. Within the
> > > Struts
> > > folder is its configuration file. This file is not intended to be
> > > edited
> > > within the VFS, and I address this problem below in the possible
> > > solution.
> > > The file is suppose to be edited within the Struts item in the
> > > Administrative view.
> > >
> > > The sourcecode editor will work fine for editing the file,
> however 
> > > once the file is saved I need a way to resync the "Action" 
> > resouces in 
> > > the VFS (If
> > > you are not sure what an "Action" resource is please refered to
> > > http://opencmsstruts.sourceforge.net/srs.html , pay special 
> > attention
> > > to UC4
> > > and UC5). A corollary to syncing with the VFS is parsing the
> > > configuration
> > > file and check it against itd dtd, and if it isn't correct do not
> > > save the
> > > file and allow the user to fix the problem.
> > >
> > > Here is a possible solution:
> > >
> > > Add a new method to the I_CmsResourceType interface called
> > > resourceEdited()
> > > (or something) that informs the Resource that its contents 
> > have been 
> > > changed and are about to be saved. Then in the CmsEditor, 
> > just before 
> > > the file is
> > > saved, call the resourceChanged() method. If the method returns
> > > false, or
> > > throws an exception then the user is forwarded to an error page
> and
> > > told the
> > > file could not be saved for whatever reason, and then forwarded
> back
> > > to the
> > > editor page.
> > >
> > > With this additional method I could create a new Struts 
> > Configuration 
> > > resource type that implements the resourceEdited() method. 
> > That method 
> > > can parse the configuration file to make sure it is syntacticly 
> > > correct then
> > > syncronize the "Action" resources in the VFS.
> > >
> > > I wanted to ask this because my solution requires a change 
> > to a major 
> > > interface and wanted to make sure it was the correct thing to do.
> > >
> > > Thank you for any comments
> > > Kenneth Lewelling
> > > http://opencmsstruts.sourceforge.net
> > >
> > 
> > 
> > =====
> > Regards
> > Anil K Patel
> > Aditisoft Inc
> > www.aditisoft.com
> > 
> 
> 


=====
Regards
Anil K Patel
Aditisoft Inc
www.aditisoft.com



More information about the opencms-dev mailing list