Re: Trunk currently not building (was Re: Status of releasing M1 artifacts)

2006-07-31 Thread Reinhard Poetz

Jorg Heymans wrote:

Hi,

Because of the different version iterations it is entirely possible that
trunk is currently not building. This is nothing bad as such, only minor
adjustments to pom versions are needed to make it work again. I don't have
time to do this now, I'll see to it though that trunk is building again by
the end of the week (if nobody beats me to it)


should be fixed now

--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc






___ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de


Re: Status of releasing M1 artifacts

2006-07-31 Thread Reinhard Poetz

Jorg Heymans wrote:

On 7/31/06 3:11 PM, in article [EMAIL PROTECTED], "Reinhard Poetz"
<[EMAIL PROTECTED]> wrote:


So far I've been able to release

cocoon
cocoon-core-modules
cocoon-bootstrap
cocoon-core


I did:

cocoon-tools-modules
cocoon-blocks-modules
cocoon-commons-modules
cocoon-deployer-modules
cocoon-deployer-core
cocoon-deployer-plugin
cocoon-licenses

I tried to rerelease cocoon-core because it was missing cocoon-licenses as
dependency


why do we need such a dependency? I don't understand what it really buys us.


but I'm getting errors about cocoon-bootstrap missing.


yes, because you don't have the released version. You can get it from the rsynch 
repository from people.apache.org and can install it manually to your local repo.



Reinhard
you seemed to have managed to release cocoon-core, could you do it again
please as I have removed the tag and artifacts on people.a.o already ?


ah, ok. I hope I have some time.


Also, note that there is no need to disable modules when releasing a module
pom, you can release it non-recursively by doing

mvn -N release:prepare release:perform -Darguments="-N"


what a strange notation ... I tried it with "-N" only.

Another question: Is it really a good idea if we add the release tags to one 
directory? Over the time we will get hundrets of them. Maybe we should build 
some hierarchy


/cocoon/releases/core
/cocoon/releases/blocks/cforms
/cocoon/releases/blocks/ctemplate
/cocoon/releases/blocks/...
/cocoon/releases/tools/...
/cocoon/releases/pom (for our pom artifacts)

WDYT?

--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc



___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de


[jira] Closed: (COCOON-1678) HTMLArea unable to set target and title to a "link"

