You are viewing a plain text version of this content. The canonical link for it is here.
Posted to portalapps-dev@portals.apache.org by wo...@apache.org on 2014/07/22 14:04:48 UTC

svn commit: r1612553 - /portals/applications/webcontent/trunk/reverse-proxy/src/main/java/org/apache/portals/applications/webcontent2/proxy/util/YamlConfigUtils.java

Author: woonsan
Date: Tue Jul 22 12:04:48 2014
New Revision: 1612553

URL: http://svn.apache.org/r1612553
Log:
APA-64: yaml string doesn't need to be trimmed. Also, allow both block collections and structures in mapping configuration

Modified:
    portals/applications/webcontent/trunk/reverse-proxy/src/main/java/org/apache/portals/applications/webcontent2/proxy/util/YamlConfigUtils.java

Modified: portals/applications/webcontent/trunk/reverse-proxy/src/main/java/org/apache/portals/applications/webcontent2/proxy/util/YamlConfigUtils.java
URL: http://svn.apache.org/viewvc/portals/applications/webcontent/trunk/reverse-proxy/src/main/java/org/apache/portals/applications/webcontent2/proxy/util/YamlConfigUtils.java?rev=1612553&r1=1612552&r2=1612553&view=diff
==============================================================================
--- portals/applications/webcontent/trunk/reverse-proxy/src/main/java/org/apache/portals/applications/webcontent2/proxy/util/YamlConfigUtils.java (original)
+++ portals/applications/webcontent/trunk/reverse-proxy/src/main/java/org/apache/portals/applications/webcontent2/proxy/util/YamlConfigUtils.java Tue Jul 22 12:04:48 2014
@@ -22,6 +22,7 @@ import java.io.FileInputStream;
 import java.io.InputStream;
 import java.net.URI;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 
 import org.apache.commons.beanutils.MethodUtils;
@@ -51,23 +52,24 @@ public class YamlConfigUtils
         InputStream input = null;
         BufferedInputStream bis = null;
 
-        final String mappings = StrSubstitutor.replaceSystemProperties(StringUtils.trim(yamlConfig));
+        final String mappings = StrSubstitutor.replaceSystemProperties(yamlConfig);
+        final String trimmedMappings = StringUtils.trim(mappings);
 
-        if (StringUtils.isNotEmpty(mappings))
+        if (StringUtils.isNotEmpty(trimmedMappings))
         {
             try
             {
-                if (StringUtils.startsWith(mappings, "file:"))
+                if (StringUtils.startsWith(trimmedMappings, "file:"))
                 {
-                    input = new FileInputStream(new File(URI.create(mappings)));
+                    input = new FileInputStream(new File(URI.create(trimmedMappings)));
                 }
-                else if (StringUtils.startsWith(mappings, "classpath:"))
+                else if (StringUtils.startsWith(trimmedMappings, "classpath:"))
                 {
-                    input = Thread.currentThread().getContextClassLoader().getResourceAsStream(mappings.substring(10));
+                    input = Thread.currentThread().getContextClassLoader().getResourceAsStream(trimmedMappings.substring(10));
                 }
-                else if (StringUtils.startsWith(mappings, "/"))
+                else if (StringUtils.startsWith(trimmedMappings, "/"))
                 {
-                    input = (InputStream) MethodUtils.invokeMethod(servletContextOrPortletContext, "getResourceAsStream", mappings);
+                    input = (InputStream) MethodUtils.invokeMethod(servletContextOrPortletContext, "getResourceAsStream", trimmedMappings);
                 }
                 else
                 {
@@ -110,15 +112,29 @@ public class YamlConfigUtils
 
         Iterable<Object> allObjects = loadYaml(constructor, yamlConfig, servletContextOrPortletContext);
 
-        for (Object mapping : allObjects)
+        for (Object item : allObjects)
         {
-            if (mapping instanceof ProxyMapping)
+            if (item instanceof Collection)
             {
-                proxyMappings.add((ProxyMapping) mapping);
+                for (Object mapping : (Collection) item)
+                {
+                    if (mapping instanceof ProxyMapping)
+                    {
+                        proxyMappings.add((ProxyMapping) mapping);
+                    }
+                    else
+                    {
+                        log.error("Invalid mapping type: {} - {}" + mapping.getClass(), mapping);
+                    }
+                }
+            }
+            else if (item instanceof ProxyMapping)
+            {
+                proxyMappings.add((ProxyMapping) item);
             }
             else
             {
-                log.error("Invalid mapping type: {} - {}" + mapping.getClass(), mapping);
+                log.error("Invalid mapping type: {} - {}" + item.getClass(), item);
             }
         }