[ http://jira.codehaus.org/browse/MNG-661?page=comments#action_51763 ] 

John Allen commented on MNG-661:
--------------------------------

Vincent, youre right regarding the limitations of using the projects 
'published' URL location for building backward and fwd refs, namely that they 
only work until the site(s) are deployed but I felt constrained to comply by 
the maven project model for what defines a projects 'home' and how it relates 
to its partent, child modules and its distribution management details.

My observations:-

* A project can (and therefore someone will) define its project URL to 
something that is not necessarily derived from its parent. I.e the hierarchical 
model which we tend to assume is not the only mode of operation in regards to 
where a site will live in repsect to its parent and modules. This is a key 
observation.

* A project's parent is not necessarily defined in the directory above it. A 
parent project can come from anywhere.

Therefore one can not rely upon realtive backward and fwd refs: the 
relationship of a project to their parent and modules in regards to URLs is not 
necessarily hierarchical and we can not therefore just make the links relative, 
ie. parent is not just be ../index.html and its modules is not just be 
./module_name/index.html. 

But the requirement you quite rightly identify is that we want to 'stage' the 
site somwhere so it can be tested and reviewed, before real publication but 
those project links just wont work unless the URLs properly resolves and those 
are defined for production deployment.

So how do we handle the preparation of test deployment of a site?

Dont know ...

At first I thought we could perform some kind of 'okay so youre running in test 
deployment mode to i will re-write all URLS such that I expect a parents to be 
above me and a module to be beneath me and i know everything is going to be 
based of the same root URL (ie. a file store root) but not even that works 
becuase although I may be a project 4 deep in a module structure I can have a 
parent that is in some completely unrelated location. 

So if you want a staged site deployment we will need a new project  attribute 
that lets us discover a project's location in the staged environment, which we 
would expect to hold a more hierarchical layout to enable deployment to a local 
filesystem or test HTTP server for easy testing. Note this is basically just 
saying have another project::URL attribute but that we expect the developer to 
set it to something more useful and relatively structured so that it can be 
employed in stage testing.

Details (please excuse the structure of this!)

directory: /dirA          artifact: projectA,  parent: null,           url: 
http://foo,                  stageUrl: file:///stagingLoc/,    site: scp://foo
directory /dirA/dirB   artifact: projectB,  parent: projectA,  
url:http://foo/projectB,    stageUrl: [inherited],                site: 
[inherited]
directory /dirA/dirC  artifact: projectC,  parent: projectA,  url: 
http://bar/projectC,  stageUrl: [inherited],                site: 
scp://bar/projectC
directory /dirA/dirD  artifact: projectD,  parent: projectE,  url: 
http://bar/projectD,  stageUrl: [inherited],                site: 
scp://bar/projectD
directory /dirE          artifact: projectE,   parent: null,          url: 
http://foo/projectE,  stageUrl: [file:///stagingLoc/,   site: scp://foo/projectE

gets site:deployed to 

host: foo, directory: /
host: foo, directory: /projectB
host: bar, directory: /projectC
host: bar, directory: /projectD
host: foo, directory: /projectE

gets site:staged to:-

stagingLoc/projectA
stagingLoc/projectA/projectB
stagingLoc/projectA/projectC
stagingLoc/projectA/projectD
stagingLoc/projectE

The generation of parent and module links for the stage mode will just use the 
project::stageURL. the links for deployment mode will use the project::URL. And 
i guess the new site:stage Mojo will rewrite the links to be stageURL links and 
then invoke the stage wagon location - we'll need a new site wagon setting as 
the distributionManagement::site and the project::URL are bound together in 
their meaning so if we create a new stageURL we well require a new 
distributionManagement::stageSite setting (which would be set to file::/someLoc 
in most cases).


Phew! What a lot of words for something so simple!

WDYT? Do you see the problem we have?









> In parent site, automatically create link to modules sites and vice-versa
> -------------------------------------------------------------------------
>
>          Key: MNG-661
>          URL: http://jira.codehaus.org/browse/MNG-661
>      Project: Maven 2
>         Type: Improvement
>   Components: maven-site-plugin
>     Versions: 2.0-alpha-3
>     Reporter: Yann Le Du
>     Assignee: Vincent Siveton
>     Priority: Minor
>      Fix For: 2.0.1
>  Attachments: SiteMojoPatch.txt, SiteMojoPatch.txt, SiteMojoPatch.txt
>
>
> Say we have the following project structure :
> A
> +-- B
>     +-- C
> +-- D
> It would be nice to have the following links in the left menu of the 
> generated sites :
> A :
> Modules : B, D
> B :
> Parent : A
> Modules : C
> C :
> Parent : B
> D :
> Parent : A

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


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to