You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by da...@apache.org on 2007/01/14 12:31:14 UTC
svn commit: r496063 - in /cocoon/trunk/core/cocoon-servlet-service:
cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/blocks/
cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/servletservice/
cocoon-servlet-service-demo1/src/main/...
Author: danielf
Date: Sun Jan 14 03:31:10 2007
New Revision: 496063
URL: http://svn.apache.org/viewvc?view=rev&rev=496063
Log:
Name changes.
Added:
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/servletservice/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/servletservice/demo1/
- copied from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/blocks/demo1/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo1-servletService.xml
- copied, changed from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo1-blockServlet.xml
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/servletservice/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/servletservice/demo2/
- copied from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/blocks/demo2/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo2-servletService.xml
- copied, changed from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo2-blockServlet.xml
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/CallStack.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DispatcherServlet.java
- copied, changed from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DynamicProxyRequestHandler.java
- copied, changed from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/DynamicProxyRequestHandler.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletConnection.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletService.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletServiceContext.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/
- copied from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/components/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/
- copied from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/shielding/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/
- copied from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/util/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-path-module.xconf
- copied, changed from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-path-module.xconf
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-property-module.xconf
- copied, changed from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-property-module.xconf
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-servlet-source-factory.xconf
- copied, changed from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-source-factory.xconf
Removed:
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/blocks/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo1-blockServlet.xml
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/blocks/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo2-blockServlet.xml
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-path-module.xconf
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-property-module.xconf
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-source-factory.xconf
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/org/
Modified:
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/servletservice/demo1/DemoServlet.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/servletservice/demo2/DemoServlet.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPathModule.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPropertyModule.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSource.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSourceFactory.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldedGroupClassLoaderManager.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingBlockServlet.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingClassLoaderInterceptor.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletRequest.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletResponse.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/RequestParameters.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletConfigurationWrapper.java
cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletContextWrapper.java
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/servletservice/demo1/DemoServlet.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/servletservice/demo1/DemoServlet.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/servletservice/demo1/DemoServlet.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/java/org/apache/cocoon/servletservice/demo1/DemoServlet.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.demo1;
+package org.apache.cocoon.servletservice.demo1;
import java.io.IOException;
import java.io.InputStream;
Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo1-servletService.xml (from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo1-blockServlet.xml)
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo1-servletService.xml?view=diff&rev=496063&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo1-blockServlet.xml&r1=496060&p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo1-servletService.xml&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo1-blockServlet.xml (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo1/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo1-servletService.xml Sun Jan 14 03:31:10 2007
@@ -20,9 +20,9 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean id="org.apache.cocoon.blocks.demo1.block" class="org.apache.cocoon.blocks.BlockServlet">
+ <bean id="org.apache.cocoon.servletervice.demo1.servlet" class="org.apache.cocoon.servletservice.ServletService">
<property name="mountPath" value="/test1"/>
- <property name="servletClass" value="org.apache.cocoon.blocks.demo1.DemoServlet"/>
+ <property name="servletClass" value="org.apache.cocoon.servletservice.demo1.DemoServlet"/>
<property name="properties">
<map>
<entry key="foo" value="baz"/>
@@ -30,7 +30,7 @@
</property>
<property name="connections">
<map>
- <entry key="demo2" value-ref="org.apache.cocoon.blocks.demo2.block"/>
+ <entry key="demo2" value-ref="org.apache.cocoon.servletservice.demo2.servlet"/>
</map>
</property>
</bean>
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/servletservice/demo2/DemoServlet.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/servletservice/demo2/DemoServlet.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/servletservice/demo2/DemoServlet.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/java/org/apache/cocoon/servletservice/demo2/DemoServlet.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.demo2;
+package org.apache.cocoon.servletservice.demo2;
import java.io.IOException;
import java.io.PrintWriter;
Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo2-servletService.xml (from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo2-blockServlet.xml)
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo2-servletService.xml?view=diff&rev=496063&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo2-blockServlet.xml&r1=496060&p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo2-servletService.xml&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-blocks-fw-demo2-blockServlet.xml (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-demo2/src/main/resources/META-INF/cocoon/spring/cocoon-servlet-service-demo2-servletService.xml Sun Jan 14 03:31:10 2007
@@ -20,8 +20,8 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
- <bean id="org.apache.cocoon.blocks.demo2.block" class="org.apache.cocoon.blocks.BlockServlet">
+ <bean id="org.apache.cocoon.servletservice.demo2.servlet" class="org.apache.cocoon.servletservice.ServletService">
<property name="mountPath" value="/test2"/>
- <property name="servletClass" value="org.apache.cocoon.blocks.demo2.DemoServlet"/>
+ <property name="servletClass" value="org.apache.cocoon.servletservice.demo2.DemoServlet"/>
</bean>
</beans>
Added: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/CallStack.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/CallStack.java?view=auto&rev=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/CallStack.java (added)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/CallStack.java Sun Jan 14 03:31:10 2007
@@ -0,0 +1,126 @@
+/*
+ * 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.servletservice;
+
+import java.util.Stack;
+
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+/**
+ * Stack used for geting hold on the current block servlet
+ *
+ * @version $Id: BlockCallStack.java 496060 2007-01-14 11:03:06Z danielf $
+ * @since 2.2
+ */
+public class CallStack {
+
+ /** The block stack */
+ private static final ThreadLocal blockStack = new ThreadLocal();
+
+ /** Keep track on if it is an ordinary or a super call */
+ private static class BlockCallStackInfo {
+ public BlockCallStackInfo(ServletContext servletContext, boolean superCall) {
+ this.servletContext = servletContext;
+ this.superCall = superCall;
+ }
+ public ServletContext servletContext;
+ public boolean superCall;
+ };
+
+ /**
+ * This hook must be called each time a block is entered.
+ *
+ * <p>This method should never raise an exception, except when the
+ * parameters are not set!</p>
+ *
+ * @throws ServletException if block is null
+ */
+ public static void enterBlock(ServletContext context)
+ throws ServletException {
+ enterBlock(context, false);
+ }
+
+ /**
+ * This hook must be called each time a super block is entered.
+ *
+ * <p>This method should never raise an exception, except when the
+ * parameters are not set!</p>
+ *
+ * @throws ServletException if block is null
+ */
+ public static void enterSuperBlock(ServletContext context)
+ throws ServletException {
+ enterBlock(context, true);
+ }
+
+ private static void enterBlock(ServletContext context, boolean superCall)
+ throws ServletException {
+ if (null == context) {
+ throw new ServletException("Block is not set.");
+ }
+
+ Stack stack = (Stack)blockStack.get();
+ if (stack == null) {
+ stack = new Stack();
+ blockStack.set(stack);
+ }
+ BlockCallStackInfo info = new BlockCallStackInfo(context, superCall);
+ stack.push(info);
+ }
+
+ /**
+ * This hook must be called each time a block is left.
+ *
+ * <p>It's the counterpart to the {@link #enterBlock(Block)}
+ * method.</p>
+ */
+ public static void leaveBlock() {
+ final Stack stack = (Stack)blockStack.get();
+ stack.pop();
+ }
+
+ /**
+ * Use this method for getting the context that should be used for
+ * resolving a polymorphic block protocol call
+ * @return a servlet context
+ */
+ public static ServletContext getBaseBlockContext() {
+ final Stack stack = (Stack)blockStack.get();
+ if (stack != null) {
+ for(int i = stack.size() - 1; i >= 0; i--) {
+ BlockCallStackInfo info = (BlockCallStackInfo) stack.elementAt(i);
+ if (!info.superCall)
+ return info.servletContext;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Use this method for getting the context that should be used for
+ * resolving a block protocol call to a super block
+ * @return a servlet context
+ */
+ public static ServletContext getCurrentBlockContext() {
+ final Stack stack = (Stack)blockStack.get();
+ if (stack != null && !stack.isEmpty()) {
+ return ((BlockCallStackInfo)stack.peek()).servletContext;
+ }
+ return null;
+ }
+}
Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DispatcherServlet.java (from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DispatcherServlet.java?view=diff&rev=496063&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java&r1=496060&p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DispatcherServlet.java&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/DispatcherServlet.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DispatcherServlet.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks;
+package org.apache.cocoon.servletservice;
import java.io.IOException;
import java.lang.reflect.Proxy;
Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DynamicProxyRequestHandler.java (from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/DynamicProxyRequestHandler.java)
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DynamicProxyRequestHandler.java?view=diff&rev=496063&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/DynamicProxyRequestHandler.java&r1=496060&p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DynamicProxyRequestHandler.java&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/blocks/DynamicProxyRequestHandler.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/DynamicProxyRequestHandler.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks;
+package org.apache.cocoon.servletservice;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
Added: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletConnection.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletConnection.java?view=auto&rev=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletConnection.java (added)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletConnection.java Sun Jan 14 03:31:10 2007
@@ -0,0 +1,156 @@
+/*
+ * 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.servletservice;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URLConnection;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.cocoon.CascadingIOException;
+import org.apache.cocoon.servletservice.util.BlockCallHttpServletRequest;
+import org.apache.cocoon.servletservice.util.BlockCallHttpServletResponse;
+
+/**
+ * Implementation of a {@link URLConnection} that gets its content by
+ * invoking the Block.
+ *
+ * TODO Plenty of work left to have a meaningfull implementation of all methods
+ *
+ * @version $Id: BlockConnection.java 496060 2007-01-14 11:03:06Z danielf $
+ */
+public final class ServletConnection {
+
+ /** Wrapped request */
+ private BlockCallHttpServletRequest request;
+
+ /** Wrapped response */
+ private BlockCallHttpServletResponse response;
+
+ /** The name of the called block */
+ private String blockName;
+
+ /** The current block context */
+ private final ServletContext context;
+
+ private String systemId;
+
+ private Logger logger;
+
+ /**
+ * Construct a new object
+ */
+ public ServletConnection(String url, Logger logger)
+ throws MalformedURLException {
+
+ this.logger = logger;
+
+ URI blockURI = null;
+ try {
+ blockURI = parseBlockURI(new URI(url.toString()));
+ } catch (URISyntaxException e) {
+ throw new MalformedURLException("Malformed URI in block source " +
+ e.getMessage());
+ }
+
+ // Super calls are resolved relative the current context and ordinary
+ // calls relative the last non super call in the call chain
+ if (ServletServiceContext.SUPER.equals(this.blockName))
+ this.context = CallStack.getCurrentBlockContext();
+ else
+ this.context = CallStack.getBaseBlockContext();
+
+ if (this.context == null)
+ throw new MalformedURLException("Must be used in a block context " + url);
+
+ this.request = new BlockCallHttpServletRequest(blockURI);
+ this.response = new BlockCallHttpServletResponse();
+ }
+
+ public void connect() throws IOException {}
+
+ /**
+ * Return an <code>InputStream</code> object to read from the source.
+ */
+ public InputStream getInputStream() throws IOException {
+
+ ByteArrayOutputStream os = new ByteArrayOutputStream();
+ this.response.setOutputStream(os);
+ RequestDispatcher dispatcher = null;
+
+ try {
+ if (this.blockName == null) {
+ // FIXME Should be called with path + queryString,
+ // but the argument is ignored so it doesn't matter
+ dispatcher = this.context.getRequestDispatcher(this.systemId);
+ } else {
+ dispatcher = this.context.getNamedDispatcher(this.blockName);
+ }
+ if (dispatcher == null)
+ throw new ServletException("No dispatcher for " + this.systemId);
+ dispatcher.forward(this.request, this.response);
+ this.response.flushBuffer();
+
+ byte[] out = os.toByteArray();
+
+ return new ByteArrayInputStream(out);
+ } catch (ServletException e) {
+ throw new CascadingIOException("BlockConnection " + e.getMessage(), e);
+ } finally {
+ os.close();
+ }
+ }
+
+ protected final Logger getLogger() {
+ return this.logger;
+ }
+
+ // Parse the block protocol.
+ private URI parseBlockURI(URI uri) throws URISyntaxException {
+ // Can't happen
+ if (!uri.isAbsolute()) {
+ throw new URISyntaxException(uri.toString(),
+ "Only absolute URIs are allowed for the block protocol.");
+ }
+ String scheme = uri.getScheme();
+
+ this.logger.debug("BlockSource: resolving " + uri.toString() + " with scheme " +
+ uri.getScheme() + " and ssp " + uri.getRawSchemeSpecificPart());
+ uri = new URI(uri.getRawSchemeSpecificPart());
+ this.logger.debug("BlockSource: resolved to " + uri.toString());
+
+ this.blockName = uri.getScheme();
+ String path = uri.getPath();
+ // All URIs, also relative are resolved and processed from the block manager
+ String queryString = uri.getQuery();
+
+ // FIXME: This will not be a system global id, as the blockName is block local.
+ String ssp = (new URI(this.blockName, null, path, queryString, null)).toString();
+ this.systemId = (new URI(scheme, ssp, null)).toString();
+
+ return new URI(scheme, null, path, queryString, null);
+ }
+}
Added: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletService.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletService.java?view=auto&rev=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletService.java (added)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletService.java Sun Jan 14 03:31:10 2007
@@ -0,0 +1,205 @@
+/*
+ * 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.servletservice;
+
+import java.io.IOException;
+import java.util.Enumeration;
+import java.util.Map;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.Servlet;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.cocoon.servletservice.util.ServletConfigurationWrapper;
+import org.springframework.beans.BeansException;
+import org.springframework.beans.factory.BeanNameAware;
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.web.context.ServletContextAware;
+import org.springframework.web.context.WebApplicationContext;
+import org.springframework.web.context.support.GenericWebApplicationContext;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+/**
+ * @version $Id: BlockServlet.java 496060 2007-01-14 11:03:06Z danielf $
+ */
+public class ServletService extends HttpServlet
+ implements ApplicationContextAware, ServletContextAware, BeanNameAware, InitializingBean, DisposableBean {
+
+ private ServletServiceContext blockContext;
+ private String embeddedServletClass;
+ private Servlet embeddedServlet;
+ private ServletContext servletContext;
+ private String beanName;
+ private ApplicationContext parentContainer;
+
+ public ServletService() {
+ this.blockContext = new ServletServiceContext();
+ }
+
+ /* (non-Javadoc)
+ * @see javax.servlet.GenericServlet#init(javax.servlet.ServletConfig)
+ */
+ public void init(ServletConfig servletConfig) throws ServletException {
+ super.init(servletConfig);
+ this.blockContext.setServletContext(servletConfig.getServletContext());
+
+ // create a sub container that resolves paths relative to the block
+ // context rather than the parent context and make it available in
+ // a context attribute
+ if (this.parentContainer == null)
+ this.parentContainer =
+ WebApplicationContextUtils.getRequiredWebApplicationContext(servletConfig.getServletContext());
+ GenericWebApplicationContext container = new GenericWebApplicationContext();
+ container.setParent(this.parentContainer);
+ container.setServletContext(this.blockContext);
+ container.refresh();
+ this.blockContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, container);
+
+ // create a servlet config based on the block servlet context
+ ServletConfig blockServletConfig =
+ new ServletConfigurationWrapper(servletConfig, this.blockContext) {
+
+ // FIXME: The context should get the init parameters from the
+ // config rather than the oposite way around.
+ public String getInitParameter(String name) {
+ return super.getServletContext().getInitParameter(name);
+ }
+
+ public Enumeration getInitParameterNames() {
+ return super.getServletContext().getInitParameterNames();
+ }
+ };
+
+ // create and initialize the embeded servlet
+ this.embeddedServlet = createEmbeddedServlet(this.embeddedServletClass, blockServletConfig);
+ this.embeddedServlet.init(blockServletConfig);
+ this.blockContext.setServlet(this.embeddedServlet);
+ }
+
+ /**
+ * Creates and initializes the embedded servlet
+ * @param string
+ * @throws ServletException
+ */
+ protected Servlet createEmbeddedServlet(String embeddedServletClassName, ServletConfig servletConfig)
+ throws ServletException {
+ try {
+ return (Servlet) this.getClass().getClassLoader().loadClass(embeddedServletClassName).newInstance();
+ } catch (Exception e) {
+ throw new ServletException("Loading class for embedded servlet failed " + embeddedServletClassName, e);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see javax.servlet.http.HttpServlet#service(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
+ */
+ protected void service(HttpServletRequest request, HttpServletResponse response)
+ throws ServletException, IOException {
+ RequestDispatcher dispatcher =
+ this.blockContext.getRequestDispatcher(request.getPathInfo());
+ dispatcher.forward(request, response);
+ }
+
+ public void destroy() {
+ this.embeddedServlet.destroy();
+ super.destroy();
+ }
+
+ /**
+ * @return the blockContext
+ */
+ public ServletServiceContext getBlockContext() {
+ return this.blockContext;
+ }
+
+ public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
+ this.parentContainer = applicationContext;
+ }
+
+ public void setServletContext(ServletContext servletContext) {
+ this.servletContext = servletContext;
+ }
+
+ public void setBeanName(String beanName) {
+ this.beanName = beanName;
+ }
+
+ public void setMountPath(String mountPath) {
+ this.blockContext.setMountPath(mountPath);
+ }
+
+ public String getMountPath() {
+ return this.blockContext.getMountPath();
+ }
+
+ /**
+ * The path to the blocks resources relative to the servlet context URL,
+ * must start with an '/'.
+ * @param blockContextURL
+ */
+ // FIXME: would like to throw an exeption if the form of the url is faulty,
+ // what is the prefered way of handling faulty properties in Spring?
+ public void setBlockContextURL(String blockContextURL) {
+ this.blockContext.setBlockContextURL(blockContextURL);
+ }
+
+ public void setServletClass(String servletClass) {
+ this.embeddedServletClass = servletClass;
+ }
+
+ public void setProperties(Map properties) {
+ this.blockContext.setProperties(properties);
+ }
+
+ public void setConnections(Map connections) {
+ this.blockContext.setConnections(connections);
+ }
+
+ public void afterPropertiesSet() throws Exception {
+
+ // Create a servlet config object based on the servlet context
+ // from the webapp container
+ ServletConfig servletConfig = new ServletConfig() {
+
+ public String getInitParameter(String parameter) {
+ return ServletService.this.servletContext.getInitParameter(parameter);
+ }
+
+ public Enumeration getInitParameterNames() {
+ return ServletService.this.servletContext.getInitParameterNames();
+ }
+
+ public ServletContext getServletContext() {
+ return ServletService.this.servletContext;
+ }
+
+ public String getServletName() {
+ return ServletService.this.beanName;
+ }
+
+ };
+ this.init(servletConfig);
+ }
+}
Added: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletServiceContext.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletServiceContext.java?view=auto&rev=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletServiceContext.java (added)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/ServletServiceContext.java Sun Jan 14 03:31:10 2007
@@ -0,0 +1,542 @@
+/*
+ * 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.servletservice;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Set;
+import java.util.Vector;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.Servlet;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.cocoon.servletservice.util.ServletContextWrapper;
+import org.apache.excalibur.source.Source;
+import org.apache.excalibur.source.SourceResolver;
+import org.springframework.beans.factory.BeanFactory;
+import org.springframework.web.context.support.WebApplicationContextUtils;
+
+/**
+ * @version $Id: BlockContext.java 496060 2007-01-14 11:03:06Z danielf $
+ */
+public class ServletServiceContext extends ServletContextWrapper {
+
+ public static final String SUPER = "super";
+
+ private Hashtable attributes = new Hashtable();
+ private Servlet servlet;
+ private String mountPath;
+ private String blockContextURL;
+ private Map properties;
+ private Map connections;
+
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getAttribute(java.lang.String)
+ */
+ /*
+ * TODO ineritance of attributes from the parent context is only
+ * partly implemented: removeAttribute and getAttributeNames
+ * doesn't respect inheritance yet.
+ */
+ public Object getAttribute(String name) {
+ Object value = this.attributes.get(name);
+ return value != null ? value : super.getAttribute(name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#setAttribute(java.lang.String,
+ * java.lang.Object)
+ */
+ public void setAttribute(String name, Object value) {
+ this.attributes.put(name, value);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#removeAttribute(java.lang.String)
+ */
+ public void removeAttribute(String name) {
+ this.attributes.remove(name);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getAttributeNames()
+ */
+ public Enumeration getAttributeNames() {
+ return this.attributes.keys();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getResource(java.lang.String)
+ */
+ public URL getResource(String path) throws MalformedURLException {
+ // hack for getting a file protocol or other protocols that can be used as context
+ // path in the getResource method in the servlet context
+ if (!(blockContextURL.startsWith("file:") || blockContextURL.startsWith("/")
+ || blockContextURL.indexOf(':') == -1)) {
+ SourceResolver resolver = null;
+ Source source = null;
+ try {
+ BeanFactory factory = WebApplicationContextUtils.getRequiredWebApplicationContext(this);
+ resolver = (SourceResolver) factory.getBean(SourceResolver.ROLE);
+ source = resolver.resolveURI(blockContextURL);
+ blockContextURL = source.getURI();
+ } catch (IOException e) {
+ throw new MalformedURLException("Could not resolve " + blockContextURL);
+ } finally {
+ if (resolver != null)
+ resolver.release(source);
+ }
+ }
+
+ // HACK: allow file:/ URLs for reloading of sitemaps during development
+ if (this.blockContextURL.startsWith("file:")) {
+ return new URL("file", null, this.blockContextURL.substring("file:".length()) + path);
+ } else {
+ if (this.blockContextURL.length() != 0 && this.blockContextURL.charAt(0) != '/')
+ throw new MalformedURLException("The blockContextURL must be empty or start with '/' "
+ + this.blockContextURL);
+
+ // prefix the path with the block context resolve and resolve in the embeding
+ // servlet context
+ return super.getResource(this.blockContextURL + path);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getRealPath(java.lang.String)
+ */
+ public String getRealPath(String path) {
+ // We better don't assume that blocks are unpacked
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getInitParameter(java.lang.String)
+ */
+ // FIXME, this should be defined in the config instead
+ public String getInitParameter(String name) {
+ if (this.properties == null)
+ return null;
+ String value = (String) this.properties.get(name);
+ // Ask the super block for the property
+ if (value == null) {
+ ServletContext superContext = this.getNamedContext(SUPER);
+ if (superContext != null)
+ value = superContext.getInitParameter(name);
+ }
+ // Ask the parent context
+ if (value == null) {
+ super.getInitParameter(name);
+ }
+ return value;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getInitParameterNames()
+ */
+ public Enumeration getInitParameterNames() {
+ Vector names = new Vector();
+
+ // add all names of the parent servlet context
+ Enumeration enumeration = super.getInitParameterNames();
+ while (enumeration.hasMoreElements()) {
+ names.add(enumeration.nextElement());
+ }
+
+ // add names of the super block
+ ServletContext superContext = this.getNamedContext(SUPER);
+ if (superContext != null) {
+ enumeration = superContext.getInitParameterNames();
+ while (enumeration.hasMoreElements()) {
+ names.add(enumeration.nextElement());
+ }
+ }
+
+ // add property names of this block
+ if (this.properties != null) {
+ names.addAll(this.properties.keySet());
+ }
+
+ return names.elements();
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getResourceAsStream(java.lang.String)
+ */
+ public InputStream getResourceAsStream(String path) {
+ try {
+ return this.getResource(path).openStream();
+ } catch (IOException e) {
+ // FIXME Error handling
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getContext(java.lang.String)
+ */
+ public ServletContext getContext(String uripath) {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getMajorVersion()
+ */
+ public int getMajorVersion() {
+ return 2;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getMinorVersion()
+ */
+ public int getMinorVersion() {
+ return 3;
+ }
+
+ private Collection getDirectoryList(File file, String pathPrefix) {
+ ArrayList filenames = new ArrayList();
+
+ if (!file.isDirectory()) {
+ filenames.add("/" + file.toString().substring(pathPrefix.length()-1));
+ return filenames;
+ }
+
+ File[] files = file.listFiles();
+
+ for (int i = 0; i < files.length; i++) {
+ File subfile = files[i];
+ filenames.addAll(getDirectoryList(subfile, pathPrefix));
+ }
+
+ return filenames;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getResourcePaths(java.lang.String)
+ */
+ public Set getResourcePaths(String path) {
+ String pathPrefix;
+ if (this.blockContextURL.startsWith("file:")) {
+ pathPrefix = this.blockContextURL.substring("file:".length());
+ } else {
+ pathPrefix = this.blockContextURL;
+ }
+
+ path = pathPrefix + path;
+
+ if (path == null) {
+ return Collections.EMPTY_SET;
+ }
+
+ File file = new File(path);
+
+ if (!file.exists()) {
+ return Collections.EMPTY_SET;
+ }
+
+ HashSet set = new HashSet();
+ set.addAll(getDirectoryList(file, pathPrefix));
+
+ return set;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getRequestDispatcher(java.lang.String)
+ */
+ public RequestDispatcher getRequestDispatcher(String path) {
+ PathDispatcher dispatcher = new PathDispatcher(path);
+ return dispatcher.exists() ? dispatcher : null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getNamedDispatcher(java.lang.String)
+ */
+ public RequestDispatcher getNamedDispatcher(String name) {
+ NamedDispatcher dispatcher = new NamedDispatcher(name);
+ return dispatcher.exists() ? dispatcher : null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getServerInfo()
+ */
+ public String getServerInfo() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.ServletContext#getServletContextName()
+ */
+ public String getServletContextName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ // Block specific methods
+
+ /**
+ * Set the servlet of the block
+ * @param servlet
+ */
+ public void setServlet(Servlet servlet) {
+ this.servlet = servlet;
+ }
+
+ /**
+ * Takes the scheme specific part of a block URI (the scheme is the
+ * responsibilty of the BlockSource) and resolve it with respect to the
+ * blocks mount point.
+ */
+ public URI absolutizeURI(URI uri) throws URISyntaxException {
+ String blockName = uri.getScheme();
+ ServletServiceContext blockContext;
+ if (blockName == null) {
+ // this block
+ blockContext = this;
+ } else {
+ // another block
+ blockContext = (ServletServiceContext) this.getNamedContext(blockName);
+ if (blockContext == null)
+ throw new URISyntaxException(uri.toString(), "Unknown block name");
+ }
+
+ String mountPath = blockContext.getMountPath();
+ if (mountPath == null)
+ throw new URISyntaxException(uri.toString(),
+ "No mount point for this URI");
+ if (mountPath.endsWith("/"))
+ mountPath = mountPath.substring(0, mountPath.length() - 1);
+ String absoluteURI = mountPath + uri.getSchemeSpecificPart();
+ log("Resolving " + uri.toString() + " to " + absoluteURI);
+ return new URI(absoluteURI);
+ }
+
+ /**
+ * Get the context of a block with a given name.
+ */
+ // FIXME implement NPE handling
+ public ServletContext getNamedContext(String name) {
+ if (this.connections == null) {
+ return null;
+ }
+
+ ServletService blockServlet =
+ (ServletService) this.connections.get(name);
+ return blockServlet != null ? blockServlet.getBlockContext() : null;
+ }
+
+ /**
+ * @param mountPath The mountPath to set.
+ */
+ public void setMountPath(String mountPath) {
+ this.mountPath = mountPath;
+ }
+
+ /**
+ * Get the mount path of the block context
+ */
+ public String getMountPath() {
+ return this.mountPath;
+ }
+
+ /**
+ * @param blockContextURL the blockContextURL to set
+ */
+ public void setBlockContextURL(String blockContextURL) {
+ this.blockContextURL = blockContextURL;
+ }
+
+ /**
+ * @param properties The properties to set.
+ */
+ public void setProperties(Map properties) {
+ this.properties = properties;
+ }
+
+ /**
+ * @param connections the connections to set
+ */
+ public void setConnections(Map connections) {
+ this.connections = connections;
+ }
+
+ protected class NamedDispatcher implements RequestDispatcher {
+
+ private String blockName;
+ private boolean superCall = false;
+ private ServletContext context;
+
+ public NamedDispatcher(String blockName) {
+ this.blockName = blockName;
+ this.superCall = SUPER.equals(this.blockName);
+
+ // Call to a named block that exists in the current context
+ this.context = ServletServiceContext.this.getNamedContext(this.blockName);
+ if (this.context == null) {
+ // If there is a super block, the connection might
+ // be defined there instead.
+ ServletServiceContext superContext =
+ (ServletServiceContext) ServletServiceContext.this.getNamedContext(SUPER);
+ if (superContext != null) {
+ this.context = superContext.getNamedContext(this.blockName);
+ this.superCall = true;
+ }
+ }
+ }
+
+ protected boolean exists() {
+ return this.context != null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.RequestDispatcher#forward(javax.servlet.ServletRequest,
+ * javax.servlet.ServletResponse)
+ */
+ public void forward(ServletRequest request, ServletResponse response)
+ throws ServletException, IOException {
+ // Call to named block
+
+ ServletServiceContext.this.log("Enter processing in block " + this.blockName);
+ RequestDispatcher dispatcher =
+ this.context.getRequestDispatcher(((HttpServletRequest)request).getPathInfo());
+ if (dispatcher != null && dispatcher instanceof PathDispatcher) {
+ ((PathDispatcher)dispatcher).forward(request, response, this.superCall);
+ } else {
+ // Cannot happen
+ throw new IllegalStateException();
+ }
+ ServletServiceContext.this.log("Leaving processing in block " + this.blockName);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.servlet.RequestDispatcher#include(javax.servlet.ServletRequest,
+ * javax.servlet.ServletResponse)
+ */
+ public void include(ServletRequest request, ServletResponse response)
+ throws ServletException, IOException {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ /**
+ * Limited functionality, assumes that there is at most one servlet in the block
+ */
+ private class PathDispatcher implements RequestDispatcher {
+
+ // Ignores path, as the assumed only servlet within the block is
+ // implicitly mounted on '/*'
+ private PathDispatcher(String path) {
+ }
+
+ private boolean exists() {
+ return ServletServiceContext.this.servlet != null;
+ }
+
+ /* (non-Javadoc)
+ * @see javax.servlet.RequestDispatcher#forward(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
+ */
+ public void forward(ServletRequest request, ServletResponse response)
+ throws ServletException, IOException {
+ this.forward(request, response, false);
+ }
+
+ protected void forward(ServletRequest request, ServletResponse response, boolean superCall)
+ throws ServletException, IOException {
+ try {
+ if (!superCall) {
+ // It is important to set the current block each time
+ // a new block is entered, this is used for the block
+ // protocol
+ CallStack.enterBlock(ServletServiceContext.this);
+ } else {
+ // A super block should be called in the context of
+ // the called block to get polymorphic calls resolved
+ // in the right way. We still need to register the
+ // current context for resolving super calls relative it.
+ CallStack.enterSuperBlock(ServletServiceContext.this);
+ }
+ ServletServiceContext.this.servlet.service(request, response);
+ } finally {
+ CallStack.leaveBlock();
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see javax.servlet.RequestDispatcher#include(javax.servlet.ServletRequest, javax.servlet.ServletResponse)
+ */
+ public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException {
+ throw new UnsupportedOperationException();
+ }
+ }
+}
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPathModule.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPathModule.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPathModule.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPathModule.java Sun Jan 14 03:31:10 2007
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.cocoon.blocks.components;
+package org.apache.cocoon.servletservice.components;
import java.net.URI;
import java.net.URISyntaxException;
@@ -25,11 +25,11 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.cocoon.blocks.BlockContext;
import org.apache.cocoon.environment.Environment;
-import org.apache.cocoon.blocks.BlockCallStack;
import org.apache.cocoon.components.modules.input.InputModule;
import org.apache.cocoon.environment.internal.EnvironmentHelper;
+import org.apache.cocoon.servletservice.CallStack;
+import org.apache.cocoon.servletservice.ServletServiceContext;
/**
* BlockPathModule returns the absolute path of a block protocol path.
@@ -41,7 +41,7 @@
public Object getAttribute( String name, Configuration modeConf, Map objectModel )
throws ConfigurationException {
Environment env = EnvironmentHelper.getCurrentEnvironment();
- BlockContext blockContext = (BlockContext) BlockCallStack.getBaseBlockContext();
+ ServletServiceContext blockContext = (ServletServiceContext) CallStack.getBaseBlockContext();
String absoluteURI = null;
/* No relative block paths yet
String baseURI = env.getURIPrefix();
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPropertyModule.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPropertyModule.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPropertyModule.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockPropertyModule.java Sun Jan 14 03:31:10 2007
@@ -15,7 +15,7 @@
* limitations under the License.
*/
-package org.apache.cocoon.blocks.components;
+package org.apache.cocoon.servletservice.components;
import java.util.Iterator;
import java.util.Map;
@@ -23,8 +23,8 @@
import org.apache.avalon.framework.configuration.Configuration;
import org.apache.avalon.framework.configuration.ConfigurationException;
import org.apache.avalon.framework.thread.ThreadSafe;
-import org.apache.cocoon.blocks.BlockCallStack;
import org.apache.cocoon.components.modules.input.InputModule;
+import org.apache.cocoon.servletservice.CallStack;
/**
* BlockPropertyModule provides access to the properties of the current block.
@@ -35,7 +35,7 @@
public Object getAttribute( String name, Configuration modeConf, Map objectModel )
throws ConfigurationException {
- return BlockCallStack.getBaseBlockContext().getInitParameter(name);
+ return CallStack.getBaseBlockContext().getInitParameter(name);
}
public Object[] getAttributeValues(String name, Configuration modeConf, Map objectModel)
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSource.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSource.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSource.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSource.java Sun Jan 14 03:31:10 2007
@@ -14,13 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.components;
+package org.apache.cocoon.servletservice.components;
import java.io.IOException;
import java.io.InputStream;
import org.apache.avalon.framework.logger.Logger;
-import org.apache.cocoon.blocks.BlockConnection;
+import org.apache.cocoon.servletservice.ServletConnection;
import org.apache.excalibur.source.Source;
import org.apache.excalibur.source.SourceException;
import org.apache.excalibur.source.impl.AbstractSource;
@@ -33,14 +33,14 @@
*/
public class BlockSource extends AbstractSource {
- private BlockConnection blockConnection;
+ private ServletConnection blockConnection;
public BlockSource(String location, Logger logger) throws IOException {
// the systemId (returned by getURI()) is by default null
// using the block uri is a little bit questionable as it only is valid
// whithin the current block, not globally
setSystemId(location);
- this.blockConnection = new BlockConnection(location, logger);
+ this.blockConnection = new ServletConnection(location, logger);
this.blockConnection.connect();
}
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSourceFactory.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSourceFactory.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSourceFactory.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/components/BlockSourceFactory.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.components;
+package org.apache.cocoon.servletservice.components;
import java.io.IOException;
import java.net.MalformedURLException;
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldedGroupClassLoaderManager.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldedGroupClassLoaderManager.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldedGroupClassLoaderManager.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldedGroupClassLoaderManager.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.shielding;
+package org.apache.cocoon.servletservice.shielding;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingBlockServlet.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingBlockServlet.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingBlockServlet.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingBlockServlet.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.shielding;
+package org.apache.cocoon.servletservice.shielding;
import java.util.HashMap;
import java.util.Map;
@@ -23,14 +23,14 @@
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
-import org.apache.cocoon.blocks.BlockServlet;
+import org.apache.cocoon.servletservice.ServletService;
import org.springframework.aop.framework.ProxyFactory;
/**
* A servlet for use in cocoon blocks that adds shielded classloading support.
*/
-public class ShieldingBlockServlet extends BlockServlet {
+public class ShieldingBlockServlet extends ServletService {
/**
* Spring property, name of the group that will get the same classloader.
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingClassLoaderInterceptor.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingClassLoaderInterceptor.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingClassLoaderInterceptor.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/shielding/ShieldingClassLoaderInterceptor.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.shielding;
+package org.apache.cocoon.servletservice.shielding;
import org.aopalliance.intercept.MethodInterceptor;
import org.aopalliance.intercept.MethodInvocation;
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletRequest.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletRequest.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletRequest.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletRequest.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.util;
+package org.apache.cocoon.servletservice.util;
import java.io.BufferedReader;
import java.io.IOException;
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletResponse.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletResponse.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletResponse.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/BlockCallHttpServletResponse.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.util;
+package org.apache.cocoon.servletservice.util;
import java.io.IOException;
import java.io.OutputStream;
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/RequestParameters.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/RequestParameters.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/RequestParameters.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/RequestParameters.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.util;
+package org.apache.cocoon.servletservice.util;
import java.io.Serializable;
import java.util.ArrayList;
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletConfigurationWrapper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletConfigurationWrapper.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletConfigurationWrapper.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletConfigurationWrapper.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.util;
+package org.apache.cocoon.servletservice.util;
import java.util.Enumeration;
Modified: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletContextWrapper.java
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletContextWrapper.java?view=diff&rev=496063&r1=496060&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletContextWrapper.java (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/java/org/apache/cocoon/servletservice/util/ServletContextWrapper.java Sun Jan 14 03:31:10 2007
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.cocoon.blocks.util;
+package org.apache.cocoon.servletservice.util;
import java.io.InputStream;
import java.net.MalformedURLException;
Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-path-module.xconf (from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-path-module.xconf)
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-path-module.xconf?view=diff&rev=496063&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-path-module.xconf&r1=496060&p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-path-module.xconf&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-path-module.xconf (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-path-module.xconf Sun Jan 14 03:31:10 2007
@@ -19,7 +19,7 @@
<components>
<input-modules>
- <component-instance name="block-path" class="org.apache.cocoon.blocks.components.BlockPathModule" />
+ <component-instance name="block-path" class="org.apache.cocoon.servletservice.components.BlockPathModule" />
</input-modules>
</components>
Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-property-module.xconf (from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-property-module.xconf)
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-property-module.xconf?view=diff&rev=496063&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-property-module.xconf&r1=496060&p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-property-module.xconf&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-property-module.xconf (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-block-property-module.xconf Sun Jan 14 03:31:10 2007
@@ -19,7 +19,7 @@
<components>
<input-modules>
- <component-instance name="block-property" class="org.apache.cocoon.blocks.components.BlockPropertyModule" />
+ <component-instance name="block-property" class="org.apache.cocoon.servletservice.components.BlockPropertyModule" />
</input-modules>
</components>
Copied: cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-servlet-source-factory.xconf (from r496060, cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-source-factory.xconf)
URL: http://svn.apache.org/viewvc/cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-servlet-source-factory.xconf?view=diff&rev=496063&p1=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-source-factory.xconf&r1=496060&p2=cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-servlet-source-factory.xconf&r2=496063
==============================================================================
--- cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-blocks-fw-block-source-factory.xconf (original)
+++ cocoon/trunk/core/cocoon-servlet-service/cocoon-servlet-service-impl/src/main/resources/META-INF/cocoon/avalon/cocoon-servlet-service-servlet-source-factory.xconf Sun Jan 14 03:31:10 2007
@@ -24,7 +24,7 @@
| Each source factory adds a special uri schemes to the system.
+-->
<source-factories>
- <component-instance name="block" class="org.apache.cocoon.blocks.components.BlockSourceFactory"/>
+ <component-instance name="block" class="org.apache.cocoon.servletservice.components.ServletSourceFactory"/>
</source-factories>
</components>