summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/modules/binding-gdata-runtime/src
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-1.x/modules/binding-gdata-runtime/src')
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/Collection.java81
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/MediaCollection.java55
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/NotFoundException.java45
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingInvoker.java419
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingListenerServlet.java746
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingProviderFactory.java79
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingUtil.java171
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataReferenceBindingProvider.java229
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataServiceBindingProvider.java90
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory19
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Constants.java24
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Consumer.java60
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/ConsumerProviderTestCase.java136
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClient.java40
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClientImpl.java120
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerCollectionImpl.java142
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleBloggerServiceTestCase.java141
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleCalendarServiceTestCase.java149
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleContactsServiceTestCase.java168
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleWebAlbumServiceTestCase.java115
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Provider.java41
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/StartLocalhostServlet.java41
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/log4j.properties25
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/Consumer.composite32
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleBlogger.composite32
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleCalendar.composite32
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleContacts.composite32
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleWebAlbum.composite32
-rw-r--r--branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/Provider.composite33
29 files changed, 0 insertions, 3329 deletions
diff --git a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/Collection.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/Collection.java
deleted file mode 100644
index 8bff8631a6..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/Collection.java
+++ /dev/null
@@ -1,81 +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.
- *
- * @version $Rev$ $Date$
- */
-@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-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/MediaCollection.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/MediaCollection.java
deleted file mode 100644
index 699e9f0172..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/MediaCollection.java
+++ /dev/null
@@ -1,55 +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 com.google.gdata.data.Entry;
-
-/**
- * Provides access to a collection of resources using Atom.
- *
- * @version $Rev$ $Date$
- */
-@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-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/NotFoundException.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/collection/NotFoundException.java
deleted file mode 100644
index 4fc32d4d37..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingInvoker.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingInvoker.java
deleted file mode 100644
index 67cf01eca9..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingInvoker.java
+++ /dev/null
@@ -1,419 +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.feedEntry;
-
-import java.io.IOException;
-import java.net.URL;
-
-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.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.
- *
- * @version $Rev$ $Date$
- */
-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 boolean allowsPassByReference() {
- return true;
- }
-
- 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) {
- // 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]);
-
- }
-
- // 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);
- }
- }
-}
diff --git a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingListenerServlet.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingListenerServlet.java
deleted file mode 100644
index facf3bb641..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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.
- *
- * @version $Rev$ $Date$
- */
-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-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingProviderFactory.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingProviderFactory.java
deleted file mode 100644
index 62a05e91d0..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingProviderFactory.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.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.core.UtilityExtensionPoint;
-import org.apache.tuscany.sca.databinding.Mediator;
-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.
- *
- * @version $Rev$ $Date$
- */
-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 = extensionPoints.getExtensionPoint(UtilityExtensionPoint.class).getUtility(Mediator.class);
- }
-
- public ReferenceBindingProvider createReferenceBindingProvider(RuntimeComponent component,
- RuntimeComponentReference reference,
- GdataBinding binding) {
- try {
- return new GdataReferenceBindingProvider(component, reference, binding, mediator);
- } catch (AuthenticationException e) {
- 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-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingUtil.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingUtil.java
deleted file mode 100644
index 3d476df764..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataBindingUtil.java
+++ /dev/null
@@ -1,171 +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.
- *
- * @version $Rev$ $Date$
- */
-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-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataReferenceBindingProvider.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataReferenceBindingProvider.java
deleted file mode 100644
index ac8c298d1a..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataReferenceBindingProvider.java
+++ /dev/null
@@ -1,229 +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();
-
- 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;
- }
-
- String entryURI = this.binding.getURI();
- if(entryURI.contains("picasaweb.google.com/data/feed/api/")){
- entryURI = entryURI.replace("picasaweb.google.com/data/feed/api/", "picasaweb.google.com/data/entry/api/");
- }
-
- return new GdataBindingInvoker.GetInvoker(operation, entryURI, 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")) {
-
- String entryURI = this.binding.getURI();
- if(entryURI.contains("picasaweb.google.com/data/feed/api/")){
- entryURI = entryURI.replace("picasaweb.google.com/data/feed/api/", "picasaweb.google.com/data/entry/api/");
- }
-
- return new GdataBindingInvoker.PutInvoker(operation, entryURI, googleService, httpClient, authorizationHeader, this);
-
- } else if (operationName.equals("delete")) {
-
- String entryURI = this.binding.getURI();
- if(entryURI.contains("picasaweb.google.com/data/feed/api/")){
- entryURI = entryURI.replace("picasaweb.google.com/data/feed/api/", "picasaweb.google.com/data/entry/api/");
- }
- return new GdataBindingInvoker.DeleteInvoker(operation, entryURI, googleService, httpClient, authorizationHeader, this);
-
- } else if (operationName.equals("getFeed") || operationName.equals("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);
- }
-
- 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-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataServiceBindingProvider.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/java/org/apache/tuscany/sca/binding/gdata/provider/GdataServiceBindingProvider.java
deleted file mode 100644
index 10faf74371..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/main/resources/META-INF/services/org.apache.tuscany.sca.provider.BindingProviderFactory
deleted file mode 100644
index 5e380eb4e0..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Constants.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Constants.java
deleted file mode 100644
index 6b4a6e2509..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Constants.java
+++ /dev/null
@@ -1,24 +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;
-
-public class Constants {
- static long SLEEP_INTERVAL = 400L;
-}
diff --git a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Consumer.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Consumer.java
deleted file mode 100644
index 7d723a2883..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/ConsumerProviderTestCase.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/ConsumerProviderTestCase.java
deleted file mode 100644
index af7027ca90..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/ConsumerProviderTestCase.java
+++ /dev/null
@@ -1,136 +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.Assert;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-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 {
-
- private static SCADomain scaDomainProvider = null;
- private static SCADomain scaDomainConsumer = null;
- private static CustomerClient testService = null;
-
- @BeforeClass
- public static void setUp() throws Exception {
- // Setup the local GData servlet (Service Binding test)
- scaDomainProvider = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/Provider.composite");
-
- // 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");
- }
-
- @AfterClass
- public static void tearDown() {
- scaDomainConsumer.close();
- scaDomainProvider.close();
- }
-
-
- @Test
- public void testClientGetFeed() throws Exception {
- Feed feed = testService.clientGetFeed();
- //System.out.println(feed.getTitle().getPlainText());
- Assert.assertNotNull(feed);
- // Given we are testing on the localhost providing feed, we know the
- // feed title is "Feedtitle(LocalHostServlet)"
- Assert.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());
- Assert.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);
- Assert.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());
- Assert.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(Constants.SLEEP_INTERVAL);
-
- 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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClient.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClient.java
deleted file mode 100644
index 7aa0a8961c..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClientImpl.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClientImpl.java
deleted file mode 100644
index 5dc9c0079f..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerClientImpl.java
+++ /dev/null
@@ -1,120 +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());
- 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);
- }
-
-
-
- // 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());
- }
-
-
-
- // 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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerCollectionImpl.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerCollectionImpl.java
deleted file mode 100644
index 9c4d118cd6..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/CustomerCollectionImpl.java
+++ /dev/null
@@ -1,142 +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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleBloggerServiceTestCase.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleBloggerServiceTestCase.java
deleted file mode 100644
index a827677fd0..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleBloggerServiceTestCase.java
+++ /dev/null
@@ -1,141 +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.Assert;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-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 {
-
- private static SCADomain scaDomainConsumer = null;
- private static CustomerClient testService = null;
-
- @BeforeClass
- public static void setUp() throws Exception {
- //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");
- }
-
- @AfterClass
- public static void tearDown(){
- scaDomainConsumer.close();
- }
-
- @Test
- public void testClientGetFeed() throws Exception {
- Feed feed = testService.clientGetFeed();
- //System.out.println("feed title: " + feed.getTitle().getPlainText());
- Assert.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());
- Assert.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(Constants.SLEEP_INTERVAL);
- Entry updatedEntry = testService.clientGetEntry(entryID);
- Assert.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);
- Assert.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(Constants.SLEEP_INTERVAL);
- 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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleCalendarServiceTestCase.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleCalendarServiceTestCase.java
deleted file mode 100644
index 9c3122e134..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleCalendarServiceTestCase.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.Assert;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-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 {
-
- private static SCADomain scaDomainConsumer = null;
- private static CustomerClient testService = null;
-
- public GoogleCalendarServiceTestCase() {
-
- }
-
- @BeforeClass
- public static void setUp() throws Exception {
- //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");
- }
-
- @AfterClass
- public static void tearDown(){
- scaDomainConsumer.close();
- }
-
- @Test
- public void testClientGetFeed() throws Exception {
- Feed feed = testService.clientGetFeed();
- //System.out.println("feed title: " + feed.getTitle().getPlainText());
- Assert.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());
- Assert.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(Constants.SLEEP_INTERVAL);
- Entry updatedEntry = testService.clientGetEntry(entryID);
- Assert.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);
- Assert.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(Constants.SLEEP_INTERVAL);
-
- //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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleContactsServiceTestCase.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleContactsServiceTestCase.java
deleted file mode 100644
index 1f261dfc90..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleContactsServiceTestCase.java
+++ /dev/null
@@ -1,168 +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.Assert;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-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 {
-
- private static SCADomain scaDomainConsumer = null;
- private static CustomerClient testService = null;
-
- public GoogleContactsServiceTestCase(){
-
- }
-
- @BeforeClass
- public static void setUp() throws Exception {
- //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");
- }
-
- @AfterClass
- public static void tearDown(){
- scaDomainConsumer.close();
- }
-
- @Test
- public void testClientGetFeed() throws Exception {
- Feed feed = testService.clientGetFeed();
- System.out.println("feed title: " + feed.getTitle().getPlainText());
- Assert.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());
- Assert.assertTrue(contactEntry.getId().endsWith(entryID));
- }
-
-
- @Test
- public void testClientPut() throws Exception {
- String entryID = "12feeeb38ab87365";
- String newBlogEntryTitle = "updatedTitleByGoogleContactsConsumerTestCase";
- testService.clientPut(entryID, newBlogEntryTitle); //update the title
- Thread.sleep(Constants.SLEEP_INTERVAL);
- Entry updatedEntry = testService.clientGetEntry(entryID);
- Assert.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);
- Assert.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(Constants.SLEEP_INTERVAL);
-
- //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
- for (int i = 0; i < 5; i++) { // make 5 attempts because of timing issues
- try {
- Entry entry00 = testService.clientGetEntry(postedEntryID);
- //System.out.println("Before Deletion: " + entry00.getId());
- break; // get was successful
- } catch (Exception e) {
- if (i < 4) {
- System.out.println("Get failed, retrying...");
- } else {
- throw e; // final attempt, give up
- }
- }
- }
-
- //Delete this entry
- for (int i = 0; i < 5; i++) { // make 5 attempts because of timing issues
- try {
- testService.clientDelete(postedEntryID);
- break; // delete was successful
- } catch (Exception e) {
- if (i < 4) {
- System.out.println("Delete failed, retrying...");
- } else {
- throw e; // final attempt, give up
- }
- }
- }
-
- //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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleWebAlbumServiceTestCase.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleWebAlbumServiceTestCase.java
deleted file mode 100644
index 459c2f6933..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/GoogleWebAlbumServiceTestCase.java
+++ /dev/null
@@ -1,115 +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.Assert;
-
-import org.apache.tuscany.sca.host.embedded.SCADomain;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-import com.google.gdata.client.Query;
-import com.google.gdata.data.Entry;
-import com.google.gdata.data.Feed;
-
-public class GoogleWebAlbumServiceTestCase {
-
- private static SCADomain scaDomainConsumer = null;
- private static CustomerClient testService = null;
-
- public GoogleWebAlbumServiceTestCase(){
-
- }
-
- @BeforeClass
- public static void setUp() throws Exception {
- //Initialize the GData client service (Reference Binding test)
- scaDomainConsumer = SCADomain.newInstance("org/apache/tuscany/sca/binding/gdata/ConsumerGoogleWebAlbum.composite");
- testService = scaDomainConsumer.getService(CustomerClient.class, "CustomerClient");
- }
-
- @AfterClass
- public static void tearDown(){
- scaDomainConsumer.close();
- }
-
- @Test
- public void testClientGetFeed() throws Exception {
- Feed feed = testService.clientGetFeed();
- //System.out.println("feed title: " + feed.getTitle().getPlainText());
- Assert.assertEquals("flowers", feed.getTitle().getPlainText());
- }
-
-
-
-
- @Test
- public void testClientGetEntry() throws Exception {
- String entryID = "photoid/5233468700029715874";
- Entry contactEntry = testService.clientGetEntry(entryID);
- //System.out.println("Entry ID: " + contactEntry.getId());
- Assert.assertTrue(contactEntry.getId().endsWith(entryID));
- //System.out.println("------------------------------------------------------------\n\n");
- }
-
-
- @Test
- public void testClientQuery() throws Exception {
- String feedUrlString = "http://picasaweb.google.com/data/feed/api/user/haibotuscany/album/flowers";
- URL feedURL = new URL(feedUrlString);
- Query myQuery = new Query(feedURL);
- myQuery.setMaxResults(100);
- myQuery.setFullTextQuery("photo");
- 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());
- }
-
-
-
- @Test
- public void testClientPut() throws Exception {
- String entryID = "photoid/5233468700029715874";
- String newBlogEntryTitle = "updatedTitle:dog";
- testService.clientPut(entryID, newBlogEntryTitle); //update the title
- Thread.sleep(Constants.SLEEP_INTERVAL);
- Entry updatedEntry = testService.clientGetEntry(entryID);
- Assert.assertEquals(newBlogEntryTitle, updatedEntry.getTitle().getPlainText());
- }
-
-
- @Test
- @Ignore("Not testing anything")
- public void testClientDelete() throws Exception {
-
- //Tested and it worked, but only once because we can not delete the same entry twice
- String entryID = "photoid/5233468698153151618";
-
- //Delete this entry
- //To test, change the entryID
- //testService.clientDelete(entryID);
- }
-
-}
diff --git a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Provider.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/Provider.java
deleted file mode 100644
index 21bff30256..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/StartLocalhostServlet.java b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/java/org/apache/tuscany/sca/binding/gdata/StartLocalhostServlet.java
deleted file mode 100644
index 2773398426..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/resources/log4j.properties b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/log4j.properties
deleted file mode 100644
index 33eaf11c1f..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/Consumer.composite b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/Consumer.composite
deleted file mode 100644
index a7941a2056..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleBlogger.composite b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleBlogger.composite
deleted file mode 100644
index 078873c44f..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleCalendar.composite b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleCalendar.composite
deleted file mode 100644
index 7e0c925482..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleContacts.composite b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleContacts.composite
deleted file mode 100644
index bc1ea7a8a9..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleWebAlbum.composite b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleWebAlbum.composite
deleted file mode 100644
index 99db48cc4e..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/ConsumerGoogleWebAlbum.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://picasaweb.google.com/data/feed/api/user/haibotuscany/album/flowers" serviceType="lh2" username="haibotuscany@gmail.com" password="gsocgsocgsoc"/>
- </reference>
- </component>
-
-</composite>
diff --git a/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/Provider.composite b/branches/sca-java-1.x/modules/binding-gdata-runtime/src/test/resources/org/apache/tuscany/sca/binding/gdata/Provider.composite
deleted file mode 100644
index a4cf00dc84..0000000000
--- a/branches/sca-java-1.x/modules/binding-gdata-runtime/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>