Author: ilgrosso
Date: Fri Oct 30 08:39:05 2015
New Revision: 1711428
URL: http://svn.apache.org/viewvc?rev=1711428&view=rev
Log:
[COCOON-2347] Applying provided patches + small reworks (removing deprecates and adding Override)
Added:
cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/
- copied from r1700478, cocoon/subprojects/cocoon-servlet-service-impl/trunk/
Modified:
cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/pom.xml
cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/callstack/CallScope.java
cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletscope/ServletScope.java
cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletservice/spring/ServletDecorator.java
Modified: cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/pom.xml
URL: http://svn.apache.org/viewvc/cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/pom.xml?rev=1711428&r1=1700478&r2=1711428&view=diff
==============================================================================
--- cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/pom.xml (original)
+++ cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/pom.xml Fri Oct 30 08:39:05 2015
@@ -24,12 +24,12 @@
<parent>
<artifactId>cocoon</artifactId>
<groupId>org.apache.cocoon</groupId>
- <version>9</version>
+ <version>10-COCOON-2347-SNAPSHOT</version>
<relativePath />
</parent>
<artifactId>cocoon-servlet-service-impl</artifactId>
<packaging>jar</packaging>
- <version>1.3.3-SNAPSHOT</version>
+ <version>1.3.3-COCOON-2347-SNAPSHOT</version>
<name>Cocoon Servlet Service Implementation</name>
<description>
The servlet service framework makes it easy to use servlets as Spring components.
@@ -61,7 +61,7 @@
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-spring-configurator</artifactId>
- <version>2.2.1</version>
+ <version>2.2.2-COCOON-2347-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<!-- Spring Framework -->
@@ -92,16 +92,11 @@
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
- <artifactId>aspectjrt</artifactId>
- </dependency>
- <dependency>
- <groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.apache.cocoon</groupId>
<artifactId>cocoon-jnet</artifactId>
- <version>1.2.2</version>
</dependency>
<!-- commons -->
<dependency>
@@ -125,7 +120,7 @@
<plugins>
<plugin>
<artifactId>maven-release-plugin</artifactId>
- <version>2.3.2</version>
+ <version>2.5.2</version>
<configuration>
<tagBase>https://svn.apache.org/repos/asf/cocoon/subprojects/cocoon-servlet-service-impl/tags/</tagBase>
</configuration>
@@ -134,14 +129,14 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
- <version>3.2</version>
+ <version>3.4</version>
<configuration>
<locales>en</locales>
<reportPlugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
- <version>2.6</version>
+ <version>2.8</version>
<configuration>
<dependencyDetailsEnabled>false</dependencyDetailsEnabled>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
@@ -172,7 +167,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
- <version>2.8.1</version>
+ <version>2.10.3</version>
<reportSets>
<reportSet>
<reports>
Modified: cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/callstack/CallScope.java
URL: http://svn.apache.org/viewvc/cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/callstack/CallScope.java?rev=1711428&r1=1700478&r2=1711428&view=diff
==============================================================================
--- cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/callstack/CallScope.java (original)
+++ cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/callstack/CallScope.java Fri Oct 30 08:39:05 2015
@@ -28,6 +28,7 @@ import org.springframework.beans.factory
*/
public class CallScope implements Scope {
+ @Override
public Object get(String name, ObjectFactory objectFactory) {
CallFrame frame = CallStack.getCurrentFrame();
Object scopedObject = frame.getAttribute(name);
@@ -39,6 +40,7 @@ public class CallScope implements Scope
return scopedObject;
}
+ @Override
public Object remove(String name) {
CallFrame frame = CallStack.getCurrentFrame();
Object scopedObject = frame.getAttribute(name);
@@ -49,13 +51,20 @@ public class CallScope implements Scope
return scopedObject;
}
+ @Override
public String getConversationId() {
// There is no conversation id concept for the call stack
return null;
}
+ @Override
public void registerDestructionCallback(String name, Runnable callback) {
CallStack.getCurrentFrame().registerDestructionCallback(name, callback);
}
+ @Override
+ public Object resolveContextualObject(String key) {
+ return null;
+ }
+
}
Modified: cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletscope/ServletScope.java
URL: http://svn.apache.org/viewvc/cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletscope/ServletScope.java?rev=1711428&r1=1700478&r2=1711428&view=diff
==============================================================================
--- cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletscope/ServletScope.java (original)
+++ cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletscope/ServletScope.java Fri Oct 30 08:39:05 2015
@@ -25,27 +25,29 @@ import javax.servlet.ServletContext;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.config.Scope;
-
/**
* Stack based scope implementation. It is based on the CallStack and
* an object is in scope when it is in the top frame of the stack.
*
* @version $Id: CallScope.java 562806 2007-08-05 02:26:41Z vgritsenko $
- * @since 2.2
+ * @since 2.2
*/
public class ServletScope implements Scope {
-
- static private String destructionCallbacksAttributeName = ServletScope.class.getName() + "/destructionCallbacks";
-
+
+ private static final String DESTRUCTION_CALLBACKS_ATTRIBUTENAME =
+ ServletScope.class.getName() + "/destructionCallbacks";
+
private ServletContext servletContext;
-
+
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
}
/* (non-Javadoc)
- * @see org.springframework.beans.factory.config.Scope#get(java.lang.String, org.springframework.beans.factory.ObjectFactory)
+ * @see org.springframework.beans.factory.config.Scope#get(java.lang.String,
+ * org.springframework.beans.factory.ObjectFactory)
*/
+ @Override
public Object get(String name, ObjectFactory objectFactory) {
Object scopedObject = servletContext.getAttribute(name);
if (scopedObject == null) {
@@ -59,6 +61,7 @@ public class ServletScope implements Sco
/* (non-Javadoc)
* @see org.springframework.beans.factory.config.Scope#remove(java.lang.String)
*/
+ @Override
public Object remove(String name) {
Object scopedObject = servletContext.getAttribute(name);
if (scopedObject != null) {
@@ -71,42 +74,54 @@ public class ServletScope implements Sco
/* (non-Javadoc)
* @see org.springframework.beans.factory.config.Scope#getConversationId()
*/
+ @Override
public String getConversationId() {
// There is no conversation id concept for the call stack
return null;
}
/* (non-Javadoc)
- * @see org.springframework.beans.factory.config.Scope#registerDestructionCallback(java.lang.String, java.lang.Runnable)
+ * @see org.springframework.beans.factory.config.Scope#registerDestructionCallback(java.lang.String,
+ * java.lang.Runnable)
*/
+ @Override
public void registerDestructionCallback(String name, Runnable callback) {
- Map destructionCallbacks = getDestructionCallbacks(servletContext);
+ Map<String, Runnable> destructionCallbacks = getDestructionCallbacks(servletContext);
destructionCallbacks.put(name, callback);
}
-
+
/**
* @param servletContext
* @return the destruction callbacks map that is stored as a attribute of servletContext
*/
- private static Map getDestructionCallbacks(ServletContext servletContext) {
- Map destructionCallbacks = (Map)servletContext.getAttribute(destructionCallbacksAttributeName);
+ private static Map<String, Runnable> getDestructionCallbacks(ServletContext servletContext) {
+ @SuppressWarnings("unchecked")
+ Map<String, Runnable> destructionCallbacks =
+ (Map<String, Runnable>) servletContext.getAttribute(DESTRUCTION_CALLBACKS_ATTRIBUTENAME);
if (destructionCallbacks == null) {
- destructionCallbacks = new HashMap();
- servletContext.setAttribute(destructionCallbacksAttributeName, destructionCallbacks);
+ destructionCallbacks = new HashMap<String, Runnable>();
+ servletContext.setAttribute(DESTRUCTION_CALLBACKS_ATTRIBUTENAME, destructionCallbacks);
}
return destructionCallbacks;
}
-
+
/**
- * Executes destruction callbacks of beans from servlet scope. This method should be called once the Servlet that the scope
+ * Executes destruction callbacks of beans from servlet scope. This method should be called once the Servlet that
+ * the scope
* is tied to is being destroyed.
+ *
* @param servletContext
*/
public static void executeDestructionCallbacks(ServletContext servletContext) {
- Map destructionCallbacks = getDestructionCallbacks(servletContext);
- Iterator i = destructionCallbacks.values().iterator();
+ Map<String, Runnable> destructionCallbacks = getDestructionCallbacks(servletContext);
+ Iterator<Runnable> i = destructionCallbacks.values().iterator();
while (i.hasNext()) {
- ((Runnable) i.next()).run();
+ i.next().run();
}
}
+
+ @Override
+ public Object resolveContextualObject(String key) {
+ return null;
+ }
}
Modified: cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletservice/spring/ServletDecorator.java
URL: http://svn.apache.org/viewvc/cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletservice/spring/ServletDecorator.java?rev=1711428&r1=1700478&r2=1711428&view=diff
==============================================================================
--- cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletservice/spring/ServletDecorator.java (original)
+++ cocoon/subprojects/cocoon-servlet-service-impl/branches/COCOON-2347/src/main/java/org/apache/cocoon/servletservice/spring/ServletDecorator.java Fri Oct 30 08:39:05 2015
@@ -38,7 +38,7 @@ import org.w3c.dom.Node;
* <code>http://cocoon.apache.org/schema/servlet</code> namespace which
* defines following elements: <code>context</code> : with optional attributes
* <code>mountPath</code> and <code>contextPath</code>. With optional sub
- * elements <code>init-params", "context-params" and "connections".</p>
+ * elements <code>init-params</code>, <code>context-params</code> and <code>connections</code>.</p>
* <p>
* The actual creation of the servlet service (= a bean) is done by {@link ServletFactoryBean}.</p>
*
@@ -47,6 +47,7 @@ import org.w3c.dom.Node;
*/
public class ServletDecorator implements BeanDefinitionDecorator {
+ @Override
public BeanDefinitionHolder decorate(Node source, BeanDefinitionHolder holder, ParserContext ctx) {
String embeddedServletBeanName = registerEmbeddedServletBean(holder, ctx);
return createServletFactoryBeanDefinition((Element) source, holder, ctx, embeddedServletBeanName);
@@ -62,13 +63,15 @@ public class ServletDecorator implements
}
private BeanDefinitionHolder createServletFactoryBeanDefinition(Element source, BeanDefinitionHolder holder,
- ParserContext ctx, String embeddedServletBeanName) {
+ ParserContext ctx, String embeddedServletBeanName) {
String ns = source.getNamespaceURI();
- if (!source.hasAttribute("mount-path"))
+ if (!source.hasAttribute("mount-path")) {
throw new RuntimeException("The mount-path attribute is required.");
+ }
String mountPath = source.getAttribute("mount-path");
- if (!source.hasAttribute("context-path"))
+ if (!source.hasAttribute("context-path")) {
throw new RuntimeException("The context-path attribute is required.");
+ }
String contextPath = source.getAttribute("context-path");
Element initParamsElem = (Element) source.getElementsByTagNameNS(ns, "init-params").item(0);
@@ -76,15 +79,16 @@ public class ServletDecorator implements
Element connectionsElem = (Element) source.getElementsByTagNameNS(ns, "connections").item(0);
BeanDefinitionBuilder servletFactoryDefBuilder = BeanDefinitionBuilder
- .rootBeanDefinition(ServletFactoryBean.class);
- servletFactoryDefBuilder.setSource(ctx.extractSource(source));
+ .rootBeanDefinition(ServletFactoryBean.class);
+ servletFactoryDefBuilder.getRawBeanDefinition().setSource(ctx.extractSource(source));
servletFactoryDefBuilder.addPropertyReference("embeddedServlet", embeddedServletBeanName);
servletFactoryDefBuilder.setInitMethodName("init");
servletFactoryDefBuilder.setDestroyMethodName("destroy");
servletFactoryDefBuilder.addPropertyValue("serviceName", holder.getBeanName());
//this dependency is needed because JNet must be called manually when init() method is called on servlet
//see COCOON-2236
- servletFactoryDefBuilder.addPropertyReference("urlHandlerFactoryCollector", "org.apache.cocoon.jnet.URLHandlerFactoryCollector");
+ servletFactoryDefBuilder.addPropertyReference(
+ "urlHandlerFactoryCollector", "org.apache.cocoon.jnet.URLHandlerFactoryCollector");
servletFactoryDefBuilder.addPropertyValue("mountPath", mountPath);
servletFactoryDefBuilder.addPropertyValue("contextPath", contextPath);
@@ -97,15 +101,15 @@ public class ServletDecorator implements
servletFactoryDefBuilder.addPropertyValue("contextParams", contextParams);
}
if (connectionsElem != null) {
- Map connections = ctx.getDelegate().parseMapElement(connectionsElem, null);
+ Map<Object, Object> connections = ctx.getDelegate().parseMapElement(connectionsElem, null);
servletFactoryDefBuilder.addPropertyValue("connections", connections);
- Map connectionNames = new HashMap();
- for (Iterator it = connections.keySet().iterator(); it.hasNext();) {
+ Map<String, String> connectionNames = new HashMap<String, String>();
+ for (Iterator<Object> it = connections.keySet().iterator(); it.hasNext();) {
TypedStringValue key = (TypedStringValue) it.next();
if (key.getValue().endsWith("+")) {
throw new InvalidBeanReferenceNameException(
- "The key of a servlet connection mustn't use '+' as its last character. "
- + "This is reserved for absolute references in servlet sources.");
+ "The key of a servlet connection mustn't use '+' as its last character. "
+ + "This is reserved for absolute references in servlet sources.");
}
RuntimeBeanReference beanNameReference = (RuntimeBeanReference) connections.get(key);
connectionNames.put(key.getValue(), beanNameReference.getBeanName());
@@ -118,6 +122,8 @@ public class ServletDecorator implements
private class InvalidBeanReferenceNameException extends RuntimeException {
+ private static final long serialVersionUID = 5809126827892821270L;
+
public InvalidBeanReferenceNameException(String message) {
super(message);
}
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.