Return-Path: Delivered-To: apmail-camel-commits-archive@www.apache.org Received: (qmail 73387 invoked from network); 30 Jul 2010 08:23:33 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 30 Jul 2010 08:23:33 -0000 Received: (qmail 54039 invoked by uid 500); 30 Jul 2010 08:23:33 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 53101 invoked by uid 500); 30 Jul 2010 08:23:31 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 52198 invoked by uid 99); 30 Jul 2010 08:23:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Jul 2010 08:23:30 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 30 Jul 2010 08:23:27 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1C47923889B1; Fri, 30 Jul 2010 08:22:10 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r980675 - in /camel/trunk/components/camel-josql: ./ src/main/java/org/apache/camel/language/ src/main/java/org/apache/camel/language/sql/ src/main/resources/META-INF/services/ src/main/resources/META-INF/services/org/ src/main/resources/ME... Date: Fri, 30 Jul 2010 08:22:10 -0000 To: commits@camel.apache.org From: ningjiang@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100730082210.1C47923889B1@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: ningjiang Date: Fri Jul 30 08:22:09 2010 New Revision: 980675 URL: http://svn.apache.org/viewvc?rev=980675&view=rev Log: CAMEL-3014 camel-josql should have SQL language META-INF which can be found automatically by camel-core Added: camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/ camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/sql/ camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/sql/SqlLanguage.java (with props) camel/trunk/components/camel-josql/src/main/resources/META-INF/services/ camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/ camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/apache/ camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/apache/camel/ camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/apache/camel/language/ camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/apache/camel/language/sql camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/ camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/sql/ camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/sql/SqlLanguageTest.java (with props) Modified: camel/trunk/components/camel-josql/pom.xml camel/trunk/components/camel-josql/src/test/java/org/apache/camel/builder/sql/SqlTest.java Modified: camel/trunk/components/camel-josql/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-josql/pom.xml?rev=980675&r1=980674&r2=980675&view=diff ============================================================================== --- camel/trunk/components/camel-josql/pom.xml (original) +++ camel/trunk/components/camel-josql/pom.xml Fri Jul 30 08:22:09 2010 @@ -64,7 +64,13 @@ commons-logging - commons-logging-api + commons-logging + test + + + log4j + log4j + test Added: camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/sql/SqlLanguage.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/sql/SqlLanguage.java?rev=980675&view=auto ============================================================================== --- camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/sql/SqlLanguage.java (added) +++ camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/sql/SqlLanguage.java Fri Jul 30 08:22:09 2010 @@ -0,0 +1,61 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.language.sql; + +import javax.xml.namespace.QName; + +import org.apache.camel.Expression; +import org.apache.camel.IsSingleton; +import org.apache.camel.Predicate; +import org.apache.camel.RuntimeCamelException; +import org.apache.camel.builder.sql.SqlBuilder; +import org.apache.camel.builder.xml.XPathBuilder; +import org.apache.camel.spi.Language; +import org.josql.QueryParseException; + +/** + * XPath language. + * + * @version $Revision$ + */ +public class SqlLanguage implements Language, IsSingleton { + + public Predicate createPredicate(String expression) { + try { + SqlBuilder builder = SqlBuilder.sql(expression); + return builder; + } catch (QueryParseException e) { + RuntimeException exception = new RuntimeCamelException("Canont create the SqlBuilder.", e); + throw exception; + } + + } + + public Expression createExpression(String expression) { + try { + SqlBuilder builder = SqlBuilder.sql(expression); + return builder; + } catch (QueryParseException e) { + RuntimeException exception = new RuntimeCamelException("Canont create the SqlBuilder.", e); + throw exception; + } + } + + public boolean isSingleton() { + return false; + } +} Propchange: camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/sql/SqlLanguage.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/components/camel-josql/src/main/java/org/apache/camel/language/sql/SqlLanguage.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Added: camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/apache/camel/language/sql URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/apache/camel/language/sql?rev=980675&view=auto ============================================================================== --- camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/apache/camel/language/sql (added) +++ camel/trunk/components/camel-josql/src/main/resources/META-INF/services/org/apache/camel/language/sql Fri Jul 30 08:22:09 2010 @@ -0,0 +1,18 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +class=org.apache.camel.language.sql.SqlLanguage Modified: camel/trunk/components/camel-josql/src/test/java/org/apache/camel/builder/sql/SqlTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-josql/src/test/java/org/apache/camel/builder/sql/SqlTest.java?rev=980675&r1=980674&r2=980675&view=diff ============================================================================== --- camel/trunk/components/camel-josql/src/test/java/org/apache/camel/builder/sql/SqlTest.java (original) +++ camel/trunk/components/camel-josql/src/test/java/org/apache/camel/builder/sql/SqlTest.java Fri Jul 30 08:22:09 2010 @@ -24,6 +24,7 @@ import org.apache.camel.Expression; import org.apache.camel.Message; import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.impl.DefaultExchange; +import org.apache.camel.test.junit4.CamelTestSupport; import org.apache.camel.test.junit4.TestSupport; import org.junit.Before; import org.junit.Test; @@ -33,9 +34,9 @@ import static org.apache.camel.builder.s /** * @version $Revision$ */ -public class SqlTest extends TestSupport { +public class SqlTest extends CamelTestSupport { - protected CamelContext context = new DefaultCamelContext(); + //protected CamelContext context = new DefaultCamelContext(); protected Exchange exchange; @Test @@ -79,7 +80,8 @@ public class SqlTest extends TestSupport } @Before - public void setUp() throws Exception { + public void setUp() throws Exception { + super.setUp(); exchange = createExchange(); } Added: camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/sql/SqlLanguageTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/sql/SqlLanguageTest.java?rev=980675&view=auto ============================================================================== --- camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/sql/SqlLanguageTest.java (added) +++ camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/sql/SqlLanguageTest.java Fri Jul 30 08:22:09 2010 @@ -0,0 +1,82 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.lanaguage.sql; + +import java.util.List; + +import org.apache.camel.Expression; +import org.apache.camel.builder.sql.Person; +import org.apache.camel.builder.sql.SqlTest; +import org.apache.camel.spi.Language; +import org.junit.Test; + +/** + * @version $Revision$ + */ +public class SqlLanguageTest extends SqlTest { + + @Test + public void testExpression() throws Exception { + Language language = assertResolveLanguage(getLanguageName()); + + Expression expression = language.createExpression("SELECT * FROM org.apache.camel.builder.sql.Person where city = 'London'"); + List value = expression.evaluate(exchange, List.class); + + List list = (List)value; + assertEquals("List size", 2, list.size()); + + for (Object person : list) { + log.info("Found: " + person); + } + } + + @SuppressWarnings("unchecked") + @Test + public void testExpressionWithHeaderVariable() throws Exception { + Language language = assertResolveLanguage(getLanguageName()); + + Expression expression = language.createExpression("SELECT * FROM org.apache.camel.builder.sql.Person where name = :fooHeader"); + List value = expression.evaluate(exchange, List.class); + + List list = (List)value; + assertEquals("List size", 1, list.size()); + + for (Person person : list) { + log.info("Found: " + person); + + assertEquals("name", "James", person.getName()); + } + } + + @Test + public void testPredicates() throws Exception { + Language language = assertResolveLanguage(getLanguageName()); + assertPredicate(language.createPredicate("SELECT * FROM org.apache.camel.builder.sql.Person where city = 'London'"), exchange, true); + assertPredicate(language.createPredicate("SELECT * FROM org.apache.camel.builder.sql.Person where city = 'Manchester'"), exchange, false); + } + + @Test + public void testPredicateWithHeaderVariable() throws Exception { + Language language = assertResolveLanguage(getLanguageName()); + assertPredicate(language.createPredicate("SELECT * FROM org.apache.camel.builder.sql.Person where name = :fooHeader"), exchange, true); + } + + protected String getLanguageName() { + return "sql"; + } + +} Propchange: camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/sql/SqlLanguageTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/components/camel-josql/src/test/java/org/apache/camel/lanaguage/sql/SqlLanguageTest.java ------------------------------------------------------------------------------ svn:keywords = Rev Date