From b771a05508db61cb1748d2fed0eb92daf173ff92 Mon Sep 17 00:00:00 2001 From: rsivaram Date: Thu, 16 Oct 2008 11:51:49 +0000 Subject: Copy modules for event prototype git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@705212 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/tuscany/sca/binding/feed/Consumer.java | 35 ++++++ .../tuscany/sca/binding/feed/CustomerClient.java | 25 ++++ .../sca/binding/feed/CustomerClientImpl.java | 97 +++++++++++++++ .../sca/binding/feed/CustomerCollectionImpl.java | 136 +++++++++++++++++++++ .../apache/tuscany/sca/binding/feed/Provider.java | 41 +++++++ 5 files changed, 334 insertions(+) create mode 100644 sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/Consumer.java create mode 100644 sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerClient.java create mode 100644 sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerClientImpl.java create mode 100644 sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerCollectionImpl.java create mode 100644 sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/Provider.java (limited to 'sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca') diff --git a/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/Consumer.java b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/Consumer.java new file mode 100644 index 0000000000..4a33637121 --- /dev/null +++ b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/Consumer.java @@ -0,0 +1,35 @@ +/* + * 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.feed; + +import org.apache.tuscany.sca.host.embedded.SCADomain; + +public class Consumer { + + public static void main(String[] args) throws Exception { + + SCADomain scaDomain = SCADomain.newInstance("org/apache/tuscany/sca/binding/feed/Consumer.composite"); + + CustomerClient testService = scaDomain.getService(CustomerClient.class, "CustomerClient"); + testService.testCustomerCollection(); + + scaDomain.close(); + } +} diff --git a/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerClient.java b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerClient.java new file mode 100644 index 0000000000..b7416011ba --- /dev/null +++ b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerClient.java @@ -0,0 +1,25 @@ +/* + * 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.feed; + +public interface CustomerClient { + + void testCustomerCollection() throws Exception; +} diff --git a/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerClientImpl.java b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerClientImpl.java new file mode 100644 index 0000000000..884e954036 --- /dev/null +++ b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerClientImpl.java @@ -0,0 +1,97 @@ +/* + * 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.feed; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.tuscany.sca.binding.feed.collection.Collection; +import org.osoa.sca.annotations.Reference; + +import com.sun.syndication.feed.atom.Content; +import com.sun.syndication.feed.atom.Entry; +import com.sun.syndication.feed.atom.Feed; + +public class CustomerClientImpl implements CustomerClient { + + @Reference + public Collection resourceCollection; + + public void testCustomerCollection() throws Exception { + + Entry newEntry = newEntry("Sponge Bob"); + System.out.println(">>> post entry=" + newEntry.getTitle()); + newEntry = resourceCollection.post(newEntry); + System.out.println("<<< post id=" + newEntry.getId() + " entry=" + newEntry.getTitle()); + + newEntry = newEntry("Jane Bond"); + System.out.println(">>> post entry=" + newEntry.getTitle()); + newEntry = resourceCollection.post(newEntry); + System.out.println("<<< post id=" + newEntry.getId() + " entry=" + newEntry.getTitle()); + + System.out.println(">>> get id=" + newEntry.getId()); + Entry entry = resourceCollection.get(newEntry.getId()); + System.out.println("<<< get id=" + entry.getId() + " entry=" + entry.getTitle()); + + System.out.println(">>> put id=" + newEntry.getId() + " entry=" + entry.getTitle()); + resourceCollection.put(entry.getId(), updateEntry(entry, "James Bond")); + System.out.println("<<< put id=" + entry.getId() + " entry=" + entry.getTitle()); + + System.out.println(">>> delete id=" + entry.getId()); + resourceCollection.delete(entry.getId()); + System.out.println("<<< delete id=" + entry.getId()); + + System.out.println(">>> get collection"); + Feed feed = resourceCollection.getFeed(); + System.out.println("<<< get collection"); + for (Object o : feed.getEntries()) { + Entry e = (Entry)o; + System.out.println("id = " + e.getId() + " entry = " + e.getTitle()); + } + } + + private Entry newEntry(String value) { + + Entry entry = new Entry(); + entry.setTitle("customer " + value); + + Content content = new Content(); + content.setValue(value); + content.setType(Content.TEXT); + List list = new ArrayList(); + list.add(content); + entry.setContents(list); + + return entry; + } + + private Entry updateEntry(Entry entry, String value) { + + entry.setTitle("customer " + value); + Content content = new Content(); + content.setValue(value); + content.setType(Content.TEXT); + List list = new ArrayList(); + list.add(content); + entry.setContents(list); + + return entry; + } +} diff --git a/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerCollectionImpl.java b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerCollectionImpl.java new file mode 100644 index 0000000000..ca4a5a1946 --- /dev/null +++ b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/CustomerCollectionImpl.java @@ -0,0 +1,136 @@ +/* + * 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.feed; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import org.apache.tuscany.sca.binding.feed.collection.Collection; +import org.osoa.sca.annotations.Scope; + +import com.sun.syndication.feed.atom.Content; +import com.sun.syndication.feed.atom.Entry; +import com.sun.syndication.feed.atom.Feed; +import com.sun.syndication.feed.atom.Link; + +@Scope("COMPOSITE") +public class CustomerCollectionImpl implements Collection { + + private Map entries = new HashMap(); + + public CustomerCollectionImpl() { + + for (int i = 0; i < 4; i++) { + String id = "urn:uuid:customer-" + UUID.randomUUID().toString(); + + Entry entry = new Entry(); + entry.setTitle("customer " + "Jane Doe_" + String.valueOf(i)); + entry.setId(id); + + Content content = new Content(); + content.setValue("Jane Doe_" + String.valueOf(i)); + content.setType(Content.TEXT); + entry.setContents(Collections.singletonList(content)); + + List links = new ArrayList(); + Link link = new Link(); + link.setRel("edit"); + link.setHref("" + id); + links.add(link); + entry.setOtherLinks(links); + + links = new ArrayList(); + link = new Link(); + link.setRel("alternate"); + link.setHref("" + id); + links.add(link); + entry.setAlternateLinks(links); + + entry.setCreated(new Date()); + + 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); + + List links = new ArrayList(); + Link link = new Link(); + link.setRel("edit"); + link.setHref("" + id); + links.add(link); + entry.setOtherLinks(links); + + links = new ArrayList(); + link = new Link(); + link.setRel("alternate"); + link.setHref("" + id); + links.add(link); + entry.setAlternateLinks(links); + + entry.setCreated(new Date()); + + 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()); + + entry.setUpdated(new Date()); + entries.put(id, entry); + } + + public void delete(String id) { + System.out.println(">>> ResourceCollectionImpl.delete id=" + id); + entries.remove(id); + } + + @SuppressWarnings("unchecked") + public Feed getFeed() { + System.out.println(">>> ResourceCollectionImpl.get collection"); + + Feed feed = new Feed(); + feed.setTitle("customers"); + Content subtitle = new Content(); + subtitle.setValue("This is a sample feed"); + feed.setSubtitle(subtitle); + feed.getEntries().addAll(entries.values()); + return feed; + } + +} diff --git a/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/Provider.java b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/Provider.java new file mode 100644 index 0000000000..a9ddc1a2c8 --- /dev/null +++ b/sandbox/event/modules/binding-feed/src/test/java/org/apache/tuscany/sca/binding/feed/Provider.java @@ -0,0 +1,41 @@ +/* + * 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.feed; + +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/feed/Provider.composite"); + System.out.println("Provider.composite ready..."); + + try { + System.in.read(); + } catch (IOException e) { + e.printStackTrace(); + } + + scaDomain.close(); + } +} -- cgit v1.2.3