Re: How to configure TraxProcessor in 2.2?

2019-12-11 Thread Mark H. Wood
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?

2019-12-11 Thread Mark H. Wood
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
> > > > 'org.dspace.saxon.Configu
> > >

Re: How to configure TraxProcessor in 2.2?

2019-12-10 Thread Mark H. Wood
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, Mark H. Wood ()
> > escribió:
> > >
> > > > I'm using Cocoon 2.2.  I need to pass

Re: How to configure TraxProcessor in 2.2?

2019-12-09 Thread Mark H. Wood
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 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 confi

How to configure TraxProcessor in 2.2?

2019-12-04 Thread Mark H. Wood
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?

2016-03-04 Thread Mark H. Wood
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

2016-01-06 Thread Mark H. Wood
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?

2015-10-15 Thread Mark H. Wood
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
<configurator:*/> 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

2015-02-27 Thread Mark H. Wood
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 pluginRrepositories 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 @@
 /repository
/repositories

-  pluginRepositories
-pluginRepository
-  idagilejava/id
-  urlhttp://agilejava.com/maven/url
-/pluginRepository
-  /pluginRepositories
-
   build
plugins
   plugin


++

[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 @@
 /repository
   /repositories
 
-  pluginRepositories
-pluginRepository
-  idagilejava/id
-  urlhttp://agilejava.com/maven/url
-/pluginRepository
-  /pluginRepositories
-  
   build
 plugins
   plugin
@@ -912,7 +905,7 @@
   plugin
 groupIdorg.apache.maven.plugins/groupId
 artifactIdmaven-site-plugin/artifactId
-version3.2/version
+version3.3/version
 configuration
   localesen/locales
   reportPlugins
@@ -975,7 +968,7 @@
 /plugin
 plugin
   artifactIdmaven-dependency-plugin/artifactId
-  version2.6/version
+  version2.8/version
 /plugin
 plugin
   groupIdorg.codehaus.mojo/groupId

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

2013-03-15 Thread Mark H. Wood
On Fri, Mar 15, 2013 at 02:58:37PM -0400, Mansour Al Akeel wrote:
 I have tags with id's like:
 
 some-section-tag id='109876_n00069  
 
 And those ids are used for links inside the document. They are linked
 from different sections.
 I like to transform the links and the ids to something that makes sense. Like,
 
 xref href=the-section-title-with-dashes-only  My Link Label/xref
 
 And
 
 The anchor
 
 some-section-tag id='the-section-title-with-dashes-only  
 
 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


Re: Is cocoon dead ?

2012-11-12 Thread Mark H. Wood
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


Encouraging more volunteers

2012-11-12 Thread Mark H. Wood
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 ?

2012-11-08 Thread Mark H. Wood
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

2012-04-18 Thread Mark H. Wood
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: Forms and maps

2012-04-18 Thread Mark H. Wood
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: How/where to create a sitemap in a generated Cocoon 3 web app?

2012-03-05 Thread Mark H. Wood
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?

2012-03-02 Thread Mark H. Wood
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

2011-10-21 Thread Mark H. Wood
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

2011-09-15 Thread Mark H. Wood
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?

2011-01-19 Thread Mark H. Wood
I need to understand a sitemap that begins:

map:sitemap xmlns:map=http://apache.org/cocoon/sitemap/1.0;
  map:pipelines

map:component-configurations
  global-variables
theme-pathIUPUIScholarWorks/theme-path
theme-nameIUPUIScholarWORKS theme/theme-name
  /global-variables
/map:component-configurations

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

2010-05-11 Thread Mark H. Wood
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?

2010-04-20 Thread Mark H. Wood
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?

2010-04-19 Thread Mark H. Wood
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: Lowering in amount of users' posts?

2010-04-19 Thread Mark H. Wood
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: cocoon-block-deployment

2010-04-13 Thread Mark H. Wood
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:
of5c08ea92.4e89e0bc-onc12576be.0066a407-c12576be.0066e...@workflow.at
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?

2009-07-10 Thread Mark H. Wood
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