You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2007/10/28 09:08:11 UTC
svn commit: r589291 - in
/incubator/tuscany/java/sca/modules/implementation-widget/src:
main/java/org/apache/tuscany/sca/implementation/widget/
main/java/org/apache/tuscany/sca/implementation/widget/provider/
test/java/store/ test/resources/ test/resou...
Author: lresende
Date: Sun Oct 28 01:08:04 2007
New Revision: 589291
URL: http://svn.apache.org/viewvc?rev=589291&view=rev
Log:
Multiple fixes to make the store scenario to work end to end using sca web widget
Added:
incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java (with props)
Modified:
incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetProxyHelper.java
incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetReferenceServlet.java
incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java
incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/CatalogImpl.java
incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/content/store.html
incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/widget.composite
Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetProxyHelper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetProxyHelper.java?rev=589291&r1=589290&r2=589291&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetProxyHelper.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetProxyHelper.java Sun Oct 28 01:08:04 2007
@@ -28,10 +28,10 @@
static {
proxyFileRegistry.put("org.apache.tuscany.sca.binding.feed.impl.AtomBindingImpl", "binding-atom.js");
- proxyClient.put("org.apache.tuscany.sca.binding.feed.impl.AtomBindingImpl", "AtomBindingClient");
+ proxyClient.put("org.apache.tuscany.sca.binding.feed.impl.AtomBindingImpl", "AtomClient");
- //proxyRegistry.put("org.apache.tuscany.sca.binding.feed.impl.AtomBindingImpl", "binding-jsonrpc.js");
- //proxyClient.put("org.apache.tuscany.sca.binding.feed.impl.AtomBindingImpl", "JSONRPCBindingClient");
+ proxyFileRegistry.put("org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding", "binding-jsonrpc.js");
+ proxyClient.put("org.apache.tuscany.sca.binding.jsonrpc.JSONRPCBinding", "JSONRpcClient");
}
protected WidgetProxyHelper() {
Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetReferenceServlet.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetReferenceServlet.java?rev=589291&r1=589290&r2=589291&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetReferenceServlet.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/WidgetReferenceServlet.java Sun Oct 28 01:08:04 2007
@@ -102,19 +102,24 @@
protected void writeJavaScriptReferenceFunction (ServletOutputStream os) throws IOException {
+ os.println("var referenceMap = new Object();");
for(ComponentReference reference : component.getReferences()) {
String referenceName = reference.getName();
Binding binding = reference.getBindings().get(0);
if( binding != null) {
String proxyClient = WidgetProxyHelper.getJavaScriptProxyClient(binding.getClass().getName());
if(proxyClient != null) {
- os.println("proxy[" + referenceName + "]= new " + proxyClient + "(\"" + binding.getURI() + "\");");
+ if(proxyClient.equals("JSONRpcClient")) {
+ os.println("referenceMap." + referenceName + " = new " + proxyClient + "(\".." + binding.getURI() + "\")." + binding.getURI().substring(1) + ";");
+ } else {
+ os.println("referenceMap." + referenceName + " = new " + proxyClient + "(\".." + binding.getURI() + "\");");
+ }
}
}
}
os.println("function Reference(name) {");
- os.println(" return proxy[name];");
+ os.println(" return referenceMap[name];");
os.println("}");
}
Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java?rev=589291&r1=589290&r2=589291&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-widget/src/main/java/org/apache/tuscany/sca/implementation/widget/provider/WidgetImplementationProvider.java Sun Oct 28 01:08:04 2007
@@ -59,7 +59,7 @@
WidgetReferenceServlet widgetServlet = new WidgetReferenceServlet(component);
- String uri = component.getURI() + ".js";
+ String uri = component.getURI() + "/" + component.getURI() + ".js";
servletHost.addServletMapping(uri, widgetServlet);
}
Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/CatalogImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/CatalogImpl.java?rev=589291&r1=589290&r2=589291&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/CatalogImpl.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/CatalogImpl.java Sun Oct 28 01:08:04 2007
@@ -29,9 +29,9 @@
@Init
public void init() {
- catalog.add("Apple - US$ 2.99f");
- catalog.add("Orange - US$ 3.55f");
- catalog.add("Pear - US$ 1.55f");
+ catalog.add("Apple - US$ 2.99");
+ catalog.add("Orange - US$ 3.55");
+ catalog.add("Pear - US$ 1.55");
}
public String[] get() {
Added: incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java?rev=589291&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java (added)
+++ incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java Sun Oct 28 01:08:04 2007
@@ -0,0 +1,106 @@
+/*
+ * 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 store;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.UUID;
+
+import org.apache.tuscany.sca.binding.feed.collection.Collection;
+import org.apache.tuscany.sca.binding.feed.collection.NotFoundException;
+
+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;
+
+public class ShoppingCartImpl implements Collection {
+
+ private static Map<String, Entry> cart = new HashMap<String, Entry>();
+
+ public Feed getFeed() {
+ Feed feed = new Feed();
+ feed.setTitle("shopping cart");
+ Content subtitle = new Content();
+ subtitle.setValue("Total : " + getTotal());
+ feed.setSubtitle(subtitle);
+ feed.getEntries().addAll(cart.values());
+ return feed;
+ }
+
+ public Entry get(String id) throws NotFoundException {
+ return cart.get(id);
+ }
+
+ public Entry post(Entry entry) {
+ System.out.println("post" + entry);
+ String id = "cart-" + UUID.randomUUID().toString();
+ entry.setId(id);
+
+ Link link = new Link();
+ link.setRel("edit");
+ link.setHref(id);
+ entry.getOtherLinks().add(link);
+ link = new Link();
+ link.setRel("alternate");
+ link.setHref(id);
+ entry.getAlternateLinks().add(link);
+
+ entry.setCreated(new Date());
+
+ cart.put(id, entry);
+ return entry;
+ }
+
+ public Entry put(String id, Entry entry) throws NotFoundException {
+ entry.setUpdated(new Date());
+ cart.put(id, entry);
+ return entry;
+ }
+
+ public void delete(String id) throws NotFoundException {
+ if (id.equals(""))
+ cart.clear();
+ else
+ cart.remove(id);
+ }
+
+ private String getTotal() {
+ float total = 0;
+ String currencySymbol = "";
+ if (!cart.isEmpty()) {
+ String item = ((Content)cart.values().iterator().next().getContents().get(0)).getValue();
+ currencySymbol = item.substring(item.indexOf("-") + 2, item.indexOf("-") + 3);
+ }
+ for (Entry entry : cart.values()) {
+ String item = ((Content)entry.getContents().get(0)).getValue();
+
+ int index = item.length()-1;
+ char digit;
+ while ((digit = item.charAt(index)) == '.' || Character.isDigit(digit)) {
+ index--;
+ }
+
+ total += Float.valueOf(item.substring(index));
+ }
+ return currencySymbol + String.valueOf(total);
+ }
+}
Propchange: incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/implementation-widget/src/test/java/store/ShoppingCartImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/content/store.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/content/store.html?rev=589291&r1=589290&r2=589291&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/content/store.html (original)
+++ incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/content/store.html Sun Oct 28 01:08:04 2007
@@ -20,19 +20,16 @@
<head>
<title>Store</TITLE>
-<script type="text/javascript" src="binding-atom.js"></script>
-<script type="text/javascript" src="binding-jsonrpc.js"></script>
-
<!-- one js include per sca component -->
-<script type="text/javascript" src="storeWidgetComponent.js"/>
+<script type="text/javascript" src="storeWidgetComponent.js"></script>
<script language="JavaScript">
//@Reference
- var catalog = new Reference("catalog"); //(new JSONRpcClient("../Catalog")).Catalog;
+ var catalog = new Reference("Catalog");
+
//@Reference
- var shoppingCart = new Reference("shoppingCart"); //new AtomClient("../ShoppingCart");
-
+ var shoppingCart = new Reference("ShoppingCart");
function catalog_getResponse(items) {
var catalog = "";
Modified: incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/widget.composite
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/widget.composite?rev=589291&r1=589290&r2=589291&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/widget.composite (original)
+++ incubator/tuscany/java/sca/modules/implementation-widget/src/test/resources/widget.composite Sun Oct 28 01:08:04 2007
@@ -28,10 +28,10 @@
<service name="Widget">
<tuscany:binding.http/>
</service>
- <!-- reference name="catalog" target="Catalog">
+ <reference name="Catalog" target="Catalog">
<tuscany:binding.jsonrpc/>
- </reference-->
- <reference name="shoppingCart" target="ShoppingCart">
+ </reference>
+ <reference name="ShoppingCart" target="ShoppingCart">
<tuscany:binding.atom uri="/ShoppingCart"/>
</reference>
</component>
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org