Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Ready, Set, Go - Getting started with Tuscany

This article will show you how to download a Tuscany distribution, add the distribution as a user library in Eclipse, create the Store sample as a Java project, and then run the Store and use it from a web browser.

Info

Although this guide show some images based on the Java SCA 1.3.1 2 release, you should be able to use latest Java SCA release while going to the necessary steps for this guide.

...

The first thing you do is to create a file system folder on you disk into which you will download the TUSCANY distribution.

...

Code Block
<html>
<head>
<title>Store</title>

<script type="text/javascript" src="store.js"></script>

<script language="JavaScript">

	//@Reference
	var catalog = new Reference("catalog");
	
	//@Reference
	var shoppingCart = new Reference("shoppingCart");

	//@Reference
	var shoppingTotal = new Reference("shoppingTotal");
	
	var catalogItems;

	function catalog_getResponse(items) {
		var catalog = "";
		for (var i=0; i<items.length; i++) {
			var item = items[i].name + ' - ' + items[i].price;
			catalog += '<input name="items" type="checkbox" value="' + 
						item + '">' + item + ' <br>';
		}
		document.getElementById('catalog').innerHTML=catalog;
		catalogItems = items;
	}
	
	function shoppingCart_getResponse(feed) {
		if (feed != null) {
			var entries = feed.getElementsByTagName("entry");              
			var list = "";
			for (var i=0; i<entries.length; i++) {
				var content = entries[i].getElementsByTagName("content")[0];
				var name = content.getElementsByTagName("name")[0].firstChild.nodeValue;
				var price = content.getElementsByTagName("price")[0].firstChild.nodeValue;
				list += name + ' - ' + price + ' <br>';
			}
			document.getElementById("shoppingCart").innerHTML = list;

			if (entries.length != 0) {			
				shoppingTotal.getTotal(shoppingTotal_getTotalResponse);
			}
		}
	}
	
	function shoppingTotal_getTotalResponse(total) {
		document.getElementById('total').innerHTML = total;
	}
	
	function shoppingCart_postResponse(entry) {
		shoppingCart.get("", shoppingCart_getResponse);
	}				

	function addToCart() {
		var items  = document.catalogForm.items;
		var j = 0;
		for (var i=0; i<items.length; i++)
			if (items[i].checked) {
				var entry = '<entry xmlns="http://www.w3.org/2005/Atom"><title>item</title><content type="text/xml">' +
                	'<Item xmlns="http://services/">' +
                	'<name xmlns="">' + catalogItems[i].name + '</name>' + '<price xmlns="">' + catalogItems[i].price + '</price>' +
                 	'</Item>' + '</content></entry>';
				shoppingCart.post(entry, shoppingCart_postResponse);
				items[i].checked = false;
			}
	}
	function checkoutCart() {
		document.getElementById('store').innerHTML='<h2>' +
				'Thanks for Shopping With Us!</h2>'+
				'<h2>Your Order</h2>'+
				'<form name="orderForm">'+
					document.getElementById('shoppingCart').innerHTML+
					'<br>'+
					document.getElementById('total').innerHTML+
					'<br>'+

					'<br>'+
					'<input type="submit" value="Continue Shopping">'+ 
				'</form>';
		shoppingCart.del("", null);
	}
	function deleteCart() {
		shoppingCart.del("", null);
		document.getElementById('shoppingCart').innerHTML = "";
		document.getElementById('total').innerHTML = "";	
	}	

	function init() {
		catalog.get(catalog_getResponse);
		shoppingCart.get("", shoppingCart_getResponse);
	}
	
</script>

</head>

<body onload="init()">
<h1>Store</h1>
  <div id="store">
   	<h2>Catalog</h2>
   	<form name="catalogForm">
		<div id="catalog" ></div>
		<br>
		<input type="button" onClick="addToCart()"  value="Add to Cart">
   	</form>
 
 	<br>
  
   	<h2>Your Shopping Cart</h2>
   	<form name="shoppingCartForm">
		<div id="shoppingCart"></div>
		<br>
		<div id="total"></div>
		<br>		
		<input type="button" onClick="checkoutCart()" value="Checkout"> 
		<input type="button" onClick="deleteCart()" value="Empty">     
	   	<a href="../ShoppingCart/Cart/">(feed)</a>
	</form>    
  </div>
</body>
</html>

...

And then you can Checkout to complete your order.

Explore the Samples from the Tuscany Distribution

The sample folder of the Tuscany distribution provides a rich set of samples ready for you to explore.

Image Removed
 
In Eclipse create a New Java Project, specify the project name, select Create project from
existing source, and specify the folder that contains the sample source.

Image Removed
 
Use Next to get to the next page in the New Java Project dialog. There go to the Libraries tab, use
the Add Library... pushbutton to add the JUnit library and the user library TUSCANY.

Image Removed
 
Finish the New Java Project dialog. You now have the sample project available in the Eclipse workbench.

Image Removed
 
For the calculator sample that we've chosen go to its CalculatorClient class and select Run As ->
Java Application. You will see the following output in the console.

 Image RemovedCongratulations, you have created an accessible, flexible, reusable Store application using Tuscany SCA technolog.