continuum-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kenney Westerhof <ken...@apache.org>
Subject continuum-webapp issues [was: Re: svn commit: r431764 - /maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp]
Date Wed, 16 Aug 2006 14:24:44 GMT
(fwd again, now using correct address.. does anybody have a nice 
alternative for Thunderbird on linux? :/ )

---

Ok, I'm trying to get this to work.

It seems that the <ww: tags use OGNL expressions to set/get values from
the action. (I'm missing a design document on how actions/jsp/etc are
related, but I'm figuring it out... slowly..).

Code snippet from summary.jsp (simplified):

----
         <ec:table items="projects"
                   var="project">
           <ec:row highlightRow="true">
             <ec:column property="state" title="&nbsp;" width="1%"
cell="org.apache.maven.continuum.web.view.StateCell"/>
             <ec:column property="name"
title="summary.projectTable.name" width="48%">
               <a href="<ww:url action='projectView.action'>
                   <ww:param name='projectId' value='${project.id}' />
                 </ww:url>">${project.name}</a>
             </ec:column>
---

 From what I understand the following happens when you go to
/summary.action:

* The SummaryAction class is executed and the summary.jsp used to render
   the output.

* The <ec:table> uses the SummaryAction.getProjects()'s value to iterate
   over the projects (how it retrieves that is a mystery; it must somehow
   be registered as a PageContext scope'd variable 'projects'??)
   The <ec:*> taglib only uses the JspPageContext e.a. to retrieve/store
   variables.

* The <ec:table> makes the current item (from the projects list)
   available in a variable 'project'. This is only so that the
   ${project.*} expressions in plain-text (i.e. not within <tags> and
   their parameters) can be evaluated by the JspWriter.

* Next taglib: webwork. The <ww:url> and <ww:param> values use OGNL
   expressions to evaluate parameters. So <ww:param . value="project.id">
   actually tries SummaryAction.getProject().getId().

* Since the extremecomponents taglib doesn't update the action with the
   current loop variable (call SummaryAction.setProject(project), which I
   added to test this), the <ww:param> tag doesn't work since the value
   can't be evaluated.

Some more strange things:

* ${project.id} works outside of tags (but inside <ec:column>), since
   'project' is a PageContext scoped variable.

* <c:set var="test" value="${project.id}"/> doesn't work; produces
   '${project.id}' for ${test}.

* <c:set var="test" property="${project.id}"/> doesn't work; produces
   '' for ${test}.

* <c:set var="test" property="project.id"/> doesn't work; produces
   '' for ${test}.

* <c:set var="test">${project.id}</c:set> doesn't work; produces
   '${project.id}' for ${test}.

Any ideas? Working examples? (not the <a href="<ww:url
action=".."/>?projectId=${project.id}">..</a> preferrably ;)

-- Kenney

Kenney Westerhof wrote:
> 
> 
> Carlos Sanchez wrote:
>> i've seen this problem with tomcat. Works fine with jetty.
> 
> Aha.
> 
> I couldn't get jetty to work:
> 
> [continuum-webapp]$ mvn jetty:run
> ....
> 
> [INFO] Initializing JDO.
> 13:11:26,739 INFO  JPOX.JDO [org.jpox.AbstractPersistenceManagerFactory] 
> PersistenceManagerFactory - Vendor: JPOX  Version: Unknown
> 13:11:26,745 INFO  JPOX.JDO [org.jpox.AbstractPersistenceManagerFactory] 
> PersistenceManagerFactory initialised for datastore 
> URL=jdbc:derby:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/WEB-INF/database;create=true

> driver=org.apache.derby.jdbc.EmbeddedDriver userName=sa
> 13:11:26,823 INFO  org.quartz.simpl.RAMJobStore 
> [org.quartz.simpl.RAMJobStore] RAMJobStore initialized.
> 13:11:26,824 INFO  org.quartz.impl.StdSchedulerFactory 
> [org.quartz.impl.StdSchedulerFactory] Quartz scheduler 
> 'defaultScheduler' initialized from an externally provided properties 
> instance.
> 13:11:26,826 INFO  org.quartz.impl.StdSchedulerFactory 
> [org.quartz.impl.StdSchedulerFactory] Quartz scheduler version: 1.4.5
> 13:11:26,828 INFO  org.quartz.core.QuartzScheduler 
> [org.quartz.core.QuartzScheduler] Scheduler 
> defaultScheduler_$_NON_CLUSTERED started.
> [WARNING] Could not find the executable 'ant' in the path '[]'.
> [WARNING] Could not find the executable 'maven' in the path '[]'.
> :WARN:  failed 
> ContextHandler@1248f2b{/,file:/vol/home/forge/work/opensource-rw/maven-trunks/continuum/continuum-webapp/src/main/webapp/}

> 
> :WARN:  failed ContextHandlerCollection@ad97f5
> :WARN:  failed HandlerCollection@d38976
> :INFO:  Started SelectChannelConnector @ 0.0.0.0:9090
> :WARN:  failed Server@86988
> [INFO] Jetty server exiting.
> [INFO] 
> ------------------------------------------------------------------------
> [ERROR] BUILD ERROR
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Failure
> 
> Embedded error: org.codehaus.plexus.PlexusContainerException: Error 
> initializaing container in 
> org.codehaus.plexus.container.initialization.StartLoadOnStartComponentsPhase@18f729c.

> 
> Component composition failed. No field of type: 'interface 
> org.apache.maven.MavenTools' exists in class 
> 'org.apache.maven.project.DefaultMavenProjectBuilder'. Component: role: 
> 'org.apache.maven.project.MavenProjectBuilder', implementation: 
> 'org.apache.maven.project.DefaultMavenProjectBuilder'
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] For more information, run Maven with the -e switch
> [INFO] 
> ------------------------------------------------------------------------
> [INFO] Total time: 1 minute 24 seconds
> [INFO] Finished at: Wed Aug 16 13:11:26 CEST 2006
> [INFO] Final Memory: 18M/52M
> [INFO] 
> ------------------------------------------------------------------------
> FATAL ERROR: Unable to configure the Maven application
> For more information, run with the -e flag
> :INFO:  Shutdown hook executing
> :INFO:  Shutdown hook complete
> 13:11:28,867 INFO  JPOX.RDBMS 
> [org.jpox.store.rdbms.adapter.RDBMSAdapterFactory] RDBMS Adapter 
> initialised : CloudscapeAdapter : Apache Derby version=10.1.2.1, 
> major=10, minor=1, revision=2
> Identifier Names : UPPERCASE
> Driver name=Apache Derby Embedded JDBC Driver, version=10.1.2.1, 
> major=10, minor=1
> Identifier Max Lengths : Table=128  Column=128  Constraint=18  Index=18 
>  Delimeters="
> Identifier Support in DDL : catalog=false  schema=true
> 13:11:28,868 INFO  JPOX.RDBMS.SCHEMA [org.jpox.store.rdbms.RDBMSManager] 
> Initialising Catalog "", Schema "SA" using "SchemaTable" auto-start option
> 13:11:29,761 INFO  JPOX.RDBMS.SCHEMA [org.jpox.store.rdbms.RDBMSManager] 
> Catalog "", Schema "SA" initialised - managing 0 classes
> org.codehaus.plexus.personality.plexus.lifecycle.phase.StoppingException: 
> Error storing the Continuum configuration.
>         at 
> org.apache.maven.continuum.DefaultContinuum.stopContinuum(DefaultContinuum.java:2077)

> 
>         at 
> org.apache.maven.continuum.DefaultContinuum$1.run(DefaultContinuum.java:163) 
> 
> Caused by: 
> org.apache.maven.continuum.configuration.ConfigurationStoringException: 
> Error writting configuration to database.
>         at 
> org.apache.maven.continuum.configuration.DefaultConfigurationService.store(DefaultConfigurationService.java:270)

> 
>         at 
> org.apache.maven.continuum.DefaultContinuum.stopContinuum(DefaultContinuum.java:2073)

> 
>         ... 1 more
> Caused by: org.apache.maven.continuum.store.ContinuumStoreException: Not 
> detached: null
>         at 
> org.apache.maven.continuum.store.JdoContinuumStore.updateObject(JdoContinuumStore.java:602)

> 
>         at 
> org.apache.maven.continuum.store.JdoContinuumStore.updateSystemConfiguration(JdoContinuumStore.java:1045)

> 
>         at 
> org.apache.maven.continuum.configuration.DefaultConfigurationService.store(DefaultConfigurationService.java:266)

> 
>         ... 2 more
> Caused by: org.codehaus.plexus.jdo.PlexusStoreException: Not detached: null
>         at 
> org.codehaus.plexus.jdo.PlexusJdoUtils.updateObject(PlexusJdoUtils.java:74)
>         at 
> org.apache.maven.continuum.store.JdoContinuumStore.updateObject(JdoContinuumStore.java:598)

> 
>         ... 4 more
> 
> 
> I thought this was fixed?
> 
> Any idea?
> 
> -- Kenney
> 
>>
>> Please add a jira to put back the right url composition, your changes
>> won't work in some cases (we just moved all url composition to use
>> c:url)
>>
>> On 8/15/06, Brett Porter <brett@apache.org> wrote:
>>> There are two versions of c: - core, and core_rt. If you are including a
>>> TLD in the webapp, make sure you have the right one.
>>>
>>> I usually just omit the tlds in the webapp and use:
>>> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
>>> (note this is JSTL 1.1, the URL is different for JSTL 1.0, which might
>>> also be the problem).
>>>
>>> This gets pulled from the JAR. Seems to work just fine in MRM.
>>>
>>> - Brett
>>>
>>> On 16/08/2006 11:41 AM, kenney@apache.org wrote:
>>> > Author: kenney
>>> > Date: Tue Aug 15 18:41:17 2006
>>> > New Revision: 431764
>>> >
>>> > URL: http://svn.apache.org/viewvc?rev=431764&view=rev
>>> > Log:
>>> > Use <c:url because of the url completion, but not c:param (for now).
>>> >
>>> > <c:*> tags don't evaluate the expressions, somehow. Not sure why 
>>> this doesn't
>>> > work..
>>> >
>>> > This problem also exists in schedules.jsp (and probably other places).
>>> >
>>> > Added a workaround for the main page for now.
>>> >
>>> > Modified:
>>> >     maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp
>>> >
>>> > Modified: 
>>> maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp
>>> > URL: 
>>> http://svn.apache.org/viewvc/maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp?rev=431764&r1=431763&r2=431764&view=diff

>>>
>>> > 
>>> ==============================================================================

>>>
>>> > --- 
>>> maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp 
>>> (original)
>>> > +++ 
>>> maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp 
>>> Tue Aug 15 18:41:17 2006
>>> > @@ -19,13 +19,8 @@
>>> >            <ec:row highlightRow="true">
>>> >              <ec:column property="state" title="&nbsp;" width="1%"

>>> cell="org.apache.maven.continuum.web.view.StateCell"/>
>>> >              <ec:column property="name" 
>>> title="summary.projectTable.name" width="48%">
>>> > -                <!--this doesn't work as the project.id isn't 
>>> interpolated
>>> > -                <c:url var="projectViewUrl" 
>>> value="/projectView.action">
>>> > -                  <c:param name="projectId" value="${project.id}"/>
>>> > -                </c:url>
>>> > -                <a href="<c:out 
>>> value='${projectViewUrl}'/>">${project.name}</a>
>>> > -                -->
>>> > -                <a 
>>> href="/projectView.action?projectId=${project.id}">${project.name}</a>
>>> > +                <c:url var="projectViewUrl" 
>>> value="/projectView.action"/>
>>> > +                <a href="<c:out 
>>> value='${projectViewUrl}?projectId=${project.id}'/>">${project.name}</a>
>>> >              </ec:column>
>>> >              <ec:column property="version" 
>>> title="summary.projectTable.version" width="13%"/>
>>> >              <ec:column property="buildNumber" 
>>> title="summary.projectTable.build" width="5%" 
>>> cell="org.apache.maven.continuum.web.view.BuildCell"/>
>>> >
>>> >
>>>
>>>
>>> -- 
>>> Apache Maven - http://maven.apache.org/
>>> Better Builds with Maven - http://library.mergere.com/
>>>
>>
>>



Mime
View raw message