2006-07-31 Thread Antonio Gallardo (JIRA)
 [ http://issues.apache.org/jira/browse/COCOON-1678?page=all ]

Antonio Gallardo closed COCOON-1678.


Fix Version/s: 2.2-dev (Current SVN)
   2.1.10-dev (current SVN)
   Resolution: Fixed

Thanks for the patch. It was applied. Feel free to reopen the issue if needed.

> HTMLArea unable to set target and title to a "link"
> ---
>
> Key: COCOON-1678
> URL: http://issues.apache.org/jira/browse/COCOON-1678
> Project: Cocoon
>  Issue Type: Bug
>  Components: Blocks: Forms
>Affects Versions: 2.1.8
>Reporter: Philippe Gassmann
> Assigned To: Antonio Gallardo
>Priority: Minor
> Fix For: 2.2-dev (Current SVN), 2.1.10-dev (current SVN)
>
> Attachments: HTMLCleanerConfiguration.xml.patch
>
>
> I do the following test on 
> http://cocoon.zones.apache.org/demos/21branch/samples/blocks/forms/htmlarea : 
> Type some text in the "in a table" HTMLArea.
> Select a portion of the text, click on the link button.
> Type the address : http://www.google.com
> Type a title : test
> Select a target.
> Submit,
> The result is : 
> 
> 
>   
>   
>   
>   
>   a 
> http://www.google.fr";>new
>  test
> 
> 
> 
> 
> 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Assigned: (COCOON-1678) HTMLArea unable to set target and title to a "link"

2006-07-31 Thread Antonio Gallardo (JIRA)
 [ http://issues.apache.org/jira/browse/COCOON-1678?page=all ]

Antonio Gallardo reassigned COCOON-1678:


Assignee: Antonio Gallardo  (was: Cocoon Developers Team)

> HTMLArea unable to set target and title to a "link"
> ---
>
> Key: COCOON-1678
> URL: http://issues.apache.org/jira/browse/COCOON-1678
> Project: Cocoon
>  Issue Type: Bug
>  Components: Blocks: Forms
>Affects Versions: 2.1.8
>Reporter: Philippe Gassmann
> Assigned To: Antonio Gallardo
>Priority: Minor
> Attachments: HTMLCleanerConfiguration.xml.patch
>
>
> I do the following test on 
> http://cocoon.zones.apache.org/demos/21branch/samples/blocks/forms/htmlarea : 
> Type some text in the "in a table" HTMLArea.
> Select a portion of the text, click on the link button.
> Type the address : http://www.google.com
> Type a title : test
> Select a target.
> Submit,
> The result is : 
> 
> 
>   
>   
>   
>   
>   a 
> http://www.google.fr";>new
>  test
> 
> 
> 
> 
> 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Closed: (COCOON-1758) Form locale never used in JXMacros

2006-07-31 Thread Antonio Gallardo (JIRA)
 [ http://issues.apache.org/jira/browse/COCOON-1758?page=all ]

Antonio Gallardo closed COCOON-1758.


Fix Version/s: 2.2-dev (Current SVN)
   2.1.10-dev (current SVN)
   Resolution: Fixed

Hi Carlos, I am glad to see you contributing back to the cocoon community! 
Thanks for the patch. It was applied with minor changes. Please feel free to 
reopen the issue if needed.

> Form locale never used in JXMacros
> --
>
> Key: COCOON-1758
> URL: http://issues.apache.org/jira/browse/COCOON-1758
> Project: Cocoon
>  Issue Type: Bug
>  Components: Blocks: Forms
>Affects Versions: 2.1.8, 2.2-dev (Current SVN), 2.1.9
>Reporter: Philippe Gassmann
> Assigned To: Antonio Gallardo
> Fix For: 2.2-dev (Current SVN), 2.1.10-dev (current SVN)
>
> Attachments: 20060201-cocoon-forms-1758, patch.txt, patch1.txt
>
>
> The JXMacroHelper is created with :  value="#{org.apache.cocoon.forms.generation.JXMacrosHelper.createHelper($cocoon/consumer,$cocoon/request,$cocoon/parameters/locale)}"/>
> So the locale is get from sitemap parameters. 
> the locale attribute of the form is then never used.
> I will provide a patch as soon as possible

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




ForrestBot build for cocoon-docs FAILED

2006-07-31 Thread Forrestbot
Automated build for cocoon-docs FAILED
Log attached.

--
Forrestbot run ended at 01 August 12:28 AM
Using Forrest 0.8-dev
Forrestbot administrator: ForrestBot
--

 [echo] 
  ... Forrest render START 2006-08-01 12:02:17
  ... Rendering docs in 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs


check-java-version:
 [echo] This is apache-forrest-0.8-dev
 [echo] Using Java 1.4 from /usr/j2se/jre

init-props:
[mkdir] Created dir: 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp

echo-settings:

check-skin:

init-proxy:

fetch-skins-descriptors:

fetch-skin:

unpack-skins:

init-skins:

fetch-plugins-descriptors:
 [echo] Fetching plugins descriptor: 
http://forrest.apache.org/plugins/plugins.xml
  [get] Getting: http://forrest.apache.org/plugins/plugins.xml
  [get] To: 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/plugins-1.xml
  [get] ...
  [get] last modified = Mon Jul 24 00:07:03 GMT+00:00 2006
 [echo] Fetching plugins descriptor: 
http://forrest.apache.org/plugins/whiteboard-plugins.xml
  [get] Getting: http://forrest.apache.org/plugins/whiteboard-plugins.xml
  [get] To: 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/plugins-2.xml
  [get] ..
  [get] last modified = Mon Jul 17 11:07:06 GMT+00:00 2006
 [echo] Plugin list loaded from 
http://forrest.apache.org/plugins/plugins.xml.
 [echo] Plugin list loaded from 
http://forrest.apache.org/plugins/whiteboard-plugins.xml.

init-plugins:
[mkdir] Created dir: 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/webapp/conf
 [copy] Copying 1 file to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp
 [copy] Copying 1 file to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp
 [copy] Copying 1 file to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp
 [copy] Copying 1 file to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp
 [copy] Copying 1 file to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp
 [echo] 
  --
  Installing plugin: org.apache.forrest.plugin.output.pdf
  --
   

check-plugin:
 [echo] org.apache.forrest.plugin.output.pdf is available in the build dir. 
Trying to update it...

init-props:

echo-settings:

init-proxy:

fetch-plugins-descriptors:

fetch-plugin:
 [echo] Trying to find the description of 
org.apache.forrest.plugin.output.pdf in the different descriptor files
 [echo] Using the descriptor file 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/plugins-1.xml...
 [xslt] Processing 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/plugins-1.xml to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/pluginlist2fetchbuild.xml
 [xslt] Loading stylesheet 
/export/opt/forrest-trunk/main/var/pluginlist2fetch.xsl

fetch-local-unversioned-plugin:

get-local:
 [echo] Trying to locally get org.apache.forrest.plugin.output.pdf
 [echo] Looking in local /export/opt/forrest-trunk/plugins
 [echo] Found !

init-build-compiler:

echo-init:

init:

compile:

jar:

local-deploy:
 [echo] Locally deploying org.apache.forrest.plugin.output.pdf

build:
 [echo] Plugin org.apache.forrest.plugin.output.pdf deployed ! Ready to 
configure

fetch-remote-unversioned-plugin-version-forrest:

fetch-remote-unversioned-plugin-unversion-forrest:

has-been-downloaded:

downloaded-message:

uptodate-message:

not-found-message:
 [echo] Fetch-plugin Ok, installing !

unpack-plugin:

install-plugin:

configure-plugin:

configure-output-plugin:
 [echo] Mounting output plugin: org.apache.forrest.plugin.output.pdf
 [xslt] Processing 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/output.xmap to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/output.xmap.new
 [xslt] Loading stylesheet 
/export/opt/forrest-trunk/main/var/pluginMountSnippet.xsl
 [move] Moving 1 file to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp

configure-plugin-locationmap:
 [echo] Mounting plugin locationmap for org.apache.forrest.plugin.output.pdf
 [xslt] Processing 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/locationmap.xml 
to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp/locationmap.xml.new
 [xslt] Loading stylesheet 
/export/opt/forrest-trunk/main/var/pluginLmMountSnippet.xsl
 [move] Moving 1 file to 
/export/home/config/forrestbot-trunk/conf/work/cocoon-docs/tmp
 [echo] 
  --
  Installing plugin: org.apache.forrest.plugin.input.projectInfo
  --
   

check-plugin:
 [echo

Trunk currently not building (was Re: Status of releasing M1 artifacts)

2006-07-31 Thread Jorg Heymans
Hi,

Because of the different version iterations it is entirely possible that
trunk is currently not building. This is nothing bad as such, only minor
adjustments to pom versions are needed to make it work again. I don't have
time to do this now, I'll see to it though that trunk is building again by
the end of the week (if nobody beats me to it)

Note that because of this I also temporarily disabled Continuum, we would
get flooded with build failures otherwise.

Regards
Jorg




Re: Status of releasing M1 artifacts

2006-07-31 Thread Jorg Heymans

On 7/31/06 3:11 PM, in article [EMAIL PROTECTED], "Reinhard Poetz"
<[EMAIL PROTECTED]> wrote:

> 
> So far I've been able to release
> 
> cocoon
> cocoon-core-modules
> cocoon-bootstrap
> cocoon-core

I did:

cocoon-tools-modules
cocoon-blocks-modules
cocoon-commons-modules
cocoon-deployer-modules
cocoon-deployer-core
cocoon-deployer-plugin
cocoon-licenses

I tried to rerelease cocoon-core because it was missing cocoon-licenses as
dependency but I'm getting errors about cocoon-bootstrap missing. Reinhard
you seemed to have managed to release cocoon-core, could you do it again
please as I have removed the tag and artifacts on people.a.o already ?

Also, note that there is no need to disable modules when releasing a module
pom, you can release it non-recursively by doing

mvn -N release:prepare release:perform -Darguments="-N"

Regards
jorg




thread.DefaultRunnableManagerTestCase failing

2006-07-31 Thread Jorg Heymans
Hi,

It seems that this testcase fails __sometimes__, is this known behaviour ?


Running org.apache.cocoon.components.thread.DefaultRunnableManagerTestCase
Exception in thread "Thread-10" junit.framework.AssertionFailedError:
  Unexpected method call debug("Executing command EasyMock for interface
java.lang.Runnable in pool "mypool", schedule with interval=100"):
debug("Executing command EasyMock for interface java.lang.Runnable in
pool "mypool", schedule with interval=100"): expected: 0, actual: 1
debug("Exiting loop"): expected: 1, actual: 0
at 
org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:44
)
at $Proxy6.debug(Unknown Source)
at 
org.apache.cocoon.components.thread.DefaultRunnableManager$ExecutionInfo.exe
cute(DefaultRunnableManager.java:749)
at 
org.apache.cocoon.components.thread.DefaultRunnableManager.run(DefaultRunnab
leManager.java:441)
at 
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Thread.java:613)
junit.framework.AssertionFailedError:
  Unexpected method call isDebugEnabled():
isDebugEnabled(): expected: 0, actual: 1
debug("Exiting loop"): expected: 1, actual: 0
at 
org.easymock.internal.ObjectMethodsFilter.invoke(ObjectMethodsFilter.java:44
)
at $Proxy6.isDebugEnabled(Unknown Source)
at 
org.apache.cocoon.components.thread.DefaultRunnableManager.dispose(DefaultRu
nnableManager.java:250)
at 
org.apache.cocoon.components.thread.DefaultRunnableManagerTestCase.testExecu
teStringRunnablelonglong(DefaultRunnableManagerTestCase.java:1099)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at junit.framework.TestCase.runTest(TestCase.java:164)
at junit.framework.TestCase.runBare(TestCase.java:130)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:120)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at 
org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:210)
at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(Ab
stractDirectoryTestSuite.java:135)
at 
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractD
irectoryTestSuite.java:122)
at org.apache.maven.surefire.Surefire.run(Surefire.java:129)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)
at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at 
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireB
ooter.java:225)
at 
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:747
)
Tests run: 11, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.786 sec
<<< FAILURE!




[jira] Assigned: (COCOON-1758) Form locale never used in JXMacros

2006-07-31 Thread Antonio Gallardo (JIRA)
 [ http://issues.apache.org/jira/browse/COCOON-1758?page=all ]

Antonio Gallardo reassigned COCOON-1758:


Assignee: Antonio Gallardo

> Form locale never used in JXMacros
> --
>
> Key: COCOON-1758
> URL: http://issues.apache.org/jira/browse/COCOON-1758
> Project: Cocoon
>  Issue Type: Bug
>  Components: Blocks: Forms
>Affects Versions: 2.1.8, 2.2-dev (Current SVN), 2.1.9
>Reporter: Philippe Gassmann
> Assigned To: Antonio Gallardo
> Attachments: 20060201-cocoon-forms-1758, patch.txt, patch1.txt
>
>
> The JXMacroHelper is created with :  value="#{org.apache.cocoon.forms.generation.JXMacrosHelper.createHelper($cocoon/consumer,$cocoon/request,$cocoon/parameters/locale)}"/>
> So the locale is get from sitemap parameters. 
> the locale attribute of the form is then never used.
> I will provide a patch as soon as possible

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




[jira] Updated: (COCOON-1758) Form locale never used in JXMacros

2006-07-31 Thread JIRA
 [ http://issues.apache.org/jira/browse/COCOON-1758?page=all ]

Carlos Chávez updated COCOON-1758:
--

Attachment: patch1.txt
patch.txt

Hi to all.

the first patch try to get correctly the locale parameter from the sitemap 
parameters, if the locale parameter does not exists we pass a empty string.

the second patch fix the method to test against empty string not only null 
value, for example from the jx-macro we pass a empty string if the locale 
parameter does not exists, so we want to use the default Locale.

Cheers.
Carlos Chávez.


> Form locale never used in JXMacros
> --
>
> Key: COCOON-1758
> URL: http://issues.apache.org/jira/browse/COCOON-1758
> Project: Cocoon
>  Issue Type: Bug
>  Components: Blocks: Forms
>Affects Versions: 2.1.8, 2.2-dev (Current SVN), 2.1.9
>Reporter: Philippe Gassmann
> Attachments: 20060201-cocoon-forms-1758, patch.txt, patch1.txt
>
>
> The JXMacroHelper is created with :  value="#{org.apache.cocoon.forms.generation.JXMacrosHelper.createHelper($cocoon/consumer,$cocoon/request,$cocoon/parameters/locale)}"/>
> So the locale is get from sitemap parameters. 
> the locale attribute of the form is then never used.
> I will provide a patch as soon as possible

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: Questions re using SVG in Cocoon

2006-07-31 Thread Andrew Stevens

From: Leszek Gawron <[EMAIL PROTECTED]>
Date: Mon, 31 Jul 2006 16:19:33 +0200

Bart Molenkamp wrote:

-Oorspronkelijk bericht-
Van: hepabolu [mailto:[EMAIL PROTECTED]



Anyway it doesn't
work and I have no clue how I can include a generated image (i.e.

what's

its name and location?). Any ideas?



If you want to include a generated image in your HTML page by using an
 tag, you should probably serialize the image to PNG or JPEG.
There are serializers for this (batik block). I don't think that you can
include an SVG image with an  tag (maybe with Firefox 1.5, but
certainly not with any version of IE).


http://rifers.org/blogs/gbevin/2005/4/11/embedding_images_inside_html


Another alternative approach:

Within your page, generate an object tag containing a nested img tag (as 
described at 
http://labs.silverorange.com/archives/2006/january/howtoinclude) to have the 
browser request either SVG or JPG depending on which it supports.
In your Cocoon sitemap include a pipeline that matches the image URL minus 
file extension, which generates the image as SVG then ends with a map:select 
on the extension that either serialises the SVG directly or runs it through 
the batik serialiser to convert to JPEG.



Andrew.




Re: Questions re using SVG in Cocoon

2006-07-31 Thread Leszek Gawron

Bart Molenkamp wrote:

-Oorspronkelijk bericht-
Van: hepabolu [mailto:[EMAIL PROTECTED]



Anyway it doesn't
work and I have no clue how I can include a generated image (i.e.

what's

its name and location?). Any ideas?



If you want to include a generated image in your HTML page by using an
 tag, you should probably serialize the image to PNG or JPEG.
There are serializers for this (batik block). I don't think that you can
include an SVG image with an  tag (maybe with Firefox 1.5, but
certainly not with any version of IE).


http://rifers.org/blogs/gbevin/2005/4/11/embedding_images_inside_html


--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


Re: GSoC, repeater pagination in place

2006-07-31 Thread Simone Gianni


Leszek Gawron wrote:

> Simone Gianni wrote:
>
>> Actually we decided to use the List interface for it, and on the test
>> project we have a List implementation that actually works on a Hibernate
>> Criteria in a way that it's able to retrieve blocks of records from
>> hibernate and ask directly to the database the size, only implementing
>> some basic methods of the List interface.
>
> Does it fetch a whole page or a "window" with predefined size?

It's initialized with new HibernateList(DetachedCriteria criteria,
Session session, int fetchSize); when you call get(10) it will test if
it has already fetched, if not will fetch from 10 to 10+fetchSize
element. The size() method is implemented moving the cursor to the last
row and returning the index of it. As told we're testing it on a 11000
very heavy object list, and it's working perfectly, we see only 10
selects done to fetch the objects when the get(x) method is first called.

>
> Would you be willing to make it public?
>
Yep. It will be part of the documentation actually, because we don't
want to introduce a dependency on Hibernate in cocoon itself, anyway
it's apache license so it will be public.

Simone

-- 
Simone Gianni


Re: Questions re using SVG in Cocoon

2006-07-31 Thread Leszek Gawron

hepabolu wrote:

Leszek Gawron said the following on 31/7/06 14:24:

- AFAICT I should be able to display the image in my result page as



Shouldn't you provide a link here instead of calling cocoon:// protocol?


Well, my idea too, but I think I read this somewhere. Anyway it doesn't 
work and I have no clue how I can include a generated image (i.e. what's 
its name and location?). Any ideas?


hmmm... I think a reader should take it's place:





and then in html code:




--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


RE: Questions re using SVG in Cocoon

2006-07-31 Thread Bart Molenkamp
> -Oorspronkelijk bericht-
> Van: hepabolu [mailto:[EMAIL PROTECTED]

> Anyway it doesn't
> work and I have no clue how I can include a generated image (i.e.
what's
> its name and location?). Any ideas?
> 

If you want to include a generated image in your HTML page by using an
 tag, you should probably serialize the image to PNG or JPEG.
There are serializers for this (batik block). I don't think that you can
include an SVG image with an  tag (maybe with Firefox 1.5, but
certainly not with any version of IE).

Otherwise, you can use the  tag, and use a SVG viewer plugin.
Should look something like

http://www.adobe.com/svg/viewer/install/"/>

(this uses the plugin from adobe).

And instead of using a cocoon:// URL, you should just use 
"my-svg-pipeline?parameters=x".

Bart.



Re: GSoC, repeater pagination in place

2006-07-31 Thread Leszek Gawron

Simone Gianni wrote:

Hi Leszek,


Leszek Gawron wrote:


What about:
- goto a specific page action
- change page size action


The goto a specific page action already exist in some preliminary form,
we should solve the page to index conversion problem before actually
have a working one.


I would like to propose something else:
public interface ValueListProvider() {
  public List getRows( SomeContextForFilteringAndSorting context, long
offset, long rowCount );
  public long getTotalRowCount( SomeContextForFilteringAndSorting
context );
}


Actually we decided to use the List interface for it, and on the test
project we have a List implementation that actually works on a Hibernate
Criteria in a way that it's able to retrieve blocks of records from
hibernate and ask directly to the database the size, only implementing
some basic methods of the List interface.

Does it fetch a whole page or a "window" with predefined size?

Would you be willing to make it public?

--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


Re: [Vote] Release 2.2M1

2006-07-31 Thread Peter Hunsberger

On 7/30/06, Carsten Ziegeler <[EMAIL PROTECTED]> wrote:

Joerg Heinicke wrote:

Please cast your votes on the release of 2.2M1 on monday, 31st of
July. The release consists of the core together with the required
parent modules and tools to the maven repository. In addition we will
release a demo webapp for easy download with some samples.


Carsten


+0

--
Peter Hunsberger


Re: GSoC, repeater pagination in place

2006-07-31 Thread Simone Gianni
Hi Leszek,


Leszek Gawron wrote:

> What about:
> - goto a specific page action
> - change page size action

The goto a specific page action already exist in some preliminary form,
we should solve the page to index conversion problem before actually
have a working one.

>
> I would like to propose something else:
> public interface ValueListProvider() {
>   public List getRows( SomeContextForFilteringAndSorting context, long
> offset, long rowCount );
>   public long getTotalRowCount( SomeContextForFilteringAndSorting
> context );
> }

Actually we decided to use the List interface for it, and on the test
project we have a List implementation that actually works on a Hibernate
Criteria in a way that it's able to retrieve blocks of records from
hibernate and ask directly to the database the size, only implementing
some basic methods of the List interface.

>
>> Concerning this we face some "indexing problems" after a page change.
>> Row additions/deletions and sorting change the order and count of
>> rows, therefore we need a technique to obtain the right start-index
>> when we jump to a custom page. It's not guaranteed that our
>> start-index in the collection is 100 if pageSize=10 and
>> requestedPage=10.
>
>
> It may be a little bit too hot here because I cannot think of a reason
> why. Why is that?

We have a collection gained from the load binding, and then some
deletions and additions made to this collection, which are not in the
collection until the save method of binding is called. This means that i
have page 1 going from item 0 to item 10 of the collection, but if
element 5 has been deleted (actually marked for deletion) page 1 goes
from 0 to 11, and page 2 starts at 12 instead than 11, and so on.

What makes this harder is the fact that saying "element 5 has been
deleted" is relative to the actualy sorting of the table, since if we
change the sort order the previous element 5 could now became element
35, and so shift only form the page 3 on.

>>
>> These are our thoughts about it:
>>
>> The previous and next actions are still able work because we could
>> remember the fist and last index of the current page and start
>> relative to them to fetch the next n rows.
>>
>> First and last page could work the same way using 0 and
>> collection.size().
>
>>
>> Do you think it's a real problem to have not exact starting indexes
>> while jumping between pages in big repeaters?
>
>
> I would rather have a little bit inexact results than something that
> would kill my server if 100 users used it at the same time.

Yep, we are asking this because it could be possible that we don't
manage to have precise indexing on a sorted repeater without fetching
all elements in the collection, but we could use approximate positioning
(like, page 5 starts at 50) and then adjust it as needed if we manage to.

So it means +1 for not precise positioning over performances.

Simone


Re: [Vote] Release 2.2M1

2006-07-31 Thread Andrew Savory

Carsten Ziegeler wrote:

Joerg Heinicke wrote:

On 30.07.2006 11:12, Carsten Ziegeler wrote:


Please cast your votes on the release of 2.2M1 on monday, 31st of
August. The release consists of the core together with the required

July.


Oops, thanks Joerg, July of course (must be the heat here). So...

Please cast your votes on the release of 2.2M1 on monday, 31st of
July.


+0

Thanks,

Andrew.
--
Andrew Savory, Managing Director, Luminas Limited
Tel: +44 (0)870 741 6658  Fax: +44 (0)700 598 1135
Web: http://www.luminas.co.uk/
Orixo alliance: http://www.orixo.com/


Re: Questions re using SVG in Cocoon

2006-07-31 Thread hepabolu

Leszek Gawron said the following on 31/7/06 14:24:

- AFAICT I should be able to display the image in my result page as



Shouldn't you provide a link here instead of calling cocoon:// protocol?


Well, my idea too, but I think I read this somewhere. Anyway it doesn't 
work and I have no clue how I can include a generated image (i.e. what's 
its name and location?). Any ideas?


Bye, Helma



Status of releasing M1 artifacts

2006-07-31 Thread Reinhard Poetz


So far I've been able to release

cocoon
cocoon-core-modules
cocoon-bootstrap
cocoon-core

to people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository.

I had less time than expected and it took me longer to get everything running. I 
will continue with the process over the next days. The problem now is that we 
need to update the license headers *before*. Once David volunteered for this but 
I don't know if he has enough time these days.


I will wait to contact repository@apache.org to rsych the libs with the official 
repos until the


- tools
- cocoon-deployer-plugin
- cocoon-forms
- cocoon-archetype
- cocoon-archetype-block
- cocoon-archetype-webapp
- cocoon-ajax
- cocoon-template

have been released too.

--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc






___ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de


Re: Continuations consume ram, possible solutions?

2006-07-31 Thread Leszek Gawron

Vadim Gritsenko wrote:

Leszek Gawron wrote:

Torsten Curdt wrote:


IMO the only way to solve this transparently is to more accressively
expire and limit the number of continuations. It would make sense to
come up with a LRU list of continuations per session. This list has a
maximum size that can defined. So the required maximum can is
predictable. Generating more continuations means using free slots or
throwing away the oldest ones in that LRU list. The janitor would
basically only go through the list and expire to free the slots in
that list.
Not that easy II: In almost every web application I choose the option 
to store continuations in session rather then in one place. This way 
all continuations get removed when the session expires.


It's addressed above - "LRU list of continuations per *session*"

I'm sorry then - my mind must be still on holiday.

--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


Re: Continuations consume ram, possible solutions?

2006-07-31 Thread Vadim Gritsenko

Leszek Gawron wrote:

Torsten Curdt wrote:


IMO the only way to solve this transparently is to more accressively
expire and limit the number of continuations. It would make sense to
come up with a LRU list of continuations per session. This list has a
maximum size that can defined. So the required maximum can is
predictable. Generating more continuations means using free slots or
throwing away the oldest ones in that LRU list. The janitor would
basically only go through the list and expire to free the slots in
that list.
Not that easy II: In almost every web application I choose the option to 
store continuations in session rather then in one place. This way all 
continuations get removed when the session expires.


It's addressed above - "LRU list of continuations per *session*"

Vadim


Re: Questions re using SVG in Cocoon

2006-07-31 Thread Leszek Gawron

hepabolu wrote:

Guys,

I'm at a loss here, searched high and low, but I cannot figure out how I 
get the stuff to work the way I want it to.


Problem:

I want to display a line drawing that is created based on a few 
parameters. This should ultimately be printed on an A4.


What I've got so far is:
a form to enter the parameters that are passed onto a jx:template file 
which should be fed into either a pipeline or a flowscript function that 
create an SVG file defining the line drawing.


I also have a generator that can create the SVG file, which I can call 
from a url with the parameters added. I created a pipeline that does 
nothing more than calling the generator with the parameters and 
serializing it into a jpeg.


Problems I'm running into:
- the final jpg image only holds a part of the SVG image. I can't figure 
out how to make the image large enough to hold the entire SVG image. 
I've set the height and width parameters in the serializer definition at 
the top of the sitemap, but although I've set them to e.g. 800 x 800, 
the final image is smaller (e.g. 754 x 754). What I really want is to 
set it to an A4 size.


- AFAICT I should be able to display the image in my result page as



Shouldn't you provide a link here instead of calling cocoon:// protocol?

--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


Re: Continuations consume ram, possible solutions?

2006-07-31 Thread Leszek Gawron

Torsten Curdt wrote:



IMO the only way to solve this transparently is to more accressively
expire and limit the number of continuations. It would make sense to
come up with a LRU list of continuations per session. This list has a
maximum size that can defined. So the required maximum can is
predictable. Generating more continuations means using free slots or
throwing away the oldest ones in that LRU list. The janitor would
basically only go through the list and expire to free the slots in
that list.
Not that easy II: In almost every web application I choose the option to 
store continuations in session rather then in one place. This way all 
continuations get removed when the session expires.


You would have to traverse all sessions to decide which continuations 
you will remove.


BTW: users should be warned somewhere in docs that if they use session 
they better be using session bound continuations. Otherwise you run a 
continuation with session already invalidated and usually you get very 
funny (or dangerous) results like seeing some application data after 
logging out.


--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


Re: Continuations consume ram, possible solutions?

2006-07-31 Thread Leszek Gawron

Torsten Curdt wrote:



IMO the only way to solve this transparently is to more accressively
expire and limit the number of continuations. It would make sense to
come up with a LRU list of continuations per session. This list has a
maximum size that can defined. So the required maximum can is
predictable. Generating more continuations means using free slots or
throwing away the oldest ones in that LRU list. The janitor would
basically only go through the list and expire to free the slots in
that list.
Not that easy: current implementation keeps all parents until leaves 
expire. So basically you end up with almost whole tree "dead" but as 
long as there is a single "green leaf" you cannot remove anything.


--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


Re: Continuations consume ram, possible solutions?

2006-07-31 Thread Leszek Gawron

Ard Schrijvers wrote:

Wether we use a stateless form does not solve the actual problem. It should be 
possible with Cocoon + continuations + cforms to for example build a high 
traffic forum in my opinion. At the moment you are likely to run out of memory 
because of continuations (and then apart from the StoreJanitor trying to free 
your cache while continuations are the actual problem of low JVM)
CForms use bookmarked continuation so no matter how many times you 
redisplay the form only one continuation is created.


--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


Re: Continuations consume ram, possible solutions?

2006-07-31 Thread Leszek Gawron

Ard Schrijvers wrote:

The second solution is very wise, and IIRC you already have something
implemented. Using named continuations mean that every 
continuation have
a "name", and there can only one continuation tree with a 
given name in

the http session. This way, if i have a certain search page that
everybody uses, when the user makes a search the continuation 
is created

and eventually its subcontinuations, but when the user goeas away from
the page and then returns to the search page, a new continuation with
the same name is created, which will replace the old tree, so freeing
the ram. This way, if a typical site pattern is to do 10 searches,
instead of having 10 continuation trees in RAM until they expire, we
have only one.

This would not only solve "first continuations" but free the entire
continuation trees. We could ease it a bit using the entry 
function name

as the continuation name, and having a "singleton" notation somewhere
(cocoon.setSingletonContinuations()) to mark those scripts that uses
single named continuations.


We implemented this idea recently indeed. We define wether a continuation is "unique" in its type, we give a continuation a name, and then, when it is doubled (same name), we delete the previous one. Though, we ran into a bug regarding this implementation recently, and I still don't know how to solve it: 

I set the continuation to have unique=true and set its name always as follows: 
if I have a flow function in /explorer/doclisting/flow.js and the function is called "doclisting", my continuation name would become: explorer.doclisting.flow.js.doclisting, to be sure that it is unique. If it is tied to a specific session, I add the hashcode of the session. 

When somebody click on another folder, a new doclisting is created, and the continuation has the same name, so the previous one can be deleted. But, when using AJAX kind of things, we happen to use the same flow function for clicking on a document as on a folder, but does not update all forms on the browser. But part of the forms now have continuations that are deleted! 


I think this approach again can only solve some of the memory/continuations 
problems if you really know what you are doing, but it is very error prone. 
Also solving bugs like described above is very hard when you do not really know 
what is behing the idea of unique continuations. I really doubt wether we want 
to go that way.


Why do you want continuations to have it's name automatically generated?

cocoon.sendPageAndWait( view, bizData, continuationName )?

This way user could choose which continuations would automatically kill 
others.



The third option aims to solve the common situation of having a flow
that initializes some variables, sends a form or a page (creating a
continuation) and then waits for the user to click on a 
button, that 90%
of time never gets pushed. This is quite common in aggregated 
pages with

boxes or something similar.

The idea here is NOT saving anything in the continuation, instead when
the continuation is recalled, the function is executed again from the
beginning, but skipping the first sendPage (since that page 
has already
been sent). This way we don't have any serialization issue, 
the form is

created, displayed and then garbage collected, and recreated when the
user clicks the button, not displayed again since the first 
sendPage is

skipped, but only populated from the request.

This is maybe the simplest one to implement, but is quite 
untidy because
if the code in the first lines execute something heavy or 
some business
logic, it could not be clear why it's getting executed twice. 
But since

it's aimed to solve the problem of simple forms generated many times
(like login boxes, polls, subscribe here boxes and so on), it's highly
possible that the first lines of the flow are simply instantiating a
bean or a document, creating a form, doing some binding and displaying
it, and if it's really a box aside the pages of the side that code is
already executed at every get.


This might be a lightweight sollution indeed. I suppose that you can tell the continuation then that it is a lightweight or something? For example, lightSendPageAndWait. I think implementing it in the original sendPageAndWait/continuation might not be backwardscompatible: the implementation could have business logic before the continuation that actually stores something, that would be called again in the lightweight continuation. 

Do you (plural, rest of cocoon community) have any other idea about
this? "Continuation pollution" is actually a problem in flow
implementations.


In this scenario why use continuations in first place?

I have another proposition: currently if a continuation is valid the 
whole tree down to the root is kept. Why not implement a continuation 
that eats his own tail? I mean if new continuation is generated it's 
parent gets invalidated and removed.


This means of course that users will not be allowed to hit ba

Re: GSoC, repeater pagination in place

2006-07-31 Thread Leszek Gawron

Matthias Epheser wrote:
As Simone mentioned we are currently working together on the repeater 
pagination. I want to explain shortly how it works what problems still 
exist.

This is awesome!



Pagination can now be achieved by just adding a size="20"/> tag to the repeater's definition. I added repeater actions 
as well for first, previous, next and last page.

What about:
- goto a specific page action
- change page size action

The actual pageLoad/pageSave takes place in the binding. A storage area 
is used there to cache updated rows on page change. Once the user 
submits, the actual saving to the JXPathContext takes place.


To support really big lists managed by a persistency frameworks (like in 
the application Simone mentioned) we implemented the possibility to use 
"lazy collections". A lazy collection is simply an implementation of the 
java.util.Collection interface that knows how to handle size()- or 
get(i)- calls without fetching the whole data from the db.


There are two "levels" of lazy collections:

1. OnlyALittleBitLazy(tm) which fetches full collection contents on 
first collection call ( even collection.size() ); This collection is no 
use for paging - does not scale.


2. TotallyLazy(tm) which fetches all entity ids on first collection call 
and then uses separate queries to fetch EACH entity. This one seriously 
faces the famous (n+1) problem (apart from the fact that if you want

to paginate through a table of 100k entries you won't select 100k
entities but still you'll have a collection of 100k ids).

In order to display 100 entries in a particular page 100 more queries 
are needed. Performance goes down a lot.



I would like to propose something else:
public interface ValueListProvider() {
  public List getRows( SomeContextForFilteringAndSorting context, long 
offset, long rowCount );
  public long getTotalRowCount( SomeContextForFilteringAndSorting 
context );

}

This way you always have only two queries to run:

select * from Entity e where e.name like '%filter%' limit 100 offset 3
select count( * ) from Entity e where e.name like '%filter%'

and you can always wrap your lazy collection with ValueListProvider.


Another feature we want to implement is sorting, more precisely 
displaying sorted rows. It's not our intention to actually store the 
data to the object in a different order but to make it possible for the 
user to click on the column-header and get the rows displayed in 
ascendant/descendant order. We think we need some data-providing class 
that act as a layer between the binding storage and the repeater rows, 
that provides sort(columnName) and getRows(from,to) or similar. We now 
have to evaluate how this could be done in a decent way and keep the 
door open for our lazy list here.


Concerning this we face some "indexing problems" after a page change. 
Row additions/deletions and sorting change the order and count of rows, 
therefore we need a technique to obtain the right start-index when we 
jump to a custom page. It's not guaranteed that our start-index in the 
collection is 100 if pageSize=10 and requestedPage=10.


It may be a little bit too hot here because I cannot think of a reason 
why. Why is that?




These are our thoughts about it:

The previous and next actions are still able work because we could 
remember the fist and last index of the current page and start relative 
to them to fetch the next n rows.


First and last page could work the same way using 0 and collection.size().


First page is of course 0
Last page could be: java.lang.Math.ceil( collectionSize / pageSize ) - 1 
) * pageSize




So the problem is located in the goto-widget. We are thinking of a 
couple possible solutions. Precise positioning would only be possible if 
we use iteration and check all rows to compute the correct starting 
point. Another solution would be to use "approximative" starting 
indexes. That means that, facing large collections, we always take 
pageSumber*pageSize as the starting index after the custom-page action. 
This approach solves the (maybe resource intensive) iteration problem 
but could provide results that are not exact. Another option would be to 
move this problem to the not yet existing data-providing class I 
mentioned in the sorting part.




Do you think it's a real problem to have not exact starting indexes 
while jumping between pages in big repeaters?


I would rather have a little bit inexact results than something that 
would kill my server if 100 users used it at the same time.


--
Leszek Gawron  [EMAIL PROTECTED]
IT Manager MobileBox sp. z o.o.
+48 (61) 855 06 67  http://www.mobilebox.pl
mobile: +48 (501) 720 812   fax: +48 (61) 853 29 65


Re: Releasing 2.2M1

2006-07-31 Thread Reinhard Poetz

Jorg Heymans wrote:


On 7/28/06 1:28 PM, in article [EMAIL PROTECTED], "Reinhard Poetz"
<[EMAIL PROTECTED]> wrote:


Carsten Ziegeler wrote:



I can take care of a) on Monday. I hope that I have all necessary rights on
people.apache.org to do the deployment.


people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository is
drwxrwxr-x so that shouldn't be a problem. Remember that this location is
push on demand, meaning you have to ping [EMAIL PROTECTED] and ask for a sync
to maven central. 


In addition I want to add a doc about the Cocoon roadmap to our
documentation which outlines/summarizes the stuff we discussed in the
last weeks.

The final question is which modules we should release (and in which
versions)? Any suggestions?


Wrt versions, how about :

core 2.2.0-SNAPSHOT -> 2.2.0-M1
module poms  1-SNAPSHOT -> 1
released blocks  1.0.0-SNAPSHOT -> 1.0.0-M1
(the block version could follow the M1..Mx core numbering until we release
2.2.0 and then continue with "normal" numbering afterwards)

The versions will need to be rolled forward as well:
core 2.2.0-M2-SNAPSHOT
module poms  2-SNAPSHOT
released blocks  1.0.0-M2-SNAPSHOT

Note that when you change eg the block module pom to 2-SNAPSHOT then ideally
all block poms should point to the new version. I don't think the release
plugin does this automatically for modules not included in the release so
there is quite a bit of pom manipulation to do.


* cocoon-core
* cocoon-bootstrap
* cocoon-deployer-plugin
* cocoon-archetype-block


Yep.


+ all the necessary pom modules which are parents


AFAICS these are

./pom.xml
./blocks/pom.xml
./core/pom.xml
./tools/pom.xml
./tools/cocoon-block-deployer/pom.xml
./tools/archetypes/pom.xml


@Reinhard I can help out with this if you want, won't be available Monday
until the evening but I do have a few hours to kill tomorrow while
babysitting a new server install.

I'm not sure if the work can be easily split up though, perhaps I could try
and do the exercise for our root pom only and see what the caveats are ?


unfortunatly I overlooked your mail at the weekend. I will follow your advices 
as good as possible and report back about my experiences and findings.


--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc






___ 
Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de


RE: Continuations consume ram, possible solutions?

2006-07-31 Thread Ard Schrijvers
Hello,

> 
> +1, much simpler to implement, much simpler to use, no hidden 
> side effects.
> 
> Ard, you carrying this out? :) :)
> 

Yes, I will try, but I have some doubts/questions/ideas that I would like to 
share and find the best solution to implement this new janitor:

1) I will try to implement it initially for the cocoon-2.1.X version.
2) In my opinion, it doesn't make sense to see the excalibur StoreJanitor and 
the "ContinuationJanitor" as two seperate janitors trying to free memory when 
the JVM is low on memory. The StoreJanitor and the ContinuationJanitor are in 
my opinion one and the same, because I think depending on some choices, the 
janitor should either try to free memory from cache, or from the continuations 
(perhaps in a special case, from both.)

