Return-Path: Delivered-To: apmail-cocoon-cvs-archive@www.apache.org Received: (qmail 28199 invoked from network); 16 Apr 2008 16:25:27 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 Apr 2008 16:25:27 -0000 Received: (qmail 67203 invoked by uid 500); 16 Apr 2008 16:25:28 -0000 Delivered-To: apmail-cocoon-cvs-archive@cocoon.apache.org Received: (qmail 67154 invoked by uid 500); 16 Apr 2008 16:25:28 -0000 Mailing-List: contact cvs-help@cocoon.apache.org; run by ezmlm Precedence: bulk Reply-To: dev@cocoon.apache.org list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list cvs@cocoon.apache.org Received: (qmail 67143 invoked by uid 99); 16 Apr 2008 16:25:28 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Apr 2008 09:25:28 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 Apr 2008 16:24:34 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 05ADE1A983A; Wed, 16 Apr 2008 09:24:53 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r648736 - in /cocoon/trunk: core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/blockdeployment/ core/cocoon-servlet-service/cocoon-servlet-service-impl/ core/cocoon-servlet-service/cocoon-servlet-service-im... Date: Wed, 16 Apr 2008 16:24:41 -0000 To: cvs@cocoon.apache.org From: reinhard@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080416162453.05ADE1A983A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: reinhard Date: Wed Apr 16 09:24:32 2008 New Revision: 648736 URL: http://svn.apache.org/viewvc?rev=648736&view=rev Log: move resources out of SSF and SpringConfigurator into the appropriate new modules (jnet, block-deployment Added: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-callstack.xml - copied, changed from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-callstack-environment.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-context.xml - copied, changed from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-servletservice-context.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-protocol.xml - copied unchanged from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-protocol-servlet.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-servlet-map.xml - copied, changed from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-block-servlet-map.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-urlhandler-advice.xml - copied, changed from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-url-handler.xml cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLConnection.java (with props) cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandler.java (with props) cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandlerFactory.java (with props) cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockDeploymentServletContextListener.java cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/DeploymentUtil.java - copied unchanged from r648720, cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/blockdeployment/DeploymentUtil.java cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/url/ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/url/ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/cocoon-blockdeployment-protocol.xml (with props) cocoon/trunk/subprojects/cocoon-jnet/src/main/java/org/apache/cocoon/ cocoon/trunk/subprojects/cocoon-jnet/src/main/java/org/apache/cocoon/jnet/ cocoon/trunk/subprojects/cocoon-jnet/src/main/java/org/apache/cocoon/jnet/URLHandlerFactoryCollector.java - copied, changed from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/url/URLHandlerFactoryCollector.java cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/ cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/ cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/ cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/cocoon-jnet-collector.xml (with props) Removed: cocoon/trunk/core/cocoon-configuration/cocoon-spring-configurator/src/main/java/org/apache/cocoon/blockdeployment/ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/url/BlockContextURLConnection.java cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/url/BlockContextURLStreamHandler.java cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/url/BlockContextURLStreamHandlerFactory.java cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/url/URLHandlerFactoryCollector.java cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-callstack-environment.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-protocol-blockcontext.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-protocol-servlet.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-block-servlet-map.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-servletservice-context.xml cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-url-handler.xml cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/blockdeployment/ Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/pom.xml cocoon/trunk/subprojects/cocoon-block-deployment/ (props changed) cocoon/trunk/subprojects/cocoon-block-deployment/pom.xml cocoon/trunk/subprojects/cocoon-jnet/pom.xml Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/pom.xml URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/pom.xml?rev=648736&r1=648735&r2=648736&view=diff ============================================================================== --- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/pom.xml (original) +++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/pom.xml Wed Apr 16 09:24:32 2008 @@ -97,28 +97,6 @@ org.springframework - spring-aop - - - avalon-framework - avalon-framework - - - logkit - logkit - - - - - org.aspectj - aspectjrt - - - org.aspectj - aspectjweaver - - - org.springframework spring-core Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-callstack.xml (from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-callstack-environment.xml) URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-callstack.xml?p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-callstack.xml&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-callstack-environment.xml&r1=648159&r2=648736&rev=648736&view=diff ============================================================================== --- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-callstack-environment.xml (original) +++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-callstack.xml Wed Apr 16 09:24:32 2008 @@ -15,7 +15,7 @@ See the License for the specific language governing permissions and limitations under the License. --> - + - + class="org.apache.cocoon.servletservice.spring.BaseServletContextFactoryBean" scope="call"> + Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-servlet-map.xml (from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-block-servlet-map.xml) URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-servlet-map.xml?p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-servlet-map.xml&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-block-servlet-map.xml&r1=648159&r2=648736&rev=648736&view=diff ============================================================================== --- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-block-servlet-map.xml (original) +++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-servlet-map.xml Wed Apr 16 09:24:32 2008 @@ -15,19 +15,14 @@ See the License for the specific language governing permissions and limitations under the License. --> - - + - + Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-urlhandler-advice.xml (from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-url-handler.xml) URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-urlhandler-advice.xml?p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-urlhandler-advice.xml&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-url-handler.xml&r1=648159&r2=648736&rev=648736&view=diff ============================================================================== --- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-url-handler.xml (original) +++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/spring/cocoon-ssf-urlhandler-advice.xml Wed Apr 16 09:24:32 2008 @@ -21,27 +21,16 @@ - - - - - - - + - - Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Wed Apr 16 09:24:32 2008 @@ -0,0 +1,6 @@ +.externalToolBuilders +.settings +target +.classpath +.project +maven-eclipse.xml Modified: cocoon/trunk/subprojects/cocoon-block-deployment/pom.xml URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-block-deployment/pom.xml?rev=648736&r1=648735&r2=648736&view=diff ============================================================================== --- cocoon/trunk/subprojects/cocoon-block-deployment/pom.xml (original) +++ cocoon/trunk/subprojects/cocoon-block-deployment/pom.xml Wed Apr 16 09:24:32 2008 @@ -33,9 +33,49 @@ cocoon-block-deployment 1.0.0-SNAPSHOT Cocoon: Block Deployment - Deployment utiliities for Cocoon Blocks. + Deployment utilities for Cocoon Blocks. + + commons-io + commons-io + + + commons-logging + commons-logging + + + logkit + logkit + + + avalon-framework + avalon-framework + + + + + org.springframework + spring-core + + + org.springframework + spring-beans + + + org.springframework + spring-context + + + org.springframework + spring-web + + + javax.servlet + servlet-api + provided + + junit Added: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLConnection.java URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLConnection.java?rev=648736&view=auto ============================================================================== --- cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLConnection.java (added) +++ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLConnection.java Wed Apr 16 09:24:32 2008 @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.cocoon.blockdeployment; + +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.net.URLConnection; +import java.util.Map; + +public class BlockContextURLConnection extends URLConnection { + + private URL resolvedPath; + private final Map blockContexts; + + protected BlockContextURLConnection(URL url, Map blockContexts) { + super(url); + this.blockContexts = blockContexts; + this.url = url; + } + + public void connect() throws IOException { + this.getRealPath().openConnection().connect(); + } + + public InputStream getInputStream() throws IOException { + return getRealPath().openStream(); + } + + private URL getRealPath() { + if (this.resolvedPath == null) { + String location = this.url.toExternalForm(); + + // Remove the protocol and the first '/' + int pos = location.indexOf(":/"); + String path = location.substring(pos + 2); + + pos = path.indexOf('/'); + if (pos != -1) { + // extract the block name and get the block context path + String blockName = path.substring(0, pos); + path = path.substring(pos + 1); + String blockContext = (String) this.blockContexts.get(blockName); + + try { + this.resolvedPath = new URL(new URL(blockContext), path); + } catch (MalformedURLException e) { + throw new RuntimeException("Can create URL for '" + blockContext + path + "'.'"); + } + } else { + throw new RuntimeException("The block name part of a block context uri must end with a '/' in " + + location); + } + } + return this.resolvedPath; + } +} Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLConnection.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLConnection.java ------------------------------------------------------------------------------ svn:keywords = Id Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLConnection.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandler.java URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandler.java?rev=648736&view=auto ============================================================================== --- cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandler.java (added) +++ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandler.java Wed Apr 16 09:24:32 2008 @@ -0,0 +1,40 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.cocoon.blockdeployment; + +import java.io.IOException; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLStreamHandler; +import java.util.Map; + + +public class BlockContextURLStreamHandler extends URLStreamHandler { + + private final Map blockContexts; + + public BlockContextURLStreamHandler(Map blockContexts) { + this.blockContexts = blockContexts; + } + + protected URLConnection openConnection(URL url) throws IOException { + return new BlockContextURLConnection(url, this.blockContexts); + } + +} Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandler.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandler.java ------------------------------------------------------------------------------ svn:keywords = Id Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandler.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandlerFactory.java URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandlerFactory.java?rev=648736&view=auto ============================================================================== --- cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandlerFactory.java (added) +++ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandlerFactory.java Wed Apr 16 09:24:32 2008 @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.cocoon.blockdeployment; + +import java.net.URLStreamHandler; +import java.net.URLStreamHandlerFactory; +import java.util.Map; + +import javax.servlet.ServletContext; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.web.context.WebApplicationContext; + +public class BlockContextURLStreamHandlerFactory implements URLStreamHandlerFactory, ApplicationContextAware { + + private Map blockContexts; + + /** + * {@inheritDoc} + * + * @see java.net.URLStreamHandlerFactory#createURLStreamHandler(java.lang.String) + */ + public URLStreamHandler createURLStreamHandler(String protocol) { + if ("blockcontext".equalsIgnoreCase(protocol)) { + return new BlockContextURLStreamHandler(this.blockContexts); + } + + return null; + } + + /** + * {@inheritDoc} + * + * @see org.springframework.context.ApplicationContextAware#setApplicationContext(org.springframework.context.ApplicationContext) + */ + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + WebApplicationContext webApplicationContext = (WebApplicationContext) applicationContext; + ServletContext servletContext = webApplicationContext.getServletContext(); + this.blockContexts = (Map) servletContext.getAttribute(BlockDeploymentServletContextListener.BLOCK_CONTEXT_MAP); + } +} Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandlerFactory.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandlerFactory.java ------------------------------------------------------------------------------ svn:keywords = Id Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockContextURLStreamHandlerFactory.java ------------------------------------------------------------------------------ svn:mime-type = text/plain Added: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockDeploymentServletContextListener.java URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockDeploymentServletContextListener.java?rev=648736&view=auto ============================================================================== --- cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockDeploymentServletContextListener.java (added) +++ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/java/org/apache/cocoon/blockdeployment/BlockDeploymentServletContextListener.java Wed Apr 16 09:24:32 2008 @@ -0,0 +1,59 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.cocoon.blockdeployment; + +import java.io.File; +import java.io.IOException; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + + + +public class BlockDeploymentServletContextListener implements ServletContextListener { + + public static final String BLOCK_CONTEXT_MAP = BlockDeploymentServletContextListener.class.getName() + "/" + + "block-context-map"; + + public void contextInitialized(ServletContextEvent sce) { + try { + ServletContext servletContext = sce.getServletContext(); + + Map blocks = DeploymentUtil.deployBlockArtifacts(this.getWorkdir(servletContext).getAbsolutePath()); + servletContext.setAttribute(BLOCK_CONTEXT_MAP, blocks); + } catch (IOException e) { + throw new RuntimeException("The available Cocoon blocks can't be deployed.", e); + } + } + + public void contextDestroyed(ServletContextEvent sce) { + sce.getServletContext().removeAttribute(BLOCK_CONTEXT_MAP); + } + + private File getWorkdir(ServletContext servletContext) { + File workdir = (File) servletContext.getAttribute("javax.servlet.context.tempdir"); + if (workdir == null) { + workdir = new File("cocoon-files"); + } + + return workdir; + } +} Added: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/cocoon-blockdeployment-protocol.xml URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/cocoon-blockdeployment-protocol.xml?rev=648736&view=auto ============================================================================== --- cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/cocoon-blockdeployment-protocol.xml (added) +++ cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/cocoon-blockdeployment-protocol.xml Wed Apr 16 09:24:32 2008 @@ -0,0 +1,28 @@ + + + + + + + + Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/cocoon-blockdeployment-protocol.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/cocoon-blockdeployment-protocol.xml ------------------------------------------------------------------------------ svn:keywords = Id Propchange: cocoon/trunk/subprojects/cocoon-block-deployment/src/main/resources/META-INF/cocoon/spring/cocoon-blockdeployment-protocol.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml Modified: cocoon/trunk/subprojects/cocoon-jnet/pom.xml URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-jnet/pom.xml?rev=648736&r1=648735&r2=648736&view=diff ============================================================================== --- cocoon/trunk/subprojects/cocoon-jnet/pom.xml (original) +++ cocoon/trunk/subprojects/cocoon-jnet/pom.xml Wed Apr 16 09:24:32 2008 @@ -38,6 +38,37 @@ + org.apache.cocoon + cocoon-spring-configurator + runtime + true + + + org.springframework + spring-aop + + + avalon-framework + avalon-framework + + + logkit + logkit + + + true + + + org.aspectj + aspectjrt + true + + + org.aspectj + aspectjweaver + true + + org.apache.excalibur.components excalibur-sourceresolve true Copied: cocoon/trunk/subprojects/cocoon-jnet/src/main/java/org/apache/cocoon/jnet/URLHandlerFactoryCollector.java (from r648159, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/url/URLHandlerFactoryCollector.java) URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-jnet/src/main/java/org/apache/cocoon/jnet/URLHandlerFactoryCollector.java?p2=cocoon/trunk/subprojects/cocoon-jnet/src/main/java/org/apache/cocoon/jnet/URLHandlerFactoryCollector.java&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/url/URLHandlerFactoryCollector.java&r1=648159&r2=648736&rev=648736&view=diff ============================================================================== --- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/url/URLHandlerFactoryCollector.java (original) +++ cocoon/trunk/subprojects/cocoon-jnet/src/main/java/org/apache/cocoon/jnet/URLHandlerFactoryCollector.java Wed Apr 16 09:24:32 2008 @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.cocoon.url; +package org.apache.cocoon.jnet; import java.net.URLStreamHandlerFactory; import java.util.Collections; @@ -24,7 +24,7 @@ import java.util.Map; import org.apache.excalibur.sourceresolve.jnet.DynamicURLStreamHandlerFactory; -import org.apache.excalibur.sourceresolve.jnet.Installer; +import org.apache.excalibur.sourceresolve.jnet.URLStreamHandlerFactoryInstaller; import org.aspectj.lang.ProceedingJoinPoint; public class URLHandlerFactoryCollector { @@ -36,7 +36,7 @@ public Object installURLHandlers(ProceedingJoinPoint proceedingJoinPoint) throws Throwable { try { if (!this.urlStreamHandlerInstalled) { - Installer.setURLStreamHandlerFactory(new DynamicURLStreamHandlerFactory()); + URLStreamHandlerFactoryInstaller.setURLStreamHandlerFactory(new DynamicURLStreamHandlerFactory()); this.urlStreamHandlerInstalled = true; } Added: cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/cocoon-jnet-collector.xml URL: http://svn.apache.org/viewvc/cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/cocoon-jnet-collector.xml?rev=648736&view=auto ============================================================================== --- cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/cocoon-jnet-collector.xml (added) +++ cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/cocoon-jnet-collector.xml Wed Apr 16 09:24:32 2008 @@ -0,0 +1,34 @@ + + + + + + + + + + + + Propchange: cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/cocoon-jnet-collector.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/cocoon-jnet-collector.xml ------------------------------------------------------------------------------ svn:keywords = Id Propchange: cocoon/trunk/subprojects/cocoon-jnet/src/main/resources/COB-INF/cocoon/spring/cocoon-jnet-collector.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml