cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lars Huttar <lars_hut...@sil.org>
Subject Re: [C3] Working with archetypes [Was Re: parent of parent artifact?]
Date Wed, 21 Mar 2012 20:09:58 GMT
On 3/21/2012 5:27 AM, Francesco Chicchiriccò wrote:
> On 20/03/2012 22:55, Lars Huttar wrote:
>> On 3/20/2012 4:35 PM, Lars Huttar wrote:
>>> On 3/8/2012 3:49 AM, Francesco Chicchiriccò wrote:
>>>>
>>>> C) If you want to develop a complete C3 web application
>>>>
>>>> You need to generate a multimodule maven project [2] with the 
>>>> following structure:
>>>>
>>>> myparent/
>>>>     mysite/
>>>>     mywebapp/
>>>>
>>>> Basically, you will need this when either having multiple blocks on 
>>>> a single webapp or when you want to deploy on an external web 
>>>> container (say Tomcat).
>>>
>>> In the context of these instructions, which now produce for me a 
>>> working webapp shell,
>>> where do I start developing my web application?
>>> I expected that I could start putting sitemap.xmap, welcome.html, 
>>> and other files in
>>>    mywebapp/src/main/resources/COB-INF
>>>
>>> I do this; and when I run
>>>     cd thewebapp
>>>     mvn jetty:run
>>> My new sitemap etc. get copied to
>>>    mywebapp/target/classes/COB-INF
>>> as expected.
>>>
>>> But when I try to address any URLs in my new sitemap, e.g. 
>>> "localhost:8890/test.html", Cocoon tells me (in 
>>> mywebapp\target\work\cocoon.log) that there is no matching pipeline. 
>>> But it *does* match pipelines in the mysite sitemap 
>>> (mysite\src\main\resource\COB-INF).
>>>
>>> So then my question is, if I'm running jetty in the mywebapp folder, 
>>> why is it serving URLs from the mysite artifact's sitemap? Maybe 
>>> that's by design, that the mysite sitemap is sort of like a Cocoon 
>>> 2.1 top-level sitemap, which would "mount" the sitemaps of the 
>>> various webapps?
>>
>> If this is true... that Cocoon will process URLs starting from 
>> mysite's sitemap even thought I run jetty in the mywebapp folder... 
>> then why should be in the mywebapp folder to run jetty? What 
>> difference would it make if I was in the myparent or mysite folder?
>>
>> Trying to wrap my head around this...
>
> Lars,
> Cocoon 3.0 is very similar to Cocoon 2.2 - and very dissimilar to 
> Cocoon 2.1 - in this respect.
>
> Unfortunately, Cocoon 3.0 documentation is far to be completed, so we 
> have to rely upon Cocoon 2.2's for the moment: of course you will have 
> to "translate" some things but the overall meaning should be helpful.
>
> Start from [1]: it will introduce the concept of "block".
> Basically, a "block" is a functional subsystem of your final 
> application: in many cases your application will be composed by a 
> single block, but this concept let you build more complex and 
> structured applications.
>
> Coming to you question above: when developing, you only need your 
> block - i.e. "mysite". Since cocoon blocks feature the reloading 
> plugin, just launch your block with "mvn jetty:run" and start playing 
> with mysite/src/main/resources/COB-INF/sitemap.xmap. All your changes 
> will be immediately available.
>
> If you want, you can of course add a second block [2]. You can make 
> such two blocks communicating together by empowering the 
> ServletService Framework, a concept born with Cocoon 2.2 and used by 
> Cocoon 3.0 as well.
>
> You will then eventually deploy your application to an external 
> servlet container (Tomcat, Glassfish, JBoss, ...): in order to do 
> this, you will need [3], a complete cocoon web application - mywebapp 
> in your sample - including all defined blocks. You will also need to 
> group all such projects - blocks + webapp - in a multimodule maven 
> project, and for this you need myparent.
>
> I hope it's more clear now.

Thank you, that is definitely clearer.
So I do my development in blocks, not in the webapp; the webapp is for 
packaging for external deployment.

The one thing I'm not clear on, then, is this part of your instructions: 
(http://markmail.org/message/d6m2yidkrfqkslo2 for full context)

> C) If you want to develop a complete C3 web application
>
> You need to generate a multimodule maven project [2] with the 
> following structure:
>
> myparent/
>   mysite/
>   mywebapp/
>
...
>
> Now you can finally
>
> cd mywebapp
> mvn jetty:run
>

Why is this telling me to run jetty in mywebapp, instead of in mysite?
Maybe that's just a red herring (not important), but it has me confused.

Lars


Mime
View raw message