svn commit: r1543527 - in /struts/struts2/trunk: core/src/main/java/org/apache/struts2/config/ core/src/main/java/org/apache/struts2/dispatcher/ core/src/main/resources/ core/src/test/java/org/apache/

2013-11-19 Thread lukaszlenart
Author: lukaszlenart
Date: Tue Nov 19 17:56:18 2013
New Revision: 1543527

URL: http://svn.apache.org/r1543527
Log:
WW-4243 Extracts BeanSelectionProvider interface

Added:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java

struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/DefaultBeanSelectionProvider.java
  - copied, changed from r1535515, 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/DefaultBeanSelectionProviderTest.java
  - copied, changed from r1535515, 
struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/BeanSelectionProviderTest.java
Removed:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/BeanSelectionProvider.java

struts/struts2/trunk/core/src/test/java/org/apache/struts2/config/BeanSelectionProviderTest.java
Modified:

struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java

struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/StaticContentLoader.java
struts/struts2/trunk/core/src/main/resources/struts-default.xml

struts/struts2/trunk/plugins/sitegraph/src/main/java/org/apache/struts2/sitegraph/StrutsConfigRetriever.java

Added: 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java?rev=1543527&view=auto
==
--- 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
 (added)
+++ 
struts/struts2/trunk/core/src/main/java/org/apache/struts2/config/AbstractBeanSelectionProvider.java
 Tue Nov 19 17:56:18 2013
@@ -0,0 +1,114 @@
+package org.apache.struts2.config;
+
+import com.opensymphony.xwork2.ObjectFactory;
+import com.opensymphony.xwork2.config.BeanSelectionProvider;
+import com.opensymphony.xwork2.config.Configuration;
+import com.opensymphony.xwork2.config.ConfigurationException;
+import com.opensymphony.xwork2.inject.Container;
+import com.opensymphony.xwork2.inject.ContainerBuilder;
+import com.opensymphony.xwork2.inject.Context;
+import com.opensymphony.xwork2.inject.Factory;
+import com.opensymphony.xwork2.inject.Scope;
+import com.opensymphony.xwork2.util.ClassLoaderUtil;
+import com.opensymphony.xwork2.util.location.LocatableProperties;
+import com.opensymphony.xwork2.util.logging.Logger;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
+
+import java.util.Properties;
+
+/**
+ * TODO lukaszlenart: write a JavaDoc
+ */
+public abstract class AbstractBeanSelectionProvider implements 
BeanSelectionProvider {
+
+private static final Logger LOG = 
LoggerFactory.getLogger(AbstractBeanSelectionProvider.class);
+
+public static final String DEFAULT_BEAN_NAME = "struts";
+
+public void destroy() {
+// NO-OP
+}
+
+public void loadPackages() throws ConfigurationException {
+// NO-OP
+}
+
+public void init(Configuration configuration) throws 
ConfigurationException {
+// NO-OP
+}
+
+public boolean needsReload() {
+return false;
+}
+
+protected void alias(Class type, String key, ContainerBuilder builder, 
Properties props) {
+alias(type, key, builder, props, Scope.SINGLETON);
+}
+
+protected void alias(Class type, String key, ContainerBuilder builder, 
Properties props, Scope scope) {
+if (!builder.contains(type)) {
+String foundName = props.getProperty(key, DEFAULT_BEAN_NAME);
+if (builder.contains(type, foundName)) {
+if (LOG.isInfoEnabled()) {
+LOG.info("Choosing bean (#0) for (#1)", foundName, 
type.getName());
+}
+builder.alias(type, foundName, Container.DEFAULT_NAME);
+} else {
+try {
+Class cls = ClassLoaderUtil.loadClass(foundName, 
this.getClass());
+if (LOG.isDebugEnabled()) {
+LOG.debug("Choosing bean (#0) for (#1)", 
cls.getName(), type.getName());
+}
+builder.factory(type, cls, scope);
+} catch (ClassNotFoundException ex) {
+// Perhaps a spring bean id, so we'll delegate to the 
object factory at runtime
+if (LOG.isDebugEnabled()) {
+LOG.debug("Choosing bean (#0) for (#1) to be loaded 
from the ObjectFactory", foundName, type.getName());
+}
+if (DEFAULT_BEAN_NAME.equals(foundName)) {
+// Probably an optional bean, will ignore
+} else {
+if (ObjectFactory.class != type) {
+   

[CONF] Confluence Changes in the last 24 hours

2013-11-19 Thread Anonymous (Confluence)







   Apache Airavata


Pages

 Page:
 Airavata Release Testing
edited by Raminderjeet Singh[07:41 PM]
(view changes)



   Apache Camel


Pages

 Page:
 Jetty
edited by Torsten Mielke[03:46 PM]
(view changes)

 Page:
 Twitter Websocket Blueprint Example
edited by Babak Vahdat[03:42 PM]
(view changes)

 Page:
 Camel 2.13.0 Release
edited by Claus Ibsen[11:19 AM]
(view changes)

 Page:
 Camel JMX
edited by Claus Ibsen[09:11 AM]
(view changes)



   Apache Cloudstack


Pages

 Page:
 GPU and vGPU support for CloudStack Guest VMs
edited by Sanjay Tripathi[01:50 PM]
(view changes)

 Page:
 Hyper-V Test Plan for 4.3
edited by Sowmya Krishnan[11:36 AM]
(view changes)

 Page:
 CCC 2013 North America
edited by Daan Hoogland[11:18 AM]
(view changes)

 Page:
 Report CPU sockets
edited by Harikrishna Patnala[05:59 AM]
(view changes)



   Apache CXF Documentation


Pages

 Page:
 3.0 Migration Guide
edited by Daniel Kulp[05:37 PM]
(view changes)



   Apache Flex


Pages

 Page:
 Apache Flex SDK Mavenizer
edited by Christofer Dutz[11:02 PM]
(view changes)



   Apache OpenOffice Community


Pages

 Page:
 Tips for branch ia2
edited by Steve Yin[09:46 AM]
(view changes)

 Page:
 AOO IAccessible2
edited by Steve Yin[07:24 AM]
(view changes)



   Apache Qpid


Pages

 Page:
 0.26 Release
edited by Justin Ross[10:04 PM]
(view changes)



   Apache Solr Reference Guide


Pages

 Page:
 Internal - TODO List
edited by Hoss Man[07:28 PM]
(view changes)

 Page:
 Updating Parts of Documents
edited by Hoss Man[07:16 PM]
(view changes)

 Page:
 Field Types Included w