svn commit: r1127142 - in /struts/struts2/trunk/xwork-core/src: main/java/com/opensymphony/xwork2/util/URLUtil.java test/java/com/opensymphony/xwork2/util/URLUtilTest.java

2011-05-24 Thread mcucchiara
Author: mcucchiara
Date: Tue May 24 16:53:44 2011
New Revision: 1127142

URL: http://svn.apache.org/viewvc?rev=1127142&view=rev
Log:
WW-3626 Corrected URLUtil#normalizeToFileProtocol in order to allow the word 
jar along the path

Modified:

struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java

struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/URLUtilTest.java

Modified: 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java?rev=1127142&r1=1127141&r2=1127142&view=diff
==
--- 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/main/java/com/opensymphony/xwork2/util/URLUtil.java
 Tue May 24 16:53:44 2011
@@ -32,7 +32,7 @@ public class URLUtil {
 public static final String JBOSS5_VFSMEMORY = "vfsmemory";
 public static final String JBOSS5_VFSFILE = "vfsfile";
 
-private static final Pattern JAR_PATTERN = 
Pattern.compile("^(jar:|wsjar:|zip:|vfsfile:|code-source:)?(file:)?(.*?)(\\!/|.jar/)(.*)");
+private static final Pattern JAR_PATTERN = 
Pattern.compile("^(jar:|wsjar:|zip:|vfsfile:|code-source:)?(file:)?(.*?)(\\!/|\\.jar/)(.*)");
 private static final int JAR_FILE_PATH = 3;
 
 /**
@@ -64,7 +64,7 @@ public class URLUtil {
  * @param url The url string to verify.
  * @return a boolean indicating whether the URL seems to be incorrect.
  */
-public final static boolean verifyUrl(String url) {
+public static boolean verifyUrl(String url) {
 if (url == null) {
 return false;
 }

Modified: 
struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/URLUtilTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/URLUtilTest.java?rev=1127142&r1=1127141&r2=1127142&view=diff
==
--- 
struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/URLUtilTest.java
 (original)
+++ 
struts/struts2/trunk/xwork-core/src/test/java/com/opensymphony/xwork2/util/URLUtilTest.java
 Tue May 24 16:53:44 2011
@@ -34,6 +34,22 @@ public class URLUtilTest extends TestCas
 assertEquals("file:c:/somefile.jar", outputURL.toExternalForm());
 }
 
+public void testJarFileWithJarWordInsidePath() throws 
MalformedURLException {
+URL url = new URL("jar:file:/c:/workspace/projar/somefile.jar!/");
+URL outputURL = URLUtil.normalizeToFileProtocol(url);
+
+assertNotNull(outputURL);
+assertEquals("file:/c:/workspace/projar/somefile.jar", 
outputURL.toExternalForm());
+
+url = new 
URL("jar:file:/c:/workspace/projar/somefile.jar!/somestuf/bla/bla");
+outputURL = URLUtil.normalizeToFileProtocol(url);
+assertEquals("file:/c:/workspace/projar/somefile.jar", 
outputURL.toExternalForm());
+
+url = new 
URL("jar:file:c:/workspace/projar/somefile.jar!/somestuf/bla/bla");
+outputURL = URLUtil.normalizeToFileProtocol(url);
+assertEquals("file:c:/workspace/projar/somefile.jar", 
outputURL.toExternalForm());
+}
+
 public void testZipFile() throws MalformedURLException {
 URL url = new URL("zip:/c:/somefile.zip!/");
 URL outputURL = URLUtil.normalizeToFileProtocol(url);




[CONF] Confluence Changes in the last 24 hours

2011-05-24 Thread confluence
This is a daily summary of all recent changes in Confluence.

-
Updated Spaces:
-


Apache ActiveMQ (https://cwiki.apache.org/confluence/display/ACTIVEMQ)

Pages
-
WS Notification edited by  akarpe  (01:23 PM)
https://cwiki.apache.org/confluence/display/ACTIVEMQ/WS+Notification



Apache Camel (https://cwiki.apache.org/confluence/display/CAMEL)

Pages
-
JMS edited by  njiang  (05:06 AM)
https://cwiki.apache.org/confluence/display/CAMEL/JMS



Apache CXF (https://cwiki.apache.org/confluence/display/CXF)

Pages
-
Roadmap edited by  dkulp  (03:59 PM)
https://cwiki.apache.org/confluence/display/CXF/Roadmap



Apache MyFaces Extensions CDI 
(https://cwiki.apache.org/confluence/display/EXTCDI)

Pages
-
Core Usage edited by  gpetracek  (05:41 PM)
https://cwiki.apache.org/confluence/display/EXTCDI/Core+Usage

CODI Versions edited by  gpetracek  (05:21 PM)
https://cwiki.apache.org/confluence/display/EXTCDI/CODI+Versions

External edited by  gpetracek  (05:14 PM)
https://cwiki.apache.org/confluence/display/EXTCDI/External

Building CODI edited by  gpetracek  (05:09 PM)
https://cwiki.apache.org/confluence/display/EXTCDI/Building+CODI



Apache Jackrabbit (https://cwiki.apache.org/confluence/display/JCR)

Pages
-
Welcome to Apache Jackrabbit edited by  jukka  (09:42 AM)
https://cwiki.apache.org/confluence/display/JCR/Welcome+to+Apache+Jackrabbit



Apache Mahout (https://cwiki.apache.org/confluence/display/MAHOUT)

Pages
-
Recommender Documentation edited by  crishoj  (11:49 AM)
https://cwiki.apache.org/confluence/display/MAHOUT/Recommender+Documentation



Apache Maven (https://cwiki.apache.org/confluence/display/MAVEN)

Pages
-
Plexus-utils replacement created by nicolas (08:59 AM)
https://cwiki.apache.org/confluence/display/MAVEN/Plexus-utils+replacement



OFBiz (Open For Business) Project Open Wiki 
(https://cwiki.apache.org/confluence/display/OFBIZ)

Pages
-
Apache OFBiz Service Providers edited by  adrianc  (01:23 PM)
https://cwiki.apache.org/confluence/display/OFBIZ/Apache+OFBiz+Service+Providers



OODT (https://cwiki.apache.org/confluence/display/OODT)

Pages
-
RADiX Powered By OODT edited by  good...@oodt.apache.org  (09:37 AM)
https://cwiki.apache.org/confluence/display/OODT/RADiX+Powered+By+OODT



OpenEJB (https://cwiki.apache.org/confluence/display/OPENEJB)

Pages
-
HomeLinks edited by  karan_malhi  (07:56 PM)
https://cwiki.apache.org/confluence/display/OPENEJB/HomeLinks

News edited by  karan_malhi  (06:28 PM)
https://cwiki.apache.org/confluence/display/OPENEJB/News



Apache Santuario (https://cwiki.apache.org/confluence/display/SANTUARIO)

Pages
-
download edited by  cohei...@apache.org  (05:23 AM)
https://cwiki.apache.org/confluence/display/SANTUARIO/download

java_1_4_5_release_notes created by cohei...@apache.org (05:20 AM)
https://cwiki.apache.org/confluence/display/SANTUARIO/java_1_4_5_release_notes

java_release_notes edited by  cohei...@apache.org  (05:19 AM)
https://cwiki.apache.org/confluence/display/SANTUARIO/java_release_notes

java_index edited by  cohei...@apache.org  (05:18 AM)
https://cwiki.apache.org/confluence/display/SANTUARIO/java_index

old_news edited by  cohei...@apache.org  (05:17 AM)
https://cwiki.apache.org/confluence/display/SANTUARIO/old_news

Index edited by  cohei...@apache.org  (05:17 AM)
https://cwiki.apache.org/confluence/display/SANTUARIO/Index



Apache Shiro (https://cwiki.apache.org/confluence/display/SHIRO)

Pages
-
Reference edited by  lhazlewood  (11:47 PM)
https://cwiki.apache.org/confluence/display/SHIRO/Reference

Architecture edited by  lhazlewood  (11:46 PM)
https://cwiki.apache.org/confluence/display/SHIRO/Architecture

Authorization edited by  lhazlewood  (11:25 PM)
https://cwiki.apache.org/confluence/display/SHIRO/Authorization

Web edited by  lhazlewood  (09:36 PM)
https://cwiki.apache.org/confluence/display/SHIRO/Web

Authentication edited by  lhazlewood  (04:53 PM)
https://cwiki.apache.org/confluence/display/SHIRO/Authentication

The New RBAC - Resource-Based Access Control created by lhazlewood (02:59 PM)
https://cwi

svn commit: r1127396 - /struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java

2011-05-24 Thread lukaszlenart
Author: lukaszlenart
Date: Wed May 25 06:35:44 2011
New Revision: 1127396

URL: http://svn.apache.org/viewvc?rev=1127396&view=rev
Log:
WW-2776 -  Uses JRRewindableDataSource for JasperReports

Modified:

struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java

Modified: 
struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java?rev=1127396&r1=1127395&r2=1127396&view=diff
==
--- 
struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java
 (original)
+++ 
struts/struts2/trunk/plugins/jasperreports/src/main/java/org/apache/struts2/views/jasperreports/ValueStackDataSource.java
 Wed May 25 06:35:44 2011
@@ -21,23 +21,20 @@
 
 package org.apache.struts2.views.jasperreports;
 
-import java.util.Iterator;
-
-import net.sf.jasperreports.engine.JRDataSource;
+import com.opensymphony.xwork2.util.ValueStack;
+import com.opensymphony.xwork2.util.logging.Logger;
+import com.opensymphony.xwork2.util.logging.LoggerFactory;
 import net.sf.jasperreports.engine.JRException;
 import net.sf.jasperreports.engine.JRField;
-
+import net.sf.jasperreports.engine.JRRewindableDataSource;
 import org.apache.struts2.util.MakeIterator;
 
-import com.opensymphony.xwork2.util.ValueStack;
-import com.opensymphony.xwork2.util.logging.Logger;
-import com.opensymphony.xwork2.util.logging.LoggerFactory;
+import java.util.Iterator;
 
 /**
  * Ported to Struts.
- *
  */
-public class ValueStackDataSource implements JRDataSource {
+public class ValueStackDataSource implements JRRewindableDataSource {
 
 /**
  * Logger for this class
@@ -47,18 +44,20 @@ public class ValueStackDataSource implem
 
 Iterator iterator;
 ValueStack valueStack;
+String dataSource;
 boolean firstTimeThrough = true;
 
 
 /**
  * Create a value stack data source on the given iterable property
  *
- * @param valueStack The value stack to base the data source on
- * @param dataSource The property to iterate over for the report
+ * @param valueStack  The value stack to base the data source on
+ * @param dataSourceParam The property to iterate over for the report
  */
-public ValueStackDataSource(ValueStack valueStack, String dataSource) {
+public ValueStackDataSource(ValueStack valueStack, String dataSourceParam) 
{
 this.valueStack = valueStack;
 
+dataSource = dataSourceParam;
 Object dataSourceValue = valueStack.findValue(dataSource);
 
 if (dataSourceValue != null) {
@@ -71,7 +70,7 @@ public class ValueStackDataSource implem
 }
 } else {
 if (LOG.isWarnEnabled()) {
-   LOG.warn("Data source value for data source " + dataSource + " 
was null");
+LOG.warn("Data source value for data source " + dataSource + " 
was null");
 }
 }
 }
@@ -114,6 +113,29 @@ public class ValueStackDataSource implem
 }
 
 /**
+ * Move to the first item.
+ *
+ * @throws JRException if there is a problem with moving to the first
+ * data element
+ */
+public void moveFirst() throws JRException {
+Object dataSourceValue = valueStack.findValue(dataSource);
+if (dataSourceValue != null) {
+if (MakeIterator.isIterable(dataSourceValue)) {
+iterator = MakeIterator.convert(dataSourceValue);
+} else {
+Object[] array = new Object[1];
+array[0] = dataSourceValue;
+iterator = MakeIterator.convert(array);
+}
+} else {
+if (LOG.isWarnEnabled()) {
+LOG.warn("Data source value for data source [" + dataSource + 
"] was null");
+}
+}
+}
+
+/**
  * Is there any more data
  *
  * @return true if there are more elements to iterate over and
@@ -131,13 +153,13 @@ public class ValueStackDataSource implem
 if ((iterator != null) && (iterator.hasNext())) {
 valueStack.push(iterator.next());
 if (LOG.isDebugEnabled()) {
-   LOG.debug("Pushed next value: " + valueStack.findValue("."));
+LOG.debug("Pushed next value: " + valueStack.findValue("."));
 }
 
 return true;
 } else {
 if (LOG.isDebugEnabled()) {
-   LOG.debug("No more values");
+LOG.debug("No more values");
 }
 
 return false;