diff options
author | dougsleite <dougsleite@13f79535-47bb-0310-9956-ffa450edef68> | 2008-08-30 22:44:34 +0000 |
---|---|---|
committer | dougsleite <dougsleite@13f79535-47bb-0310-9956-ffa450edef68> | 2008-08-30 22:44:34 +0000 |
commit | c9ca42a3aa4ac890695ec10e7746b9895fc2cf64 (patch) | |
tree | d2df4fb40e3256502d01b69bdbfa3082614cf4e0 /sandbox/dougsleite/binding-gdata/src/main | |
parent | 35fc0dd98538a896dc914bbacbd9b3877bb66cbe (diff) |
binding-gdata sample - under construction
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@690599 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/dougsleite/binding-gdata/src/main')
5 files changed, 280 insertions, 0 deletions
diff --git a/sandbox/dougsleite/binding-gdata/src/main/java/launch/Launch.java b/sandbox/dougsleite/binding-gdata/src/main/java/launch/Launch.java new file mode 100644 index 0000000000..b99a6bf59c --- /dev/null +++ b/sandbox/dougsleite/binding-gdata/src/main/java/launch/Launch.java @@ -0,0 +1,34 @@ +/* + * 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 launch; + +import org.apache.tuscany.sca.host.embedded.SCADomain; + +public class Launch { + public static void main(String[] args) throws Exception { + System.out.println("Starting ..."); + SCADomain scaDomain = SCADomain.newInstance("calendar.composite"); + System.out.println("calendar.composite ready!!!"); + System.in.read(); + System.out.println("Stopping ..."); + scaDomain.close(); + System.out.println(); + } +} diff --git a/sandbox/dougsleite/binding-gdata/src/main/java/services/Controler.java b/sandbox/dougsleite/binding-gdata/src/main/java/services/Controler.java new file mode 100644 index 0000000000..7adac14bc3 --- /dev/null +++ b/sandbox/dougsleite/binding-gdata/src/main/java/services/Controler.java @@ -0,0 +1,33 @@ +/* + * Copyright 2008 douglas. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * under the License. + */ +package services; + +import com.google.gdata.data.BaseEntry; +import java.util.List; +import org.osoa.sca.annotations.Remotable; + +/** + * + * @author douglas + */ +@Remotable +public interface Controler { + + public void createEvent(String name, String location, String startTime, String endTime, String description); + + public List<BaseEntry> getEntries(); +} diff --git a/sandbox/dougsleite/binding-gdata/src/main/java/services/ControlerImpl.java b/sandbox/dougsleite/binding-gdata/src/main/java/services/ControlerImpl.java new file mode 100644 index 0000000000..9024897edb --- /dev/null +++ b/sandbox/dougsleite/binding-gdata/src/main/java/services/ControlerImpl.java @@ -0,0 +1,91 @@ +/* + * 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 services; + +import com.google.gdata.data.BaseEntry; +import com.google.gdata.data.DateTime; +import com.google.gdata.data.Entry; +import com.google.gdata.data.PlainTextConstruct; +import com.google.gdata.data.calendar.CalendarEventEntry; +import com.google.gdata.data.extensions.When; +import com.google.gdata.data.extensions.Where; +import java.util.ArrayList; +import java.util.List; +import org.apache.tuscany.sca.binding.gdata.collection.Collection; +import org.osoa.sca.annotations.Reference; + +public class ControlerImpl implements Controler { + + @Reference(name = "resources", required = true) + public Collection resources; + + public ControlerImpl() { + } + + public void createEvent(String name, String location, String startTime, String endTime, String description) { + + CalendarEventEntry entry = new CalendarEventEntry(); + + //Set title + if (name != null) { + entry.setTitle(new PlainTextConstruct(name)); + } + + //Set location + if (location != null) { + Where where = new Where(); + where.setValueString(location); + + entry.addLocation(where); + } + + //Set startTime and endTime + //"2008-06-05T15:00:00-08:00" + if (startTime != null && endTime != null) { + DateTime start = DateTime.parseDateTime(startTime); + DateTime end = DateTime.parseDateTime(endTime); + When eventTimes = new When(); + eventTimes.setStartTime(start); + eventTimes.setEndTime(end); + + entry.addTime(eventTimes); + } + + //Set content + if (description != null) { + entry.setContent(new PlainTextConstruct(description)); + } + +// Person author = new Person("GSoC Student 2008", null, "gsocstudent2008@gmail.com"); +// entry.getAuthors().add(author); + + //resources.post(entry); + } + + public List<BaseEntry> getEntries() { + //return (List<BaseEntry>) resources.getFeed().getEntries(); + BaseEntry entry = new Entry(); + entry.setTitle(new PlainTextConstruct("Entry")); + entry.setContent(new PlainTextConstruct("Conteudo")); + + List<BaseEntry> list = new ArrayList<BaseEntry>(); + list.add(entry); + return list; + } +} diff --git a/sandbox/dougsleite/binding-gdata/src/main/resources/calendar.composite b/sandbox/dougsleite/binding-gdata/src/main/resources/calendar.composite new file mode 100644 index 0000000000..30610ede5f --- /dev/null +++ b/sandbox/dougsleite/binding-gdata/src/main/resources/calendar.composite @@ -0,0 +1,50 @@ +<?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:t="http://tuscany.apache.org/xmlns/sca/1.0" + targetNamespace="http://calendar" + name="calendar"> + + <component name="Calendar"> + <t:implementation.widget location="uiservices/calendar.html"/> + <service name="Widget"> + <t:binding.http uri="/calendar"/> + </service> + + <reference name="calendarRef" target="CalendarComponent/CalendarService"> + <t:binding.jsonrpc/> + </reference> + </component> + + <component name="CalendarComponent"> + <implementation.java class="services.ControlerImpl"/> + <service name="CalendarService"> + <interface.java interface="services.Controler"/> + <t:binding.jsonrpc/> + </service> + + <reference name="resources"> + <t:binding.gdata uri="http://www.google.com/calendar/feeds/gsocstudent2008@gmail.com/private/full" serviceType="cl" username="gsocstudent2008@gmail.com" password="gsoc2008"/> + </reference> + </component> + +</composite> + + diff --git a/sandbox/dougsleite/binding-gdata/src/main/resources/uiservices/calendar.html b/sandbox/dougsleite/binding-gdata/src/main/resources/uiservices/calendar.html new file mode 100644 index 0000000000..0d92ae5902 --- /dev/null +++ b/sandbox/dougsleite/binding-gdata/src/main/resources/uiservices/calendar.html @@ -0,0 +1,72 @@ +<!-- + * 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. +--> +<html> + <head> + <title>Calendar</title> + + <script type="text/javascript" src="calendar.js"></script> + + <script language="JavaScript"> + + //@Reference + var calendarRef = new Reference("calendarRef"); + + function calendar_getResponse(entries,exception) { + /*(if(exception){ + alert(exception.message); + return; + } + var calendar_string = ""; + + for (var i=0; i<entries.size(); i++) { + var entry = entries.get(i); + calendar_string += 'Title: ' + entry.getTitle().getPlainText() + ' <br>'; + } + + document.getElementById('catalog').innerHTML=calendar_string;*/ + } + + function save() { + } + + function init() { + + try { + calendarRef.getEntries(calendar_getResponse); + } + catch(e){ + alert(e); + } + } + + </script> + + </head> + + <body onload="init()"> + <h1>Calendar</h1> + <div id="store"> + <form name="calendarForm"> + <div id="calendarRef" ></div> + <br> + <input type="button" onClick="save()" value="Save"> + </form> + </div> + </body> +</html> |