Author: krasserm Date: Fri Apr 9 05:33:15 2010 New Revision: 932255 URL: http://svn.apache.org/viewvc?rev=932255&view=rev Log: CAMEL-2626: OAuth demo webapp.
Added: camel/trunk/examples/camel-example-gauth/ (with props) camel/trunk/examples/camel-example-gauth/README.txt (with props) camel/trunk/examples/camel-example-gauth/pom.xml (with props) camel/trunk/examples/camel-example-gauth/src/ camel/trunk/examples/camel-example-gauth/src/main/ camel/trunk/examples/camel-example-gauth/src/main/java/ camel/trunk/examples/camel-example-gauth/src/main/java/org/ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialController.java (with props) camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialRouteBuilder.java (with props) camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialService.java (with props) camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialTokenProcessor.java (with props) camel/trunk/examples/camel-example-gauth/src/main/resources/ camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/ camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/LICENSE.txt (with props) camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/NOTICE.txt (with props) camel/trunk/examples/camel-example-gauth/src/main/resources/context-camel.xml (with props) camel/trunk/examples/camel-example-gauth/src/main/resources/context-web.xml (with props) camel/trunk/examples/camel-example-gauth/src/main/resources/context.properties (with props) camel/trunk/examples/camel-example-gauth/src/main/resources/log4j.properties (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/appengine-web.xml (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/authorize.jsp (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/bottom.jsp (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/calendar.jsp (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/top.jsp (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/logging.properties (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/web.xml (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/images/ camel/trunk/examples/camel-example-gauth/src/main/webapp/images/camel.png (with props) camel/trunk/examples/camel-example-gauth/src/main/webapp/index.html (with props) Modified: camel/trunk/examples/pom.xml Propchange: camel/trunk/examples/camel-example-gauth/ ------------------------------------------------------------------------------ --- svn:ignore (added) +++ svn:ignore Fri Apr 9 05:33:15 2010 @@ -0,0 +1,8 @@ +.checkstyle +.pmd +eclipse-classes +target +.classpath +.project +.settings +*.i?? Added: camel/trunk/examples/camel-example-gauth/README.txt URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/README.txt?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/README.txt (added) +++ camel/trunk/examples/camel-example-gauth/README.txt Fri Apr 9 05:33:15 2010 @@ -0,0 +1,14 @@ +GAuth Example +============= + +TODO: fill in description and link to tutorial + +Please help us make Apache Camel better - we appreciate any feedback you +may have. + +Enjoy! + +------------------------ +The Camel riders! + + Propchange: camel/trunk/examples/camel-example-gauth/README.txt ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/pom.xml?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/pom.xml (added) +++ camel/trunk/examples/camel-example-gauth/pom.xml Fri Apr 9 05:33:15 2010 @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> + + <modelVersion>4.0.0</modelVersion> + + <parent> + <groupId>org.apache.camel</groupId> + <artifactId>examples</artifactId> + <version>2.3-SNAPSHOT</version> + </parent> + + <artifactId>camel-example-gauth</artifactId> + <name>Camel :: Example :: GAuth</name> + <description>Demonstrates how to implement Camel's OAuth support for GAE</description> + <packaging>war</packaging> + + <properties> + <gdata-version>1.41.1</gdata-version> + </properties> + + <dependencies> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-gae</artifactId> + </dependency> + <dependency> + <groupId>com.google.appengine.orm</groupId> + <artifactId>datanucleus-appengine</artifactId> + <version>1.0.5</version> + </dependency> + <dependency> + <groupId>com.google.gdata</groupId> + <artifactId>gdata-core</artifactId> + <version>${gdata-version}</version> + </dependency> + <dependency> + <groupId>com.google.gdata</groupId> + <artifactId>gdata-client</artifactId> + <version>${gdata-version}</version> + </dependency> + <dependency> + <groupId>com.google.gdata</groupId> + <artifactId>gdata-calendar</artifactId> + <version>${gdata-version}</version> + </dependency> + <dependency> + <groupId>com.google.gdata</groupId> + <artifactId>gdata-calendar-meta</artifactId> + <version>${gdata-version}</version> + </dependency> + <dependency> + <groupId>com.google.common</groupId> + <artifactId>google-collect</artifactId> + <version>1.0</version> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-webmvc</artifactId> + <version>${spring-version}</version> + </dependency> + + <!-- testing --> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + +</project> Propchange: camel/trunk/examples/camel-example-gauth/pom.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialController.java URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialController.java?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialController.java (added) +++ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialController.java Fri Apr 9 05:33:15 2010 @@ -0,0 +1,87 @@ +/** + * 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.example.gauth; + + +import java.util.List; +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.google.gdata.util.AuthenticationException; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.ModelMap; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; + +...@controller +...@requestmapping("/calendar") +public class TutorialController { + + @Autowired + private TutorialService service; + + @SuppressWarnings("unchecked") + @RequestMapping(method = RequestMethod.GET) + public String handleGet( + HttpServletRequest request, + HttpServletResponse response, + ModelMap model) throws Exception { + + List<String> calendarNames = null; + + String accessToken = getAccessToken(request); + String accessTokenSecret = getAccessTokenSecret(request); + + if (accessToken == null) { + model.put("message", "No OAuth access token available"); + return "/WEB-INF/jsp/authorize.jsp"; + } + + try { + calendarNames = service.getCalendarNames(accessToken, accessTokenSecret); + } catch (AuthenticationException e) { + model.put("message", "OAuth access token invalid"); + return "/WEB-INF/jsp/authorize.jsp"; + } + + model.put("calendarNames", calendarNames); + return "/WEB-INF/jsp/calendar.jsp"; + } + + private static String getAccessToken(HttpServletRequest request) { + return getCookieValue(request.getCookies(), "TUTORIAL-ACCESS-TOKEN"); + } + + private static String getAccessTokenSecret(HttpServletRequest request) { + return getCookieValue(request.getCookies(), "TUTORIAL-ACCESS-TOKEN-SECRET"); + } + + private static String getCookieValue(Cookie[] cookies, String name) { + if (cookies == null) { + return null; + } + for (Cookie cookie : cookies) { + if (name.equals(cookie.getName())) { + return cookie.getValue(); + } + } + return null; + } + +} Propchange: camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialController.java ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialRouteBuilder.java URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialRouteBuilder.java?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialRouteBuilder.java (added) +++ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialRouteBuilder.java Fri Apr 9 05:33:15 2010 @@ -0,0 +1,39 @@ +/** + * 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.example.gauth; + +import java.net.URLEncoder; + +import org.apache.camel.builder.RouteBuilder; + +public class TutorialRouteBuilder extends RouteBuilder { + + @Override + public void configure() throws Exception { + + String encodedCallback = URLEncoder.encode("https://ipfcloud.appspot.com/camel/handler", "UTF-8"); + String encodedScope = URLEncoder.encode("http://www.google.com/calendar/feeds/", "UTF-8"); + + from("ghttp:///authorize") + .to("gauth:authorize?callback=" + encodedCallback + "&scope=" + encodedScope); + + from("ghttp:///handler") + .to("gauth:upgrade") + .process(new TutorialTokenProcessor()); + } + +} Propchange: camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialRouteBuilder.java ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialService.java URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialService.java?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialService.java (added) +++ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialService.java Fri Apr 9 05:33:15 2010 @@ -0,0 +1,62 @@ +/** + * 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.example.gauth; + +import java.net.URL; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +import com.google.gdata.client.authn.oauth.OAuthHmacSha1Signer; +import com.google.gdata.client.authn.oauth.OAuthParameters; +import com.google.gdata.client.calendar.CalendarService; +import com.google.gdata.data.calendar.CalendarEntry; +import com.google.gdata.data.calendar.CalendarFeed; + +public class TutorialService { + + private Properties credentials; + + public void setCredentials(Properties credentials) { + this.credentials = credentials; + } + + public List<String> getCalendarNames(String accessToken, String accessTokenSecret) throws Exception { + CalendarService calendarService = new CalendarService("apache-camel-2.3"); + OAuthParameters params = getOAuthParams(accessToken, accessTokenSecret); + calendarService.setOAuthCredentials(params, new OAuthHmacSha1Signer()); + URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/"); + CalendarFeed resultFeed = calendarService.getFeed(feedUrl, CalendarFeed.class); + + ArrayList<String> result = new ArrayList<String>(); + for (int i = 0; i < resultFeed.getEntries().size(); i++) { + CalendarEntry entry = resultFeed.getEntries().get(i); + result.add(entry.getTitle().getPlainText()); + } + return result; + } + + private OAuthParameters getOAuthParams(String accessToken, String accessTokenSecret) { + OAuthParameters params = new OAuthParameters(); + params.setOAuthConsumerKey(credentials.getProperty("consumer.key")); + params.setOAuthConsumerSecret(credentials.getProperty("consumer.secret")); + params.setOAuthToken(accessToken); + params.setOAuthTokenSecret(accessTokenSecret); + return params; + } + +} Propchange: camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialService.java ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialTokenProcessor.java URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialTokenProcessor.java?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialTokenProcessor.java (added) +++ camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialTokenProcessor.java Fri Apr 9 05:33:15 2010 @@ -0,0 +1,57 @@ +/** + * 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.example.gauth; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletResponse; + +import org.apache.camel.Exchange; +import org.apache.camel.Processor; + +import static org.apache.camel.component.gae.auth.GAuthUpgradeBinding.GAUTH_ACCESS_TOKEN; +import static org.apache.camel.component.gae.auth.GAuthUpgradeBinding.GAUTH_ACCESS_TOKEN_SECRET; + +public class TutorialTokenProcessor implements Processor { + + private static final int ONE_HOUR = 3600; + + public void process(Exchange exchange) throws Exception { + String accessToken = exchange.getIn().getHeader(GAUTH_ACCESS_TOKEN, String.class); + String accessTokenSecret = exchange.getIn().getHeader(GAUTH_ACCESS_TOKEN_SECRET, String.class); + + if (accessToken != null) { + HttpServletResponse servletResponse = exchange.getIn().getHeader( + Exchange.HTTP_SERVLET_RESPONSE, HttpServletResponse.class); + + Cookie accessTokenCookie = new Cookie("TUTORIAL-ACCESS-TOKEN", accessToken); + Cookie accessTokenSecretCookie = new Cookie("TUTORIAL-ACCESS-TOKEN-SECRET", accessTokenSecret); + + accessTokenCookie.setPath("/oauth/"); + accessTokenCookie.setMaxAge(ONE_HOUR); + + accessTokenSecretCookie.setPath("/oauth/"); + accessTokenSecretCookie.setMaxAge(ONE_HOUR); + + servletResponse.addCookie(accessTokenCookie); + servletResponse.addCookie(accessTokenSecretCookie); + } + + exchange.getOut().setHeader(Exchange.HTTP_RESPONSE_CODE, 302); + exchange.getOut().setHeader("Location", "/oauth/calendar"); + } + +} Propchange: camel/trunk/examples/camel-example-gauth/src/main/java/org/apache/camel/example/gauth/TutorialTokenProcessor.java ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/LICENSE.txt URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/LICENSE.txt?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/LICENSE.txt (added) +++ camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/LICENSE.txt Fri Apr 9 05:33:15 2010 @@ -0,0 +1,203 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed 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. + Propchange: camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/LICENSE.txt ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/NOTICE.txt URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/NOTICE.txt?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/NOTICE.txt (added) +++ camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/NOTICE.txt Fri Apr 9 05:33:15 2010 @@ -0,0 +1,11 @@ + ========================================================================= + == NOTICE file corresponding to the section 4 d of == + == the Apache License, Version 2.0, == + == in this case for the Apache Camel distribution. == + ========================================================================= + + This product includes software developed by + The Apache Software Foundation (http://www.apache.org/). + + Please read the different LICENSE files present in the licenses directory of + this distribution. Propchange: camel/trunk/examples/camel-example-gauth/src/main/resources/META-INF/NOTICE.txt ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/resources/context-camel.xml URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/resources/context-camel.xml?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/resources/context-camel.xml (added) +++ camel/trunk/examples/camel-example-gauth/src/main/resources/context-camel.xml Fri Apr 9 05:33:15 2010 @@ -0,0 +1,48 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + 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. +--> + +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:context="http://www.springframework.org/schema/context" + xmlns:camel="http://camel.apache.org/schema/spring" + xsi:schemaLocation=" +http://www.springframework.org/schema/beans +http://www.springframework.org/schema/beans/spring-beans-2.5.xsd +http://www.springframework.org/schema/context +http://www.springframework.org/schema/context/spring-context-2.5.xsd +http://camel.apache.org/schema/spring +http://camel.apache.org/schema/spring/camel-spring.xsd"> + + <context:property-placeholder location="classpath:context.properties"/> + + <camel:camelContext id="camelContext"> + <camel:jmxAgent id="agent" disabled="true" /> + <camel:routeBuilder ref="tutorialRouteBuilder"/> + </camel:camelContext> + + <bean id="tutorialRouteBuilder" + class="org.apache.camel.example.gauth.TutorialRouteBuilder"> + </bean> + + <bean id="gauth" class="org.apache.camel.component.gae.auth.GAuthComponent"> + <property name="consumerKey" value="${consumer.key}" /> + <property name="consumerSecret" value="${consumer.secret}" /> + </bean> + +</beans> Propchange: camel/trunk/examples/camel-example-gauth/src/main/resources/context-camel.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/resources/context-web.xml URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/resources/context-web.xml?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/resources/context-web.xml (added) +++ camel/trunk/examples/camel-example-gauth/src/main/resources/context-web.xml Fri Apr 9 05:33:15 2010 @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + 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. +--> + +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ctx="http://www.springframework.org/schema/context" + xmlns:util="http://www.springframework.org/schema/util" + xsi:schemaLocation=" +http://www.springframework.org/schema/beans +http://www.springframework.org/schema/beans/spring-beans-2.5.xsd +http://www.springframework.org/schema/context +http://www.springframework.org/schema/context/spring-context-2.5.xsd +http://www.springframework.org/schema/util +http://www.springframework.org/schema/util/spring-util-2.5.xsd"> + + <ctx:component-scan base-package="org.apache.camel.example.gauth"/> + + <util:properties id="credentials" location="classpath:context.properties"/> + + <bean id="tutorialService" class="org.apache.camel.example.gauth.TutorialService"> + <property name="credentials" ref="credentials" /> + </bean> + +</beans> \ No newline at end of file Propchange: camel/trunk/examples/camel-example-gauth/src/main/resources/context-web.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/resources/context.properties URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/resources/context.properties?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/resources/context.properties (added) +++ camel/trunk/examples/camel-example-gauth/src/main/resources/context.properties Fri Apr 9 05:33:15 2010 @@ -0,0 +1,19 @@ +## ------------------------------------------------------------------------ +## 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. +## ------------------------------------------------------------------------ + +consumer.key=replaceme +consumer.secret=replaceme Propchange: camel/trunk/examples/camel-example-gauth/src/main/resources/context.properties ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/resources/log4j.properties URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/resources/log4j.properties?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/resources/log4j.properties (added) +++ camel/trunk/examples/camel-example-gauth/src/main/resources/log4j.properties Fri Apr 9 05:33:15 2010 @@ -0,0 +1,36 @@ +## ------------------------------------------------------------------------ +## 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. +## ------------------------------------------------------------------------ + +# Configure the console as our one appender +log4j.appender.A1=org.apache.log4j.ConsoleAppender +log4j.appender.A1.layout=org.apache.log4j.PatternLayout +log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%c] - %m%n + +# tighten logging on the DataNucleus Categories +log4j.category.DataNucleus.JDO=WARN, A1 +log4j.category.DataNucleus.Persistence=WARN, A1 +log4j.category.DataNucleus.Cache=WARN, A1 +log4j.category.DataNucleus.MetaData=WARN, A1 +log4j.category.DataNucleus.General=WARN, A1 +log4j.category.DataNucleus.Utility=WARN, A1 +log4j.category.DataNucleus.Transaction=WARN, A1 +log4j.category.DataNucleus.Datastore=WARN, A1 +log4j.category.DataNucleus.ClassLoading=WARN, A1 +log4j.category.DataNucleus.Plugin=WARN, A1 +log4j.category.DataNucleus.ValueGeneration=WARN, A1 +log4j.category.DataNucleus.Enhancer=WARN, A1 +log4j.category.DataNucleus.SchemaTool=WARN, A1 Propchange: camel/trunk/examples/camel-example-gauth/src/main/resources/log4j.properties ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/appengine-web.xml URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/appengine-web.xml?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/appengine-web.xml (added) +++ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/appengine-web.xml Fri Apr 9 05:33:15 2010 @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + 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. +--> + +<appengine-web-app xmlns="http://appengine.google.com/ns/1.0"> + <application>ipfcloud</application> + <version>1</version> + + <system-properties> + <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/> + </system-properties> + +</appengine-web-app> \ No newline at end of file Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/appengine-web.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/authorize.jsp URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/authorize.jsp?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/authorize.jsp (added) +++ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/authorize.jsp Fri Apr 9 05:33:15 2010 @@ -0,0 +1,6 @@ +<%@ include file="top.jsp" %> + +<%= request.getAttribute("message") %>. +<a href="/camel/authorize">Click here</a> to authorize this application to access your Google Calendar. + +<%@ include file="bottom.jsp" %> Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/authorize.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/bottom.jsp URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/bottom.jsp?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/bottom.jsp (added) +++ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/bottom.jsp Fri Apr 9 05:33:15 2010 @@ -0,0 +1,10 @@ +<p> +<hr> +<p> +<b>About this application:</b><br> +This application retrieves the names of your public and private Google calendars from the +<a href="http://code.google.com/intl/de-DE/apis/calendar/data/2.0/developers_guide.html">Google Calendar API</a>.<br> +Follow <a href="">this link</a> for a detailed description about deployment, +usage and implementation of this application. +</body> +</html> Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/bottom.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/calendar.jsp URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/calendar.jsp?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/calendar.jsp (added) +++ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/calendar.jsp Fri Apr 9 05:33:15 2010 @@ -0,0 +1,10 @@ +<%@ include file="top.jsp" %> +Here's the list of names of your public and private Google calendars: +<p> +<% for (String calendarName : (java.util.List<String>)request.getAttribute("calendarNames")) { %> +<%= calendarName %><br> +<% } %> +<p> +<a href="https://www.google.com/accounts/IssuedAuthSubTokens">Click here</a> if +you want to revoke access to your Google Calendar. +<%@ include file="bottom.jsp" %> Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/calendar.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/top.jsp URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/top.jsp?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/top.jsp (added) +++ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/top.jsp Fri Apr 9 05:33:15 2010 @@ -0,0 +1,14 @@ +<%@ page contentType="text/html" %> +<%@ page session="false" %> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> +<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> +<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> + +<html> +<head> +<title>Apache Camel OAuth Tutorial</title> +</head> +<body> +<img src="/images/camel.png" /> +<h1>OAuth Tutorial</h1> Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/jsp/top.jsp ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/logging.properties URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/logging.properties?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/logging.properties (added) +++ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/logging.properties Fri Apr 9 05:33:15 2010 @@ -0,0 +1,36 @@ +## ------------------------------------------------------------------------ +## 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. +## ------------------------------------------------------------------------ + +# Set the default logging level for all loggers to WARNING +.level = WARNING +org.apache.camel.component.gae.level=INFO +org.apache.camel.example.gauth.level=INFO + +# Set the default logging level for ORM, specifically, to WARNING +DataNucleus.JDO.level=WARNING +DataNucleus.Persistence.level=WARNING +DataNucleus.Cache.level=WARNING +DataNucleus.MetaData.level=WARNING +DataNucleus.General.level=WARNING +DataNucleus.Utility.level=WARNING +DataNucleus.Transaction.level=WARNING +DataNucleus.Datastore.level=WARNING +DataNucleus.ClassLoading.level=WARNING +DataNucleus.Plugin.level=WARNING +DataNucleus.ValueGeneration.level=WARNING +DataNucleus.Enhancer.level=WARNING +DataNucleus.SchemaTool.level=WARNING Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/logging.properties ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/web.xml URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/web.xml?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/web.xml (added) +++ camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/web.xml Fri Apr 9 05:33:15 2010 @@ -0,0 +1,60 @@ +<?xml version="1.0" encoding="utf-8"?> + +<!-- + 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. +--> + +<web-app +xmlns="http://java.sun.com/xml/ns/javaee" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" +xsi:schemaLocation=" +http://java.sun.com/xml/ns/javaee +http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> + + <servlet> + <servlet-name>CamelServlet</servlet-name> + <servlet-class>org.apache.camel.component.servlet.CamelHttpTransportServlet</servlet-class> + <init-param> + <param-name>contextConfigLocation</param-name> + <param-value>context-camel.xml</param-value> + </init-param> + </servlet> + + <servlet> + <servlet-name>oauth</servlet-name> + <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> + <init-param> + <param-name>contextConfigLocation</param-name> + <param-value>/WEB-INF/classes/context-web.xml</param-value> + </init-param> + </servlet> + + <servlet-mapping> + <servlet-name>oauth</servlet-name> + <url-pattern>/oauth/*</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>CamelServlet</servlet-name> + <url-pattern>/camel/*</url-pattern> + </servlet-mapping> + <servlet-mapping> + <servlet-name>CamelServlet</servlet-name> + <url-pattern>/worker/*</url-pattern> + </servlet-mapping> + +</web-app> + Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/WEB-INF/web.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/images/camel.png URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/images/camel.png?rev=932255&view=auto ============================================================================== Binary file - no diff available. Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/images/camel.png ------------------------------------------------------------------------------ svn:mime-type = image/png Added: camel/trunk/examples/camel-example-gauth/src/main/webapp/index.html URL: http://svn.apache.org/viewvc/camel/trunk/examples/camel-example-gauth/src/main/webapp/index.html?rev=932255&view=auto ============================================================================== --- camel/trunk/examples/camel-example-gauth/src/main/webapp/index.html (added) +++ camel/trunk/examples/camel-example-gauth/src/main/webapp/index.html Fri Apr 9 05:33:15 2010 @@ -0,0 +1,11 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html> +<head> +<meta http-equiv="expires" content="0"> +<meta http-equiv="content-type" content="text/html; charset=UTF-8"> +<title>Apache Camel OAuth Tutorial</title> +</head> +<body> +<a href="/oauth/calendar">Apache Camel OAuth Tutorial</a> +</body> +</html> Propchange: camel/trunk/examples/camel-example-gauth/src/main/webapp/index.html ------------------------------------------------------------------------------ svn:eol-style = native Modified: camel/trunk/examples/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/examples/pom.xml?rev=932255&r1=932254&r2=932255&view=diff ============================================================================== --- camel/trunk/examples/pom.xml (original) +++ camel/trunk/examples/pom.xml Fri Apr 9 05:33:15 2010 @@ -57,6 +57,7 @@ <module>camel-example-docs</module> <module>camel-example-etl</module> <module>camel-example-gae</module> + <module>camel-example-gauth</module> <module>camel-example-guice-jms</module> <module>camel-example-http-async</module> <module>camel-example-jms-file</module>