List Info

Thread: svn commit: r487598 - in /lenya/trunk/src: impl/java/org/apache/lenya/cms/publication/ impl/test/org




svn commit: r487598 - in /lenya/trunk/src: impl/java/org/apache/lenya/cms/publicati on/ impl/test/org
user name
2006-12-15 19:42:54
This broke something. Clean build of Lenya plus Cocoon
results in:

Message: Failed to process pipeline at <map:serialize>
- 
file:/home/rfrovarp/lenya-1.4.x/build/lenya/webapp/sitemap.x
map:663:41 
at <map:transform> - 
file:/home/rfrovarp/lenya-1.4.x/build/lenya/webapp/sitemap.x
map:548:76 
at <map:transform> - 
file:/home/rfrovarp/lenya-1.4.x/build/lenya/webapp/sitemap.x
map:545:70 
at <map:transform type="i18n"> - 
file:/home/rfrovarp/lenya-1.4.x/build/lenya/webapp/sitemap.x
map:542:34 
at <map:transform> - 
file:/home/rfrovarp/lenya-1.4.x/build/lenya/webapp/sitemap.x
map:657:72 
at <map:generate type="notifying"> - 
file:/home/rfrovarp/lenya-1.4.x/build/lenya/webapp/sitemap.x
map:656:39

Sender: org.apache.cocoon.servlet.CocoonServlet

Source: Cocoon Servlet

Request URI

index.html

cause

java.lang.NullPointerException

request-uri

/index.html


stacktrace

java.lang.NullPointerException
	at
org.apache.lenya.cms.cocoon.source.FallbackSourceFactory.get
Source(FallbackSourceFactory.java:130)
	at
org.apache.excalibur.source.impl.SourceResolverImpl.resolveU
RI(SourceResolverImpl.java:208)
	at
org.apache.cocoon.components.CocoonComponentManager.resolveU
RI(CocoonComponentManager.java:558)
	at
org.apache.cocoon.environment.AbstractEnvironment.resolveURI
(AbstractEnvironment.java:553)
	at
org.apache.cocoon.environment.AbstractEnvironment.resolveURI
(AbstractEnvironment.java:540)
	at
org.apache.cocoon.transformation.TraxTransformer.setup(TraxT
ransformer.java:310)
	at
org.apache.cocoon.components.pipeline.AbstractProcessingPipe
line.setupPipeline(AbstractProcessingPipeline.java:398)
	at
org.apache.cocoon.components.pipeline.impl.AbstractCachingPr
ocessingPipeline.setupPipeline(AbstractCachingProcessingPipe
line.java:717)
	at
org.apache.cocoon.components.pipeline.AbstractProcessingPipe
line.preparePipeline(AbstractProcessingPipeline.java:501)
	at
org.apache.cocoon.components.pipeline.AbstractProcessingPipe
line.process(AbstractProcessingPipeline.java:453)
	at
org.apache.cocoon.components.treeprocessor.sitemap.Serialize
Node.invoke(SerializeNode.java:121)
	at
org.apache.cocoon.components.treeprocessor.AbstractParentPro
cessingNode.invokeNodes(AbstractParentProcessingNode.java:69
)
	at
org.apache.cocoon.components.treeprocessor.sitemap.HandleErr
orsNode.invoke(HandleErrorsNode.java:89)
	at
org.apache.cocoon.components.treeprocessor.sitemap.ErrorHand
lerHelper.prepareErrorHandler(ErrorHandlerHelper.java:182)
	at
org.apache.cocoon.components.treeprocessor.sitemap.ErrorHand
lerHelper.prepareErrorHandler(ErrorHandlerHelper.java:135)
	at
org.apache.cocoon.components.treeprocessor.sitemap.ErrorHand
lerHelper.invokeErrorHandler(ErrorHandlerHelper.java:108)
	at
org.apache.cocoon.components.treeprocessor.sitemap.Pipelines
Node.invoke(PipelinesNode.java:100)
	at
org.apache.cocoon.components.treeprocessor.ConcreteTreeProce
ssor.process(ConcreteTreeProcessor.java:235)
	at
org.apache.cocoon.components.treeprocessor.ConcreteTreeProce
ssor.process(ConcreteTreeProcessor.java:177)
	at
org.apache.cocoon.components.treeprocessor.TreeProcessor.pro
cess(TreeProcessor.java:253)
	at org.apache.cocoon.Cocoon.process(Cocoon.java:699)
	at
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServle
t.java:1154)
	at
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder
.java:427)
	at
org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(Web
ApplicationHandler.java:475)
	at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandl
er.java:567)
	at
org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
	at
org.mortbay.jetty.servlet.WebApplicationContext.handle(WebAp
plicationContext.java:635)
	at
org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
	at
org.mortbay.jetty.plus.PlusWebAppContext.handle(PlusWebAppCo
ntext.java:158)
	at org.mortbay.http.HttpServer.service(HttpServer.java:954)
	at
org.mortbay.http.HttpConnection.service(HttpConnection.java:
814)
	at
org.mortbay.http.HttpConnection.handleNext(HttpConnection.ja
va:981)
	at
org.mortbay.http.HttpConnection.handle(HttpConnection.java:8
31)
	at
org.mortbay.http.SocketListener.handleConnection(SocketListe
ner.java:244)
	at
org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:3
57)
	at
org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:5
34)




