You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ke...@apache.org on 2010/01/25 19:03:02 UTC

svn commit: r902898 - in /tuscany/sandbox/kgoodson/jagg/src: ./ main/ main/java/ main/java/launch/ main/java/services/ main/resources/

Author: kelvingoodson
Date: Mon Jan 25 18:03:01 2010
New Revision: 902898

URL: http://svn.apache.org/viewvc?rev=902898&view=rev
Log: (empty)

Added:
    tuscany/sandbox/kgoodson/jagg/src/
    tuscany/sandbox/kgoodson/jagg/src/main/
    tuscany/sandbox/kgoodson/jagg/src/main/java/
    tuscany/sandbox/kgoodson/jagg/src/main/java/launch/
    tuscany/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java   (with props)
    tuscany/sandbox/kgoodson/jagg/src/main/java/services/
    tuscany/sandbox/kgoodson/jagg/src/main/java/services/Item.java   (with props)
    tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java   (with props)
    tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java   (with props)
    tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java   (with props)
    tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java   (with props)
    tuscany/sandbox/kgoodson/jagg/src/main/resources/
    tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml   (with props)
    tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd   (with props)

Added: tuscany/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java?rev=902898&view=auto
==============================================================================
--- tuscany/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java (added)
+++ tuscany/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java Mon Jan 25 18:03:01 2010
@@ -0,0 +1,40 @@
+/*
+ * 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.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+
+public class Launch {
+    public static void main(String[] args) throws Exception {
+        System.out.println("Starting ...");
+        String contribution = ContributionLocationHelper.getContributionLocation(Launch.class);
+        Node node = NodeFactory.newInstance().createNode("plan.composite", new Contribution("test", contribution));
+        node.start();
+        System.out.println("plan.composite running");
+        System.in.read();
+        System.out.println("Stopping ...");
+        node.stop();
+        node.destroy();
+        System.out.println();
+    }
+}

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/kgoodson/jagg/src/main/java/services/Item.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/kgoodson/jagg/src/main/java/services/Item.java?rev=902898&view=auto
==============================================================================
--- tuscany/sandbox/kgoodson/jagg/src/main/java/services/Item.java (added)
+++ tuscany/sandbox/kgoodson/jagg/src/main/java/services/Item.java Mon Jan 25 18:03:01 2010
@@ -0,0 +1,54 @@
+/*
+ * 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;
+
+public class Item {
+    private String name;
+    private String price;
+    
+    public Item() {
+    }
+    
+    public Item(String name, String price) {
+        this.name = name;
+        this.price = price;
+    }
+    
+    public Item(String name) {
+		this(name,"0.00");
+	}
+
+	public String getName() {
+        return name;
+    }
+    
+    public void setName(String name) {
+        this.name = name;
+    }
+    
+    public String getPrice() {
+        return price;
+    }
+    
+    public void setPrice(String price) {
+        this.price = price;
+    }
+
+}

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/Item.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/Item.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java?rev=902898&view=auto
==============================================================================
--- tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java (added)
+++ tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java Mon Jan 25 18:03:01 2010
@@ -0,0 +1,8 @@
+package services;
+
+import java.util.Collection;
+
+public interface JiraQuery {
+	public Collection<String> getJiraIDs();
+	public String getTitle(String ID);
+}

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQuery.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java?rev=902898&view=auto
==============================================================================
--- tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java (added)
+++ tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java Mon Jan 25 18:03:01 2010
@@ -0,0 +1,74 @@
+package services;
+import java.io.IOException;
+import java.lang.String;
+import java.lang.reflect.Array;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+
+import com.sun.syndication.feed.synd.SyndEntry;
+import com.sun.syndication.feed.synd.SyndFeed;
+import com.sun.syndication.io.FeedException;
+import com.sun.syndication.io.SyndFeedInput;
+import com.sun.syndication.io.XmlReader;
+
+
+public class JiraQueryImpl implements JiraQuery {
+
+	private String rssfeed = null;
+	private HashMap entries = null;
+	
+	public JiraQueryImpl() {
+	
+	}
+
+	public JiraQueryImpl(String rssfeed) throws Exception {
+		this.rssfeed = rssfeed;
+
+	}
+	public Collection<String> getJiraIDs() {
+		try {
+			refreshFeedData();
+		} catch (IllegalArgumentException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (MalformedURLException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (FeedException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
+		return entries.keySet();
+	}
+	public String getTitle(String ID) {
+		return ((SyndEntry)entries.get(ID)).getTitle();
+	}
+	private void refreshFeedData() throws IllegalArgumentException, MalformedURLException, FeedException, IOException {
+
+		
+		SyndFeedInput input = new SyndFeedInput();
+	    SyndFeed feed = input.build(new XmlReader(new URL(rssfeed)));
+
+	    entries = new HashMap();
+	    
+	    for(Object entry: feed.getEntries()){
+	        SyndEntry syndEntry = (SyndEntry)entry;
+	        String id = jiraNumber(syndEntry.getTitle());
+	        entries.put(id, syndEntry);
+	    }
+
+	}
+
+	private String jiraNumber(String title) {
+		String[] id = title.split("[\\[\\]]");
+		return id[1];
+	}
+	
+}

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/JiraQueryImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java?rev=902898&view=auto
==============================================================================
--- tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java (added)
+++ tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java Mon Jan 25 18:03:01 2010
@@ -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 services;
+
+import org.oasisopen.sca.annotation.Remotable;
+
+import com.example.ipo.jaxb.MileStone;
+import com.example.ipo.jaxb.PlanDTO;
+import com.example.ipo.jaxb.WorkItem;
+
+@Remotable
+public interface PlanView {
+
+	MileStone[] get();
+    MileStone[] getMilestones();
+    WorkItem[] getMilestoneWorkitems(String msid);
+}
\ No newline at end of file

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java
URL: http://svn.apache.org/viewvc/tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java?rev=902898&view=auto
==============================================================================
--- tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java (added)
+++ tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java Mon Jan 25 18:03:01 2010
@@ -0,0 +1,159 @@
+/*
+ * 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 java.io.File;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBElement;
+import javax.xml.bind.Unmarshaller;
+
+import org.oasisopen.sca.annotation.Init;
+
+import com.example.ipo.jaxb.MileStone;
+import com.example.ipo.jaxb.Milestones;
+import com.example.ipo.jaxb.Plan;
+import com.example.ipo.jaxb.PlanDTO;
+import com.example.ipo.jaxb.WorkItem;
+import com.example.ipo.jaxb.WorkItems;
+
+public class PlanViewImpl implements PlanView {
+
+	private Plan _p = null;
+	private Map<String, MileStone> _milestoneMap = null;
+	private Map<String, WorkItem> _workItemMap = null;
+
+	@Init
+	public void init() {
+
+	}
+
+	private Plan getPlan() {
+		if (_p == null) {
+
+			try {
+				JAXBContext jaxbContext = JAXBContext
+						.newInstance("com.example.ipo.jaxb");
+				Unmarshaller m = jaxbContext.createUnmarshaller();
+				File inputFile = new File("src/main/resources/jiraSideBand.xml")
+						.getAbsoluteFile();
+
+				_p = ((JAXBElement<Plan>) m.unmarshal(inputFile)).getValue();
+			} catch (Exception e) {
+				e.printStackTrace();
+			} finally {
+			}
+
+		}
+		return _p;
+	}
+	
+	private Map<String , MileStone> getMileStoneMap()
+	{
+		if(_milestoneMap == null) {
+			_milestoneMap = new HashMap<String, MileStone>();
+			
+			Plan p = getPlan();
+			List<MileStone> ms = p.getMilestones().getMilestone();
+			for (Iterator<MileStone> iterator = ms.iterator(); iterator.hasNext();) {
+				MileStone mileStone = iterator.next();
+				_milestoneMap.put(mileStone.getID(), mileStone);
+			}
+		}
+		return _milestoneMap;
+	}
+
+	private Map<String, WorkItem> getWorkItemMap()
+	{ 
+		if(_workItemMap == null) {
+			_workItemMap = new HashMap<String, WorkItem>();
+			
+			Plan p = getPlan();
+			List<WorkItem> ms = p.getWorkitems().getWorkitem();
+			for (Iterator<WorkItem> iterator = ms.iterator(); iterator.hasNext();) {
+				WorkItem workItem = iterator.next();
+				_workItemMap.put(workItem.getID(), workItem);
+			}
+		}
+		return _workItemMap;
+	}
+
+
+
+	public MileStone[] getMilestones() {
+
+		List<MileStone> ms = null;
+		Plan p = getPlan();
+		ms = p.getMilestones().getMilestone();
+		MileStone[] ma = new MileStone[(ms.size())];
+		ms.toArray(ma);
+
+		return ma;
+	}
+
+	public WorkItem[] getMilestoneWorkitems(String msid) {
+		Map<String,MileStone> msmap = getMileStoneMap();
+		Map<String,WorkItem> wimap = getWorkItemMap();
+		MileStone ms = msmap.get(msid);
+		List<String> wirefs = ms.getWorkItem();
+
+		WorkItem[] retval = new WorkItem[wirefs.size()];
+		int i=0;
+		for (Iterator<String> iterator = wirefs.iterator(); iterator.hasNext();) {
+			String wiref = iterator.next();
+			retval[i] = wimap.get(wiref);
+			i++;
+		}
+		
+		return retval;
+	}
+
+	public MileStone[] get() {
+		Plan p = getPlan();
+		
+		
+		Milestones ms = p.getMilestones();
+		WorkItems ws = p.getWorkitems();
+		
+		MileStone[] plan = new MileStone[ms.getMilestone().size()];
+
+		
+		int i=0;
+		List<MileStone> lm = ms.getMilestone();
+
+		for (MileStone mileStone : lm) {
+			plan[i++] = mileStone;
+		}
+		
+//		List<WorkItem> lw = ws.getWorkitem();
+//		
+//		for (WorkItem workItem : lw) {
+//			plan[i++] = workItem;
+//		}
+		
+		
+		return plan;
+	}
+
+}
\ No newline at end of file

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml
URL: http://svn.apache.org/viewvc/tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml?rev=902898&view=auto
==============================================================================
--- tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml (added)
+++ tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml Mon Jan 25 18:03:01 2010
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jagg:plan xmlns:jagg="http://www.example.com/tracking" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.com/tracking JiraSideband.xsd ">
+  <milestones>
+  	<milestone ID="V8_M5I14a">
+  		<dueDate>2001-01-01</dueDate>
+  		<deliveredby>deliveredby</deliveredby>
+  		<note>note</note>
+  		<workItem>ENHANCE_ART_PROC_PERF</workItem>
+  		<workItem>CONTRIBS_IDENT_SPEC_VERS</workItem>
+  		<workItem>SUPPORT_REFS_ON_OTHERS</workItem>
+  	</milestone>
+   </milestones>
+  <workitems>
+  	<workitem>
+  		<ID>ENHANCE_ART_PROC_PERF</ID>
+  		<responsible>LR</responsible>
+  		<dueDate>2001-01-01</dueDate>
+  		<jira>TUSCANY-3395</jira>
+  		<status>status</status>
+  		<repository_vid>repository_vid</repository_vid>
+  		<note>note</note>
+  	</workitem>
+  	<workitem>
+  		<ID>CONTRIBS_IDENT_SPEC_VERS</ID>
+  		<responsible>LR</responsible>
+  		<dueDate>2001-01-01</dueDate>
+  		<jira>TUSCANY-3397</jira>
+  		<status>status</status>
+  		<repository_vid>repository_vid</repository_vid>
+  		<note>note</note>
+  	</workitem>
+  	<workitem>
+  		<ID>SUPPORT_REFS_ON_OTHERS</ID>
+  		<responsible>LR</responsible>
+  		<dueDate>2001-01-01</dueDate>
+  		<jira>TUSCANY-2850</jira>
+  		<status>status</status>
+  		<repository_vid>repository_vid</repository_vid>
+  		<note>note</note>
+  	</workitem>
+  </workitems>
+</jagg:plan>

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd
URL: http://svn.apache.org/viewvc/tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd?rev=902898&view=auto
==============================================================================
--- tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd (added)
+++ tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd Mon Jan 25 18:03:01 2010
@@ -0,0 +1,103 @@
+<?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.    
+ -->
+<xsd:schema targetNamespace="http://www.example.com/tracking" 
+                 xmlns:jagg="http://www.example.com/tracking" 
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+    <xsd:element name="plan" type="jagg:Plan"></xsd:element>
+    
+    <xsd:complexType name="Plan">
+    	<xsd:sequence>
+    		<xsd:element name="milestones" type="jagg:Milestones" maxOccurs="1" minOccurs="1"></xsd:element>
+    		<xsd:element name="workitems" type="jagg:WorkItems" maxOccurs="1" minOccurs="1"></xsd:element>
+    	</xsd:sequence>
+    </xsd:complexType>
+
+
+    <xsd:complexType name="WorkItem">
+        <xsd:annotation>
+        	<xsd:documentation>The milestone or deliverable name that we require this function for</xsd:documentation>
+        </xsd:annotation>
+        <xsd:sequence>
+        	<xsd:element name="ID" type="xsd:ID"></xsd:element>
+        	<xsd:element name="responsible" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
+        	<xsd:element name="dueDate" type="xsd:date"
+        		nillable="true" maxOccurs="1" minOccurs="0">
+        	</xsd:element>
+        	<xsd:element name="jira" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
+        	<xsd:element name="status" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
+
+        	<xsd:element name="repository_vid" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
+            <xsd:element name="note" type="xsd:string" maxOccurs="1" minOccurs="0">
+        	</xsd:element>
+        </xsd:sequence>
+    </xsd:complexType>
+    
+
+    <xsd:complexType name="MileStone">
+
+    	<xsd:sequence>
+    		<xsd:element name="dueDate" type="xsd:date"></xsd:element>
+
+    		<xsd:element name="deliveredby" type="xsd:string"
+    			maxOccurs="1" minOccurs="0">
+    			<xsd:annotation>
+    				<xsd:documentation>
+    					A tuscany source code repository branch name or
+    					repository version number
+    				</xsd:documentation>
+    			</xsd:annotation>
+    		</xsd:element>
+    		<xsd:element name="note" type="xsd:string" maxOccurs="1"
+    			minOccurs="0">
+    		</xsd:element>
+    		<xsd:element name="workItem" type="xsd:string" maxOccurs="unbounded" minOccurs="0"></xsd:element>
+    	</xsd:sequence>
+    	<xsd:attribute name="ID" type="xsd:ID"></xsd:attribute>
+    </xsd:complexType>
+
+    <xsd:complexType name="Milestones">
+    	<xsd:sequence>
+    		<xsd:element name="milestone" type="jagg:MileStone" maxOccurs="unbounded" minOccurs="0"></xsd:element>
+    	</xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="WorkItems">
+    	<xsd:sequence>
+    		<xsd:element name="workitem" type="jagg:WorkItem" maxOccurs="unbounded" minOccurs="0"></xsd:element>
+    	</xsd:sequence>
+    </xsd:complexType>
+
+    <xsd:complexType name="foo">
+    	<xsd:sequence>
+    		<xsd:element name="bar" type="xsd:string"></xsd:element>
+    		<xsd:element name="fred" type="xsd:string"></xsd:element>
+    	</xsd:sequence>
+    	<xsd:attribute name="a" type="xsd:string"></xsd:attribute>
+    	<xsd:attribute name="b" type="xsd:string"></xsd:attribute>
+    </xsd:complexType>
+
+    <xsd:complexType name="PlanDTO">
+    	<xsd:sequence>
+    		<xsd:element name="milestones" type="jagg:MileStone" maxOccurs="unbounded" minOccurs="0"></xsd:element>
+    		<xsd:element name="workitems" type="jagg:WorkItem" maxOccurs="unbounded" minOccurs="0"></xsd:element>
+    	</xsd:sequence>
+    </xsd:complexType>
+</xsd:schema>
\ No newline at end of file

Propchange: tuscany/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xsd
------------------------------------------------------------------------------
    svn:keywords = Rev Date