I have been thinking about changing the StoreJanitor anyway, to be able to have 
stores defined that are never tried to be cleared (like the 
defaultTransientStore containing for example 30 compiled xsl's. I never want 
the StoreJanitor removing these)

As we will also have the continuations to be managed, the name StoreJanitor 
seems inappropriate to me. Perhaps just CocoonJanitor? 

Anyway, stored are registered to the "CocoonJanitor" (call it from now on 
CocoonJanitor) already. I am not sure wether this is possible for 
continuations, but otherwise I would have to do a 
manager.hasService(ContinuationsManager.role), in the CocoonJanitorImpl, which 
is a bad solution, right? Does anybody have an idea how to register the 
ContinuationManager to the CocoonJanitor.

3) When the maxcontinuations for continuations is reached, we have to options: 
* hardlimit: adding one to the ContinuationManagerImpl means at the 
same moment actively removing one from it according LRU. 
* softlimit: betweem concurrent CocoonJanitor runs, the continuations 
are allowed to exceed the maximum. When this maximum is exceeded, the 
CocoonJanitor will prune it back to maxcontinuations according LRU.

I am in favor of the softlimit, to keep insertion of new continuations as lean 
and fast as possible. WDYT? 

4) When the CocoonJanitor runs, and JVM turns out to be low on memory, we have 
multiple choices
* Try to free from caches which are configured to be "freeable" (a 
nicer word I hope to find for this). I also want the StoreJanitor to free cache 
of all configured caches which are "freeable" at once, and do not do it like it 
does now: free from one cache, and jump to the next one in the next round (10 
sec for example later)
* Try to free from continuations
* Try to free from both.

We have to find some strategy on this one, but I think it might result in a 
quite heuristic solution: For example:

1) If maxcontinuations is exceeded, try freeing memory from continuations
2) If both maxobjects (for all freeable caches) AND maxcontinuations is not 
reached, where should we free from? Free from both? This does not always make 
sense. Free according to the largest occupied percentage? I am not sure about 
this, anybody? 
3) when (2), should we try freeing from continuation or cache according 
absolute numbers (which has the largest items in use) or relative? Should we 
make it configurable? This will be very hard for common users to grasp or tune. 
Of course, well documented configuration might largely help. But it remains 
quite heuristi. 

I think eviction policiy according LRU is very easy, because already the 
continuations are present sorted by expiring time (which gets increased when it 
is used again (I think at least it works like this)).

WDYT?

Regards Ard

> Simone
> 
> Torsten Curdt wrote:
> 
> > 
> >
> > IMO the only way to solve this transparently is to more accressively
> > expire and limit the number of continuations. It would make sense to
> > come up with a LRU list of continuations per session. This 
> list has a
> > maximum size that can defined. So the required maximum can is
> > predictable. Generating more continuations means using free slots or
> > throwing away the oldest ones in that LRU list. The janitor would
> > basically only go through the list and expire to free the slots in
> > that list.
> >
> > cheers
> > -- 
> > Torsten
> 
> 