andreasapache.org wrote:
> Author: andreas
> Date: Fri Dec 15 09:01:14 2006
> New Revision: 487598
>
> URL: 
http://svn.apache.org/viewvc?view=rev&rev=487598
> Log:
> Allow to use extensions instead of regexps in
BypassableAccessController, various refactorings to improve
performance, e.g. avoid duplicate source resolving
>
> Added:
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/VisitingSourceResolver.java
>       - copied, changed from r482993,
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/URIResolver.java
> Removed:
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/URIResolver.java
> Modified:
>    
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/D
ocumentFactoryImpl.java
>    
lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/T
estPageEnvelope.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/Revi
sionControllerAction.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/
modules/input/AbstractPageEnvelopeModule.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/
modules/input/PageEnvelopeModule.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHe
lperImpl.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/Fall
backSourceFactory.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/Temp
lateFallbackSourceFactory.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEn
velope.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEn
velopeFactory.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInf
ormation.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/AllExistingSourceResolver.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/ExistingAncestorSourceResolver.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/ExistingSourceResolver.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/SourceVisitor.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/D
ocumentLanguagesHelper.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/site/SiteStructure
.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java
>    
lenya/trunk/src/java/org/apache/lenya/cms/site/simple/Docume
ntStore.java
>    
lenya/trunk/src/modules-core/ac-impl/config/cocoon-xconf/byp
assable-access-controller.xconf
>    
lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/len
ya/ac/impl/BypassableAccessController.java
>    
lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/len
ya/cms/ac/DocumentPolicyManagerWrapper.java
>    
lenya/trunk/src/modules-core/linking/java/src/org/apache/len
ya/cms/cocoon/transformation/LinkRewritingTransformer.java
>    
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apa
che/lenya/cms/site/usecases/ChangeNodeID.java
>    
lenya/trunk/src/modules-core/templating-impl/java/src/org/ap
ache/lenya/cms/publication/templating/PublicationTemplateMan
agerImpl.java
>    
lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/c
ms/site/tree/DefaultSiteTree.java
>    
lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/c
ms/site/tree2/SiteTreeImpl.java
>     lenya/trunk/src/targets/webapp-build.xml
>
> Modified:
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/D
ocumentFactoryImpl.java
> URL: http://
svn.apache.org/viewvc/lenya/trunk/src/impl/java/org/apache/l
enya/cms/publication/DocumentFactoryImpl.java?view=diff&
rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/D
ocumentFactoryImpl.java (original)
> +++
lenya/trunk/src/impl/java/org/apache/lenya/cms/publication/D
ocumentFactoryImpl.java Fri Dec 15 09:01:14 2006
>  -17,6 +17,8 
>   */
>  package org.apache.lenya.cms.publication;
>  
> +import java.util.StringTokenizer;
> +
>  import
org.apache.avalon.framework.container.ContainerUtil;
>  import
org.apache.avalon.framework.logger.AbstractLogEnabled;
>  import org.apache.avalon.framework.logger.Logger;
>  -181,7 +183,11 
>                  DocumentBuilder builder =
publication.getDocumentBuilder();
>                  if (builder.isDocument(webappUrl)) {
>                      DocumentLocator locator =
builder.getLocator(this, webappUrl);
> -                    return
SiteUtil.contains(this.manager, this, locator);
> +                    String area = locator.getArea();
> +                    String path = locator.getPath();
> +                    String language =
locator.getLanguage();
> +                    SiteStructure site =
publication.getArea(area).getSite();
> +                    return site.contains(path,
language);
>                  } else {
>                      return false;
>                  }
>  -216,7 +222,7 
>          String uuid = null;
>          try {
>              Publication publication =
getPublication(locator.getPublicationId());
> -            if (SiteUtil.isDocument(this.manager,
this, webappUrl)) {
> +            if (SiteUtil.isDocument(this, webappUrl))
{
>                  uuid =
publication.getArea(area).getSite().getNode(locator.getPath(
)).getUuid();
>              } else {
>                  UUIDGenerator generator =
(UUIDGenerator) this.manager.lookup(UUIDGenerator.ROLE);
>  -250,11 +256,11 
>          if (getLogger().isDebugEnabled())
>             
getLogger().debug("DocumentFactory::build() called with
key [" + key + "]");
>  
> -        String[] snippets = key.split(":");
> -        String publicationId = snippets[0];
> -        String area = snippets[1];
> -        String uuid = snippets[2];
> -        String language = snippets[3];
> +        StringTokenizer tokenizer = new
StringTokenizer(key, ":");
> +        String publicationId = tokenizer.nextToken();
> +        String area = tokenizer.nextToken();
> +        String uuid = tokenizer.nextToken();
> +        String language = tokenizer.nextToken();
>  
>          Document document;
>          try {
>
> Modified:
lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/T
estPageEnvelope.java
> URL: http://svn
.apache.org/viewvc/lenya/trunk/src/impl/test/org/apache/leny
a/cms/publication/TestPageEnvelope.java?view=diff&rev=48
7598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/T
estPageEnvelope.java (original)
> +++
lenya/trunk/src/impl/test/org/apache/lenya/cms/publication/T
estPageEnvelope.java Fri Dec 15 09:01:14 2006
>  -38,7 +38,7 
>       */
>      public TestPageEnvelope(Publication publication,
String url, ServiceManager manager,
>              Logger logger) throws
PageEnvelopeException {
> -        super(manager);
> +        super();
>          setContext("");
>  
>          try {
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/Revi
sionControllerAction.java
> URL: http:
//svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/leny
a/cms/cocoon/acting/RevisionControllerAction.java?view=diff&
amp;rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/Revi
sionControllerAction.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/acting/Revi
sionControllerAction.java Fri Dec 15 09:01:14 2006
>  -33,7 +33,6 
>  import org.apache.lenya.ac.User;
>  import org.apache.lenya.cms.publication.Document;
>  import
org.apache.lenya.cms.publication.DocumentFactory;
> -import
org.apache.lenya.cms.publication.DocumentManager;
>  import org.apache.lenya.cms.publication.DocumentUtil;
>  import org.apache.lenya.cms.publication.PageEnvelope;
>  import
org.apache.lenya.cms.publication.PageEnvelopeFactory;
>  -47,7 +46,8 
>  /**
>   * Revision controller action.
>   * 
> - * version $Id$
> + * version $Id: RevisionControllerAction.java 487290
2006-12-14 18:18:35Z
> + *          andreas $
>   */
>  public class RevisionControllerAction extends
ServiceableAction {
>  
>  -59,8 +59,8 
>  
>      /**
>       * see
org.apache.cocoon.acting.Action#act(org.apache.cocoon.enviro
nment.Redirector,
> -     *     
org.apache.cocoon.environment.SourceResolver, java.util.Map,
java.lang.String,
> -     *     
org.apache.avalon.framework.parameters.Parameters)
> +     *     
org.apache.cocoon.environment.SourceResolver, java.util.Map,
> +     *      java.lang.String,
org.apache.avalon.framework.parameters.Parameters)
>       */
>      public Map act(Redirector redirector,
SourceResolver resolver, Map objectModel, String src,
>              Parameters parameters) throws Exception {
>  -81,17 +81,15 
>          } catch (Exception e) {
>              throw new AccessControlException(e);
>          }
> -        org.apache.lenya.cms.repository.Session
repoSession = RepositoryUtil.getSession(this.manager,
> -                request);
> +        org.apache.lenya.cms.repository.Session
repoSession = RepositoryUtil.getSession(
> +                this.manager, request);
>  
>          DocumentFactory factory =
DocumentUtil.createDocumentFactory(this.manager,
repoSession);
>          Document document = null;
>  
>          try {
>              publication =
PublicationUtil.getPublication(this.manager, objectModel);
> -            envelope =
PageEnvelopeFactory.getInstance().getPageEnvelope(this.manag
er,
> -                    factory,
> -                    objectModel,
> +            envelope =
PageEnvelopeFactory.getInstance().getPageEnvelope(factory,
objectModel,
>                      publication);
>              document = envelope.getDocument();
>          } catch (Exception e) {
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/
modules/input/AbstractPageEnvelopeModule.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/
java/org/apache/lenya/cms/cocoon/components/modules/input/Ab
stractPageEnvelopeModule.java?view=diff&rev=487598&r
1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/
modules/input/AbstractPageEnvelopeModule.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/
modules/input/AbstractPageEnvelopeModule.java Fri Dec 15
09:01:14 2006
>  -74,7 +74,7 
>              try {
>                  DocumentFactory factory =
getDocumentFactory();
>                  Publication pub =
PublicationUtil.getPublicationFromUrl(this.manager, factory,
webappUrl);
> -                envelope =
PageEnvelopeFactory.getInstance().getPageEnvelope(this.manag
er,
> +                envelope =
PageEnvelopeFactory.getInstance().getPageEnvelope(
>                          factory,
>                          contextPath,
>                          webappUrl,
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/
modules/input/PageEnvelopeModule.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org
/apache/lenya/cms/cocoon/components/modules/input/PageEnvelo
peModule.java?view=diff&rev=487598&r1=487597&r2=
487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/
modules/input/PageEnvelopeModule.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/components/
modules/input/PageEnvelopeModule.java Fri Dec 15 09:01:14
2006
>  -41,8 +41,8 
>  import org.apache.lenya.util.ServletHelper;
>  
>  /**
> - * Input module wrapping the page envelope. This
module provides publication related information
> - * such as document-id, area, publication-id.
> + * Input module wrapping the page envelope. This
module provides publication
> + * related information such as document-id, area,
publication-id.
>   * 
>   * see org.apache.lenya.cms.publication.PageEnvelope
>   * deprecated use DocumentInfoModule instead.
>  -53,7 +53,8 
>  
>      /**
>       * see
org.apache.cocoon.components.modules.input.InputModule#getAt
tribute(java.lang.String,
> -     *     
org.apache.avalon.framework.configuration.Configuration,
java.util.Map)
> +     *     
org.apache.avalon.framework.configuration.Configuration,
> +     *      java.util.Map)
>       */
>      public Object getAttribute(final String
attributeName, Configuration modeConf, Map objectModel)
>              throws ConfigurationException {
>  -84,50 +85,50 
>                  value =
envelope.getPublication().getBreadcrumbPrefix();
>              } else if
(name.equals(PageEnvelope.DOCUMENT_PATH)) {
>                  value = getPath(envelope,
objectModel);
> -            }
> -
> -            Document document =
envelope.getDocument();
> -            if (document != null) {
> -                if
(name.equals(PageEnvelope.DOCUMENT)) {
> -                    value = document;
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_ID)) {
> -                    getLogger().warn(
> -                            "This attribute is
deprecated."
> -                                    + " Use
document-path or document-uuid instead!");
> -                    value = document.getId();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_PARENT)) {
> -                    value =
document.getLocator().getParent().getPath();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_NAME)) {
> -                    value = document.getName();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_LABEL)) {
> -                    value =
document.getLink().getLabel();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_URL)) {
> -                    value =
document.getCanonicalDocumentURL();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_URL_WITHOUT_LANGUAGE)) {
> -                    value =
document.getCanonicalWebappURL();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_FILE)) {
> -                    value = document.getFile();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_EXTENSION)) {
> -                    value = document.getExtension();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_SOURCE_EXTENSION)) {
> -                    value =
document.getSourceExtension();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_UUID)) {
> -                    value = document.getUUID();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_LANGUAGE)) {
> -                    value = document.getLanguage();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_LANGUAGES)) {
> -                    value = document.getLanguages();
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_LANGUAGES_CSV)) {
> -                    value =
StringUtils.join(document.getLanguages(), ',');
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_LASTMODIFIED)) {
> -                    Date date = new
Date(document.getLastModified());
> -                    value = new
SimpleDateFormat(DATE_FORMAT).format(date);
> -                } else if
(name.equals(PageEnvelope.DOCUMENT_TYPE)) {
> -                    ResourceType resourceType =
document.getResourceType();
> -                    if (resourceType == null) {
> -                        value = null;
> -                    } else {
> -                        value =
resourceType.getName();
> +            } else {
> +                Document document =
envelope.getDocument();
> +                if (document != null) {
> +                    if
(name.equals(PageEnvelope.DOCUMENT)) {
> +                        value = document;
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_ID)) {
> +                        getLogger().warn(
> +                                "This attribute
is deprecated."
> +                                        + " Use
document-path or document-uuid instead!");
> +                        value = document.getId();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_PARENT)) {
> +                        value =
document.getLocator().getParent().getPath();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_NAME)) {
> +                        value = document.getName();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_LABEL)) {
> +                        value =
document.getLink().getLabel();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_URL)) {
> +                        value =
document.getCanonicalDocumentURL();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_URL_WITHOUT_LANGUAGE)) {
> +                        value =
document.getCanonicalWebappURL();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_FILE)) {
> +                        value = document.getFile();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_EXTENSION)) {
> +                        value =
document.getExtension();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_SOURCE_EXTENSION)) {
> +                        value =
document.getSourceExtension();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_UUID)) {
> +                        value = document.getUUID();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_LANGUAGE)) {
> +                        value =
document.getLanguage();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_LANGUAGES)) {
> +                        value =
document.getLanguages();
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_LANGUAGES_CSV)) {
> +                        value =
StringUtils.join(document.getLanguages(), ',');
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_LASTMODIFIED)) {
> +                        Date date = new
Date(document.getLastModified());
> +                        value = new
SimpleDateFormat(DATE_FORMAT).format(date);
> +                    } else if
(name.equals(PageEnvelope.DOCUMENT_TYPE)) {
> +                        ResourceType resourceType =
document.getResourceType();
> +                        if (resourceType == null) {
> +                            value = null;
> +                        } else {
> +                            value =
resourceType.getName();
> +                        }
>                      }
>                  }
>              }
>  -174,7 +175,8 
>  
>      /**
>       * see
org.apache.cocoon.components.modules.input.InputModule#getAt
tributeValues(java.lang.String,
> -     *     
org.apache.avalon.framework.configuration.Configuration,
java.util.Map)
> +     *     
org.apache.avalon.framework.configuration.Configuration,
> +     *      java.util.Map)
>       */
>      public Object[] getAttributeValues(String name,
Configuration modeConf, Map objectModel)
>              throws ConfigurationException {
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHe
lperImpl.java
> URL: http://svn.apache
.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/cocoon
/flow/FlowHelperImpl.java?view=diff&rev=487598&r1=48
7597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHe
lperImpl.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/flow/FlowHe
lperImpl.java Fri Dec 15 09:01:14 2006
>  -73,7 +73,7 
>              DocumentFactory map =
DocumentUtil.createDocumentFactory(this.manager, session);
>              PageEnvelopeFactory factory =
PageEnvelopeFactory.getInstance();
>              Publication publication =
PublicationUtil.getPublication(this.manager, request);
> -            return
factory.getPageEnvelope(this.manager, map,
cocoon.getObjectModel(), publication);
> +            return factory.getPageEnvelope(map,
cocoon.getObjectModel(), publication);
>          } catch (Exception e) {
>              throw new PageEnvelopeException(e);
>          }
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/Fall
backSourceFactory.java
> URL: http://s
vn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/c
ms/cocoon/source/FallbackSourceFactory.java?view=diff&re
v=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/Fall
backSourceFactory.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/Fall
backSourceFactory.java Fri Dec 15 09:01:14 2006
>  -45,7 +45,7 
>  import
org.apache.lenya.cms.publication.URLInformation;
>  import
org.apache.lenya.cms.publication.templating.ExistingSourceRe
solver;
>  import
org.apache.lenya.cms.publication.templating.PublicationTempl
ateManager;
> -import
org.apache.lenya.cms.publication.templating.URIResolver;
> +import
org.apache.lenya.cms.publication.templating.VisitingSourceRe
solver;
>  
>  /**
>   * Source factory following the fallback principle.
>  -68,8 +68,6 
>      public Source getSource(final String location, Map
parameters) throws IOException,
>              MalformedURLException {
>  
> -        String resolvedUri = null;
> -
>          long startTime = new
GregorianCalendar().getTimeInMillis();
>  
>          // Remove the protocol and the first '//'
>  -103,7 +101,7 
>          PublicationManager pubMgr = null;
>          PublicationTemplateManager templateManager =
null;
>          SourceResolver sourceResolver = null;
> -        Source source;
> +        Source source = null;
>          try {
>              sourceResolver = (SourceResolver)
this.manager.lookup(SourceResolver.ROLE);
>  
>  -123,16 +121,16 
>              DocumentFactory factory =
DocumentUtil.getDocumentFactory(this.manager, request);
>              Publication pub =
pubMgr.getPublication(factory, publicationId);
>              if (pub.exists()) {
> -                URIResolver resolver =
getSourceVisitor();
> +                VisitingSourceResolver resolver =
getSourceVisitor();
>                  templateManager.visit(pub, path,
resolver);
> -                resolvedUri = resolver.getURI();
> +                source = resolver.getSource();
>              }
>  
>              if (getLogger().isDebugEnabled()) {
> -                getLogger().debug("Resolved URI: 
[" + resolvedUri + "]");
> +                getLogger().debug("Resolved URI: 
[" + source.getURI() + "]");
>              }
>  
> -            if (resolvedUri == null) {
> +            if (source == null) {
>                  if
(path.startsWith("lenya/modules/")) {
>                      ModuleManager moduleMgr = null;
>                      try {
>  -140,7 +138,7 
>                          final String moduleShortcut =
path.split("/")[2];
>                          String baseUri =
moduleMgr.getBaseURI(moduleShortcut);
>                          final String modulePath =
path.substring(("lenya/modules/" +
moduleShortcut).length());
> -                        resolvedUri = baseUri +
modulePath;
> +                        source =
sourceResolver.resolveURI(baseUri + modulePath);
>                      } finally {
>                          if (moduleMgr != null) {
>                             
this.manager.release(moduleMgr);
>  -148,12 +146,10 
>                      }
>                  } else {
>                      String contextUri =
"context://" + path;
> -                    resolvedUri = contextUri;
> +                    source =
sourceResolver.resolveURI(contextUri);
>                  }
>              }
>  
> -            source =
sourceResolver.resolveURI(resolvedUri);
> -
>          } catch (Exception e) {
>              throw new RuntimeException("Resolving
path [" + location + "] failed: ", e);
>          } finally {
>  -178,7 +174,7 
>          return source;
>      }
>  
> -    protected URIResolver getSourceVisitor() {
> +    protected VisitingSourceResolver
getSourceVisitor() {
>          return new ExistingSourceResolver();
>      }
>  
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/Temp
lateFallbackSourceFactory.java
> URL: 
http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache
/lenya/cms/cocoon/source/TemplateFallbackSourceFactory.java?
view=diff&rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/Temp
lateFallbackSourceFactory.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/cocoon/source/Temp
lateFallbackSourceFactory.java Fri Dec 15 09:01:14 2006
>  -18,7 +18,7 
>  package org.apache.lenya.cms.cocoon.source;
>  
>  import
org.apache.lenya.cms.publication.templating.ExistingAncestor
SourceResolver;
> -import
org.apache.lenya.cms.publication.templating.URIResolver;
> +import
org.apache.lenya.cms.publication.templating.VisitingSourceRe
solver;
>  
>  /**
>   * Source factory following the fallback principle,
resolving the existing ancestor of the existing resource.
>  -34,7 +34,7 
>          super();
>      }
>  
> -    protected URIResolver getSourceVisitor() {
> +    protected VisitingSourceResolver
getSourceVisitor() {
>          return new ExistingAncestorSourceResolver();
>      }
>  
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEn
velope.java
> URL: http://svn.apache.o
rg/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/publicat
ion/PageEnvelope.java?view=diff&rev=487598&r1=487597
&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEn
velope.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEn
velope.java Fri Dec 15 09:01:14 2006
>  -22,7 +22,6 
>  
>  import java.io.File;
>  
> -import
org.apache.avalon.framework.service.ServiceManager;
>  import org.apache.cocoon.environment.Request;
>  import org.apache.lenya.cms.rc.RCEnvironment;
>  import org.apache.lenya.cms.site.SiteUtil;
>  -163,19 +162,15 
>      private String area;
>      private Publication publication;
>  
> -    private ServiceManager manager;
> -
>      /**
>       * Constructor.
>       * param manager The service manager.
>       */
> -    protected PageEnvelope(ServiceManager manager) {
> -        this.manager = manager;
> +    protected PageEnvelope() {
>      }
>  
>      /**
>       * Creates a page envelope from an object model.
> -     * param manager The service manager.
>       * param map The identity map to use.
>       * param contextPath The servlet context
prefix.
>       * param webappUrl The web application URL.
>  -183,14 +178,13 
>       * param publication The publication.
>       * throws PageEnvelopeException when
something went wrong.
>       */
> -    public PageEnvelope(ServiceManager manager,
DocumentFactory map, String contextPath,
> +    public PageEnvelope(DocumentFactory map, String
contextPath,
>              String webappUrl, File servletContext,
Publication publication)
>              throws PageEnvelopeException {
>          this.factory = map;
>          this.context = contextPath;
>          this.webappUrl = webappUrl;
>          this.publication = publication;
> -        this.manager = manager;
>      }
>  
>      private String webappUrl;
>  -289,7 +283,7 
>          if (!documentChecked) {
>              try {
>                  documentChecked = true;
> -                if (SiteUtil.isDocument(this.manager,
getDocumentFactory(), this.webappUrl)) {
> +                if
(SiteUtil.isDocument(getDocumentFactory(), this.webappUrl))
{
>                      this.document =
getDocumentFactory().getFromURL(this.webappUrl);
>                  }
>              } catch (final Exception e) {
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEn
velopeFactory.java
> URL: http://svn.a
pache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/p
ublication/PageEnvelopeFactory.java?view=diff&rev=487598
&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEn
velopeFactory.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/PageEn
velopeFactory.java Fri Dec 15 09:01:14 2006
>  -23,7 +23,6 
>  import java.io.File;
>  import java.util.Map;
>  
> -import
org.apache.avalon.framework.service.ServiceManager;
>  import org.apache.cocoon.environment.Context;
>  import
org.apache.cocoon.environment.ObjectModelHelper;
>  import org.apache.cocoon.environment.Request;
>  -55,31 +54,24 
>  
>      /**
>       * Returns the page envelope for the object model
of a Cocoon component.
> -     * param manager The service manager.
>       * param map The document identity map to
use.
>       * param objectModel The object model.
>       * param pub The publication.
>       * return A page envelope.
>       * throws PageEnvelopeException if something
went wrong.
>       */
> -    public PageEnvelope getPageEnvelope(ServiceManager
manager, DocumentFactory map,
> -            Map objectModel, Publication pub) throws
PageEnvelopeException {
> +    public PageEnvelope
getPageEnvelope(DocumentFactory map, Map objectModel,
Publication pub)
> +            throws PageEnvelopeException {
>          Request request =
ObjectModelHelper.getRequest(objectModel);
>          String contextPath = request.getContextPath();
>          Context context =
ObjectModelHelper.getContext(objectModel);
>          String webappUrl =
ServletHelper.getWebappURI(request);
>          String servletContextPath =
context.getRealPath("");
> -        return getPageEnvelope(manager,
> -                map,
> -                contextPath,
> -                webappUrl,
> -                new File(servletContextPath),
> -                pub);
> +        return getPageEnvelope(map, contextPath,
webappUrl, new File(servletContextPath), pub);
>      }
>  
>      /**
>       * Creates a page envelope.
> -     * param manager The service manager.
>       * param map The document identity map to
use.
>       * param contextPath The servlet context
prefix.
>       * param webappUrl The web application URL.
>  -88,15 +80,9 
>       * return A page envelope.
>       * throws PageEnvelopeException if something
went wrong.
>       */
> -    public PageEnvelope getPageEnvelope(ServiceManager
manager, DocumentFactory map,
> -            String contextPath, String webappUrl, File
servletContext, Publication pub)
> -            throws PageEnvelopeException {
> -        PageEnvelope envelope = new
PageEnvelope(manager,
> -                map,
> -                contextPath,
> -                webappUrl,
> -                servletContext,
> -                pub);
> +    public PageEnvelope
getPageEnvelope(DocumentFactory map, String contextPath,
String webappUrl,
> +            File servletContext, Publication pub)
throws PageEnvelopeException {
> +        PageEnvelope envelope = new PageEnvelope(map,
contextPath, webappUrl, servletContext, pub);
>          return envelope;
>      }
>  
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInf
ormation.java
> URL: http://svn.apache
.org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/public
ation/URLInformation.java?view=diff&rev=487598&r1=48
7597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInf
ormation.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/URLInf
ormation.java Fri Dec 15 09:01:14 2006
>  -30,11 +30,21 
>      private String completeArea = null;
>      private String documentUrl = null;
>  
> +    private String url;
> +
>      /**
>       * Returns the area (without the
"webdav" prefix).
>       * return A string.
>       */
>      public String getArea() {
> +        if (this.area == null) {
> +            String completeArea = getCompleteArea();
> +            if
(completeArea.equals(Publication.DAV_AREA)) {
> +                this.area =
Publication.AUTHORING_AREA;
> +            } else {
> +                this.area = completeArea;
> +            }
> +        }
>          return this.area;
>      }
>  
>  -43,6 +53,14 
>       * return A string.
>       */
>      public String getCompleteArea() {
> +        if (this.completeArea == null) {
> +            String pubUrl =
this.url.substring(getPublicationId().length());
> +            if (pubUrl.startsWith("/")) {
> +                this.completeArea =
extractBeforeSlash(pubUrl.substring(1));
> +            } else {
> +                this.completeArea = null;
> +            }
> +        }
>          return this.completeArea;
>      }
>  
>  -51,6 +69,14 
>       * return A string.
>       */
>      public String getDocumentUrl() {
> +        if (this.documentUrl == null) {
> +            String pubId = getPublicationId();
> +            String area = getArea();
> +            if (pubId != null && area != null)
{
> +                String prefix = pubId + "/"
+ area;
> +                this.documentUrl =
this.url.substring(prefix.length());
> +            }
> +        }
>          return this.documentUrl;
>      }
>  
>  -59,41 +85,38 
>       * return A string.
>       */
>      public String getPublicationId() {
> +        if (this.publicationId == null) {
> +            this.publicationId =
extractBeforeSlash(this.url);
> +        }
>          return this.publicationId;
>      }
>  
> +    protected String extractBeforeSlash(String
remaining) {
> +
> +        if (remaining.length() == 0) {
> +            return null;
> +        }
> +
> +        String step;
> +        int slashIndex = remaining.indexOf('/');
> +        if (slashIndex == -1) {
> +            step = remaining;
> +        } else {
> +            step = remaining.substring(0, slashIndex);
> +        }
> +        return step;
> +    }
> +
>      /**
>       * Ctor.
>       * param webappUrl A webapp URL (without
context prefix).
>       */
>      public URLInformation(String webappUrl) {
> -        
> +
>          if (!webappUrl.startsWith("/")) {
>              throw new RuntimeException("The URL
[" + webappUrl + "] doesn't start with a
slash!");
>          }
>  
> -        String url = webappUrl.substring(1);
> -
> -        String[] fragments = url.split("/");
> -        if (fragments.length > 0) {
> -            this.publicationId = fragments[0];
> -
> -            if (fragments.length > 1) {
> -                this.completeArea = fragments[1];
> -
> -                if (url.length() >
(this.publicationId + "/" +
this.completeArea).length()) {
> -                    this.documentUrl =
url.substring((this.publicationId + "/" +
this.completeArea).length());
> -                } else {
> -                    this.documentUrl = "";
> -                }
> -
> -                if
(this.completeArea.equals(Publication.DAV_AREA)) {
> -                    this.area =
Publication.AUTHORING_AREA;
> -                } else {
> -                    this.area = this.completeArea;
> -                }
> -            }
> -        }
> +        this.url = webappUrl.substring(1);
>      }
> -
>  }
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/AllExistingSourceResolver.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/a
pache/lenya/cms/publication/templating/AllExistingSourceReso
lver.java?view=diff&rev=487598&r1=487597&r2=4875
98
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/AllExistingSourceResolver.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/AllExistingSourceResolver.java Fri Dec 15 09:01:14 2006
>  -21,20 +21,31 
>  import java.util.List;
>  
>  import org.apache.excalibur.source.Source;
> +import org.apache.excalibur.source.SourceResolver;
>  
>  /**
>   * Source visitor to obtain all existing sources.
>   */
>  public class AllExistingSourceResolver implements
SourceVisitor {
>  
> -    public void visit(Source source) {
> -        if (source.exists()) {
> -            this.uris.add(source.getURI());
> +    public void visit(SourceResolver resolver, String
sourceUri) {
> +        Source source = null;
> +        try {
> +            source = resolver.resolveURI(sourceUri);
> +            if (source.exists()) {
> +                this.uris.add(sourceUri);
> +            }
> +        } catch (Exception e) {
> +            throw new RuntimeException(e);
> +        } finally {
> +            if (source != null) {
> +                resolver.release(source);
> +            }
>          }
>      }
> -    
> +
>      private List uris = new ArrayList();
> -    
> +
>      /**
>       * return All existing source URIs.
>       */
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/ExistingAncestorSourceResolver.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/
org/apache/lenya/cms/publication/templating/ExistingAncestor
SourceResolver.java?view=diff&rev=487598&r1=487597&a
mp;r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/ExistingAncestorSourceResolver.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/ExistingAncestorSourceResolver.java Fri Dec 15 09:01:14
2006
>  -19,15 +19,16 
>  package org.apache.lenya.cms.publication.templating;
>  
>  import org.apache.excalibur.source.Source;
> +import org.apache.excalibur.source.SourceResolver;
>  
>  /**
>   * Source visitor to obtain the first existing source.
>   * 
>   * version $Id: ExistingSourceResolver.java 179568
2005-06-02 09:27:26Z jwkaltz $
>   */
> -public class ExistingAncestorSourceResolver implements
URIResolver {
> -    
> -    private String uri;
> +public class ExistingAncestorSourceResolver implements
VisitingSourceResolver {
> +
> +    private Source source;
>  
>      /**
>       * Ctor.
>  -35,25 +36,31 
>      public ExistingAncestorSourceResolver() {
>          super();
>      }
> -    
> +
>      /**
> -     * Returns the URI of the first existing source.
> -     * return The URI
> +     * return the ancestor of the first existing
source.
>       */
> -    public String getURI() {
> -        return this.uri;
> +    public Source getSource() {
> +        return this.source;
>      }
>  
>      private int matches = 0;
>  
> -    /**
> -     * see
org.apache.lenya.cms.publication.templating.SourceVisitor#vi
sit(org.apache.excalibur.source.Source)
> -     */
> -    public void visit(Source source) {
> -        if (source.exists()) {
> -            matches++;
> -            if (matches == 2) {
> -                this.uri = source.getURI();
> +    public void visit(SourceResolver resolver, String
sourceUri) {
> +        Source source = null;
> +        try {
> +            source = resolver.resolveURI(sourceUri);
> +            if (source.exists()) {
> +                matches++;
> +                if (matches == 2) {
> +                    this.source = source;
> +                }
> +            }
> +        } catch (Exception e) {
> +            throw new RuntimeException(e);
> +        } finally {
> +            if (source != null) {
> +                resolver.release(source);
>              }
>          }
>      }
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/ExistingSourceResolver.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/java/org/apac
he/lenya/cms/publication/templating/ExistingSourceResolver.j
ava?view=diff&rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/ExistingSourceResolver.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/ExistingSourceResolver.java Fri Dec 15 09:01:14 2006
>  -19,15 +19,16 
>  package org.apache.lenya.cms.publication.templating;
>  
>  import org.apache.excalibur.source.Source;
> +import org.apache.excalibur.source.SourceResolver;
>  
>  /**
>   * Source visitor to obtain the first existing source.
>   * 
>   * version $Id$
>   */
> -public class ExistingSourceResolver implements
URIResolver {
> -    
> -    private String uri;
> +public class ExistingSourceResolver implements
VisitingSourceResolver {
> +
> +    private Source source;
>  
>      /**
>       * Ctor.
>  -35,21 +36,29 
>      public ExistingSourceResolver() {
>          super();
>      }
> -    
> +
>      /**
> -     * Returns the URI of the first existing source.
> -     * return The URI
> +     * return the first existing source.
>       */
> -    public String getURI() {
> -        return this.uri;
> +    public Source getSource() {
> +        return this.source;
>      }
> -    
> -    /**
> -     * see
org.apache.lenya.cms.publication.templating.SourceVisitor#vi
sit(org.apache.excalibur.source.Source)
> -     */
> -    public void visit(Source source) {
> -        if (this.uri == null &&
source.exists()) {
> -            this.uri = source.getURI();
> +
> +    public void visit(SourceResolver resolver, String
sourceUri) {
> +        if (this.source == null) {
> +            Source source = null;
> +            try {
> +                source =
resolver.resolveURI(sourceUri);
> +                if (source.exists()) {
> +                    this.source = source;
> +                }
> +            } catch (Exception e) {
> +                throw new RuntimeException(e);
> +            } finally {
> +                if (source != null) {
> +                    resolver.release(source);
> +                }
> +            }
>          }
>      }
>  
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/SourceVisitor.java
> URL: http://
svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/lenya/
cms/publication/templating/SourceVisitor.java?view=diff&
rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/SourceVisitor.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/SourceVisitor.java Fri Dec 15 09:01:14 2006
>  -17,7 +17,7 
>   */
>  package org.apache.lenya.cms.publication.templating;
>  
> -import org.apache.excalibur.source.Source;
> +import org.apache.excalibur.source.SourceResolver;
>  
>  /**
>   * version $Id$
>  -25,9 +25,12 
>  public interface SourceVisitor {
>  
>      /**
> -     * Visits a source.
> -     * param source The source.
> +     * Visits a source. We pass the resolver and the
URI so that the visitor can
> +     * decide if it wants to resolve the source
(mainly for performance
> +     * reasons).
> +     * param resolver The resolver.
> +     * param sourceUri The source URI.
>       */
> -    void visit(Source source);
> +    void visit(SourceResolver resolver, String
sourceUri);
>  
>  }
>
> Copied:
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/VisitingSourceResolver.java (from r482993,
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/URIResolver.java)
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/java
/org/apache/lenya/cms/publication/templating/VisitingSourceR
esolver.java?view=diff&rev=487598&p1=lenya/trunk/src
/java/org/apache/lenya/cms/publication/templating/URIResolve
r.java&r1=482993&p2=lenya/trunk/src/java/org/apache/
lenya/cms/publication/templating/VisitingSourceResolver.java
&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/URIResolver.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/templa
ting/VisitingSourceResolver.java Fri Dec 15 09:01:14 2006
>  -17,14 +17,16 
>   */
>  package org.apache.lenya.cms.publication.templating;
>  
> +import org.apache.excalibur.source.Source;
> +
>  /**
>   * URI resolver.
>   */
> -public interface URIResolver extends SourceVisitor {
> +public interface VisitingSourceResolver extends
SourceVisitor {
>  
>      /**
> -     * return The resolved URI.
> +     * return The resolved source.
>       */
> -    String getURI();
> +    Source getSource();
>      
>  }
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/D
ocumentLanguagesHelper.java
> URL: htt
p://svn.apache.org/viewvc/lenya/trunk/src/java/org/apache/le
nya/cms/publication/util/DocumentLanguagesHelper.java?view=d
iff&rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/D
ocumentLanguagesHelper.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/publication/util/D
ocumentLanguagesHelper.java Fri Dec 15 09:01:14 2006
>  -103,7 +103,8 
>              String[] languages = pub.getLanguages();
>              for (int i = 0; i < languages.length;
i++) {
>                  DocumentLocator version =
locator.getLanguageVersion(languages[i]);
> -                if (SiteUtil.contains(this.manager,
factory, version)) {
> +                Publication pub =
factory.getPublication(locator.getPublicationId());
> +                if
(pub.getArea(version.getArea()).getSite().contains(version.g
etPath(), version.getLanguage())) {
>                     
availableLanguages.add(languages[i]);
>                  }
>              }
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/site/SiteStructure
.java
> URL: http://svn.apache.org/vie
wvc/lenya/trunk/src/java/org/apache/lenya/cms/site/SiteStruc
ture.java?view=diff&rev=487598&r1=487597&r2=4875
98
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/site/SiteStructure
.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/site/SiteStructure
.java Fri Dec 15 09:01:14 2006
>  -64,6 +64,14 
>      boolean contains(String path);
>  
>      /**
> +     * Checks if a link is contained for a certain
path and language.
> +     * param path The path.
> +     * param language The language.
> +     * return A boolean value.
> +     */
> +    boolean contains(String path, String language);
> +
> +    /**
>       * Checks if the structure contains a link with a
certain UUID and language.
>       * param uuid The UUID.
>       * param language The language.
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java
> URL: http://svn.apache.org/viewvc/l
enya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java?
view=diff&rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java
(original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/site/SiteUtil.java
Fri Dec 15 09:01:14 2006
>  -24,7 +24,6 
>  import
org.apache.avalon.framework.service.ServiceManager;
>  import
org.apache.avalon.framework.service.ServiceSelector;
>  import org.apache.lenya.cms.publication.Document;
> -import
org.apache.lenya.cms.publication.DocumentBuildException;
>  import
org.apache.lenya.cms.publication.DocumentBuilder;
>  import
org.apache.lenya.cms.publication.DocumentFactory;
>  import
org.apache.lenya.cms.publication.DocumentLocator;
>  -112,46 +111,15 
>          }
>      }
>  
> -    public static boolean contains(ServiceManager
manager, DocumentFactory factory,
> -            DocumentLocator locator) throws
SiteException {
> -        SiteManager siteManager = null;
> -        ServiceSelector selector = null;
> -
> -        try {
> -            selector = (ServiceSelector)
manager.lookup(SiteManager.ROLE + "Selector");
> -            Publication pub =
factory.getPublication(locator.getPublicationId());
> -            String siteManagerHint =
pub.getSiteManagerHint();
> -            siteManager = (SiteManager)
selector.select(siteManagerHint);
> -            SiteStructure site =
siteManager.getSiteStructure(factory, pub,
locator.getArea());
> -            String path = locator.getPath();
> -            String language = locator.getLanguage();
> -            return site.contains(path) &&
site.getNode(path).hasLink(language);
> -        } catch (SiteException e) {
> -            throw e;
> -        } catch (Exception e) {
> -            throw new SiteException(e);
> -        } finally {
> -            if (selector != null) {
> -                if (siteManager != null) {
> -                    selector.release(siteManager);
> -                }
> -                manager.release(selector);
> -            }
> -        }
> -    }
> -
> -    public static boolean isDocument(ServiceManager
manager, DocumentFactory factory,
> -            String webappUrl) throws SiteException {
> +    public static boolean isDocument(DocumentFactory
factory, String webappUrl)
> +            throws SiteException {
>  
>          URLInformation info = new
URLInformation(webappUrl);
>          try {
>              Publication pub =
factory.getPublication(info.getPublicationId());
>              if (pub.exists()) {
>                  DocumentBuilder builder =
pub.getDocumentBuilder();
> -                if (builder.isDocument(webappUrl)) {
> -                    DocumentLocator locator =
builder.getLocator(factory, webappUrl);
> -                    return contains(manager, factory,
locator);
> -                }
> +                return builder.isDocument(webappUrl);
>              }
>              return false;
>          } catch (SiteException e) {
>  -164,15 +132,18 
>      public static Document getDocument(ServiceManager
manager, DocumentFactory factory,
>              String webappUrl) throws SiteException {
>  
> -        DocumentLocator locator = getLocator(manager,
factory, webappUrl);
> -        if (contains(manager, factory, locator)) {
> -            try {
> +        try {
> +            DocumentLocator locator =
getLocator(manager, factory, webappUrl);
> +            Publication pub =
factory.getPublication(locator.getPublicationId());
> +            String path = locator.getPath();
> +            String lang = locator.getLanguage();
> +            if
(pub.getArea(locator.getArea()).getSite().contains(path,
lang)) {
>                  return factory.get(locator);
> -            } catch (DocumentBuildException e) {
> -                throw new SiteException(e);
> +            } else {
> +                throw new SiteException("No
document for webapp URL [" + webappUrl +
"]");
>              }
> -        } else {
> -            throw new SiteException("No document
for webapp URL [" + webappUrl + "]");
> +        } catch (Exception e) {
> +            throw new SiteException(e);
>          }
>      }
>  
>
> Modified:
lenya/trunk/src/java/org/apache/lenya/cms/site/simple/Docume
ntStore.java
> URL: http://svn.apache.
org/viewvc/lenya/trunk/src/java/org/apache/lenya/cms/site/si
mple/DocumentStore.java?view=diff&rev=487598&r1=4875
97&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/java/org/apache/lenya/cms/site/simple/Docume
ntStore.java (original)
> +++
lenya/trunk/src/java/org/apache/lenya/cms/site/simple/Docume
ntStore.java Fri Dec 15 09:01:14 2006
>  -302,4 +302,16 
>          return (SiteNode[]) topLevelNodes.toArray(new
SiteNode[topLevelNodes.size()]);
>      }
>  
> +    public boolean contains(String path, String
language) {
> +        if (contains(path)) {
> +            SiteNode node;
> +            try {
> +                node = getNode(path);
> +            } catch (SiteException e) {
> +                throw new RuntimeException(e);
> +            }
> +            return node.hasLink(language);
> +        }
> +        return false;
> +    }
>  }
>
> Modified:
lenya/trunk/src/modules-core/ac-impl/config/cocoon-xconf/byp
assable-access-controller.xconf
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules-core/a
c-impl/config/cocoon-xconf/bypassable-access-controller.xcon
f?view=diff&rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/modules-core/ac-impl/config/cocoon-xconf/byp
assable-access-controller.xconf (original)
> +++
lenya/trunk/src/modules-core/ac-impl/config/cocoon-xconf/byp
assable-access-controller.xconf Fri Dec 15 09:01:14 2006
>  -24,7 +24,13 
>    <xconf xpath="/cocoon"
unless="/cocoon/component[role =
'org.apache.lenya.ac.AccessController/bypassable']">
>      <component
logger="lenya.ac.accesscontroller.bypassable"
>       
class="org.apache.lenya.ac.impl.BypassableAccessControl
ler"
> -     
role="org.apache.lenya.ac.AccessController/bypassable&q
uot;>
> -     
<public>.*[.]css|.*[.]jpg|.*[.]gif|.*[.]png|.*[.]rng|.
*[.]xsl</public>
> +     
role="org.apache.lenya.ac.AccessController/bypassable&q
uot;>
> +      
> +     
<public-extensions>css,jpg,gif,png,rng,xsl</public-
extensions>
> +      
> +      <!-- bad performance, use only for complex
patterns
> +       
<public>.*[.]css|.*[.]jpg|.*[.]gif|.*[.]png|.*[.]rng|.
*[.]xsl</public>
> +      -->
> +      
>      </component>
>    </xconf>
>
> Modified:
lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/len
ya/ac/impl/BypassableAccessController.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/mod
ules-core/ac-impl/java/src/org/apache/lenya/ac/impl/Bypassab
leAccessController.java?view=diff&rev=487598&r1=4875
97&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/len
ya/ac/impl/BypassableAccessController.java (original)
> +++
lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/len
ya/ac/impl/BypassableAccessController.java Fri Dec 15
09:01:14 2006
>  -46,6 +46,7 
>      }
>  
>      private List publicMatchers = new ArrayList();
> +    private List publicExtensions = new ArrayList();
>  
>      /**
>       * see
org.apache.avalon.framework.configuration.Configurable#confi
gure(org.apache.avalon.framework.configuration.Configuration
)
>  -70,6 +71,19 
>                  getLogger().debug("CONFIGURATION:
public: " + publicHref);
>              }
>          }
> +        
> +        Configuration[] extensionConfigs =
conf.getChildren("public-extensions");
> +        for (int i = 0; i <
extensionConfigs.length; i++) {
> +            String extensionString =
extensionConfigs[i].getValue();
> +            String[] extensions =
extensionString.split(",");
> +            for (int e = 0; e < extensions.length;
e++) {
> +                String ext = extensions[e].trim();
> +                if (!ext.startsWith(".")) {
> +                    ext = "." + ext;
> +                }
> +                this.publicExtensions.add(ext);
> +            }
> +        }
>  
>      }
>  
>  -149,6 +163,13 
>                  }
>                  authorized = true;
>              }
> +            i++;
> +        }
> +        
> +        i = 0;
> +        while (!authorized && i <
this.publicExtensions.size()) {
> +            String ext = (String)
this.publicExtensions.get(i);
> +            authorized = uri.endsWith(ext);
>              i++;
>          }
>          
>
> Modified:
lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/len
ya/cms/ac/DocumentPolicyManagerWrapper.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/mo
dules-core/ac-impl/java/src/org/apache/lenya/cms/ac/Document
PolicyManagerWrapper.java?view=diff&rev=487598&r1=48
7597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/len
ya/cms/ac/DocumentPolicyManagerWrapper.java (original)
> +++
lenya/trunk/src/modules-core/ac-impl/java/src/org/apache/len
ya/cms/ac/DocumentPolicyManagerWrapper.java Fri Dec 15
09:01:14 2006
>  -71,11 +71,13 
>  
>      /**
>       * Returns the URI which is used to obtain the
policy for a webapp URL.
> +     * param controller The accreditable manager.
>       * param webappUrl The webapp URL.
>       * return A string.
>       * throws AccessControlException when
something went wrong.
>       */
> -    protected String getPolicyURL(String webappUrl)
throws AccessControlException {
> +    protected String getPolicyURL(String webappUrl)
> +            throws AccessControlException {
>  
>          if (getLogger().isDebugEnabled()) {
>              getLogger().debug("Resolving policy
for webapp URL [" + webappUrl + "]");
>  -130,6 +132,20 
>              getLogger().debug("    Using URL:
[" + url + "]");
>          }
>          return url;
> +    }
> +
> +    protected String getPolicyUrlFast(String
webappUrl)
> +            throws AccessControlException {
> +        String strippedUrl = strip(strip(webappUrl,
'.'), '_');
> +        return strippedUrl;
> +    }
> +
> +    protected String strip(String strippedUrl, char
delimiter) {
> +        int lastDotIndex =
strippedUrl.lastIndexOf(delimiter);
> +        if (lastDotIndex != -1) {
> +            strippedUrl = strippedUrl.substring(0,
lastDotIndex);
> +        }
> +        return strippedUrl;
>      }
>  
>      /**
>
> Modified:
lenya/trunk/src/modules-core/linking/java/src/org/apache/len
ya/cms/cocoon/transformation/LinkRewritingTransformer.java
> URL: http://svn.apache.org/viewvc/len
ya/trunk/src/modules-core/linking/java/src/org/apache/lenya/
cms/cocoon/transformation/LinkRewritingTransformer.java?view
=diff&rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/modules-core/linking/java/src/org/apache/len
ya/cms/cocoon/transformation/LinkRewritingTransformer.java
(original)
> +++
lenya/trunk/src/modules-core/linking/java/src/org/apache/len
ya/cms/cocoon/transformation/LinkRewritingTransformer.java
Fri Dec 15 09:01:14 2006
>  -36,6 +36,7 
>  import org.apache.lenya.ac.Policy;
>  import org.apache.lenya.ac.PolicyManager;
>  import org.apache.lenya.cms.linking.LinkResolver;
> +import org.apache.lenya.cms.linking.LinkTarget;
>  import org.apache.lenya.cms.publication.Document;
>  import
org.apache.lenya.cms.publication.DocumentFactory;
>  import org.apache.lenya.cms.publication.DocumentUtil;
>  -56,7 +57,7 
>   * <p>
>   * This transformer is applied to an XHMTL document.
It processes all links
>   * following the {link LinkResolver} syntax
which are denoted by
> - * {link ResourceType#getLinkAttributeXPaths()}.
> + * {link
org.apache.lenya.cms.publication.ResourceType#getLinkAttribu
teXPaths()}.
>   * </p>
>   * <p>
>   * These links are resolved using the following rules:
>  -209,8 +210,9 
>                          if (linkUriAndQuery.length
> 1) {
>                              queryString =
linkUriAndQuery[1];
>                          }
> -                        Document targetDocument =
this.linkResolver.resolve(doc, linkUri).getDocument();
> -                        if (targetDocument != null) {
> +                        LinkTarget target =
this.linkResolver.resolve(doc, linkUri);
> +                        if (target.exists()) {
> +                            Document targetDocument =
target.getDocument();
>                              String extension =
targetDocument.getExtension();
>                              if (extension.length()
> 0) {
>                                  extension =
"." + extension;
>
> Modified:
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apa
che/lenya/cms/site/usecases/ChangeNodeID.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/
modules-core/sitemanagement/java/src/org/apache/lenya/cms/si
te/usecases/ChangeNodeID.java?view=diff&rev=487598&r
1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apa
che/lenya/cms/site/usecases/ChangeNodeID.java (original)
> +++
lenya/trunk/src/modules-core/sitemanagement/java/src/org/apa
che/lenya/cms/site/usecases/ChangeNodeID.java Fri Dec 15
09:01:14 2006
>  -32,6 +32,7 
>  import org.apache.lenya.cms.site.NodeSet;
>  import org.apache.lenya.cms.site.SiteException;
>  import org.apache.lenya.cms.site.SiteNode;
> +import org.apache.lenya.cms.site.SiteStructure;
>  import org.apache.lenya.cms.site.SiteUtil;
>  import org.apache.lenya.cms.usecase.DocumentUsecase;
>  import org.apache.lenya.cms.usecase.UsecaseException;
>  -127,7 +128,9 
>              addErrorMessage("The document ID is
not valid.");
>          } else {
>              DocumentLocator target =
getTargetLocator();
> -            if (SiteUtil.contains(this.manager,
getDocumentFactory(), target)) {
> +            Publication pub =
getDocumentFactory().getPublication(target.getPublicationId(
));
> +            SiteStructure site =
pub.getArea(target.getArea()).getSite();
> +            if (site.contains(target.getPath(),
target.getLanguage())) {
>                  addErrorMessage("The document
does already exist.");
>              }
>          }
>
> Modified:
lenya/trunk/src/modules-core/templating-impl/java/src/org/ap
ache/lenya/cms/publication/templating/PublicationTemplateMan
agerImpl.java
> URL: http://svn.apache
.org/viewvc/lenya/trunk/src/modules-core/templating-impl/jav
a/src/org/apache/lenya/cms/publication/templating/Publicatio
nTemplateManagerImpl.java?view=diff&rev=487598&r1=48
7597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/modules-core/templating-impl/java/src/org/ap
ache/lenya/cms/publication/templating/PublicationTemplateMan
agerImpl.java (original)
> +++
lenya/trunk/src/modules-core/templating-impl/java/src/org/ap
ache/lenya/cms/publication/templating/PublicationTemplateMan
agerImpl.java Fri Dec 15 09:01:14 2006
>  -28,7 +28,6 
>  import
org.apache.avalon.framework.service.ServiceManager;
>  import
org.apache.avalon.framework.service.ServiceSelector;
>  import
org.apache.avalon.framework.service.Serviceable;
> -import org.apache.excalibur.source.Source;
>  import org.apache.excalibur.source.SourceResolver;
>  import org.apache.lenya.cms.publication.Publication;
>  import
org.apache.lenya.cms.publication.PublicationException;
>  -36,7 +35,8 
>  /**
>   * Manager for publication templates.
>   * 
> - * version $Id$
> + * version $Id: PublicationTemplateManagerImpl.java
474729 2006-11-14 11:07:44Z
> + *          andreas $
>   */
>  public class PublicationTemplateManagerImpl extends
AbstractLogEnabled implements
>          PublicationTemplateManager, Serviceable {
>  -49,7 +49,8 
>  
>      /**
>       * see
org.apache.lenya.cms.publication.templating.PublicationTempl
ateManager#visit(org.apache.lenya.cms.publication.Publicatio
n,
> -     *      java.lang.String,
org.apache.lenya.cms.publication.templating.SourceVisitor)
> +     *      java.lang.String,
> +     *     
org.apache.lenya.cms.publication.templating.SourceVisitor)
>       */
>      public void visit(Publication publication, String
path, SourceVisitor visitor) {
>  
>  -65,18 +66,7 
>                      getLogger().debug("Trying to
resolve URI [" + uri + "]");
>                  }
>  
> -                Source source = null;
> -                try {
> -                    source = resolver.resolveURI(uri);
> -                    visitor.visit(source);
> -                } catch (Exception e) {
> -                    getLogger().error("Could not
resolve URI [" + uri + "]: ", e);
> -                    throw e;
> -                } finally {
> -                    if (source != null) {
> -                        resolver.release(source);
> -                    }
> -                }
> +                visitor.visit(resolver, uri);
>              }
>  
>          } catch (Exception e) {
>  -100,7 +90,8 
>  
>      /**
>       * Returns the publication.
> -     * return A publication. protected
Publication getPublication1() { return this.publication; }
> +     * return A publication. protected
Publication getPublication1() { return
> +     *         this.publication; }
>       */
>  
>      /**
>  -188,7 +179,8 
>  
>      /**
>       * see
org.apache.lenya.cms.publication.templating.PublicationTempl
ateManager#getSelectableHint(org.apache.lenya.cms.publicatio
n.Publication,
> -     *     
org.apache.avalon.framework.service.ServiceSelector,
java.lang.String)
> +     *     
org.apache.avalon.framework.service.ServiceSelector,
> +     *      java.lang.String)
>       */
>      public Object getSelectableHint(Publication
publication, ServiceSelector selector,
>              final String originalHint) throws
ServiceException {
>  -254,8 +246,8 
>          }
>  
>          /**
> -         * return The publication hint that could be
selected or <code>null</code> if no hint
> -         *         could be selected.
> +         * return The publication hint that could be
selected or
> +         *         <code>null</code> if no
hint could be selected.
>           */
>          public Object getSelectableHint() {
>              return this.selectableHint;
>
> Modified:
lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/c
ms/site/tree/DefaultSiteTree.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/site
tree/java/src/org/apache/lenya/cms/site/tree/DefaultSiteTree
.java?view=diff&rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/c
ms/site/tree/DefaultSiteTree.java (original)
> +++
lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/c
ms/site/tree/DefaultSiteTree.java Fri Dec 15 09:01:14 2006
>  -624,4 +624,17 
>          return root;
>      }
>  
> +    public boolean contains(String path, String
language) {
> +        if (contains(path)) {
> +            SiteNode node;
> +            try {
> +                node = getNode(path);
> +            } catch (SiteException e) {
> +                throw new RuntimeException(e);
> +            }
> +            return node.hasLink(language);
> +        }
> +        return false;
> +    }
> +
>  }
>
> Modified:
lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/c
ms/site/tree2/SiteTreeImpl.java
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/sitetr
ee/java/src/org/apache/lenya/cms/site/tree2/SiteTreeImpl.jav
a?view=diff&rev=487598&r1=487597&r2=487598
>
============================================================
==================
> ---
lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/c
ms/site/tree2/SiteTreeImpl.java (original)
> +++
lenya/trunk/src/modules/sitetree/java/src/org/apache/lenya/c
ms/site/tree2/SiteTreeImpl.java Fri Dec 15 09:01:14 2006
>  -382,4 +382,16 
>          parent.moveUp(node.getName());
>      }
>  
> +    public boolean contains(String path, String
language) {
> +        if (contains(path)) {
> +            SiteNode node;
> +            try {
> +                node = getNode(path);
> +            } catch (SiteException e) {
> +                throw new RuntimeException(e);
> +            }
> +            return node.hasLink(language);
> +        }
> +        return false;
> +    }
>  }
>
> Modified: lenya/trunk/src/targets/webapp-build.xml
> URL: http://svn.apache.org/viewvc/lenya/trunk/src/targe
ts/webapp-build.xml?view=diff&rev=487598&r1=487597&a
mp;r2=487598
>
============================================================
==================
> --- lenya/trunk/src/targets/webapp-build.xml (original)
> +++ lenya/trunk/src/targets/webapp-build.xml Fri Dec 15
09:01:14 2006
>  -33,6 +33,19 
>      </antcall>
>    </target>
>  
> +  <target name="compile-impl"
description="compile and deploy core
implementation">
> +    <path id="classpath.impl">
> +      <path refid="classpath"/>
> +      <fileset
dir="${build.webapp}/WEB-INF/lib"
includes="lenya-*-api.jar"/>
> +    </path>
> +    <antcall target="compile-src">
> +      <param name="compile.src.dir"
value="${src.java.impl.dir}"/>
> +      <param name="compile.dest.dir"
value="${build.dir}/impl"/>
> +      <param name="compile.classpath"
value="classpath.impl"/>
> +      <param name="jar.name"
value="impl"/>
> +    </antcall>
> +  </target>
> +  
>    <!-- 
>    This target creates a webapp directory which exactly
mirrors how
>    the war file will look. It is used to create the war
file for
>  -128,19 +141,7 
>      </delete>
>  
>      <antcall target="compile-api"/>
> -    
> -    <path id="classpath.impl">
> -      <path refid="classpath"/>
> -      <fileset
dir="${build.webapp}/WEB-INF/lib"
includes="lenya-*-api.jar"/>
> -    </path>
> -    
> -    <!-- compile core implementation -->
> -    <antcall target="compile-src">
> -      <param name="compile.src.dir"
value="${src.java.impl.dir}"/>
> -      <param name="compile.dest.dir"
value="${build.dir}/impl"/>
> -      <param name="compile.classpath"
value="classpath.impl"/>
> -      <param name="jar.name"
value="impl"/>
> -    </antcall>
> +    <antcall target="compile-impl"/>
>      
>      <!--
>      <antcall target="deploy-modules"/>
>
>
>
>
------------------------------------------------------------
---------
> To unsubscribe, e-mail: commits-unsubscribelenya.apache.org
> For additional commands, e-mail: commits-helplenya.apache.org
>
>
>   


------------------------------------------------------------
---------
To unsubscribe, e-mail: dev-unsubscribelenya.apache.org
For additional commands, e-mail: dev-helplenya.apache.org

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )