continuum-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brett Porter <br...@apache.org>
Subject Re: continuum-webapp issues [was: Re: svn commit: r431764 - /maven/continuum/trunk/continuum-webapp/src/main/webapp/summary.jsp]
Date Thu, 17 Aug 2006 01:51:48 GMT
The later is most definitely better. It allows you to keep your URLs 
independent. For example, with the repository browse actions in Archiva, 
the mapper will convert the action & parameters into 
/browse/group/artifact/version instead of 
browse.action?group=...&artifactId=... etc

- Brett

On 17/8/06 2:03 AM, Kenney Westerhof wrote:
> 
> Ok, the problem is resolved: I upgraded the web.xml to the 2.4
> specification. Tomcat correctly uses the 1.0 jstl and applies other 2.3 
> behaviours if the web.xml is version 2.3, whereas jetty probably always 
> uses the 2.4 spec, which is why that works there (although jetty:run
> doesn't work here..).
> 
> I also updated the c:urls to ww:urls.
> 
> What I see is a lot of non-standard actions, like
> 
> <ww:url value="${notifier.type}NotifierEdit!default.action">.
> 
> Could this easily be changed to
> 
> <ww:url action="edit${notifier.type}Notifier">
> 
> ? Seems cleaner to me.
> 
> 
> Thanks for your patience and sorry about all the spam! :)
> 
> -- Kenney
> 
> Kenney Westerhof wrote:
>> (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/
>>>>>
>>>>
>>>>
>>
> 


-- 
Apache Maven - http://maven.apache.org/
Better Builds with Maven - http://library.mergere.com/

Mime
View raw message