Re: Releasing 2.2M1

2006-07-31 Thread Carsten Ziegeler
Reinhard Poetz wrote:
> One of the cforms problems is caused by ctemplate and its sitemap parameter 
> handling (http://localhost:/blocks/cocoon-forms-sample/form1-jx-macro):
> 
Fixed. I also fixed the test cases of the template block.


Carsten
-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/


Re: Releasing 2.2M1

2006-07-31 Thread Carsten Ziegeler
Carsten Ziegeler wrote:
> b) A release of a Cocoon demo webapp containing the released blocks so
> people can just download and try out Cocoon
> 
> I can do b) on monday. 

Sorry, I can't do this today :( It would be great if someone else could
release the webapp. Or we will do the demo webapp at a later point of time.

Carsten


-- 
Carsten Ziegeler - Open Source Group, S&N AG
http://www.s-und-n.de
http://www.osoco.org/weblogs/rael/


[jira] Updated: (COCOON-1678) HTMLArea unable to set target and title to a "link"

2006-07-31 Thread Jeroen Reijn (JIRA)
 [ http://issues.apache.org/jira/browse/COCOON-1678?page=all ]

Jeroen Reijn updated COCOON-1678:
-

Attachment: HTMLCleanerConfiguration.xml.patch

OK i've applied a patch for the trunk. This patch could also be applied for the 
branch.

> HTMLArea unable to set target and title to a "link"
> ---
>
> Key: COCOON-1678
> URL: http://issues.apache.org/jira/browse/COCOON-1678
> Project: Cocoon
>  Issue Type: Bug
>  Components: Blocks: Forms
>Affects Versions: 2.1.8
>Reporter: Philippe Gassmann
> Assigned To: Cocoon Developers Team
>Priority: Minor
> Attachments: HTMLCleanerConfiguration.xml.patch
>
>
> I do the following test on 
> http://cocoon.zones.apache.org/demos/21branch/samples/blocks/forms/htmlarea : 
> Type some text in the "in a table" HTMLArea.
> Select a portion of the text, click on the link button.
> Type the address : http://www.google.com
> Type a title : test
> Select a target.
> Submit,
> The result is : 
> 
> 
>   
>   
>   
>   
>   a 
> http://www.google.fr";>new
>  test
> 
> 
> 
> 
> 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira




Re: [Vote] Release 2.2M1

2006-07-31 Thread Sylvain Wallez

Carsten Ziegeler wrote:

Please cast your votes on the release of 2.2M1 on monday, 31st of
July. The release consists of the core together with the required
parent modules and tools to the maven repository. In addition we will
release a demo webapp for easy download with some samples.
  


+0

Sylvain

--
Sylvain Wallez - http://bluxte.net



Re: [Vote] Ard Schrijvers as a new Cocoon committer

2006-07-31 Thread Ugo Cei


On Jul 28, 2006, at 7:44 AM, Reinhard Poetz wrote:


Please cast your votes!


+1

Ugo



Re: [Vote] Release 2.2M1

2006-07-31 Thread Bertrand Delacretaz

On 7/30/06, Carsten Ziegeler <[EMAIL PROTECTED]> wrote:

Please cast your votes on the release of 2.2M1 on monday, 31st...


+0 on the release, cannot help but it's good news!

-Bertrand


Re: Releasing 2.2M1

2006-07-31 Thread Reinhard Poetz

Carsten Ziegeler wrote:

Reinhard Poetz wrote:

if we have time to fix the following blocks it would be great:
* cocoon-archetype-webapp (can take care of it myself)
* cocoon-template-impl (unit tests don't run through)

It would be great to release cocoon-forms-impl too, but there are a couple of 
problems with jxmacros and the formstransformer.



Do you have an idea why we have the problems? Which samples do not work?


One of the cforms problems is caused by ctemplate and its sitemap parameter 
handling (http://localhost:/blocks/cocoon-forms-sample/form1-jx-macro):


-
Couldn't evaluate expression cformsHelper.getForm(CocoonFormsInstance, 
cocoon.parameters['attribute-name'])

resource://org/apache/cocoon/forms/generation/jx-macros.xml - 45:117
-

Do you have any idea how to fix this? Without releasing the template block we 
can't release the archetype block :-(



The other problem is a NPE in the EffectPipe 
(http://localhost:/blocks/cocoon-forms-sample/do-dojoRepeater.flow):


-
Caused by: java.lang.NullPointerException
at 
org.apache.cocoon.forms.transformation.EffectPipe.comment(EffectPipe.java:587)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)
	at 
org.apache.cocoon.core.container.spring.PoolableFactoryBean$ProxyHandler.invoke(PoolableFactoryBean.java:340)

at $Proxy10.comment(Unknown Source)
at 
org.apache.cocoon.components.sax.XMLTeePipe.comment(XMLTeePipe.java:149)
-

--
Reinhard Pötz   Independent Consultant, Trainer & (IT)-Coach 


{Software Engineering, Open Source, Web Applications, Apache Cocoon}

   web(log): http://www.poetz.cc



___ 
Telefonate ohne weitere Kosten vom PC zum PC: http://messenger.yahoo.de