diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-15 06:50:04 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2008-09-15 06:50:04 +0000 |
commit | 147ed48e86bb4a13e42df35f1d1d800a7b564f4b (patch) | |
tree | 2412db1dcc7b46a214d2b7b46d21349ac08aa9b8 /branches/sca-android/modules/binding-gdata-runtime-gsoc/src | |
parent | 512771c8a42d2cde253f6df55ef552f7a0b4f792 (diff) |
Removed more modules as in Oscar's TUSCANY-2440 reduced-set patch. Also removed newer modules added since r643746 and are not required to run the minimum set that we are porting to android. Set svn ignore properties to ignore Manifest files produced by the build.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@695356 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-android/modules/binding-gdata-runtime-gsoc/src')
27 files changed, 0 insertions, 3219 deletions
diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/Collection.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/Collection.java deleted file mode 100644 index 5400e0b90f..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/Collection.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.collection; - -import com.google.gdata.client.Query; -import com.google.gdata.data.Entry; -import com.google.gdata.data.Feed; -import org.osoa.sca.annotations.Remotable; - -/** - * Provides access to a collection of resources using Gdata. - */ -@Remotable -public interface Collection { - - /** - * Get a GData feed for a collection of resources. - * - * @return the GData feed - */ - Feed getFeed(); - - /** - * Get a GData feed for a collection of resources resulting from a query. - * - * @param queryString a query string - * @return the GData feed - */ - Feed query(Query query); - - /** - * Creates a new entry. - * - * @param entry - * @return - */ - Entry post(Entry entry); - - /** - * Retrieves an entry. - * - * @param id - * @return - */ - Entry get(String id) throws NotFoundException; - - /** - * Update an entry. - * - * @param id - * @param entry - * @return - */ - void put(String id, Entry entry) throws NotFoundException; - - /** - * Delete an entry. - * - * @param id - */ - void delete(String id) throws NotFoundException; - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/MediaCollection.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/MediaCollection.java deleted file mode 100644 index 31e16e5f56..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/MediaCollection.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.collection; - -import java.io.InputStream; - -import org.osoa.sca.annotations.Remotable; // import - // org.apache.abdera.model.Entry; - -import com.google.gdata.data.Entry; - -/** - * Provides access to a collection of resources using Atom. - */ -@Remotable -public interface MediaCollection extends Collection { - - /** - * Creates a new media entry - * - * @param title - * @param slug - * @param contentType - * @param media - */ - Entry postMedia(String title, String slug, String contentType, InputStream media); - - /** - * Update a media entry. - * - * @param id - * @param contentType - * @param media - * @return - */ - void putMedia(String id, String contentType, InputStream media) throws NotFoundException; - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/NotFoundException.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/NotFoundException.java deleted file mode 100644 index 4fc32d4d37..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/NotFoundException.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.collection; - -/** - * Indicates that a resource could not be found. - * - * @version $Rev$ $Date$ - */ -public class NotFoundException extends Exception { - private static final long serialVersionUID = -5046027674128627383L; - - public NotFoundException() { - } - - public NotFoundException(String message) { - super(message); - } - - public NotFoundException(Throwable cause) { - super(cause); - } - - public NotFoundException(String message, Throwable cause) { - super(message, cause); - } - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingInvoker.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingInvoker.java deleted file mode 100644 index 859318a306..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingInvoker.java +++ /dev/null @@ -1,434 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.provider; - -import static org.apache.tuscany.sca.binding.gdata.provider.GdataBindingUtil.entry; -import static org.apache.tuscany.sca.binding.gdata.provider.GdataBindingUtil.feedEntry; - -import java.io.IOException; -import java.net.URL; -import java.util.ArrayList; -import java.util.List; - -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.methods.DeleteMethod; -import org.apache.commons.httpclient.methods.GetMethod; -import org.apache.commons.httpclient.methods.PutMethod; -import org.apache.tuscany.sca.binding.gdata.collection.NotFoundException; -import org.apache.tuscany.sca.data.collection.Entry; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.invocation.DataExchangeSemantics; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; -import org.osoa.sca.ServiceRuntimeException; - -import com.google.gdata.client.GoogleService; -import com.google.gdata.client.Query; -import com.google.gdata.data.Feed; -import com.google.gdata.util.ResourceNotFoundException; -import com.google.gdata.util.ServiceException; - -/** - * Invoker for the GData binding. - */ -class GdataBindingInvoker implements Invoker, DataExchangeSemantics { - - Operation operation; - String uri; - HttpClient httpClient; - String authorizationHeader; - GdataReferenceBindingProvider provider; - GoogleService googleService; - - GdataBindingInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - this.operation = operation; - this.uri = uri; - this.googleService = googleService; - this.httpClient = httpClient; - this.authorizationHeader = authorizationHeader; - this.provider = bindingProvider; - - } - - public Message invoke(Message msg) { - // Shouldn't get here, as the only supported methods are - // defined in the ResourceCollection interface, and implemented - // by specific invoker subclasses - throw new UnsupportedOperationException(operation.getName()); - } - - - /** - * Get operation invoker - */ - public static class GetInvoker extends GdataBindingInvoker { - public GetInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - super(operation, uri, googleService, httpClient, authorizationHeader, bindingProvider); - } - - @SuppressWarnings("finally") - @Override - public Message invoke(Message msg) { - - // Get the entry id from the message body - String id = (String)((Object[])msg.getBody())[0]; - - // Send an HTTP GET - GetMethod getMethod = new GetMethod(uri + "/" + id); - getMethod.setRequestHeader("Authorization", authorizationHeader); - - try { - URL entryURL = new URL(uri + "/" + id); - com.google.gdata.data.Entry feedEntry = googleService.getEntry(entryURL, com.google.gdata.data.Entry.class); - msg.setBody(feedEntry); - } catch (IOException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } catch (ServiceException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } finally { - return msg; - } - - } - } - - /** - * Post operation invoker - */ - public static class PostInvoker extends GdataBindingInvoker { - - public PostInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - super(operation, uri, googleService, httpClient, authorizationHeader, bindingProvider); - } - - @SuppressWarnings("finally") - @Override - public Message invoke(Message msg) { - - System.out.println("[Debug Info]GdataBindingInvoker.PostInvoker --- invoke method reached"); - // Post an entry - Object[] args = (Object[])msg.getBody(); - com.google.gdata.data.Entry feedEntry = null; - - if (provider.supportsFeedEntries()) { - - // Expect an GData entry - - System.out.println("[Debug Info]GdataBindingInvoker.PostInvoker --- supportsFeedEntries: " + provider - .supportsFeedEntries()); - feedEntry = (com.google.gdata.data.Entry)args[0]; - - System.out.println("[Debug Info]GdataBindingInvoker.PostInvoker --- feedEntry title: " + feedEntry - .getTitle().getPlainText()); - - } else { - // Expect a key and data item - Entry<Object, Object> entry = new Entry<Object, Object>(args[0], args[1]); - - // FIXME: this needs to be examinated more.... - feedEntry = - feedEntry(entry, provider.getItemClassType(), provider.getItemXMLType(), provider.getMediator()); - } - - - try { - - com.google.gdata.data.Entry createdEntry = googleService.insert(new URL(uri), feedEntry); - - msg.setBody(createdEntry); - - } catch (IOException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } catch (ServiceException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } finally { - return msg; - } - } - } - - - - /** - * Put operation invoker - */ - public static class PutInvoker extends GdataBindingInvoker { - - public PutInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - super(operation, uri, googleService, httpClient, authorizationHeader, bindingProvider); - } - - @SuppressWarnings("finally") - @Override - public Message invoke(Message msg) { - - // Put an entry - Object[] args = (Object[])msg.getBody(); - String id; - com.google.gdata.data.Entry feedEntry = null; - if (provider.supportsFeedEntries()) { - // Expect a key and GData entry - id = (String)args[0]; - feedEntry = (com.google.gdata.data.Entry)args[1]; - } else { - - // Expect a key and data item - id = (String)args[0]; - Entry<Object, Object> entry = new Entry<Object, Object>(id, args[1]); - - // FIXME: The following statement needs to be modified - // accordingly - /* - * feedEntry = feedEntry(entry, provider.getItemClassType(), - * provider.getItemXMLType(), provider.getMediator(), - * abderaFactory); - */ - } - - // Send an HTTP PUT <Localhost> - PutMethod putMethod = new PutMethod(uri + "/" + id); - putMethod.setRequestHeader("Authorization", authorizationHeader); - try { - URL entryURL = new URL(uri + "/" + id); - - com.google.gdata.data.Entry toUpdateEntry = googleService.getEntry(entryURL, com.google.gdata.data.Entry.class); - - System.out.println("EditHtml:" + toUpdateEntry.getEditLink().getHref()); - - URL editURL = new URL(toUpdateEntry.getEditLink().getHref()); - - com.google.gdata.data.Entry updatedEntry = googleService.update(editURL, feedEntry); - - msg.setBody(updatedEntry); - - } catch (IOException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } catch (ServiceException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } finally { - return msg; - } } - } - - /** - * Delete operation invoker - */ - public static class DeleteInvoker extends GdataBindingInvoker { - - public DeleteInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - super(operation, uri, googleService, httpClient, authorizationHeader, bindingProvider); - } - - @SuppressWarnings("finally") - @Override - public Message invoke(Message msg) { - - // Delete an entry - String id = (String)((Object[])msg.getBody())[0]; - - // Send an HTTP DELETE(Localhost) - DeleteMethod deleteMethod = new DeleteMethod(uri + "/" + id); - deleteMethod.setRequestHeader("Authorization", authorizationHeader); - - try { - URL entryURL = new URL(uri + "/" + id); - - com.google.gdata.data.Entry toUpdateEntry = googleService.getEntry(entryURL, com.google.gdata.data.Entry.class); - - System.out.println("EditHtml:" + toUpdateEntry.getEditLink().getHref()); - - URL editURL = new URL(toUpdateEntry.getEditLink().getHref()); - - googleService.delete(editURL); - - } catch (IOException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } catch (ServiceException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } finally { - return msg; - } - } - - } - - - /** - * GetAll operation invoker - */ - public static class GetAllInvoker extends GdataBindingInvoker { - - public GetAllInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - super(operation, uri, googleService, httpClient, authorizationHeader, bindingProvider); - } - - @SuppressWarnings("finally") - @Override - public Message invoke(Message msg) { - - // Send an HTTP GET - GetMethod getMethod = new GetMethod(uri); - getMethod.setRequestHeader("Authorization", authorizationHeader); - - System.out.println("[Debug Info] GdataBindingInvoker.GetAllInvoker.invoke---feedURL: " + uri); - - try { - - Feed feed = googleService.getFeed(new URL(uri), Feed.class); - msg.setBody(feed); - - } catch (ResourceNotFoundException ex) { - msg.setFaultBody(new ResourceNotFoundException("Invalid Resource at " + uri)); - } catch (ServiceException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } catch (Exception ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } finally { - return msg; - } - - } - } - - /** - * Query operation invoker - */ - public static class QueryInvoker extends GdataBindingInvoker { - - public QueryInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - super(operation, uri, googleService, httpClient, authorizationHeader, bindingProvider); - } - - @SuppressWarnings("finally") - @Override - public Message invoke(Message msg) { - - // Send an HTTP GET - GetMethod getMethod = new GetMethod(uri); - getMethod.setRequestHeader("Authorization", authorizationHeader); - - Object[] args = (Object[])msg.getBody(); - Query myQuery = (Query)args[0]; - - System.out.println("[Debug Info] GdataBindingInvoker.QueryInvoker.invoke---feedURL: " + uri); - - try { - - Feed resultFeed = googleService.query(myQuery, Feed.class); - msg.setBody(resultFeed); - - } catch (ResourceNotFoundException ex) { - msg.setFaultBody(new ResourceNotFoundException("Invalid Resource at " + uri)); - } catch (ServiceException ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } catch (Exception ex) { - msg.setFaultBody(new ServiceRuntimeException(ex)); - } finally { - return msg; - } - - - } - } - - - - /** - * PostMedia operation invoker - */ - public static class PostMediaInvoker extends GdataBindingInvoker { - - public PostMediaInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - super(operation, uri, googleService, httpClient, authorizationHeader, bindingProvider); - } - - @Override - public Message invoke(Message msg) { - // TODO implement - return super.invoke(msg); - } - } - - /** - * PutMedia operation invoker - */ - public static class PutMediaInvoker extends GdataBindingInvoker { - - public PutMediaInvoker(Operation operation, - String uri, - GoogleService googleService, - HttpClient httpClient, - String authorizationHeader, - GdataReferenceBindingProvider bindingProvider) { - super(operation, uri, googleService, httpClient, authorizationHeader, bindingProvider); - } - - @Override - public Message invoke(Message msg) { - // TODO implement - return super.invoke(msg); - } - } - - public boolean allowsPassByReference() { - // TODO Auto-generated method stub - return true; - } - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingListenerServlet.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingListenerServlet.java deleted file mode 100644 index c09c1f7788..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingListenerServlet.java +++ /dev/null @@ -1,746 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.provider; - -import static org.apache.tuscany.sca.binding.gdata.provider.GdataBindingUtil.entry; -import static org.apache.tuscany.sca.binding.gdata.provider.GdataBindingUtil.feedEntry; - -import java.io.IOException; -import java.io.OutputStreamWriter; -import java.io.PrintWriter; -import java.io.StringWriter; -import java.io.UnsupportedEncodingException; -import java.io.Writer; -import java.net.URLDecoder; -import java.util.ArrayList; -import java.util.StringTokenizer; -import java.util.logging.Logger; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.xml.namespace.QName; - -import org.apache.abdera.parser.ParseException; - -import org.apache.commons.codec.binary.Base64; -import org.apache.tuscany.sca.data.collection.Entry; -import org.apache.tuscany.sca.databinding.Mediator; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.XMLType; -import org.apache.tuscany.sca.invocation.InvocationChain; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.runtime.RuntimeWire; - -import com.google.gdata.data.ExtensionProfile; -import com.google.gdata.data.ParseSource; -import com.google.gdata.data.PlainTextConstruct; -import com.google.gdata.util.ServiceException; - -/** - * A resource collection binding listener, implemented as a Servlet and - * registered in a Servlet host provided by the SCA hosting runtime. - */ -class GdataBindingListenerServlet extends HttpServlet { - private static final Logger logger = Logger.getLogger(GdataBindingListenerServlet.class.getName()); - private static final long serialVersionUID = 1L; - - private RuntimeWire wire; - private Invoker getFeedInvoker; - private Invoker getAllInvoker; - private Invoker queryInvoker; - private Invoker getInvoker; - private Invoker postInvoker; - private Invoker postMediaInvoker; - private Invoker putInvoker; - private Invoker putMediaInvoker; - private Invoker deleteInvoker; - private MessageFactory messageFactory; - private String title; - private Mediator mediator; - private DataType<?> itemClassType; - private DataType<?> itemXMLType; - private boolean supportsFeedEntries; - - /** - * Constructs a new binding listener. - * - * @param wire - * @param messageFactory - * @param feedType - */ - GdataBindingListenerServlet(RuntimeWire wire, MessageFactory messageFactory, Mediator mediator, String title) { - this.wire = wire; - this.messageFactory = messageFactory; - this.mediator = mediator; - this.title = title; - - // Get the invokers for the supported operations - Operation getOperation = null; - for (InvocationChain invocationChain : this.wire.getInvocationChains()) { - invocationChain.setAllowsPassByReference(true); - Operation operation = invocationChain.getTargetOperation(); - String operationName = operation.getName(); - - if (operationName.equals("getFeed")) { - - //System.out.println("[Debug Info]GdataBindingListenerServlet constructor --- operation: getFeed"); - getFeedInvoker = invocationChain.getHeadInvoker(); - - } else if (operationName.equals("getAll")) { - - getAllInvoker = invocationChain.getHeadInvoker(); - - } else if (operationName.equals("query")) { - - queryInvoker = invocationChain.getHeadInvoker(); - - } else if (operationName.equals("get")) { - - //System.out.println("[Debug Info]GdataBindingListenerServlet Constructor --- opeartion: get"); - getInvoker = invocationChain.getHeadInvoker(); - getOperation = operation; - - } else if (operationName.equals("put")) { - - putInvoker = invocationChain.getHeadInvoker(); - - } else if (operationName.equals("putMedia")) { - - putMediaInvoker = invocationChain.getHeadInvoker(); - - } else if (operationName.equals("post")) { - - //System.out.println("[Debug Info]GdataBindingListenerServlet Constructor --- opeartion: post"); - postInvoker = invocationChain.getHeadInvoker(); - - } else if (operationName.equals("postMedia")) { - postMediaInvoker = invocationChain.getHeadInvoker(); - } else if (operationName.equals("delete")) { - deleteInvoker = invocationChain.getHeadInvoker(); - } - } - - //System.out.println("[Debug Info]GdataBindingListenerServlet constructor --- I am good here 00"); - - // Determine the collection item type - itemXMLType = new DataTypeImpl<Class<?>>(String.class.getName(), String.class, String.class); - Class<?> itemClass = getOperation.getOutputType().getPhysical(); - - if (itemClass == com.google.gdata.data.Entry.class) { - supportsFeedEntries = true; - } - DataType<XMLType> outputType = getOperation.getOutputType(); - QName qname = outputType.getLogical().getElementName(); - qname = new QName(qname.getNamespaceURI(), itemClass.getSimpleName()); - itemClassType = new DataTypeImpl<XMLType>("java:complexType", itemClass, new XMLType(qname, null)); - - System.out.println("[Debug Info]GdataBindingListenerServlet --- initilized!"); - } - - - @Override - protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - // No authentication required for a get request - System.out.println("[Debug Info]GdataBindingListenerServlet doGet() --- I am good here 00"); - - // Get the request path - String path = URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()), "UTF-8"); - - System.out.println("[Debug Info]GdataBindingListenerServlet doGet() --- request.getRequestURI(): " + request - .getRequestURI()); - System.out.println("[Debug Info]GdataBindingListenerServlet doGet()--- path: " + path); - - // FIXME: Log this get http request, commented out for testing - logger.fine("get " + request.getRequestURI()); - - // Handle an Atom request - if (path != null && path.equals("/atomsvc")) { - - //FIXME: This needs to be fixed, for /atomsvc - - /* - System.out.println("GdataBindingListenerServlet doGet(): I am good here brach 01"); - // Return the Atom service document - response.setContentType("application/atomsvc+xml; charset=utf-8"); - Service service = abderaFactory.newService(); - // service.setText("service"); - - Workspace workspace = abderaFactory.newWorkspace(); - workspace.setTitle("resource"); - - String href = request.getRequestURL().toString(); - href = href.substring(0, href.length() - "/atomsvc".length()); - - Collection collection = workspace.addCollection("collection", "atom/feed"); - collection.setTitle("entries"); - collection.setAttributeValue("href", href); - collection.setAccept("entry"); - collection.addCategories().setFixed(false); - - workspace.addCollection(collection); - - service.addWorkspace(workspace); - - // FIXME add prettyPrint support - try { - service.getDocument().writeTo(response.getOutputStream()); - } catch (IOException ioe) { - throw new ServletException(ioe); - } - */ - - } else if (path == null || path.length() == 0 || path.equals("/")) { - - // get HTTP request asking for a feed - - System.out.println("[Debug Info]GdataBindingListenerServlet doGet() --- I am good here brach 02"); - - // Return a feed containing the entries in the collection - com.google.gdata.data.Feed feed = null; - - if (supportsFeedEntries) { - - System.out.println("[Debug Info]GdataBindingListenerServlet doGet() --- supportsFeedEntries: " + supportsFeedEntries); - - // The service implementation supports feed entries, invoke its - // getFeed operation - Message requestMessage = messageFactory.createMessage(); - Message responseMessage; - if (request.getQueryString() != null) { - System.out.println("getQueryString != null"); - requestMessage.setBody(new Object[] {request.getQueryString()}); - responseMessage = queryInvoker.invoke(requestMessage); - } else { - System.out.println("getQueryString == null"); - responseMessage = getFeedInvoker.invoke(requestMessage); - } - if (responseMessage.isFault()) { - throw new ServletException((Throwable)responseMessage.getBody()); - } - - //System.out.println("response msg class:" + responseMessage.getBody().getClass()); - - feed = (com.google.gdata.data.Feed)responseMessage.getBody(); - - System.out.println("feed title: " + feed.getTitle().getPlainText()); - - } else { - - System.out.println("GdataBindingListenerServlet doGet(): do not supportsFeedEntries"); - - // The service implementation does not support feed entries, - // invoke its getAll operation to get the data item collection, - // then create - // feed entries from the items - Message requestMessage = messageFactory.createMessage(); - Message responseMessage; - if (request.getQueryString() != null) { - requestMessage.setBody(new Object[] {request.getQueryString()}); - responseMessage = queryInvoker.invoke(requestMessage); - } else { - responseMessage = getAllInvoker.invoke(requestMessage); - - //System.out - // .println("GdataBindingListner.doGet(): get msg from getAllInvoker.invoke()" + responseMessage - // .getBody().toString()); - - } - if (responseMessage.isFault()) { - throw new ServletException((Throwable)responseMessage.getBody()); - } - Entry<Object, Object>[] collection = (Entry<Object, Object>[])responseMessage.getBody(); - if (collection != null) { - - // Create the feed - feed = new com.google.gdata.data.Feed(); - - // Set the feed title - if (title != null) { - feed.setTitle(new PlainTextConstruct(title)); - } else { - feed.setTitle(new PlainTextConstruct("Feed title")); - } - - // Add entries to the feed - ArrayList<com.google.gdata.data.Entry> entries = new ArrayList<com.google.gdata.data.Entry>(); - for (Entry<Object, Object> entry : collection) { - com.google.gdata.data.Entry feedEntry = feedEntry(entry, itemClassType, itemXMLType, mediator); - entries.add(feedEntry); - } - feed.setEntries(entries); - - } - } - if (feed != null) { - - // //System.out.println("feed(from the http response)is not - // null"); - - // Write a GData feed using Atom representation - response.setContentType("application/atom+xml; charset=utf-8"); - - // Generate the corresponding Atom representation of the feed - StringWriter stringWriter = new StringWriter(); - com.google.gdata.util.common.xml.XmlWriter w = - new com.google.gdata.util.common.xml.XmlWriter(stringWriter); - feed.generateAtom(w, new ExtensionProfile()); - w.flush(); - - // Write the Atom representation(XML) into Http response content - OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream()); - PrintWriter out = new PrintWriter(response.getOutputStream()); - out.println(stringWriter.toString()); - out.close(); - - System.out.println("Feed content in plain text:" + stringWriter.toString()); - } else { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } - - } else if (path.startsWith("/")) { - - // get HTTP request asking for an entry - - // Return a specific entry in the collection - com.google.gdata.data.Entry feedEntry = null; - - // Invoke the get operation on the service implementation - Message requestMessage = messageFactory.createMessage(); - String id = path.substring(1); - requestMessage.setBody(new Object[] {id}); - Message responseMessage = getInvoker.invoke(requestMessage); - if (responseMessage.isFault()) { - throw new ServletException((Throwable)responseMessage.getBody()); - } - - if (supportsFeedEntries) { - // The service implementation returns a feed entry - feedEntry = (com.google.gdata.data.Entry)responseMessage.getBody(); - - System.out.println("entry title: " + feedEntry.getTitle().getPlainText()); - - } else { - // The service implementation only returns a data item, create - // an entry - // from it - Entry<Object, Object> entry = new Entry<Object, Object>(id, responseMessage.getBody()); - // FIXME The line below needs to be fixed - // feedEntry = feedEntry(entry, itemClassType, itemXMLType, - // mediator, abderaFactory); - } - - // Write the Gdata entry - if (feedEntry != null) { - - // Write a GData entry using Atom representation - response.setContentType("application/atom+xml; charset=utf-8"); - - // Generate the corresponding Atom representation of the feed - StringWriter stringWriter = new StringWriter(); - com.google.gdata.util.common.xml.XmlWriter w = - new com.google.gdata.util.common.xml.XmlWriter(stringWriter); - feedEntry.generateAtom(w, new ExtensionProfile()); - w.flush(); - - // Write the Atom representation(XML) into Http response content - OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream()); - PrintWriter out = new PrintWriter(response.getOutputStream()); - out.println(stringWriter.toString()); - out.close(); - - } else { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } - } else { - // Path doesn't match any known pattern - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } - - } - - @Override - protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, - IOException { - - System.out.println("[Debug Info]GdataBindingListenerServlet doPost() --- reached"); - - // Authenticate the user - String user = processAuthorizationHeader(request); - if (user == null) { - unauthorized(response); - return; - } - - // Get the request path - String path = URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()), "UTF-8"); - - System.out.println("[Debug Info]GdataBindingListenerServlet path --- " + path); - - if (path == null || path.length() == 0 || path.equals("/")) { - // Create a new Gdata entry - com.google.gdata.data.Entry createdFeedEntry = null; - String contentType = request.getContentType(); - - if (contentType != null && contentType.startsWith("application/atom+xml")) { - - // Read the entry from the request - com.google.gdata.data.Entry feedEntry = null; - try { - ParseSource source = new ParseSource(request.getReader()); - feedEntry = com.google.gdata.data.Entry.readEntry(source, com.google.gdata.data.Entry.class, null); - } catch (ParseException pe) { - throw new ServletException(pe); - } catch (com.google.gdata.util.ParseException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ServiceException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - // Let the component implementation create it - if (supportsFeedEntries) { - - // The service implementation supports feed entries, pass - // the entry to it - Message requestMessage = messageFactory.createMessage(); - - requestMessage.setBody(new Object[] {feedEntry}); - - Message responseMessage = postInvoker.invoke(requestMessage); - if (responseMessage.isFault()) { - throw new ServletException((Throwable)responseMessage.getBody()); - } - createdFeedEntry = responseMessage.getBody(); - } else { - - // The service implementation does not support feed entries, - // pass the data item to it - Message requestMessage = messageFactory.createMessage(); - Entry<Object, Object> entry = entry(feedEntry, itemClassType, itemXMLType, mediator); - requestMessage.setBody(new Object[] {entry.getKey(), entry.getData()}); - Message responseMessage = postInvoker.invoke(requestMessage); - if (responseMessage.isFault()) { - throw new ServletException((Throwable)responseMessage.getBody()); - } - entry.setKey(responseMessage.getBody()); - - createdFeedEntry = feedEntry(entry, itemClassType, itemXMLType, mediator); - } - - } else if (contentType != null) { - - // Create a new media entry - - // Get incoming headers - String title = request.getHeader("Title"); - String slug = request.getHeader("Slug"); - - // Let the component implementation create the media entry - Message requestMessage = messageFactory.createMessage(); - requestMessage.setBody(new Object[] {title, slug, contentType, request.getInputStream()}); - Message responseMessage = postMediaInvoker.invoke(requestMessage); - if (responseMessage.isFault()) { - throw new ServletException((Throwable)responseMessage.getBody()); - } - createdFeedEntry = responseMessage.getBody(); - } else { - response.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); - } - - // A new entry was created successfully - if (createdFeedEntry != null) { - - // Set location of the created entry in the Location header - // Link link = createdFeedEntry.getSelfLink(); - // if (link != null) { - // response.addHeader("Location", link.getHref().toString()); - // } - - // Write the created Atom entry - response.setStatus(HttpServletResponse.SC_CREATED); - response.setContentType("application/atom+xml; charset=utf-8"); - try { - - // Generate the corresponding Atom representation of the - // feed - StringWriter stringWriter = new StringWriter(); - com.google.gdata.util.common.xml.XmlWriter w = - new com.google.gdata.util.common.xml.XmlWriter(stringWriter); - createdFeedEntry.generateAtom(w, new ExtensionProfile()); - w.flush(); - - // Write the Atom representation(XML) into Http response - // content - OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream()); - PrintWriter out = new PrintWriter(response.getOutputStream()); - out.println(stringWriter.toString()); - out.close(); - - } catch (ParseException pe) { - throw new ServletException(pe); - } - - } else { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } - - } else { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } - } - - private Writer getWriter(HttpServletResponse response) throws UnsupportedEncodingException, IOException { - Writer writer = new OutputStreamWriter(response.getOutputStream(), "UTF-8"); - return writer; - } - - - @Override - protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - // Authenticate the user - String user = processAuthorizationHeader(request); - if (user == null) { - unauthorized(response); - return; - } - - // Get the request path - String path = request.getRequestURI().substring(request.getServletPath().length()); - - System.out.println("[Debug Info] localServlet doPut --- path: " + path); - - if (path != null && path.startsWith("/")) { - String id = path.substring(1); - - // Update an Atom entry - String contentType = request.getContentType(); - if (contentType != null && contentType.startsWith("application/atom+xml")) { - - // Read the entry from the request - com.google.gdata.data.Entry feedEntry = null; - try { - ParseSource source = new ParseSource(request.getReader()); - feedEntry = com.google.gdata.data.Entry.readEntry(source, com.google.gdata.data.Entry.class, null); - - System.out.println("[Debug Info] localServlet doPut --- feedEntry title: " + feedEntry.getTitle().getPlainText()); - } catch (ParseException pe) { - throw new ServletException(pe); - } catch (com.google.gdata.util.ParseException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ServiceException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - - - // Let the component implementation create it - if (supportsFeedEntries) { - - System.out.println("[Debug Info] localServlet doPut --- supportsFeedEntries: " + supportsFeedEntries); - - // The service implementation supports feed entries, pass - // the entry to it - Message requestMessage = messageFactory.createMessage(); - requestMessage.setBody(new Object[] {id, feedEntry}); - Message responseMessage = putInvoker.invoke(requestMessage); - if (responseMessage.isFault()) { - Object body = responseMessage.getBody(); - if (body.getClass().getName().endsWith(".NotFoundException")) { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } else { - throw new ServletException((Throwable)responseMessage.getBody()); - } - } - } else { - - // The service implementation does not support feed entries, - // pass the data item to it - Message requestMessage = messageFactory.createMessage(); - Entry<Object, Object> entry = entry(feedEntry, itemClassType, itemXMLType, mediator); - requestMessage.setBody(new Object[] {entry.getKey(), entry.getData()}); - Message responseMessage = putInvoker.invoke(requestMessage); - if (responseMessage.isFault()) { - Object body = responseMessage.getBody(); - if (body.getClass().getName().endsWith(".NotFoundException")) { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } else { - throw new ServletException((Throwable)responseMessage.getBody()); - } - } - } - - // Write the Gdata entry - if (feedEntry != null) { - - // Write a GData entry using Atom representation - response.setContentType("application/atom+xml; charset=utf-8"); - - // Generate the corresponding Atom representation of the feed - StringWriter stringWriter = new StringWriter(); - com.google.gdata.util.common.xml.XmlWriter w = - new com.google.gdata.util.common.xml.XmlWriter(stringWriter); - feedEntry.generateAtom(w, new ExtensionProfile()); - w.flush(); - - // Write the Atom representation(XML) into Http response content - OutputStreamWriter osw = new OutputStreamWriter(response.getOutputStream()); - PrintWriter out = new PrintWriter(response.getOutputStream()); - out.println(stringWriter.toString()); - out.close(); - - } - - } else if (contentType != null) { - - // Updated a media entry - - // Let the component implementation create the media entry - Message requestMessage = messageFactory.createMessage(); - requestMessage.setBody(new Object[] {id, contentType, request.getInputStream()}); - Message responseMessage = putMediaInvoker.invoke(requestMessage); - Object body = responseMessage.getBody(); - if (responseMessage.isFault()) { - if (body.getClass().getName().endsWith(".NotFoundException")) { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } else { - throw new ServletException((Throwable)responseMessage.getBody()); - } - } - } else { - response.sendError(HttpServletResponse.SC_UNSUPPORTED_MEDIA_TYPE); - } - } else { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } - } - - - - - @Override - protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, - IOException { - - // Authenticate the user - String user = processAuthorizationHeader(request); - if (user == null) { - unauthorized(response); - return; - } - - // Get the request path - String path = URLDecoder.decode(request.getRequestURI().substring(request.getServletPath().length()), "UTF-8"); - - String id; - if (path != null && path.startsWith("/")) { - id = path.substring(1); - } else { - id = ""; - } - - // Delete a specific entry from the collection - Message requestMessage = messageFactory.createMessage(); - requestMessage.setBody(new Object[] {id}); - Message responseMessage = deleteInvoker.invoke(requestMessage); - if (responseMessage.isFault()) { - Object body = responseMessage.getBody(); - if (body.getClass().getName().endsWith(".NotFoundException")) { - response.sendError(HttpServletResponse.SC_NOT_FOUND); - } else { - throw new ServletException((Throwable)responseMessage.getBody()); - } - } - } - - - - /** - * Process the authorization header - * - * @param request - * @return - * @throws ServletException - */ - private String processAuthorizationHeader(HttpServletRequest request) throws ServletException { - - // FIXME temporarily disabling this as it doesn't work with all browsers - if (true) - return "admin"; - - try { - String authorization = request.getHeader("Authorization"); - if (authorization != null) { - StringTokenizer tokens = new StringTokenizer(authorization); - if (tokens.hasMoreTokens()) { - String basic = tokens.nextToken(); - if (basic.equalsIgnoreCase("Basic")) { - String credentials = tokens.nextToken(); - String userAndPassword = new String(Base64.decodeBase64(credentials.getBytes())); - int colon = userAndPassword.indexOf(":"); - if (colon != -1) { - String user = userAndPassword.substring(0, colon); - String password = userAndPassword.substring(colon + 1); - - // Authenticate the User. - if (authenticate(user, password)) { - return user; - } - } - } - } - } - } catch (Exception e) { - throw new ServletException(e); - } - return null; - } - - /** - * Authenticate a user. - * - * @param user - * @param password - * @return - */ - private boolean authenticate(String user, String password) { - // TODO Handle this using SCA security policies - return ("admin".equals(user) && "admin".equals(password)); - } - - /** - * Reject an unauthorized request. - * - * @param response - */ - private void unauthorized(HttpServletResponse response) throws IOException { - response.setHeader("WWW-Authenticate", "BASIC realm=\"Tuscany\""); - response.sendError(HttpServletResponse.SC_UNAUTHORIZED); - } -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingProviderFactory.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingProviderFactory.java deleted file mode 100644 index fa99f4cb1b..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingProviderFactory.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.provider; - -import org.apache.tuscany.sca.binding.gdata.GdataBinding; -import org.apache.tuscany.sca.contribution.ModelFactoryExtensionPoint; -import org.apache.tuscany.sca.core.ExtensionPointRegistry; -import org.apache.tuscany.sca.databinding.DataBindingExtensionPoint; -import org.apache.tuscany.sca.databinding.Mediator; -import org.apache.tuscany.sca.databinding.TransformerExtensionPoint; -import org.apache.tuscany.sca.databinding.impl.MediatorImpl; -import org.apache.tuscany.sca.host.http.ServletHost; -import org.apache.tuscany.sca.host.http.ServletHostExtensionPoint; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.provider.BindingProviderFactory; -import org.apache.tuscany.sca.provider.ReferenceBindingProvider; -import org.apache.tuscany.sca.provider.ServiceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; - -import com.google.gdata.util.AuthenticationException; - -/** - * Implementation of a Binding provider factory for the Atom binding. - */ -public class GdataBindingProviderFactory implements BindingProviderFactory<GdataBinding> { - - private MessageFactory messageFactory; - private Mediator mediator; - private ServletHost servletHost; - - public GdataBindingProviderFactory(ExtensionPointRegistry extensionPoints) { - ServletHostExtensionPoint servletHosts = extensionPoints.getExtensionPoint(ServletHostExtensionPoint.class); - this.servletHost = servletHosts.getServletHosts().get(0); - ModelFactoryExtensionPoint modelFactories = extensionPoints.getExtensionPoint(ModelFactoryExtensionPoint.class); - this.messageFactory = modelFactories.getFactory(MessageFactory.class); - this.mediator = - new MediatorImpl(extensionPoints.getExtensionPoint(DataBindingExtensionPoint.class), extensionPoints - .getExtensionPoint(TransformerExtensionPoint.class)); - } - - public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component, - RuntimeComponentReference reference, - GdataBinding binding) { - try { - return new GdataReferenceBindingProvider(component, reference, binding, mediator); - } catch (AuthenticationException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - return null; //Google authentication error! : This exception needs to be handled into a better way - } - - } - - public ServiceBindingProvider createServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - GdataBinding binding) { - return new GdataServiceBindingProvider(component, service, binding, servletHost, messageFactory, mediator); - } - - public Class<GdataBinding> getModelType() { - return GdataBinding.class; - } -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingUtil.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingUtil.java deleted file mode 100644 index 86fc8fd43f..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingUtil.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.provider; - -import java.util.Date; - -import org.apache.tuscany.sca.data.collection.Entry; -import org.apache.tuscany.sca.data.collection.Item; -import org.apache.tuscany.sca.databinding.Mediator; -import org.apache.tuscany.sca.interfacedef.DataType; - -import com.google.gdata.data.DateTime; -import com.google.gdata.data.PlainTextConstruct; -import com.google.gdata.data.TextContent; - -/** - * Utility methods used in this package. - * - */ -class GdataBindingUtil { - - /** - * Create a data item from an GData entry. - * - * @param feedEntry - * @param itemClassType - * @param itemXMLType - * @param mediator - * @return - */ - static Entry<Object, Object> entry(com.google.gdata.data.Entry feedEntry, - DataType<?> itemClassType, - DataType<?> itemXMLType, - Mediator mediator) { - if (feedEntry != null) { - if (itemClassType.getPhysical() == Item.class) { - String key = feedEntry.getId().toString(); - - Item item = new Item(); - item.setTitle(feedEntry.getTitle().toString()); - TextContent content = (TextContent)feedEntry.getContent(); - item.setContents(content.getContent().getPlainText()); - - for (com.google.gdata.data.Link link : feedEntry.getLinks()) { - if (link.getRel() == null || "self".equals(link.getRel())) { - if (item.getLink() == null) { - item.setLink(link.getHref().toString()); - } - } else if ("related".equals(link.getRel())) { - item.setRelated(link.getHref().toString()); - } else if ("alternate".equals(link.getRel())) { - item.setAlternate(link.getHref().toString()); - } - } - - Date date = new Date(feedEntry.getUpdated().getValue()); - item.setDate(date); - return new Entry<Object, Object>(key, item); - - } else { - String key = null; - if (feedEntry.getId() != null) { - key = feedEntry.getId(); - } - - // Create the item from XML - if (feedEntry.getContent() == null) { - return null; - } - - TextContent content = (TextContent)feedEntry.getContent(); - String value = content.getContent().getPlainText(); - Object data = mediator.mediate(value, itemXMLType, itemClassType, null); - return new Entry<Object, Object>(key, data); - } - } else { - return null; - } - } - - /** - * Create an Gdata entry for a key and item from a collection. - * - * @param entry - * @param itemClassType - * @param itemXMLType - * @param mediator - * @param factory - * @return - */ - static com.google.gdata.data.Entry feedEntry(Entry<Object, Object> entry, - DataType<?> itemClassType, - DataType<?> itemXMLType, - Mediator mediator) { - - Object key = entry.getKey(); - Object data = entry.getData(); - if (data instanceof Item) { - Item item = (Item)data; - - com.google.gdata.data.Entry feedEntry = new com.google.gdata.data.Entry(); - if (key != null) { - feedEntry.setId(key.toString()); - } - feedEntry.setTitle(new PlainTextConstruct(item.getTitle())); - feedEntry.setContent(new PlainTextConstruct(item.getContents())); - - String href = item.getLink(); - if (href == null && key != null) { - href = key.toString(); - } - - if (href != null) { - feedEntry.addHtmlLink(href, "", ""); - } - String related = item.getRelated(); - if (related != null) { - feedEntry.addHtmlLink(related, "", "related"); - } - String alternate = item.getAlternate(); - if (alternate != null) { - feedEntry.addHtmlLink(alternate, "", "alternate"); - } - - Date date = item.getDate(); - if (date != null) { - DateTime datetime = new DateTime(date); - feedEntry.setUpdated(datetime); - } - return feedEntry; - - } else if (data != null) { - - com.google.gdata.data.Entry feedEntry = new com.google.gdata.data.Entry(); - feedEntry.setId(key.toString()); - feedEntry.setTitle(new PlainTextConstruct("item")); - - // Convert the item to XML - String value = mediator.mediate(data, itemClassType, itemXMLType, null).toString(); - - // Might be wrong because the example uses XML datatype, I am using - // plainText here - feedEntry.setContent(new PlainTextConstruct(value)); - - feedEntry.addHtmlLink(key.toString(), "", ""); - return feedEntry; - - } else { - return null; - } - } - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataReferenceBindingProvider.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataReferenceBindingProvider.java deleted file mode 100644 index 70bf58a161..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataReferenceBindingProvider.java +++ /dev/null @@ -1,232 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.provider; - -import java.net.URI; - -import javax.xml.namespace.QName; - -import org.apache.commons.codec.binary.Base64; -import org.apache.commons.httpclient.Credentials; -import org.apache.commons.httpclient.HttpClient; -import org.apache.commons.httpclient.HttpConnectionManager; -import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager; -import org.apache.commons.httpclient.UsernamePasswordCredentials; -import org.apache.commons.httpclient.auth.AuthScope; -import org.apache.tuscany.sca.binding.gdata.GdataBinding; -import org.apache.tuscany.sca.databinding.Mediator; -import org.apache.tuscany.sca.interfacedef.DataType; -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.impl.DataTypeImpl; -import org.apache.tuscany.sca.interfacedef.util.XMLType; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.provider.ReferenceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentReference; - -import com.google.gdata.client.GoogleService; -import com.google.gdata.util.AuthenticationException; - -/** - * Implementation of the Atom binding provider. - * - * @version $Rev$ $Date$ - */ -class GdataReferenceBindingProvider implements ReferenceBindingProvider { - - private RuntimeComponentReference reference; - private GdataBinding binding; - private String authorizationHeader; - private GoogleService googleService; - private HttpClient httpClient; - private Mediator mediator; - private DataType<?> itemClassType; - private DataType<?> itemXMLType; - private boolean supportsFeedEntries; - - /** - * Constructs a new AtomReferenceBindingProvider - * - * @param component - * @param reference - * @param binding - * @param mediator - * @throws AuthenticationException - */ - GdataReferenceBindingProvider(RuntimeComponent component, - RuntimeComponentReference reference, - GdataBinding binding, - Mediator mediator) throws AuthenticationException { - this.reference = reference; - this.binding = binding; - this.mediator = mediator; - - // Prepare authorization header - String authorization = "admin" + ":" + "admin"; - authorizationHeader = "Basic " + new String(Base64.encodeBase64(authorization.getBytes())); - - - // Prepare gdata header - String serviceType = binding.getServiceType(); - String usernane = binding.getUsername(); - String password = binding.getPassword(); - - System.out.println("[Debug Info] binding.getServiceType()" + serviceType); - System.out.println("[Debug Info] binding.getName()" +usernane); - System.out.println("[Debug Info] binding.getPassword()" + password); - - googleService = new GoogleService(serviceType, ""); - if(binding.getUsername().equals("admin") == false && binding.getPassword().equals("admin")==false){ - googleService.setUserCredentials(binding.getUsername(),binding.getPassword()); - } - - - - // Create an HTTP client - HttpConnectionManager connectionManager = new MultiThreadedHttpConnectionManager(); - connectionManager.getParams().setDefaultMaxConnectionsPerHost(10); - connectionManager.getParams().setConnectionTimeout(60000); - httpClient = new HttpClient(connectionManager); - } - - public Invoker createInvoker(Operation operation) { - - String operationName = operation.getName(); - - // //System.out.println("GdataReferenceBindingProvider.createInvoker---operationName:" - // + operationName); - - if (operationName.equals("get")) { - - // Determine the collection item type - itemXMLType = new DataTypeImpl<Class<?>>(String.class.getName(), String.class, String.class); - Class<?> itemClass = operation.getOutputType().getPhysical(); - DataType<XMLType> outputType = operation.getOutputType(); - QName qname = outputType.getLogical().getElementName(); - qname = new QName(qname.getNamespaceURI(), itemClass.getSimpleName()); - itemClassType = new DataTypeImpl<XMLType>("java:complexType", itemClass, new XMLType(qname, null)); - - if (itemClassType.getPhysical() == com.google.gdata.data.Entry.class) { - supportsFeedEntries = true; - } - - return new GdataBindingInvoker.GetInvoker(operation, binding.getURI(), googleService, httpClient, authorizationHeader, this); - - } else if (operationName.equals("post")) { - - return new GdataBindingInvoker.PostInvoker(operation, binding.getURI(), googleService, httpClient, authorizationHeader, this); - - } else if (operationName.equals("put")) { - - return new GdataBindingInvoker.PutInvoker(operation, binding.getURI(), googleService, httpClient, authorizationHeader, - this); - } else if (operationName.equals("delete")) { - return new GdataBindingInvoker.DeleteInvoker(operation, binding.getURI(), googleService, httpClient, authorizationHeader, - this); - } else if (operationName.equals("getFeed") || operationName.equals("getAll")) { - - // //System.out.println("GdataReferenceBindingProvider - // CreateInvoker: getFeed or getAll"); - - return new GdataBindingInvoker.GetAllInvoker(operation, binding.getURI(), googleService, httpClient, authorizationHeader, - this); - - } else if (operationName.equals("postMedia")) { - return new GdataBindingInvoker.PostMediaInvoker(operation, binding.getURI(), googleService, httpClient, - authorizationHeader, this); - } else if (operationName.equals("putMedia")) { - return new GdataBindingInvoker.PutMediaInvoker(operation, binding.getURI(), googleService, httpClient, - authorizationHeader, this); - } else if (operationName.equals("query")) { - return new GdataBindingInvoker.QueryInvoker(operation, binding.getURI(), googleService, httpClient, authorizationHeader, - this); - } - - return new GdataBindingInvoker(operation, binding.getURI(), googleService, httpClient, authorizationHeader, this); - } - - - - public InterfaceContract getBindingInterfaceContract() { - return reference.getInterfaceContract(); - } - - - - public void start() { - - // Configure the HTTP client credentials - Credentials credentials = new UsernamePasswordCredentials("admin", "admin"); - httpClient.getParams().setAuthenticationPreemptive(true); - URI uri = URI.create(binding.getURI()); - httpClient.getState().setCredentials(new AuthScope(uri.getHost(), uri.getPort()), credentials); - - // Find the get operation on the reference interface - if (true) { - return; - } - } - - public void stop() { - - } - - public boolean supportsOneWayInvocation() { - return false; - } - - /** - * Returns the mediator. - * - * @return - */ - Mediator getMediator() { - return mediator; - } - - /** - * Returns the item class type. - * - * @return - */ - DataType<?> getItemClassType() { - return itemClassType; - } - - /** - * Returns the item XML type. - * - * @return - */ - DataType<?> getItemXMLType() { - return itemXMLType; - } - - /** - * Returns true if the invoker should work with Atom feed entries. - * - * @return - */ - boolean supportsFeedEntries() { - return supportsFeedEntries; - } - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataServiceBindingProvider.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataServiceBindingProvider.java deleted file mode 100644 index 10faf74371..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataServiceBindingProvider.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata.provider; - -import org.apache.tuscany.sca.binding.gdata.GdataBinding; -import org.apache.tuscany.sca.databinding.Mediator; -import org.apache.tuscany.sca.host.http.ServletHost; -import org.apache.tuscany.sca.interfacedef.InterfaceContract; -import org.apache.tuscany.sca.invocation.MessageFactory; -import org.apache.tuscany.sca.provider.ServiceBindingProvider; -import org.apache.tuscany.sca.runtime.RuntimeComponent; -import org.apache.tuscany.sca.runtime.RuntimeComponentService; -import org.apache.tuscany.sca.runtime.RuntimeWire; - -/** - * Implementation of the Atom binding provider. - * - * @version $Rev$ $Date$ - */ -class GdataServiceBindingProvider implements ServiceBindingProvider { - - private RuntimeComponentService service; - private GdataBinding binding; - private ServletHost servletHost; - private MessageFactory messageFactory; - private String servletMapping; - private Mediator mediator; - - GdataServiceBindingProvider(RuntimeComponent component, - RuntimeComponentService service, - GdataBinding binding, - ServletHost servletHost, - MessageFactory messageFactory, - Mediator mediator) { - this.service = service; - this.binding = binding; - this.servletHost = servletHost; - this.messageFactory = messageFactory; - this.mediator = mediator; - } - - public InterfaceContract getBindingInterfaceContract() { - return service.getInterfaceContract(); - } - - public boolean supportsOneWayInvocation() { - return false; - } - - public void start() { - RuntimeComponentService componentService = (RuntimeComponentService)service; - RuntimeWire wire = componentService.getRuntimeWire(binding); - - GdataBindingListenerServlet servlet = - new GdataBindingListenerServlet(wire, messageFactory, mediator, binding.getTitle()); - - servletMapping = binding.getURI(); - if (!servletMapping.endsWith("/")) { - servletMapping += "/"; - } - if (!servletMapping.endsWith("*")) { - servletMapping += "*"; - } - servletHost.addServletMapping(servletMapping, servlet); - - // Save the actual binding URI in the binding - binding.setURI(servletHost.getURLMapping(binding.getURI()).toString()); - } - - public void stop() { - servletHost.removeServletMapping(servletMapping); - } -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory deleted file mode 100644 index 5e380eb4e0..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory +++ /dev/null @@ -1,19 +0,0 @@ -# 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. - -# Implementation class for the binding extension -org.apache.tuscany.sca.binding.gdata.provider.GdataBindingProviderFactory;model=org.apache.tuscany.sca.binding.gdata.GdataBinding diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/resources/tuscany-binding-gdata.xsd b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/resources/tuscany-binding-gdata.xsd deleted file mode 100644 index 5148e2ef2d..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/main/resources/tuscany-binding-gdata.xsd +++ /dev/null @@ -1,36 +0,0 @@ -<?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. ---> -<schema xmlns="http://www.w3.org/2001/XMLSchema" - targetNamespace="http://echo" - xmlns:sca="http://www.osoa.org/xmlns/sca/1.0" - xmlns:e="http://echo" - elementFormDefault="qualified"> - - <import namespace="http://www.osoa.org/xmlns/sca/1.0"/> - - <element name="binding.gdata" type="e:GdataBinding"/> - - <complexType name="GdataBinding"> - <complexContent> - <extension base="sca:Binding"> - </extension> - </complexContent> - </complexType> -</schema> diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/Consumer.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/Consumer.java deleted file mode 100644 index 2517c7233a..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/Consumer.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import org.apache.tuscany.sca.host.embedded.SCADomain; - -import com.google.gdata.data.Entry; -import com.google.gdata.data.Feed; -import com.google.gdata.data.PlainTextConstruct; - -public class Consumer { - - public static void main(String[] args) throws Exception { - - //Initialize the GData client service (Reference Binding test) - SCADomain scaDomain = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/ConsumerGoogleBlogger.composite"); - CustomerClient testService = scaDomain.getService(CustomerClient.class, "CustomerClient"); - - - Feed feed = testService.clientGetFeed(); - - System.out.println("#Entries(Before post): "+ testService.clientGetFeed().getEntries().size()); - - /* - String entryID = "tag:blogger.com,1999:blog-4520949313432095990.post-973462497533349425"; - Entry entry = testService.clientGetEntry(entryID); - System.out.println("Entry id: " + entry.getId()); - */ - - Entry myEntry = new Entry(); - myEntry.setTitle(new PlainTextConstruct("titleByConsumer2")); - myEntry.setContent(new PlainTextConstruct("contentByConsmer2")); - testService.clientPost(myEntry); - - System.out.println("#Entries(After post): "+ testService.clientGetFeed().getEntries().size()); - - String entryID = "tag:blogger.com,1999:blog-4520949313432095990.post-973462497533349425"; - Entry entry = testService.clientGetEntry(entryID); - System.out.println("Entry id: " + entry.getId()); - - - } -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/ConsumerProviderTestCase.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/ConsumerProviderTestCase.java deleted file mode 100644 index 3ac79e5f0a..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/ConsumerProviderTestCase.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import junit.framework.TestCase; -import org.apache.tuscany.sca.host.embedded.SCADomain; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import com.google.gdata.data.Entry; -import com.google.gdata.data.Feed; -import com.google.gdata.data.PlainTextConstruct; - -public class ConsumerProviderTestCase extends TestCase { - - private SCADomain scaDomainProvider = null; - private SCADomain scaDomainConsumer = null; - private CustomerClient testService = null; - - @Before - @Override - public void setUp() throws Exception { - System.out.println("Method Test Start-----------------------------------------------------------------------"); - - // Setup the local GData servlet (Service Binding test) - scaDomainProvider = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/Provider.composite"); - System.out.println("[Debug Info] Provider.composite ready..."); - - // Initialize the GData client service (Reference Binding test) - scaDomainConsumer = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/Consumer.composite"); - testService = scaDomainConsumer.getService(CustomerClient.class, "CustomerClient"); - } - - @After - @Override - public void tearDown() { - scaDomainProvider.close(); - System.out.println("Method Test End------------------------------------------------------------------------"); - System.out.println("\n\n"); - } - - - @Test - public void testClientGetFeed() throws Exception { - Feed feed = testService.clientGetFeed(); - System.out.println(feed.getTitle().getPlainText()); - assertNotNull(feed); - // Given we are testing on the localhost providing feed, we know the - // feed title is "Feedtitle(LocalHostServlet)" - assertEquals("Feedtitle(LocalHostServlet)", feed.getTitle().getPlainText()); - } - - @Test - public void testClientGetEntry() throws Exception { - String entryID = "urn:uuid:customer-0"; - Entry entry = testService.clientGetEntry(entryID); - System.out.println("entryID in testcase: " + entry.getId()); - assertEquals(entryID, entry.getId()); - } - - @Test - public void testClientPost() throws Exception { - Entry newEntry = new Entry(); - newEntry.setTitle(new PlainTextConstruct("NewEntry title by Post")); - newEntry.setContent(new PlainTextConstruct("NewEntry Content by Post")); - Entry postedEntry = testService.clientPost(newEntry); - assertEquals("NewEntry title by Post", postedEntry.getTitle().getPlainText()); - } - - - - @Test - public void testClientPut() throws Exception { - String newTitleValue = "newTitleValueByPut"; - String entryID = "urn:uuid:customer-0"; - System.out.println("Before clientPut"); - testService.clientPut(entryID, newTitleValue); - System.out.println("After clientPut"); - Entry updatedEntry = testService.clientGetEntry(entryID); - System.out.println("title: "+ updatedEntry.getTitle().getPlainText()); - assertEquals(newTitleValue, updatedEntry.getTitle().getPlainText()); - } - - - - @Test - public void testClientDelete() throws Exception { - - // We first create a new entry, then delete it - - // Post a new entry - Entry newEntry = new Entry(); - newEntry.setTitle(new PlainTextConstruct("NewEntry title to be deleted")); - newEntry.setContent(new PlainTextConstruct("NewEntry Content to be delted")); - Entry confirmedNewEntry = testService.clientPost(newEntry); - - Thread.sleep(300); - - Feed feed00 = testService.clientGetFeed(); - int entryNum00 = feed00.getEntries().size(); // The number of entries - // before deleting - System.out.println("entryNum00:" + entryNum00); - - // Delete this newly created entry - String entryID = confirmedNewEntry.getId(); - Thread.sleep(300); - - System.out.println("confirmed entry ID: " + confirmedNewEntry.getId()); - System.out.println("confirmed entry title: " + confirmedNewEntry.getTitle().getPlainText()); - - System.out.println("Before test clientDelete"); - testService.clientDelete(entryID); - System.out.println("After test clientDelete"); - - Feed feed01 = testService.clientGetFeed(); - int entryNum01 = feed01.getEntries().size(); - System.out.println("entryNum01:" + entryNum01); // The number of entries after deleting - - //assertEquals(1, entryNum00 - entryNum01); - } - - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClient.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClient.java deleted file mode 100644 index 7aa0a8961c..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClient.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import com.google.gdata.client.Query; -import com.google.gdata.data.Entry; -import com.google.gdata.data.Feed; - -public interface CustomerClient { - - Feed clientGetFeed() throws Exception; - - Entry clientGetEntry(String entryID) throws Exception; - - Entry clientPost(Entry entry) throws Exception; - - void clientDelete(String entryID) throws Exception; - - void clientPut(String entryID, String newTitle) throws Exception; - - Feed clientQuery(Query query) throws Exception; - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClientImpl.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClientImpl.java deleted file mode 100644 index a2b1da894d..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClientImpl.java +++ /dev/null @@ -1,123 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import com.google.gdata.client.Query; -import com.google.gdata.data.Feed; -import com.google.gdata.data.Entry; -import com.google.gdata.data.PlainTextConstruct; - -import org.apache.tuscany.sca.binding.gdata.collection.Collection; -import org.apache.tuscany.sca.binding.gdata.collection.NotFoundException; -import org.osoa.sca.annotations.Reference; - -public class CustomerClientImpl implements CustomerClient { - - @Reference - public Collection resourceCollection; - - // Call Collection.getFeed() - public Feed clientGetFeed() throws Exception { - // Get all the entries from the provider, return in a single feed - System.out.println(">>> get the feed from the provider service"); - Feed feed = resourceCollection.getFeed(); - System.out.println("\n\n!!! Fetched feed title: " + feed.getTitle().getPlainText()); - int i = 0; - for (Object o : feed.getEntries()) { - com.google.gdata.data.Entry e = (com.google.gdata.data.Entry)o; - System.out.print("Entry" + i + "\t"); - System.out.println(" id = " + e.getId() + "\t title = " + e.getTitle().getPlainText()); - i++; - } - return feed; - } - - - // Call Collection.get(entryID) - public Entry clientGetEntry(String entryID) throws Exception { - // Get an existing entry based on its id - System.out.println(">>> get an existing entry from the provider service"); - Entry entry = resourceCollection.get(entryID); - System.out.println("\n\n!!! Entry retrieved with id=" + entry.getId() - + " title=" - + entry.getTitle().getPlainText()); - return entry; - } - - - // Call Collection.post(newEntry) - public Entry clientPost(Entry newEntry) throws Exception { - // Put a new entry to the provider - System.out.println(">>> post a new entry to the provider service"); - Entry confirmedNewEntry = resourceCollection.post(newEntry); - System.out.println("!!! New entry posted with id=" + confirmedNewEntry.getId() - + " title=" - + confirmedNewEntry.getTitle().getPlainText()); - System.out.println("\n"); - return confirmedNewEntry; - } - - - // Call Collection.delete(newEntry) - public void clientDelete(String entryID) throws Exception { - // Put a new entry to the provider - System.out.println(">>> delete an existing entry from the provider service"); - System.out.println(">>> delete id=" + "urn:uuid:customer-1"); - resourceCollection.delete(entryID); - System.out.println("!!! entry with id" + entryID); - System.out.println("\n"); - } - - - - // Call Collection.put(entry, updatedTitle) - public void clientPut(String entryID, String newTitle) throws Exception { - - System.out.println("clientPut"); - // Put a new entry to the provider - System.out.println(">>> put id=" + entryID + " title=" + newTitle); - Entry entry = resourceCollection.get(entryID); - - //change the title of this entry - entry.setTitle(new PlainTextConstruct(newTitle)); - resourceCollection.put(entryID, entry); - System.out.println("!!! Updated entry with id=" + entry.getId() + " title=" + entry.getTitle()); - System.out.println("\n"); - } - - - - // Call Collection.getFeed() - public Feed clientQuery(Query query) throws Exception { - // Get all the entries from the provider, return in a single feed - System.out.println(">>> query the service"); - Feed feed = resourceCollection.query(query); - System.out.println("\n\n!!! Query result feed title: " + feed.getTitle().getPlainText()); - int i = 0; - for (Object o : feed.getEntries()) { - com.google.gdata.data.Entry e = (com.google.gdata.data.Entry)o; - System.out.print("Entry" + i + "\t"); - System.out.println(" id = " + e.getId() + "\t title = " + e.getTitle().getPlainText()); - i++; - } - return feed; - } - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerCollectionImpl.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerCollectionImpl.java deleted file mode 100644 index 3c11fb70b9..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerCollectionImpl.java +++ /dev/null @@ -1,143 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; -import java.util.UUID; - -import com.google.gdata.client.Query; -import com.google.gdata.data.DateTime; -import com.google.gdata.data.Entry; -import com.google.gdata.data.Feed; -import com.google.gdata.data.Link; -import com.google.gdata.data.PlainTextConstruct; - -import org.apache.tuscany.sca.binding.gdata.collection.Collection; -import org.osoa.sca.annotations.Scope; - -@Scope("COMPOSITE") -public class CustomerCollectionImpl implements Collection { - - - private Map<String, Entry> entries = new HashMap<String, Entry>(); - - /** - * Default constructor that initializes collection with couple customer - * entries - */ - public CustomerCollectionImpl() { - - for (int i = 0; i < 4; i++) { - // id is supposed to be generated in a random way, but for the - // purpose of testing, we just make them as static ids - - // String id = "urn:uuid:customer-" + UUID.randomUUID().toString(); - - String id = "urn:uuid:customer-" + String.valueOf(i); - Entry entry = new Entry(); - entry.setId(id); - entry.setTitle(new PlainTextConstruct("EntryTitle_" + i)); - entry.setContent(new PlainTextConstruct("content_" + i)); - entry.setUpdated(DateTime.now()); - // FIXME: The following three lines of code need to be fixed to add - // HTML links. - Link link = new Link(); - link.setType(Link.Type.ATOM); - link.setRel(Link.Rel.ENTRY_EDIT); - link.setHref("http://localhost:8084/customer" + "/" + id); - entry.getLinks().add(link); - - // entry.addHtmlLink(""+id, "", "edit"); - // entry.addHtmlLink(""+id, "", "alternate"); - entries.put(id, entry); - System.out.println(">>> id=" + id); - } - } - - public Entry post(Entry entry) { - System.out.println(">>> ResourceCollectionImpl.post entry=" + entry.getTitle()); - - String id = "urn:uuid:customer-" + UUID.randomUUID().toString(); - entry.setId(id); - - Link link = new Link(); - link.setType(Link.Type.ATOM); - link.setRel(Link.Rel.ENTRY_EDIT); - link.setHref("http://localhost:8084/customer" + "/" + id); - entry.getLinks().add(link); - - //entry.addLink("" + id, "edit"); entry.addLink("" + id, "alternate"); - entry.setUpdated(DateTime.now()); - - // entry.addHtmlLink("http://www.google.com", "languageType", "edit"); - // entry.addHtmlLink("http://www.google.com", "languageType", - // "alternate"); - - entries.put(id, entry); - System.out.println(">>> ResourceCollectionImpl.post return id=" + id); - return entry; - } - - public Entry get(String id) { - System.out.println(">>> ResourceCollectionImpl.get id= " + id); - return entries.get(id); - } - - public void put(String id, Entry entry) { - System.out.println(">>> ResourceCollectionImpl.put id=" + id + " entry=" + entry.getTitle().getPlainText()); - entry.setUpdated(DateTime.now()); - entries.put(id, entry); - } - - - public void delete(String id) { - System.out.println(">>> ResourceCollectionImpl.delete id=" + id); - entries.remove(id); - } - - - public Feed getFeed() { - System.out.println(">>> ResourceCollectionImpl.get collection"); - - Feed feed = new Feed(); - feed.setTitle(new PlainTextConstruct("Feedtitle(LocalHostServlet)")); - feed.setSubtitle(new PlainTextConstruct("Subtitle: This is a sample feed")); - feed.setUpdated(DateTime.now()); - // FIXME: The following two lines of code need to be fixed - // feed.addHtmlLink("", "", ""); - // feed.addHtmlLink("", "languageType", "self"); - ArrayList<Entry> entryList = new ArrayList<Entry>(); - for (Entry entry : entries.values()) { - entryList.add(entry); - } - feed.setEntries(entryList); - - return feed; - } - - //FIXME: need to be modified - public Feed query(Query query) { - System.out.println(">>> ResourceCollectionImpl.query collection "); - return getFeed(); - } - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleBloggerServiceTestCase.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleBloggerServiceTestCase.java deleted file mode 100644 index b4f6ec7b36..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleBloggerServiceTestCase.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import java.net.URL; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.host.embedded.SCADomain; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import com.google.gdata.client.Query; -import com.google.gdata.data.DateTime; -import com.google.gdata.data.Entry; -import com.google.gdata.data.Feed; -import com.google.gdata.data.PlainTextConstruct; - -public class GoogleBloggerServiceTestCase extends TestCase{ - - private SCADomain scaDomainConsumer = null; - private CustomerClient testService = null; - - public GoogleBloggerServiceTestCase(){ - - } - - @Before - @Override - public void setUp() throws Exception { - System.out.println("Method Test Start-----------------------------------------------------------------------"); - - //Initialize the GData client service (Reference Binding test) - scaDomainConsumer = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/ConsumerGoogleBlogger.composite"); - testService = scaDomainConsumer.getService(CustomerClient.class, "CustomerClient"); - } - - @After - @Override - public void tearDown(){ - System.out.println("Method Test End------------------------------------------------------------------------"); - System.out.println("\n\n"); - } - - @Test - public void testClientGetFeed() throws Exception { - Feed feed = testService.clientGetFeed(); - System.out.println("feed title: " + feed.getTitle().getPlainText()); - assertEquals("gdata binding tuscany test", feed.getTitle().getPlainText()); - } - - - @Test - public void testClientGetEntry() throws Exception { - String entryID = "8308734583601887890"; - Entry blogEntry = testService.clientGetEntry(entryID); - System.out.println("Entry ID: " + blogEntry.getId()); - assertTrue(blogEntry.getId().endsWith(entryID)); - System.out.println("------------------------------------------------------------\n\n"); - } - - - @Test - public void testClientPut() throws Exception { - String entryID = "2889832689497686762"; - String newBlogEntryTitle = "updatedTitleByTestCase2"; - testService.clientPut(entryID, newBlogEntryTitle); //update the title - Thread.sleep(300); - Entry updatedEntry = testService.clientGetEntry(entryID); - assertEquals(newBlogEntryTitle, updatedEntry.getTitle().getPlainText()); - } - - - - @Test - public void testClientPost() throws Exception { - String blogEntryTitle = "titleByBloogerTestcase000"; - Entry newEntry = new Entry(); - newEntry.setTitle(new PlainTextConstruct(blogEntryTitle)); - newEntry.setContent(new PlainTextConstruct("contentByBloggerTestCase000")); - Entry postedEntry = testService.clientPost(newEntry); - assertEquals(blogEntryTitle, postedEntry.getTitle().getPlainText()); - } - - - @Test - public void testClientDelete() throws Exception { - - //This test case might fail - //because Google blogger service has limitation on new posts allowed everyday/every hour? - - System.out.println("testClientDelete"); - //We create a new post, and then delete it - Entry newEntry = new Entry(); - newEntry.setTitle(new PlainTextConstruct("blogEntryShouldNotApear")); - newEntry.setContent(new PlainTextConstruct("contentByBloggerShouldNotAppear")); - Entry postedEntry = testService.clientPost(newEntry); - Thread.sleep(300); - int idStartPosition = postedEntry.getId().lastIndexOf("-"); - String postedEntryID = postedEntry.getId().substring(idStartPosition+1); - System.out.println("postedEntryID: " + postedEntryID ); - - //Before deletion - Entry entry00 = testService.clientGetEntry(postedEntryID); - System.out.println("Before Deleteion: " + entry00.getId()); - - //Delete this entry - testService.clientDelete(postedEntryID); - - //Worked: this newly posted entry did not appear in the blogspot website, - //But we need a Junit assertion here - //Link: http://haibotuscany.blogspot.com/feeds/posts/default/ - //FIXME: Need an assertion here - //Assert(....); - } - - - @Test - public void testClientQuery() throws Exception { - Query myQuery = new Query(new URL("http://haibotuscany.blogspot.com/feeds/posts/default")); - myQuery.setMaxResults(100); - //myQuery.setUpdatedMin(startTime); - myQuery.setUpdatedMax(DateTime.now()); - Feed resultFeed = testService.clientQuery(myQuery); - System.out.println("Query result feed title: " + resultFeed.getTitle().getPlainText()); - System.out.println("Query result entry number: "+ resultFeed.getEntries().size()); - //assertEquals("gdata binding tuscany test", resultFeed.getTitle().getPlainText()); - } - - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleCalendarServiceTestCase.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleCalendarServiceTestCase.java deleted file mode 100644 index 882716575b..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleCalendarServiceTestCase.java +++ /dev/null @@ -1,157 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import java.net.URL; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.host.embedded.SCADomain; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import com.google.gdata.client.Query; -import com.google.gdata.data.DateTime; -import com.google.gdata.data.Entry; -import com.google.gdata.data.Feed; -import com.google.gdata.data.PlainTextConstruct; - -public class GoogleCalendarServiceTestCase extends TestCase{ - - private SCADomain scaDomainConsumer = null; - private CustomerClient testService = null; - - public GoogleCalendarServiceTestCase(){ - - } - - @Before - @Override - public void setUp() throws Exception { - System.out.println("Method Test Start-----------------------------------------------------------------------"); - - //Initialize the GData client service (Reference Binding test) - scaDomainConsumer = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/ConsumerGoogleCalendar.composite"); - testService = scaDomainConsumer.getService(CustomerClient.class, "CustomerClient"); - } - - @After - @Override - public void tearDown(){ - System.out.println("Method Test End------------------------------------------------------------------------"); - System.out.println("\n\n"); - } - - @Test - public void testClientGetFeed() throws Exception { - Feed feed = testService.clientGetFeed(); - System.out.println("feed title: " + feed.getTitle().getPlainText()); - assertEquals("gsoc gosc", feed.getTitle().getPlainText()); - } - - - @Test - public void testClientGetEntry() throws Exception { - String entryID = "1c76lcl70jg9r0fm18rcbneea8"; - Entry blogEntry = testService.clientGetEntry(entryID); - System.out.println("Entry ID: " + blogEntry.getId()); - assertTrue(blogEntry.getId().endsWith(entryID)); - System.out.println("------------------------------------------------------------\n\n"); - } - - - @Test - public void testClientPut() throws Exception { - String entryID = "1c76lcl70jg9r0fm18rcbneea8"; - String newBlogEntryTitle = "updatedTitleByGoogleContactsConsumerTestCase"; - testService.clientPut(entryID, newBlogEntryTitle); //update the title - Thread.sleep(300); - Entry updatedEntry = testService.clientGetEntry(entryID); - assertEquals(newBlogEntryTitle, updatedEntry.getTitle().getPlainText()); - } - - - - @Test - public void testClientPost() throws Exception { - String blogEntryTitle = "titleByGoogleCalendarTestcase"; - Entry newEntry = new Entry(); - newEntry.setTitle(new PlainTextConstruct(blogEntryTitle)); - newEntry.setContent(new PlainTextConstruct("contentByGoogleCalendarTestCase")); - Entry postedEntry = testService.clientPost(newEntry); - assertEquals(blogEntryTitle, postedEntry.getTitle().getPlainText()); - } - - - @Test - public void testClientDelete() throws Exception { - - //This test case might fail - //because Google blogger service has limitation on new posts allowed everyday/every hour? - - System.out.println("testClientDelete"); - //We create a new post, and then delete it - Entry newEntry = new Entry(); - newEntry.setTitle(new PlainTextConstruct("calendarEntryShouldNotApear")); - newEntry.setContent(new PlainTextConstruct("calendarByBloggerShouldNotAppear")); - Entry postedEntry = testService.clientPost(newEntry); - Thread.sleep(300); - - System.out.println("ID: " + postedEntry.getId()); - - int idStartPosition = postedEntry.getId().lastIndexOf("/"); - String postedEntryID = postedEntry.getId().substring(idStartPosition+1); - System.out.println("postedEntryID: " + postedEntryID ); - - //Before deletion - Entry entry00 = testService.clientGetEntry(postedEntryID); - System.out.println("Before Deleteion: " + entry00.getId()); - - //Delete this entry - testService.clientDelete(postedEntryID); - - //Worked: this newly posted entry did not appear in the contact list - //But we need a Junit assertion here - //Link: http://haibotuscany.blogspot.com/feeds/posts/default/ - //FIXME: Need an assertion here - //Assert(....); - } - - - @Test - public void testClientQuery() throws Exception { - Query myQuery = new Query(new URL("http://www.google.com/calendar/feeds/haibotuscany@gmail.com/private/full")); - myQuery.setMaxResults(100); - //myQuery.setUpdatedMin(startTime); - myQuery.setUpdatedMax(DateTime.now()); - - //Google Calendar service supports full-text search - String queryString = "event0"; - myQuery.setFullTextQuery(queryString); - - Feed resultFeed = testService.clientQuery(myQuery); - System.out.println("Query result feed title: " + resultFeed.getTitle().getPlainText()); - System.out.println("Query result entry number: "+ resultFeed.getEntries().size()); - //assertEquals("gdata binding tuscany test", resultFeed.getTitle().getPlainText()); - } - - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleContactsServiceTestCase.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleContactsServiceTestCase.java deleted file mode 100644 index 959c153074..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleContactsServiceTestCase.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import java.net.URL; - -import junit.framework.TestCase; - -import org.apache.tuscany.sca.host.embedded.SCADomain; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import com.google.gdata.client.Query; -import com.google.gdata.data.DateTime; -import com.google.gdata.data.Entry; -import com.google.gdata.data.Feed; -import com.google.gdata.data.PlainTextConstruct; - -public class GoogleContactsServiceTestCase extends TestCase{ - - private SCADomain scaDomainConsumer = null; - private CustomerClient testService = null; - - public GoogleContactsServiceTestCase(){ - - } - - @Before - @Override - public void setUp() throws Exception { - System.out.println("Method Test Start-----------------------------------------------------------------------"); - - //Initialize the GData client service (Reference Binding test) - scaDomainConsumer = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/ConsumerGoogleContacts.composite"); - testService = scaDomainConsumer.getService(CustomerClient.class, "CustomerClient"); - } - - @After - @Override - public void tearDown(){ - System.out.println("Method Test End------------------------------------------------------------------------"); - System.out.println("\n\n"); - } - - @Test - public void testClientGetFeed() throws Exception { - Feed feed = testService.clientGetFeed(); - System.out.println("feed title: " + feed.getTitle().getPlainText()); - assertEquals("Haibo Zhao's Contacts", feed.getTitle().getPlainText()); - } - - - @Test - public void testClientGetEntry() throws Exception { - String entryID = "12feeeb38ab87365"; - Entry contactEntry = testService.clientGetEntry(entryID); - System.out.println("Entry ID: " + contactEntry.getId()); - assertTrue(contactEntry.getId().endsWith(entryID)); - System.out.println("------------------------------------------------------------\n\n"); - } - - - @Test - public void testClientPut() throws Exception { - String entryID = "12feeeb38ab87365"; - String newBlogEntryTitle = "updatedTitleByGoogleContactsConsumerTestCase"; - testService.clientPut(entryID, newBlogEntryTitle); //update the title - Thread.sleep(300); - Entry updatedEntry = testService.clientGetEntry(entryID); - assertEquals(newBlogEntryTitle, updatedEntry.getTitle().getPlainText()); - } - - - - @Test - public void testClientPost() throws Exception { - String blogEntryTitle = "titleByGoogleContactsTestcase"; - Entry newEntry = new Entry(); - newEntry.setTitle(new PlainTextConstruct(blogEntryTitle)); - newEntry.setContent(new PlainTextConstruct("contentByGoogleContactsTestCase")); - Entry postedEntry = testService.clientPost(newEntry); - assertEquals(blogEntryTitle, postedEntry.getTitle().getPlainText()); - } - - - @Test - public void testClientDelete() throws Exception { - - //This test case might fail - //because Google blogger service has limitation on new posts allowed everyday/every hour? - - System.out.println("testClientDelete"); - //We create a new post, and then delete it - Entry newEntry = new Entry(); - newEntry.setTitle(new PlainTextConstruct("contactEntryShouldNotApear")); - newEntry.setContent(new PlainTextConstruct("contactByBloggerShouldNotAppear")); - Entry postedEntry = testService.clientPost(newEntry); - Thread.sleep(300); - - System.out.println("ID: " + postedEntry.getId()); - - int idStartPosition = postedEntry.getId().lastIndexOf("/"); - String postedEntryID = postedEntry.getId().substring(idStartPosition+1); - System.out.println("postedEntryID: " + postedEntryID ); - - //Before deletion - Entry entry00 = testService.clientGetEntry(postedEntryID); - System.out.println("Before Deleteion: " + entry00.getId()); - - //Delete this entry - testService.clientDelete(postedEntryID); - - //Worked: this newly posted entry did not appear in the contact list - //But we need a Junit assertion here - //Link: http://haibotuscany.blogspot.com/feeds/posts/default/ - //FIXME: Need an assertion here - //Assert(....); - } - - - @Test - public void testClientQuery() throws Exception { - Query myQuery = new Query(new URL("http://www.google.com/m8/feeds/contacts/default/base")); - myQuery.setMaxResults(100); - //myQuery.setUpdatedMin(startTime); - myQuery.setUpdatedMax(DateTime.now()); - Feed resultFeed = testService.clientQuery(myQuery); - System.out.println("Query result feed title: " + resultFeed.getTitle().getPlainText()); - System.out.println("Query result entry number: "+ resultFeed.getEntries().size()); - //assertEquals("gdata binding tuscany test", resultFeed.getTitle().getPlainText()); - } - - -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/Provider.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/Provider.java deleted file mode 100644 index 21bff30256..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/Provider.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import java.io.IOException; - -import org.apache.tuscany.sca.host.embedded.SCADomain; - -public class Provider { - - public static void main(String[] args) { - - SCADomain scaDomain = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/Provider.composite"); - System.out.println("Provider.composite ready..."); - - try { - System.in.read(); - } catch (IOException e) { - e.printStackTrace(); - } - - scaDomain.close(); - } -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/StartLocalhostServlet.java b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/StartLocalhostServlet.java deleted file mode 100644 index 2773398426..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/java/org/apache/tuscany/sca/binding/gdata/StartLocalhostServlet.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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.tuscany.sca.binding.gdata; - -import java.io.IOException; - -import org.apache.tuscany.sca.host.embedded.SCADomain; - -public class StartLocalhostServlet { - - public static void main(String[] args) { - - SCADomain scaDomain = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/Provider.composite"); - System.out.println("Provider.composite ready..."); - - try { - System.in.read(); - } catch (IOException e) { - e.printStackTrace(); - } - - scaDomain.close(); - } -} diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/log4j.properties b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/log4j.properties deleted file mode 100644 index 33eaf11c1f..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/log4j.properties +++ /dev/null @@ -1,25 +0,0 @@ -# -# 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 root logger level to WARN and its only appender to CONSOLE -log4j.rootLogger=INFO, CONSOLE - - -# Console appender -log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender -log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout -log4j.appender.CONSOLE.layout.ConversionPattern=%d{ABSOLUTE} %-5p %x - %m\n diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/Consumer.composite b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/Consumer.composite deleted file mode 100644 index a7941a2056..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/Consumer.composite +++ /dev/null @@ -1,32 +0,0 @@ -<?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. ---> -<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" - targetNamespace="http://customer" - name="Consumer"> - - <component name="CustomerClient"> - <implementation.java class="org.apache.tuscany.sca.binding.gdata.CustomerClientImpl"/> - <reference name="resourceCollection"> - <tuscany:binding.gdata uri="http://localhost:8084/customer" serviceType="localServiceBinding" username="admin" password="admin"/> - </reference> - </component> - -</composite> diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleBlogger.composite b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleBlogger.composite deleted file mode 100644 index 078873c44f..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleBlogger.composite +++ /dev/null @@ -1,32 +0,0 @@ -<?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. ---> -<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" - targetNamespace="http://customer" - name="Consumer"> - - <component name="CustomerClient"> - <implementation.java class="org.apache.tuscany.sca.binding.gdata.CustomerClientImpl"/> - <reference name="resourceCollection"> - <tuscany:binding.gdata uri="http://haibotuscany.blogspot.com/feeds/posts/default" serviceType="blogger" username="haibotuscany@gmail.com" password="gsocgsocgsoc"/> - </reference> - </component> - -</composite> diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleCalendar.composite b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleCalendar.composite deleted file mode 100644 index 7e0c925482..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleCalendar.composite +++ /dev/null @@ -1,32 +0,0 @@ -<?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. ---> -<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" - targetNamespace="http://customer" - name="Consumer"> - - <component name="CustomerClient"> - <implementation.java class="org.apache.tuscany.sca.binding.gdata.CustomerClientImpl"/> - <reference name="resourceCollection"> - <tuscany:binding.gdata uri="http://www.google.com/calendar/feeds/haibotuscany@gmail.com/private/full" serviceType="cl" username="haibotuscany@gmail.com" password="gsocgsocgsoc"/> - </reference> - </component> - -</composite> diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleContacts.composite b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleContacts.composite deleted file mode 100644 index bc1ea7a8a9..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleContacts.composite +++ /dev/null @@ -1,32 +0,0 @@ -<?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. ---> -<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" - targetNamespace="http://customer" - name="Consumer"> - - <component name="CustomerClient"> - <implementation.java class="org.apache.tuscany.sca.binding.gdata.CustomerClientImpl"/> - <reference name="resourceCollection"> - <tuscany:binding.gdata uri="http://www.google.com/m8/feeds/contacts/default/base" serviceType="cp" username="haibotuscany@gmail.com" password="gsocgsocgsoc"/> - </reference> - </component> - -</composite> diff --git a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/Provider.composite b/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/Provider.composite deleted file mode 100644 index a4cf00dc84..0000000000 --- a/branches/sca-android/modules/binding-gdata-runtime-gsoc/src/test/resources/org/apache/tuscany/sca/binding/gdata/Provider.composite +++ /dev/null @@ -1,33 +0,0 @@ -<?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. ---> -<composite xmlns="http://www.osoa.org/xmlns/sca/1.0" - xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" - targetNamespace = "http://customer" - name="Provider"> - - <service name="customer" promote="CustomerCollection"> - <tuscany:binding.gdata uri = "http://localhost:8084/customer"/> - </service> - - <component name="CustomerCollection"> - <implementation.java class="org.apache.tuscany.sca.binding.gdata.CustomerCollectionImpl"/> - </component> - -</composite> |