Revision: 1072
http://openutils.svn.sourceforge.net/openutils/?rev=1072&view=rev
Author: fgrilli
Date: 2009-03-01 18:01:50 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
encode path tokens starting with a digit
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 12:45:46 UTC (rev 1071)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:01:50 UTC (rev 1072)
@@ -1,5 +1,10 @@
package net.sourceforge.openutils.mgnlcriteria.jcr.query.xpath.utils;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+
/**
* A utility class to escape xpath strings
* @author fgrilli
@@ -8,6 +13,8 @@
public class XPathTextUtils
{
+ private static final Logger log = LoggerFactory.getLogger(XPathTextUtils.class);
+
private XPathTextUtils()
{
}
@@ -72,4 +79,33 @@
.replaceAll("\\\\(?![-\"])", "\\\\\\\\")
.replaceAll("'", "\\\\'")));
}
-}
+
+ public static String encodeDigitsInPath(String path)
+ {
+ log.debug("path to encode is {}", path);
+ if (StringUtils.isBlank(path))
+ {
+ String msg = "path cannot be a null or empty string";
+ log.error(msg);
+ throw new IllegalArgumentException(msg);
+ }
+
+ StringBuilder encodedPath = new StringBuilder(path.length());
+ // TODO maybe a more robust check is needed
+ for (int i = 0; i < path.length(); ++i)
+ {
+ char ch = path.charAt(i);
+
+ if (i > 0 && path.charAt(i - 1) == '/' && Character.isDigit(ch))
+ {
+ encodedPath.append("_x" + Integer.toHexString(ch) + "_");
+ }
+ else
+ {
+ encodedPath.append(ch);
+ }
+ }
+ log.debug("returning encoded path", encodedPath);
+ return encodedPath.toString();
+ }
+}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 1074
http://openutils.svn.sourceforge.net/openutils/?rev=1074&view=rev
Author: fgrilli
Date: 2009-03-01 18:08:06 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
javadoc
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:03:42 UTC (rev 1073)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:08:06 UTC (rev 1074)
@@ -80,6 +80,10 @@
.replaceAll("'", "\\\\'")));
}
+ /**
+ * @param String path to encode eg //my//path/2009//*
+ * @return String encoded path eg //my//path/_x32_009//*
+ */
public static String encodeDigitsInPath(String path)
{
log.debug("path to encode is {}", path);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 1075
http://openutils.svn.sourceforge.net/openutils/?rev=1075&view=rev
Author: fgrilli
Date: 2009-03-01 18:17:40 +0000 (Sun, 01 Mar 2009)
Log Message:
-----------
fixed log
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:08:06 UTC (rev 1074)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2009-03-01 18:17:40 UTC (rev 1075)
@@ -109,7 +109,7 @@
encodedPath.append(ch);
}
}
- log.debug("returning encoded path", encodedPath);
+ log.debug("returning encoded path {}", encodedPath);
return encodedPath.toString();
}
}
\ No newline at end of file
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2010-03-19 09:34:16
|
Revision: 2159
http://openutils.svn.sourceforge.net/openutils/?rev=2159&view=rev
Author: diego_schivo
Date: 2010-03-19 09:34:10 +0000 (Fri, 19 Mar 2010)
Log Message:
-----------
CRIT-9 deprecated escapeIllegalXpathSearchChars (not used anymore in openutils-mgnlcriteria)
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-03-19 09:25:21 UTC (rev 2158)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-03-19 09:34:10 UTC (rev 2159)
@@ -47,6 +47,7 @@
* here just to keep this API JCR implementation agnostic
* @param string the string to encode
* @return the escaped string
+ * @deprecated may cause JCRQueryException on search-expressions like "\"milano\"" (CRIT-9)
*/
public static String escapeIllegalXpathSearchChars(String s)
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2470
http://openutils.svn.sourceforge.net/openutils/?rev=2470&view=rev
Author: cstrap
Date: 2010-05-18 08:41:50 +0000 (Tue, 18 May 2010)
Log Message:
-----------
CRIT-13 Fix parser string (all test now running)
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-05-18 08:39:18 UTC (rev 2469)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-05-18 08:41:50 UTC (rev 2470)
@@ -120,11 +120,11 @@
* http://lucene.apache.org/java/2_4_0/queryparsersyntax.html#Escaping%20Special%20Characters
* http://www.javalobby.org/java/forums/t86124.html
*/
- String escapeChars = "[\\\\+\\-\\!\\(\\)\\:\\^\\]\\{\\}\\~\\*\\?]";
+ String escapeChars = "[\\\\+\\-\\!\\(\\)\\:\\^\\]\\{\\}\\~\\*\\?\"\\[\\]|]";
parseString = parseString.replaceAll(escapeChars, "\\\\$0");
parseString = parseString.replaceAll("\'", "\'\'");
- return QueryParser.escape(parseString);
+ return parseString;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
Revision: 2921
http://openutils.svn.sourceforge.net/openutils/?rev=2921&view=rev
Author: fgiust
Date: 2010-08-29 07:16:56 +0000 (Sun, 29 Aug 2010)
Log Message:
-----------
added a note about the related JCR jira
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-08-29 07:09:52 UTC (rev 2920)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2010-08-29 07:16:56 UTC (rev 2921)
@@ -106,12 +106,6 @@
return str;
}
- /*
- * It seems that OR is a reserved word for jackrabbit/lucene, only if the search string start with word OR; if *
- * OR is inside the text search string, search works (pe "Hello OR World"). Error on
- * org.apache.jackrabbit.core.query.QueryImpl.execute()
- * http://stackoverflow.com/questions/1311304/keyword-or-and-search-in-lucene
- */
String parseString = StringUtils.trimToEmpty(str);
// workaround for https://issues.apache.org/jira/browse/JCR-2732
@@ -125,6 +119,7 @@
parseString = parseString.replaceAll(escapeChars, "\\\\$0");
parseString = parseString.replaceAll("\'", "\'\'");
+ // workaround for https://issues.apache.org/jira/browse/JCR-2733
if (StringUtils.startsWith(parseString, "OR "))
{
parseString = parseString.replaceFirst("\\bOR\\b", "\"OR\"");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2011-04-22 13:18:37
|
Revision: 3428
http://openutils.svn.sourceforge.net/openutils/?rev=3428&view=rev
Author: diego_schivo
Date: 2011-04-22 13:18:31 +0000 (Fri, 22 Apr 2011)
Log Message:
-----------
CRIT-37 comma escape
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2011-04-22 10:12:10 UTC (rev 3427)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2011-04-22 13:18:31 UTC (rev 3428)
@@ -123,6 +123,10 @@
{
encodedPath.append("_x0020_");
}
+ else if (!inXpathCondition && ch == ',')
+ {
+ encodedPath.append("_x002c_");
+ }
else
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2012-02-27 09:52:57
|
Revision: 3737
http://openutils.svn.sourceforge.net/openutils/?rev=3737&view=rev
Author: diego_schivo
Date: 2012-02-27 09:52:51 +0000 (Mon, 27 Feb 2012)
Log Message:
-----------
CRIT-47 Hyphen escape
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 09:51:38 UTC (rev 3736)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 09:52:51 UTC (rev 3737)
@@ -141,6 +141,10 @@
{
encodedPath.append("_x002c_");
}
+ else if (inXpathCondition <= 0 && ch == '-')
+ {
+ encodedPath.append("_x002d_");
+ }
else
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2012-02-27 10:38:07
|
Revision: 3740
http://openutils.svn.sourceforge.net/openutils/?rev=3740&view=rev
Author: diego_schivo
Date: 2012-02-27 10:37:56 +0000 (Mon, 27 Feb 2012)
Log Message:
-----------
CRIT-47 Hyphen escape
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 10:31:04 UTC (rev 3739)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 10:37:56 UTC (rev 3740)
@@ -133,6 +133,10 @@
{
encodedPath.append("_x" + StringUtils.leftPad(Integer.toHexString(ch), 4, '0') + "_");
}
+ else if (i > 0 && path.charAt(i - 1) == '/' && ch == '-')
+ {
+ encodedPath.append("_x002d_");
+ }
else if (inXpathCondition <= 0 && ch == ' ')
{
encodedPath.append("_x0020_");
@@ -141,10 +145,6 @@
{
encodedPath.append("_x002c_");
}
- else if (inXpathCondition <= 0 && ch == '-')
- {
- encodedPath.append("_x002d_");
- }
else
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <die...@us...> - 2012-02-27 11:23:18
|
Revision: 3742
http://openutils.svn.sourceforge.net/openutils/?rev=3742&view=rev
Author: diego_schivo
Date: 2012-02-27 11:23:07 +0000 (Mon, 27 Feb 2012)
Log Message:
-----------
CRIT-48 inXpathCondition
Modified Paths:
--------------
trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
Modified: trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java
===================================================================
--- trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 11:10:34 UTC (rev 3741)
+++ trunk/openutils-mgnlcriteria/src/main/java/net/sourceforge/openutils/mgnlcriteria/jcr/query/xpath/utils/XPathTextUtils.java 2012-02-27 11:23:07 UTC (rev 3742)
@@ -160,7 +160,7 @@
inXpathCondition++;
xpathWithFunction = true;
}
- else
+ else if (inXpathCondition == 0)
{
encodedPath.append("_x0028_");
continue;
@@ -177,7 +177,7 @@
inXpathCondition--;
xpathWithFunction = false;
}
- else
+ else if (inXpathCondition == 0)
{
encodedPath.append("_x0029_");
continue;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|