Re: How to configure TraxProcessor in 2.2?
After enumerating all the ways that don't work, I think I have this figured out. (I'm trying to wrap Saxon's TransformerFactoryImpl so that I can configure it with our own Java function implementations as Saxon Integrated Extension Function classes.) XSLTProcessor *must* be defined Avalon-style. I couldn't find a way to get it properly initialized using Spring XML configuration. I define the bean in Spring XML, since I like that better. The bean definition may not be needed at all -- couldn't find detailed documentation for Avalon/Excalibur configuration. I put it in prototype scope because I couldn't find anything to say whether the Saxon class I'm extending has per-instance state. I could find no way to use Avalon-style configuration to inject a list/set/array as a parameter. Cocoon's Avalon bridge seems to prevent any kind of Spring DI taking place, despite (I am told) using Spring internally -- @PostConstruct didn't work, @Inject didn't work, didn't work (by making my class invisible to the bridge). So I added a list-valued property to our own application's configuration file, composed of class names, and instantiate them in the wrapper's constructor. I found it helpful to enable DEBUG logging for the packages org.apache.cocoon.spring.configurator and org.apache.cocoon.core.container.spring.avalon. At last I see Saxon successfully calling my functions when referenced by transforms fed to the Cocoon XSLT transformer! -- Mark H. Wood Lead Technology Analyst University Library Indiana University - Purdue University Indianapolis 755 W. Michigan Street Indianapolis, IN 46202 317-274-0749 www.ulib.iupui.edu signature.asc Description: PGP signature
Re: How to configure TraxProcessor in 2.2?
On Tue, Dec 10, 2019 at 11:21:09PM +0100, gelo1234 wrote: > I don't think this is the proper way to do this and if it's possible at > all. Extension functions are only available in commercial releases of Saxon > (PE and EE). > I'm afraid they are not available in open-source Saxon-HE. We were trying > to use Saxon-HE with Cocoon 3.0 and extension-functions without success. > You either have to use OLDER release of Saxon or pay for the license. No. Before trying this in Cocoon, I wrote a tiny test application, and it succeeded in defining integrated extension functions. https://github.com/mwoodiupui/confman-demo What one cannot do in Saxon-HE is register integrated extension functions using a configuration file, as one can in -PE or -EE. This is why I need to do configuration in Java. > wt., 10 gru 2019 o 21:19 Mark H. Wood napisał(a): > > > On Tue, Dec 10, 2019 at 12:10:41AM +0100, gelo1234 wrote: > > > Mark, > > > > > > Why do you need a Custom XSLT Processor other than Saxon actually?? Saxon > > > should do the right thing. Why wrapping it inside any "upper-level" > > > Transformer? It's getting kinda weird. You can always add a new Java > > class > > > to standard Cocoon Processors/Transformers. > > > > Because, as I said, I need to configure Saxon, and Saxon-HE can only > > be configured programmatically. So, if I want to register an > > Integrated Extension Function, I have to gain access to the > > TransformerFactory being created somewhere in the bowels of Cocoon, > > get its Configuration, and call #registerExtensionFunction on that. > > > > To do this, I've created a class which extends TransformerFactoryImpl, > > added a @PostConstruct method (which Spring should call after > > instantiating the bean) to do the registration, and now I'm trying to > > tell Cocoon to use my factory instead of the one that > > javax.xml.transform.TransformerFactory will conjure up by default out > > of the service provider framework when Saxon is present. > > > > > https://mrhaki.blogspot.com/2008/09/use-saxon-in-cocoon-22.html > > > > I've seen that. So far it hasn't helped. > > > > > Greetings, > > > Greg > > > > > > > > > pon., 9 gru 2019 o 23:02 Mark H. Wood napisał(a): > > > > > > > On Thu, Dec 05, 2019 at 04:13:08PM +0100, Javier Puerto wrote: > > > > > I recommend you to use the Spring configuration. I never had this > > > > > requirement before but by the error message and the configuration > > > > fragment > > > > > that you have sent the NPE is caused because you are not passing an > > > > > instance of "org.dspace.saxon.ConfigurableTransformerFactory", you > > are > > > > > passing a String instead. > > > > > > > > > > > > > > > > value='org.dspace.saxon.ConfigurableTransformerFactory'/> > > > > > > > > > > IIRC you should change it to: > > > > > > > > > > > > > > > > > > > > > > > > > The attribute "value" is for literal values. You can also define the > > bean > > > > > with an ID and then use the attribute "ref" with the ID of the bean. > > > > > I hope that helps. > > > > > > > > It would have made more sense for this to take a bean reference, but > > > > the Javadoc for TraxProcessor says that setTransformerFactory() takes > > > > a String argument. That seems to be correct: when I change it to a > > > > reference, I get: > > > > > > > > 09-Dec-2019 15:12:39.128 SEVERE [localhost-startStop-24] > > > > org.apache.catalina.cor > > > > e.StandardContext.listenerStart Exception sending context initialized > > > > event to l > > > > istener instance of class > > > > [org.springframework.web.context.ContextLoaderListener > > > > ] > > > > org.springframework.beans.factory.BeanCreationException: Error > > > > creating > > > > bean with name 'org.apache.excalibur.xml.xslt.XSLTProcessor/saxon' > > defined > > > > in Se > > > > rvletContext resource [/WEB-INF/spring/applicationContext.xml]: > > > > Initialization o > > > > f bean failed; nested exception is > > > > org.springframework.beans.ConversionNotSuppor > > > > tedException: Failed to convert property value of type
Re: How to configure TraxProcessor in 2.2?
On Tue, Dec 10, 2019 at 12:10:41AM +0100, gelo1234 wrote: > Mark, > > Why do you need a Custom XSLT Processor other than Saxon actually?? Saxon > should do the right thing. Why wrapping it inside any "upper-level" > Transformer? It's getting kinda weird. You can always add a new Java class > to standard Cocoon Processors/Transformers. Because, as I said, I need to configure Saxon, and Saxon-HE can only be configured programmatically. So, if I want to register an Integrated Extension Function, I have to gain access to the TransformerFactory being created somewhere in the bowels of Cocoon, get its Configuration, and call #registerExtensionFunction on that. To do this, I've created a class which extends TransformerFactoryImpl, added a @PostConstruct method (which Spring should call after instantiating the bean) to do the registration, and now I'm trying to tell Cocoon to use my factory instead of the one that javax.xml.transform.TransformerFactory will conjure up by default out of the service provider framework when Saxon is present. > https://mrhaki.blogspot.com/2008/09/use-saxon-in-cocoon-22.html I've seen that. So far it hasn't helped. > Greetings, > Greg > > > pon., 9 gru 2019 o 23:02 Mark H. Wood napisał(a): > > > On Thu, Dec 05, 2019 at 04:13:08PM +0100, Javier Puerto wrote: > > > I recommend you to use the Spring configuration. I never had this > > > requirement before but by the error message and the configuration > > fragment > > > that you have sent the NPE is caused because you are not passing an > > > instance of "org.dspace.saxon.ConfigurableTransformerFactory", you are > > > passing a String instead. > > > > > > > > value='org.dspace.saxon.ConfigurableTransformerFactory'/> > > > > > > IIRC you should change it to: > > > > > > > > > > > > > > > The attribute "value" is for literal values. You can also define the bean > > > with an ID and then use the attribute "ref" with the ID of the bean. > > > I hope that helps. > > > > It would have made more sense for this to take a bean reference, but > > the Javadoc for TraxProcessor says that setTransformerFactory() takes > > a String argument. That seems to be correct: when I change it to a > > reference, I get: > > > > 09-Dec-2019 15:12:39.128 SEVERE [localhost-startStop-24] > > org.apache.catalina.cor > > e.StandardContext.listenerStart Exception sending context initialized > > event to l > > istener instance of class > > [org.springframework.web.context.ContextLoaderListener > > ] > > org.springframework.beans.factory.BeanCreationException: Error > > creating > > bean with name 'org.apache.excalibur.xml.xslt.XSLTProcessor/saxon' defined > > in Se > > rvletContext resource [/WEB-INF/spring/applicationContext.xml]: > > Initialization o > > f bean failed; nested exception is > > org.springframework.beans.ConversionNotSuppor > > tedException: Failed to convert property value of type > > 'org.dspace.saxon.Configu > > rableTransformerFactory' to required type 'java.lang.String' for property > > 'trans > > formerFactory'; nested exception is java.lang.IllegalStateException: > > Cannot conv > > ert value of type [org.dspace.saxon.ConfigurableTransformerFactory] to > > required > > type [java.lang.String] for property 'transformerFactory': no matching > > editors o > > r conversion strategy found > > > > When I change it back to the literal name of the class, the > > webapp. starts normally. But it still errors out when it tries to run > > the XSLT transformer. > > > > It begins to look as though one can't really wire up TraxProcessor > > using Spring. (By this I mean: using Spring's normal > > etc.) I'm guessing that it blows up because nothing has > > called #parameterize(Parameters), because #parameterize() knows how > > the properties must be set up and makes sure they are all sensible, > > and thus something was left unset. > > > > I tried adding > > > > log4j.logger.org.apache.excalibur = DEBUG > > log4j.logger.org.apache.avalon = DEBUG > > > > to our logging config. but it made no useful difference in the > > output. I cannot see what paths are actually being consulted for > > Cocoon component configuration, but it seems that none of the places > > I've put my .xconf is one of them. > > > > > El mié., 4 dic. 2019 a las 22:46, Mar
Re: How to configure TraxProcessor in 2.2?
On Thu, Dec 05, 2019 at 04:13:08PM +0100, Javier Puerto wrote: > I recommend you to use the Spring configuration. I never had this > requirement before but by the error message and the configuration fragment > that you have sent the NPE is caused because you are not passing an > instance of "org.dspace.saxon.ConfigurableTransformerFactory", you are > passing a String instead. > > value='org.dspace.saxon.ConfigurableTransformerFactory'/> > > IIRC you should change it to: > > > > > The attribute "value" is for literal values. You can also define the bean > with an ID and then use the attribute "ref" with the ID of the bean. > I hope that helps. It would have made more sense for this to take a bean reference, but the Javadoc for TraxProcessor says that setTransformerFactory() takes a String argument. That seems to be correct: when I change it to a reference, I get: 09-Dec-2019 15:12:39.128 SEVERE [localhost-startStop-24] org.apache.catalina.cor e.StandardContext.listenerStart Exception sending context initialized event to l istener instance of class [org.springframework.web.context.ContextLoaderListener ] org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.excalibur.xml.xslt.XSLTProcessor/saxon' defined in Se rvletContext resource [/WEB-INF/spring/applicationContext.xml]: Initialization o f bean failed; nested exception is org.springframework.beans.ConversionNotSuppor tedException: Failed to convert property value of type 'org.dspace.saxon.Configu rableTransformerFactory' to required type 'java.lang.String' for property 'trans formerFactory'; nested exception is java.lang.IllegalStateException: Cannot conv ert value of type [org.dspace.saxon.ConfigurableTransformerFactory] to required type [java.lang.String] for property 'transformerFactory': no matching editors o r conversion strategy found When I change it back to the literal name of the class, the webapp. starts normally. But it still errors out when it tries to run the XSLT transformer. It begins to look as though one can't really wire up TraxProcessor using Spring. (By this I mean: using Spring's normal etc.) I'm guessing that it blows up because nothing has called #parameterize(Parameters), because #parameterize() knows how the properties must be set up and makes sure they are all sensible, and thus something was left unset. I tried adding log4j.logger.org.apache.excalibur = DEBUG log4j.logger.org.apache.avalon = DEBUG to our logging config. but it made no useful difference in the output. I cannot see what paths are actually being consulted for Cocoon component configuration, but it seems that none of the places I've put my .xconf is one of them. > El mié., 4 dic. 2019 a las 22:46, Mark H. Wood () escribió: > > > I'm using Cocoon 2.2. I need to pass a custom XSLT transformer > > factory (that wraps Saxon's to configure it) to TraxProcessor, and the > > advice I've found in several places around the Web doesn't seem to be > > working: my factory class never gets instantiated. > > > > I've got a file META-INF/cocoon/avalon/cocoon-core-saxon-xslt.xconf: > > > > > > > >> class="org.apache.cocoon.components.xslt.TraxProcessor"> > > > > >value="org.dspace.saxon.ConfigurableTransformerFactory"/> > > > > > > > > I also tried copying it to WEB-INF/cocoon and it didnt' seem to work > > there either. > > > > I do have and in the Spring > > config. > > > > Is there some way to debug component configuration and see if the file > > is even being looked for (and where *is* configuration looking)? The > > Cocoon site directs me to Excalibur, which directs me to Avalon, which > > says that Avalon is wound up and directs me back to Excalibur > > > > > > > > I've also tried to configure the thing using Spring: > > > > > class='org.apache.cocoon.components.xslt.TraxProcessor' > > init-method='initialize' > > destroy-method='dispose'> > > > >> value='org.dspace.saxon.ConfigurableTransformerFactory'/> > > > > > > but so far I'm missing something: TraxProcessor.sourceToSAX throws an > > NPE. I'm probably not setting the parameters correctly -- there isn't > > a setter for use-store at all, for example. > > > > I've found any number of pages that tell me Avalon configuration is > > being replaced
How to configure TraxProcessor in 2.2?
I'm using Cocoon 2.2. I need to pass a custom XSLT transformer factory (that wraps Saxon's to configure it) to TraxProcessor, and the advice I've found in several places around the Web doesn't seem to be working: my factory class never gets instantiated. I've got a file META-INF/cocoon/avalon/cocoon-core-saxon-xslt.xconf: I also tried copying it to WEB-INF/cocoon and it didnt' seem to work there either. I do have and in the Spring config. Is there some way to debug component configuration and see if the file is even being looked for (and where *is* configuration looking)? The Cocoon site directs me to Excalibur, which directs me to Avalon, which says that Avalon is wound up and directs me back to Excalibur I've also tried to configure the thing using Spring: but so far I'm missing something: TraxProcessor.sourceToSAX throws an NPE. I'm probably not setting the parameters correctly -- there isn't a setter for use-store at all, for example. I've found any number of pages that tell me Avalon configuration is being replaced by Spring, but nothing practical on how to convert Avalon configuration (such as the first sample above) to Spring, or even how to write fresh Spring configuration for Cocoon components. It would be nice to know how to do this even if I wind up using the Avalon approach with the present task. -- Mark H. Wood Lead Technology Analyst University Library Indiana University - Purdue University Indianapolis 755 W. Michigan Street Indianapolis, IN 46202 317-274-0749 www.ulib.iupui.edu signature.asc Description: PGP signature
What are the alternatives to in Cocoon 2.2?
We use a large Cocoon 2.2 application (which we don't own and can't just port to v3) and at startup it complains, " deprecation - The 'component-configurations' section in the sitemap is deprecated. Please check for alternatives." So I'm checking for alternatives. Where would I find some detailed discussion of the alternatives to and how to map what we have to them? -- Mark H. Wood Lead Technology Analyst University Library Indiana University - Purdue University Indianapolis 755 W. Michigan Street Indianapolis, IN 46202 317-274-0749 www.ulib.iupui.edu signature.asc Description: Digital signature
Re: Help needed moving from 2.1.11
On Wed, Jan 06, 2016 at 04:59:23PM +, Flynn, Peter wrote: [snip] > It's a pity that Cocoon has strayed so far from its original task of > serving XML via XSLT. In fact it's not at all clear to me what problem > Cocoon 3 is intended to solve. At the moment it looks more like a > development playground or sandbox for Java architects (in itself a > valuable thing; I wish there were more of them) than a production > application solving a business or social requirement. It's basically way > too much Java and nowhere near enough XML. When I first looked at Cocoon 3, I thought it was more like a return to Cocoon's roots, clearing away a lot of stuff that had accumulated and concentrating on the pipeline. It's quite true that, without intense study of what documentation there is, it is very difficult to find any mention of how to configure it with XML, but the XML configurator is still in there. -- Mark H. Wood Lead Technology Analyst University Library Indiana University - Purdue University Indianapolis 755 W. Michigan Street Indianapolis, IN 46202 317-274-0749 www.ulib.iupui.edu signature.asc Description: Digital signature
Re: Documentation for component-configurations, global-variables?
On Wed, Jan 19, 2011 at 10:27:40PM +0100, Luca Morandini wrote: > On 01/19/2011 07:54 PM, Mark H. Wood wrote: > > > > It appears that 2.2 wants us to use Spring to do something analogous, > > but first I need to know in detail what the old way is doing so that I > > can work out how to do the same thing the new way. > > In 2.1 you can use global variables throughout the sitemap (it is just > another > input module), like in: > > > In 2.2 you can use the Cocoon-Spring configurator to the same effect, but it > is > way more flexible then the old "global-variables" definition. Yes, but specifically how is the old way used, and how is the new way used to do the same thing? I've found no documentation for the deprecated element, and no examples of the elements, nor a definitive description of the configurator namespace. [spend half a day grubbing through the code] The deprecation message in question appears to come from org.apache.cocoon.core.container.spring.avalon.SitemapHelper.getGlobalSitemapVariables. That code winkles out the global-variables element and pokes its content into a Properties, which is then used by the caller (createDefinition) which seems to be building a StringBuffer that eventually contains a Spring element and lots of content, which is returned to createContainer (which returns a WebApplicationContext to somewhere). So it looks like the translation of: http://apache.org/cocoon/sitemap/1.0";> IUPUIScholarWorks IUPUIScholarWORKS theme ... is: http://www.springframework.org/schema/beans"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns:util="http://www.springframework.org/schema/util"; xmlns:configurator="http://cocoon.apache.org/schema/configurator"; xmlns:avalon="http://cocoon.apache.org/schema/avalon"; xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd http://cocoon.apache.org/schema/configurator http://cocoon.apache.org/schema/configurator/cocoon-configurator-1.0.xsd http://cocoon.apache.org/schema/avalon/cocoon-avalon-1.0.xsd\";> ... I'm still figuring out for certain what SITEMAP LOCATION is supposed to be, though it does seem somewhat obvious. -- Mark H. Wood Lead Technology Analyst University Library Indiana University - Purdue University Indianapolis 755 W. Michigan Street Indianapolis, IN 46202 317-274-0749 www.ulib.iupui.edu signature.asc Description: Digital signature
Trouble trying to build Cocoon 3 documentation site
I checked out a copy of the 3.0 documentation to see if I could fill in some of the missing bits, but it won't build. I'm having various problems, which I'm investigating, but one is that there is a declaration for a pluginRepository that no longer exists. The agilejava.com "domain expired on 1/28/2015 and is pending renewal or deletion." Since the dependency which was to be satisfied from there is now in Central, I just deleted the element and got a bit farther. Here's what I checked out: mwood@mhw ~/build/cocoon-3.0 $ svn info Path: . Working Copy Root Path: /home/mwood/build/cocoon-3.0 URL: https://svn.apache.org/repos/asf/cocoon/cocoon3/trunk/parent Relative URL: ^/cocoon/cocoon3/trunk/parent Repository Root: https://svn.apache.org/repos/asf Repository UUID: 13f79535-47bb-0310-9956-ffa450edef68 Revision: 1662684 Node Kind: directory Schedule: normal Last Changed Author: javier Last Changed Rev: 1502623 Last Changed Date: 2013-07-12 13:16:22 -0400 (Fri, 12 Jul 2013) mwood@mhw ~/build/cocoon-3.0 $ svn diff Index: pom.xml === --- pom.xml (revision 1662684) +++ pom.xml (working copy) @@ -708,13 +708,6 @@ - - - agilejava - http://agilejava.com/maven - - - ++ [time passes] Aha! My remaining problems were (a) bad cached dependencies (which I cleaned out and refetched) and (b) the fact that I'm running Maven 3.1.1 and needed to update a couple of plugin versions: mwood@mhw ~/build/cocoon-3.0 $ svn diff Index: pom.xml === --- pom.xml (revision 1662684) +++ pom.xml (working copy) @@ -708,13 +708,6 @@ - - - agilejava - http://agilejava.com/maven - - - @@ -912,7 +905,7 @@ org.apache.maven.plugins maven-site-plugin -3.2 +3.3 en @@ -975,7 +968,7 @@ maven-dependency-plugin - 2.6 + 2.8 org.codehaus.mojo https://cwiki.apache.org/confluence/display/MAVEN/AetherClassNotFound -- Mark H. Wood Lead Technology Analyst University Library Indiana University - Purdue University Indianapolis 755 W. Michigan Street Indianapolis, IN 46202 317-274-0749 www.ulib.iupui.edu signature.asc Description: Digital signature
Re: Dom Transformer
On Fri, Mar 15, 2013 at 02:58:37PM -0400, Mansour Al Akeel wrote: > I have tags with id's like: > > > > I think this can be done is Stax, xslt or Sax, however, I am trying to > do it in a clean way without any hacks. > > Do you have any suggestion ?? I well understand the appeal of keeping the whole document around for random access. :-) But have you considered xsl:key? It sound like you want to accumulate a symbol table and fetch useful properties of the symbols when you see them again. I'm only brainstorming here. I haven't yet used xsl:key myself. But if I don't expose my ignorance once in a while, I'll never learn. :-) If you find my suggestion helpful, I'd like to see how you used it. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu There's an app for that: your browser pgpDlNmzRGMDQ.pgp Description: PGP signature
Encouraging more volunteers
I note that the link Getting Involved | How to Contribute leads to a page topped by this: How to contribute? Code TBD If someone could find a few minutes to fill this in, I think it would remove some friction. Further down that page: General documentation These instructions only work if you have an active account in our Daisy CMS and got the doc editor role assigned. If you haven't, create your account at http://cocoon.zones.apache.org/daisy/registration and ask at dev[_at_]cocoon.apache.org for editing rights. The link returns 404. Still further down, there is a link to Cocoon Site Overview. That link also returns 404. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgpAXVdAXQNnV.pgp Description: PGP signature
Re: Is cocoon dead ?
On Mon, Nov 12, 2012 at 10:28:39AM +0100, Francesco Chicchiriccò wrote: > Hi all, > for anyone interested more in contributing for make things change rather > than ranting about autopsy and post-mortem status, I'd strongly suggest > to take a look at [1], if need subscribe to dev@ ML, and join the > discussion there. > > Regards. > > [1] http://markmail.org/message/n3xt6yio6vikanuh Thank you. I've read that thread and am encouraged. If I find something I can contribute, I surely will. I want Cocoon to prosper: I'm invested in a project that is heavily dependent on Cocoon. I've tried several times to find the place to start reading the code, and never found it. Maybe it's time to try again. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgp1gCVviM4dA.pgp Description: PGP signature
Re: Is cocoon dead ?
I'm not surprised at all. Looking 3cm. down the same page you find the next most recent news is a year and a half old. When people ask about C2.x (and the latest released version is 2.2) nobody wants to talk about it (except others desperate for information about some aspect of C2); one is told to use C3. C3 has been alpha for perhaps two years -- there is as yet no beta, let alone a release. There are no books on anything later than 2.1, which is about a decade old. Perhaps 80% of the official documentation is either TBW or skeletal, and the only people who know the inside of Cocoon well enough to complete it keep asking others to do that. Bugs with patches attached languish for years. Seemingly everyone using Cocoon is running a unique local version with scads of patches that are passed around like ancient lore. Why would anyone think Cocoon is dead? -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgp8zeUn5xgxV.pgp Description: PGP signature
Re: Forms and maps
On Wed, Apr 18, 2012 at 11:34:26AM +0200, Derek Hohls wrote: > It all depends on your environment and the "rate of change". There are > many back-end systems (running on old but reliable technology) that > hardly change at all. However, the web (and now tablets/mobile) has a > very high rate of change (and expectation of change). The point here is > that by using more loosely-coupled modules then you will only have to > change the parts that really need to be changed; a monolithic approach > is less amenable to that. I think this may actually underscore the O.P.'s point. Changing the whole world in one go is the monolithic approach. The modular approach would enable choosing new mechanisms for new work and sticking with old, established mechanisms for existing, still-useful work when that makes sense. Having to throw out piles of satisfactory working code just to use a dependency version that still has the attention of its maintainers is really unwelcome. I think the complaint is that Cocoon 3 is really Butterfly 1. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgp8QKsMr5QTr.pgp Description: PGP signature
Re: Forms and maps
On Wed, Apr 18, 2012 at 11:54:40AM +0200, Thorsten Scherler wrote: > On 04/18/2012 11:24 AM, m...@digikartta.net wrote: [snip] > > Half of us would be out of jobs? > > jeje actually that is point of view. I know of colleagues that maintain > some buggy developments and earn a good living. The prob in general in > cocoon where that if you do it right the first time you have no > maintenance. So e.g. upgrading and rewriting some apps brings us work. Ha! I am now recalling an old cartoon. There's a diesel locomotive pulling a flatcar. On the flatcar is a man shovelling coal onto a conveyor that carries the coal back to the pile from which he is shovelling. He has a job, but -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Doing a revision is like chewing used gum. -- Asimov pgpYMS2ozM0XU.pgp Description: PGP signature
Re: Forms and maps
On Wed, Apr 18, 2012 at 11:30:58AM +0200, Robby Pelssers wrote: > You should read this article 'Why Good Programmers Are Lazy and Dumb' > http://blogoscoped.com/archive/2005-08-24-n14.html > > I think it's not so much about losing our jobs but about > - trying to become more productive (getting more done in the same amount of > time) > - avoiding repetitive work I'm not sure which way the above is pointed, but anyway: which is more productive: o rewriting the same app. every six months until the end of time to keep up with the fashion of the moment; or o spending a few moments every now and then to maintain that app., and the bulk of your time writing new app.s to address new needs? Which is more repetitive? The iPhone thing explains why I almost always carry an "outdated" phone. It still does everything I want it to do. I'll trade it when it doesn't do that anymore. I'd rather spend my money and time on an unrelated, unmet need. But maybe these arguments are pointless. Some projects need the Latest Thing and other projects need stability and maintenance. If C3 is too big a break, gather others who feel the same way and fork C2 and share the maintenance and development. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgpUETbqeTWQe.pgp Description: PGP signature
Re: How/where to create a sitemap in a generated Cocoon 3 web app?
On Fri, Mar 02, 2012 at 08:50:02PM +0100, Simone Tripodi wrote: > apologize if Cocoon doesn't satisfy your expectations, but please take > in consideration that actually there is not even a single entity > sponsoring Cocoon development - I mean, no one of us is dedicated 100% > of paid time to Cocoon - so everybody involved here is juts a > volunteer that participates in his spare time. Oh, I understand that. And I try not to whine. But, when people are wondering aloud why a product is not more popular, when that product's own web site apparently hasn't been touched in four years, when that site warns you off ("alpha") the only version that seems to get any attention, I think it is the part of a friend to say, "wake up! this is why." I hope that someone would do that for me, in similar circumstances. A project lacking formal sponsorship has a literally vital need to stay in touch with the people who would use it and help it grow. There are dependent projects Out There that have to package their own fork of Cocoon because they also depend on bug fixes that haven't been taken up in years. That has to have a negative effect on people outside the project who diagnose and fix bugs, people who would like to use Cocoon more but are wary, people who would contribute if they could but are deterred by the appearance of a wall between "inside" and "outside". A community-supported project needs members who are excited about the code, but even more it needs members who are excited about the community and do things to keep them involved, make it an inviting place to contribute. Sometimes boring things, like keeping the website up-to-date, writing introductory materials for new contributors, following up issues, and the like. If I could even figure out how to build 2.2 I would very likely at least fill some of the gaping holes in the documentation. I like volunteering when I have enough information to do a good job. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgpEwpM4kaewp.pgp Description: PGP signature
Re: How/where to create a sitemap in a generated Cocoon 3 web app?
On Fri, Mar 02, 2012 at 10:08:41AM +0100, Francesco Chicchiriccò wrote: > On 02/03/2012 07:47, Jos Snellings wrote: > > [...] > > > > And true, the documentation on the site does not make it easy enough > > to step up the threshold and upgrade. > > [@group: shouldn't we do something about that. Cocoon is losing its > > user base, it will end up getting adopted only by a few old people out > > there. It is gaining momentum on the planet Zork but that's not going > > to help us on Earth, is it?] > > I agree: should we move to dev ML and discuss this "getting started / > documentation" topic? > > > I hope this helps you on the way. It would make me very happy to know > > that I am not one of the sole developers > > on this planet who chose cocoon 3 as a development platform, for the > > few times in your life that you are in the > > position to make this choice for your customer! I chose for cocoon 3 > > because I liked the new architecture. Maybe if it were RELEASED From the cocoon.apache.org homepage: Apache Cocoon 3 Corona was accepted by the Cocoon PMC to become Apache Cocoon 3. The Cocoon 3 website has more details. A first ALPHA release will follow soon. [more] submitted by Reinhard P�tz, 8/14/08 7:23:55 AM [That is the LATEST entry in the News section.] Download the latest version: Apache Cocoon Version 2.2.0 Some documentation that tells us a little more than "TBD" would also help promote Cocoon. I have what I think is still the latest book on Cocoon. It's from 2003. IIRC 2.1 entered beta while the book was being completed. It has a whole chapter about Avalon, which you can hardly even find anymore. It's still a godsend if you want to find out how Cocoon was meant to be used. For everyone outside the project, 2.2 hasn't quite finished happening yet and 3.0 is just a wild rumor. People who built their products around Cocoon feel abandoned. Nothing is happening. Bug reports seem to be immortal -- even the ones with fixes attached. Gee, why would Cocoon be losing its user base? -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgpHCCLjLymBO.pgp Description: PGP signature
Re: scaling problem
Well, "JVM runs out of memory" could have any of several meanings, because it has several different pools of memory and any one of them could have been exhausted. You need more information. Is it running out of heap, of PermGen, something else? These answers will inform your search for the problem. Employ a monitoring tool (I use PsiProbe) and watch the memory behavior as you approach and hit the wall. You don't really run out of memory by having lots of garbage; your app.'s performance begins to "stutter" as GC occasionally becomes a larger part of the load. No, you run out of memory by accumulating uncollectable objects -- they aren't recognized as garbage and so can't be reclaimed. It may be that the design of your application requires such a large accumumlation, or it may be that it is leaking objects which are no longer useful but can't be collected because they are referenced by other objects which are still live. Because memory is organized in multiple pools, you can overfill one of them (and crash) while having plenty in the others. It may be that you just need to redistribute the memory you have. You'll need to continue monitoring and adjusting until you discover the necessary proportions, with each pool well filled yet having comfortable headroom for traffic spikes. BTW early in my Java work I found myself just throwing memory at such problems until they (sometimes) went away. I eventually realized that it's possible to give a long-running Java app. *too much* memory -- that a better approach is to keep the pools small enough that GC is somewhat frequent and never has a huge amount of garbage to deal with. I don't want GC to run all the time, but neither do I want to see it going dormant for ages and then dominating for thousands of milliseconds. I want each pool kept, on average, with free space in the minority but not too scanty. Mostly what I want is that the main heap doesn't vary greatly in fill factor under steady load, which usually means that utilization is somewhat near maximum size but with room for occasional surges. Tweaking out unwelcome memory behavior takes a long time and a lot of staring and thinking. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgpwlwQgRrmWs.pgp Description: PGP signature
Re: help needed for migrating Cocoon2.2 to Spring 3
On Thu, Sep 15, 2011 at 09:08:52AM +0200, Robby Pelssers wrote: > Hi all, > > I've seen plenty of people asking for coming up with a new release Cocoon2.3 > where cocoon would ship with: > - Spring 3 > - Dojo 1.x > - EhCache 2.3.x > - FOP 1.0 Not to mention scads of patches that have been waiting for some time. Add me to that list. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgp7Y2FWGhhiJ.pgp Description: PGP signature
Documentation for component-configurations, global-variables?
I need to understand a sitemap that begins: http://apache.org/cocoon/sitemap/1.0";> IUPUIScholarWorks IUPUIScholarWORKS theme Apparently this stuff didn't exist in 2.0 and is deprecated in 2.2, and I haven't tracked it down in the 2.1 documentation either. We're currently running on 2.2 and getting some deprecation messages that I'd like to address as time permits. It appears that 2.2 wants us to use Spring to do something analogous, but first I need to know in detail what the old way is doing so that I can work out how to do the same thing the new way. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Asking whether markets are efficient is like asking whether people are smart. pgpFg7JQxHhFD.pgp Description: PGP signature
Re: Very large Generator file
On Tue, May 11, 2010 at 07:56:19AM -0500, Schmitz, Jeffrey A wrote: > Thanks Huib, >I'm afraid my document is very interconnected. I'm coming to realize that > xslt has pretty much a hard limit on the size of files you can process with > it, i.e. if it can't fit into memory and you need the full power of xslt > you're pretty much out of luck. What about going to a 64 bit machine and > just allocating a huge amount of ram to Tomcat? Can this been done with > tomcat/cocoon? It can be done with a 64-bit JVM. Tomcat won't know and neither will Cocoon. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Balance your desire for bells and whistles with the reality that only a little more than 2 percent of world population has broadband. -- Ledford and Tyler, _Google Analytics 2.0_ pgpzEqtBX6xps.pgp Description: PGP signature
Re: Lowering in amount of users' posts?
On Mon, Apr 19, 2010 at 08:04:54PM +0200, Luca Morandini wrote: > You've alreadty read Vadim's presentation and samples [1], right ? > > Regards, > > [1] http://reverycodes.com/gt/Cocoon%202.2%20Classic.ppt Thank you. No, I've just now learned of its existence. OpenOffice doesn't quite render it properly, and of course a PowerPoint deck is always missing a lot without the speaker, but it seems quite helpful, and now I have a link to a source tree that actually might be buildable (unlike the release tarball). -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Balance your desire for bells and whistles with the reality that only a little more than 2 percent of world population has broadband. -- Ledford and Tyler, _Google Analytics 2.0_ pgpYGbBwAvT2W.pgp Description: PGP signature
Re: Lowering in amount of users' posts?
On Mon, Apr 19, 2010 at 12:19:28PM +0200, Robby Pelssers wrote: > There is no real need to move ... totally agree. But once you become > familiar with > - agile development > - unit-testing (junit & spring-test) > - dependency injection (Spring) > - AOP > - Cocoon-spring-configurator > - reloading class loader (RCL) > > You might finally see the benefits from switching to newer versions. Oh, the *benefits* are easy enough to see. It's the how-to-switch that's clear as mud. Like the famous S. Harris cartoon, I think we need to be more explicit in step two. (Step 1: lots of math Step 2: "then a miracle occurs" Step 3: lots of *completely different-looking* math) -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Balance your desire for bells and whistles with the reality that only a little more than 2 percent of world population has broadband. -- Ledford and Tyler, _Google Analytics 2.0_ pgpruualxbpat.pgp Description: PGP signature
Re: Lowering in amount of users' posts?
I too see a widening gap between development and the user base. It seemed as though, when 2.2 came out, those who knew how it worked had already lost interest in it and were in hot pursuit of 3.0. 2.1 (where most of the users were, and perhaps still are) was left twisting slowly in the wind. 2.1 documentation is thin, but 2.2's is worse than none at all: one loses hours following circles of links thinking, "there must be something here *somewhere*!" Asking questions is good, but there's no reward for the behavior when the only answer is "try 3.0." It's clear that a number of folks feel abandoned, and few will talk when they think no one is listening. There's nothing wrong with improving the product, and the changes in Cocoon make sense. (I can't name any other user of the Avalon framework with the same significance as Cocoon -- and the Avalon documentation is tremendously frustrating too. There are a gazillion books on Spring.) But without *thorough, complete* documentation and just plain attention to older versions, there's no bridge from where many of us are to where Cocoon stands today. Using Maven makes sense, but there's a problem too, because Maven is also woefully under-documented. So the build process becomes a mystery wrapped in an enigma. OK, theoretically there's less need to build Cocoon 2.2+; in practice there's a very great need to apply a number of patches that should have gone into a 2.2.1 long ago, and then debug further. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Balance your desire for bells and whistles with the reality that only a little more than 2 percent of world population has broadband. -- Ledford and Tyler, _Google Analytics 2.0_ pgpMzMYi57k4v.pgp Description: PGP signature
Re: cocoon-block-deployment
On Tue, Apr 13, 2010 at 12:35:48PM +0200, Mathias Reem wrote: > I want to use version 1.2.0 of cocoon-servlet-service-impl, because of > the NPE fix that was added to that version. As c-s-s-i depends on > cocoon-jnet (1.1.0) I've also added that jar to my libs. But now I've > got the problem, that my Application won't start anymore, I get a MUE: > > Invocation of init method failed; nested exception is > java.net.MalformedURLException: The contextPath must be empty or start > with '/' blockcontext:/websys Oh, does that sound familiar. See discussion of related issues in thread Message-ID: on Tue, 2 Feb 2010 19:44:01 +0100, including the DSpace JIRA issue noted there, which has extensive discussion. I think perhaps forcing the cocoon-linkrewriter-impl version addressed the supposedly malformed contextPath, but that's just a guess -- as yet I'm far from having my head wrapped around Cocoon's internals. DSpace 1.6.0 has been out for a while now, uses cocoon-servlet-service-impl:1.2.0 and cocoon-linkrewriter-impl:1.0.0, and doesn't seem to be triggering any reports of these problems. -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Balance your desire for bells and whistles with the reality that only a little more than 2 percent of world population has broadband. -- Ledford and Tyler, _Google Analytics 2.0_ pgprnVxrdvXb2.pgp Description: PGP signature
Want a released version with a single patch -- how to build releases?
I need 2.2 + a specific patch (COCOON-2217) to (attempt to) cure a problem in a third-party app. (DSpace) that pulls Cocoon in via Maven. I don't (yet) want to develop Cocoon itself, but I need to install a patched version in my local Maven repo where the DSpace build can find it (maybe with a little POM tweaking). I found the "Building Cocoon 2.2" page, adapted the checkout instructions to get the tagged 2.2 release, went to the 'mvn clean install' step, looked around in the top directory and found no pom.xml. And it looks like there are a bunch of milestones and release candidates all jumbled in there. How does one build a released version from SVN? -- Mark H. Wood, Lead System Programmer mw...@iupui.edu Friends don't let friends publish revisable-form documents. pgpadPFQlnF4B.pgp Description: PGP signature