[opencms-dev] opencms 6 | where to put class files

Joachim Zittmayr joachim at imap.cc
Wed Mar 15 10:09:32 CET 2006


hi!

thanks to all, who helped me out here.
i knew that it i should place my class-files either under
${VFS}/system/mymod/classes|libs or
${RFS}/${TOMCAT_HOME}/webapps/${CONTEXT}/classes|libs. the difference
is, as far as i could figure it out, when i place my packages in the
RFS, tomcat (in the latest version of 5.5.15, opposed to versions like
5.5.9) recognises newly created classes|libs and reloads the context
automatically all by 'him'self... and this doesn't work with
VFS-classes. i think restarting the whole tomcat is not necessary. just
restartig the context is suffice and takes less time.

the advantage of placing them in the VFS is that u have a nice
versioning.

again, thanks for ur suggestions and ideas!
joachim

On Wed, 15 Mar 2006 10:33:43 +0200, "Panos Kavalagios"
<Panagiotis.Kavalagios at eurodyn.com> said
> Dear all,
> 
>     Am I forgetting something? I totally disagree with your approach to 
> directly put your class files in the server's filesystem. Why to bother? 
> OpenCms will do it for you automatically when you publish your class 
> file or jar file and of course restart your servlet container (e.g. 
> Tomcat). From the OpenCms Module documentation:
> 
> -----------------
> 
> In case you either added the  * classes/*folder and/or the  * lib/* 
> folder on module creation, these folders are additionally created:
> 
> /system/modules/org.opencms.mymodule/classes/com/opencms/mymodule/
> /system/modules/org.opencms.mymodule/lib/
> 
>     * Inside the classes/ subfolder, an entire subfolder structure with
>       the package name of your module is created. All subfolders of the
>       classes/ subfolder and their contents will be exported to
>       WEB-INF/classes/ when your module is published. For example you
>       could place a localization Java resource bundle in the module
>       subfolder classes/org/opencms/mymodule/my.properties.
>     * In the lib/ subfolder you could place any Java archives (JAR) that
>       are to be shipped with your module. All contents of the lib/
>       subfolder will be exported to WEB-INF/lib/ when your module is
>       published.
> 
> -----------------
> 
>     What are you going to do in case you want to distribute your module 
> to another OpenCms instance? You will have to provide an additional 
> archive with your class files and give detailed instructions where they 
> should placed. Isn't it more confusing than to give a single module zip 
> file and have OpenCms to take care for the rest? I've already developed 
> a module having in the classes folder property localisation files and 
> all the classes in a jar file inside the lib folder. I haven't faced a 
> single hitch in the whole development process.
> 
> Regards,
> Panos
> 
> Jonathan Woods wrote:
> > Joachim -
> >  
> > The question is made more complicated by the status of your module.  
> > If you're developing it from scratch, and just putting JSP, XSD, HTML 
> > and Java (class) files underneath /system/modules in directories 
> > following the normal OpenCms module structure, that's fine - but until 
> > you tell OpenCms 'officially' that it's a module, it won't put the 
> > /system/modules/<your module name>/classes directory in the runtime 
> > classpath - so your classes won't be found.  Same goes for jar files 
> > in /system/modules/<your module name>/lib.
> >  
> > I think the best way to develop your module is to put your class files 
> > in <opencms root>/WEB-INF/classes, which is always in the OpenCms 
> > classpath; then once things are stable and you are ready to package up 
> > your module as a module, you can put them instead in the directory 
> > above.  Other people may have different ways of working.
> >  
> > Tip: beware old versions of your classes being picked up from odd 
> > places.  I'd suggest including a build timestamp in your Java code and 
> > spitting it out in the log or in a test area of your web pages, just 
> > so you can be sure new stuff is being picked up; and of course if 
> > OpenCms has already loaded a class then you'll need to restart Tomcat 
> > for it to pick up any new version.
> >  
> > Jon
> >  
> > ------------------------------------------------------------------------
> > *From:* opencms-dev-bounces at opencms.org 
> > [mailto:opencms-dev-bounces at opencms.org] *On Behalf Of *Panos Kavalagios
> > *Sent:* 14 March 2006 15:48
> > *To:* The OpenCms mailing list
> > *Subject:* Re: [opencms-dev] opencms 6 | where to put class files
> >
> > Joachim,
> >
> >     You can either place your class file in:
> >
> > *my.mod.submodule/classes/my/mod/submodule*
> >
> > or as a jar file in:
> >
> > *my.mod.submodule/lib*
> >
> > Regards,
> > Panos
> >
> > Joachim Zittmayr wrote:
> >> hello ocms.dev.list!
> >>
> >> where do i have to put (new) class files?
> >> can i put them just under a module classes folder (e.g.
> >> my.mod.submodule/classes/classname.class)?
> >> what else do i have to consider? it seems as if the newly created class
> >> is not "recognized". i added a method, but i can't use it in a e.g.
> >> jsp-template (method foo(String) is undefined for the type bar)
> >>
> >> thanks 4 ur help!
> >> joachim
> >>   
> >
> > -- 
> > Panagiotis Th. Kavalagios
> > Electrical & Computer Engineer
> > European Dynamics S.A.
> > Athens, Hellas
> > Tel: +30-210-8094500
> >   
> > ------------------------------------------------------------------------
> >
> >
> > _______________________________________________
> > This mail is sent to you from the opencms-dev mailing list
> > To change your list options, or to unsubscribe from the list, please visit
> > http://lists.opencms.org/mailman/listinfo/opencms-dev
> 
> -- 
> Panagiotis Th. Kavalagios
> Electrical & Computer Engineer
> European Dynamics S.A.
> Athens, Hellas
> Tel: +30-210-8094500
> 
-- 
  Joachim Zittmayr
  joachim at imap.cc

-- 
http://www.fastmail.fm - Same, same, but different





More information about the opencms-dev mailing list