Author: sergeyb
Date: Tue Dec 11 18:13:34 2012
New Revision: 1420315
URL: http://svn.apache.org/viewvc?rev=1420315&view=rev
Log:
Merged revisions 1420311 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1420311 | sergeyb | 2012-12-11 18:03:36 +0000 (Tue, 11 Dec 2012) | 1 line
[CXF-4693] Making the String based converters thread-safe ready when needed
........
Added:
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/
- copied from r1420311,
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/AbstractSearchConditionVisitor.java
- copied unchanged from r1420311,
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/AbstractSearchConditionVisitor.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/AbstractUntypedSearchConditionVisitor.java
- copied unchanged from r1420311,
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/AbstractUntypedSearchConditionVisitor.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/LocalVisitorState.java
- copied unchanged from r1420311,
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/LocalVisitorState.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/SBThreadLocalVisitorState.java
- copied unchanged from r1420311,
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/SBThreadLocalVisitorState.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/ThreadLocalVisitorState.java
- copied unchanged from r1420311,
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/ThreadLocalVisitorState.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/VisitorState.java
- copied unchanged from r1420311,
cxf/trunk/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/visitor/VisitorState.java
Removed:
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/AbstractSearchConditionVisitor.java
Modified:
cxf/branches/2.6.x-fixes/ (props changed)
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ldap/LdapQueryVisitor.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitor.java
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitorTest.java
Propchange: cxf/branches/2.6.x-fixes/
------------------------------------------------------------------------------
svn:mergeinfo = /cxf/trunk:1420311
Propchange: cxf/branches/2.6.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java?rev=1420315&r1=1420314&r2=1420315&view=diff
==============================================================================
---
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java
(original)
+++
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/jpa/AbstractJPATypedQueryVisitor.java
Tue Dec 11 18:13:34 2012
@@ -35,11 +35,11 @@ import javax.persistence.criteria.Path;
import javax.persistence.criteria.Predicate;
import javax.persistence.criteria.Root;
-import org.apache.cxf.jaxrs.ext.search.AbstractSearchConditionVisitor;
import org.apache.cxf.jaxrs.ext.search.ConditionType;
import org.apache.cxf.jaxrs.ext.search.OrSearchCondition;
import org.apache.cxf.jaxrs.ext.search.PrimitiveStatement;
import org.apache.cxf.jaxrs.ext.search.SearchCondition;
+import org.apache.cxf.jaxrs.ext.search.visitor.AbstractSearchConditionVisitor;
public abstract class AbstractJPATypedQueryVisitor<T, T1, E>
extends AbstractSearchConditionVisitor<T, E> {
@@ -239,5 +239,4 @@ public abstract class AbstractJPATypedQu
return joinProperties == null ? false : joinProperties.contains(prop);
}
-
}
Modified:
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ldap/LdapQueryVisitor.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ldap/LdapQueryVisitor.java?rev=1420315&r1=1420314&r2=1420315&view=diff
==============================================================================
---
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ldap/LdapQueryVisitor.java
(original)
+++
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/ldap/LdapQueryVisitor.java
Tue Dec 11 18:13:34 2012
@@ -21,17 +21,15 @@ package org.apache.cxf.jaxrs.ext.search.
import java.util.Collections;
import java.util.Map;
-import org.apache.cxf.jaxrs.ext.search.AbstractSearchConditionVisitor;
import org.apache.cxf.jaxrs.ext.search.ConditionType;
import org.apache.cxf.jaxrs.ext.search.PrimitiveStatement;
import org.apache.cxf.jaxrs.ext.search.SearchCondition;
+import
org.apache.cxf.jaxrs.ext.search.visitor.AbstractUntypedSearchConditionVisitor;
/**
* Initial Implementation of http://tools.ietf.org/html/rfc4515
*/
-public class LdapQueryVisitor<T> extends AbstractSearchConditionVisitor<T,
String> {
+public class LdapQueryVisitor<T> extends
AbstractUntypedSearchConditionVisitor<T, String> {
- private StringBuilder sb = new StringBuilder();
-
public LdapQueryVisitor() {
this(Collections.<String, String>emptyMap());
}
@@ -41,6 +39,11 @@ public class LdapQueryVisitor<T> extends
}
public void visit(SearchCondition<T> sc) {
+
+ StringBuilder sb = getStringBuilder();
+ if (sb == null) {
+ sb = new StringBuilder();
+ }
PrimitiveStatement statement = sc.getStatement();
if (statement != null) {
@@ -67,15 +70,15 @@ public class LdapQueryVisitor<T> extends
}
for (SearchCondition<T> condition : sc.getSearchConditions()) {
+ saveStringBuilder(sb);
condition.accept(this);
+ sb = getStringBuilder();
}
sb.append(")");
}
+ saveStringBuilder(sb);
}
- public String getQuery() {
- return sb.toString();
- }
public static String conditionTypeToLdapOperator(ConditionType ct) {
String op;
Modified:
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitor.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitor.java?rev=1420315&r1=1420314&r2=1420315&view=diff
==============================================================================
---
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitor.java
(original)
+++
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/main/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitor.java
Tue Dec 11 18:13:34 2012
@@ -23,15 +23,14 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
-import org.apache.cxf.jaxrs.ext.search.AbstractSearchConditionVisitor;
import org.apache.cxf.jaxrs.ext.search.PrimitiveStatement;
import org.apache.cxf.jaxrs.ext.search.SearchCondition;
import org.apache.cxf.jaxrs.ext.search.SearchUtils;
+import
org.apache.cxf.jaxrs.ext.search.visitor.AbstractUntypedSearchConditionVisitor;
-public class SQLPrinterVisitor<T> extends AbstractSearchConditionVisitor<T,
String> {
+public class SQLPrinterVisitor<T> extends
AbstractUntypedSearchConditionVisitor<T, String> {
- private StringBuilder sb;
private String table;
private String tableAlias;
private List<String> columns;
@@ -56,19 +55,14 @@ public class SQLPrinterVisitor<T> extend
String tableAlias,
List<String> columns) {
super(fieldMap);
+
this.columns = columns;
this.table = table;
this.tableAlias = tableAlias;
}
public void visit(SearchCondition<T> sc) {
-
- if (sb == null) {
- sb = new StringBuilder();
- if (table != null) {
- SearchUtils.startSqlQuery(sb, table, tableAlias, columns);
- }
- }
+ StringBuilder sb = getStringBuilder();
PrimitiveStatement statement = sc.getStatement();
if (statement != null) {
@@ -93,19 +87,27 @@ public class SQLPrinterVisitor<T> extend
first = false;
}
sb.append("(");
+ saveStringBuilder(sb);
condition.accept(this);
+ sb = getStringBuilder();
sb.append(")");
}
}
+
+ saveStringBuilder(sb);
}
-
- @Deprecated
- public String getResult() {
- return getQuery();
+ protected StringBuilder getStringBuilder() {
+ StringBuilder sb = super.getStringBuilder();
+ if (sb == null) {
+ sb = new StringBuilder();
+ if (table != null) {
+ SearchUtils.startSqlQuery(sb, table, tableAlias, columns);
+ }
+ }
+ return sb;
}
- public String getQuery() {
- return sb == null ? null : sb.toString();
- }
+
+
}
Modified:
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitorTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitorTest.java?rev=1420315&r1=1420314&r2=1420315&view=diff
==============================================================================
---
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitorTest.java
(original)
+++
cxf/branches/2.6.x-fixes/rt/rs/extensions/search/src/test/java/org/apache/cxf/jaxrs/ext/search/sql/SQLPrinterVisitorTest.java
Tue Dec 11 18:13:34 2012
@@ -25,6 +25,7 @@ import org.apache.cxf.jaxrs.ext.search.S
import org.apache.cxf.jaxrs.ext.search.SearchCondition;
import org.apache.cxf.jaxrs.ext.search.SearchParseException;
import org.apache.cxf.jaxrs.ext.search.fiql.FiqlParser;
+import org.apache.cxf.jaxrs.ext.search.visitor.SBThreadLocalVisitorState;
import org.junit.Assert;
import org.junit.Ignore;
@@ -105,6 +106,20 @@ public class SQLPrinterVisitorTest exten
}
@Test
+ public void testSQL4WithTLStateAndSingleThread() throws
SearchParseException {
+ SearchCondition<Condition> filter =
parser.parse("(name==test,level==18);(name==test1,level!=19)");
+ SQLPrinterVisitor<Condition> visitor = new
SQLPrinterVisitor<Condition>("table");
+ visitor.setVisitorState(new SBThreadLocalVisitorState());
+
+ filter.accept(visitor);
+ String sql = visitor.getQuery();
+ assertTrue(("SELECT * FROM table WHERE ((name = 'test') OR (level =
'18'))"
+ + " AND ((name = 'test1') OR (level <> '19'))").equals(sql)
+ || ("SELECT * FROM table WHERE ((name = 'test1') OR (level
<> '19'))"
+ + " AND ((name = 'test') OR (level = '18'))").equals(sql));
+ }
+
+ @Test
public void testSQL5() throws SearchParseException {
SearchCondition<Condition> filter = parser.parse("name==test");
SQLPrinterVisitor<Condition> visitor = new
SQLPrinterVisitor<Condition>("table");