diff options
author | kelvingoodson <kelvingoodson@13f79535-47bb-0310-9956-ffa450edef68> | 2010-03-16 10:38:43 +0000 |
---|---|---|
committer | kelvingoodson <kelvingoodson@13f79535-47bb-0310-9956-ffa450edef68> | 2010-03-16 10:38:43 +0000 |
commit | 465a5510b9f4c7232d8322bf171b94b50057583d (patch) | |
tree | 471fbb8b5c1100f9239eacfdbcbc583bd696b525 /sandbox/kgoodson | |
parent | 64ae409b1830310a1a44bcf305cab40c9061f3e6 (diff) |
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@923673 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/kgoodson')
7 files changed, 13 insertions, 396 deletions
diff --git a/sandbox/kgoodson/jagg/pom.xml b/sandbox/kgoodson/jagg/pom.xml index 55ec04f610..c645fdc4fd 100644 --- a/sandbox/kgoodson/jagg/pom.xml +++ b/sandbox/kgoodson/jagg/pom.xml @@ -28,114 +28,17 @@ <artifactId>sample-jagg</artifactId> <name>Apache Tuscany SCA Sample JIRA Aggregator</name> - <repositories> - - <repository> - <id>apache.incubator</id> - <url>http://people.apache.org/repo/m2-incubating-repository</url> - </repository> - </repositories> - - <build> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>jaxb2-maven-plugin</artifactId> - <version>1.3</version> - </plugin> - </plugins> - </pluginManagement> - <plugins> - - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <executions> - <execution> - <id>copy</id> - <phase>generate-sources</phase> - <goals> - <goal>copy</goal> - </goals> - <configuration> - <artifactItems> - <artifactItem> - <groupId>javax.xml.bind</groupId> - <artifactId>jaxb-api</artifactId> - <version>2.1</version> - <type>jar</type> - </artifactItem> - </artifactItems> - <outputDirectory>${project.build.directory}/endorsed</outputDirectory> - <overWriteReleases>false</overWriteReleases> - <overWriteSnapshots>true</overWriteSnapshots> - </configuration> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <configuration> - <compilerArgument>-Djava.endorsed.dirs=target/endorsed</compilerArgument> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>build-helper-maven-plugin</artifactId> - <version>1.0</version> - <executions> - - <execution> - <id>add-source</id> - <phase>generate-sources</phase> - <goals> - <goal>add-source</goal> - </goals> - <configuration> - <sources> - <source>target/jaxb-source</source> - </sources> - </configuration> - </execution> - </executions> - </plugin> - - <plugin> - <groupId>org.jvnet.jaxb2.maven2</groupId> - <artifactId>maven-jaxb2-plugin</artifactId> - <version>0.7.1</version> - <executions> - <execution> - <id>generate-jaxb</id> - <phase>generate-sources</phase> - <goals> - <goal>generate</goal> - </goals> - </execution> - </executions> - <configuration> - <generatePackage>com.example.ipo.jaxb</generatePackage> - <generateDirectory>${project.build.directory}/jaxb-source</generateDirectory> - <schemaDirectory>${basedir}/src/main/resources</schemaDirectory> - <schemaIncludes> - <!-- <include>ipo.xsd</include>--> - <include>JiraSideband.xsd</include> - <include>JiraRSS.xsd</include> - </schemaIncludes> - </configuration> - </plugin> - - </plugins> - <finalName>${artifactId}</finalName> - </build> <dependencies> <dependency> <groupId>org.apache.tuscany.sca</groupId> + <artifactId>jagg-logic</artifactId> + <version>2.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> <artifactId>tuscany-node-impl</artifactId> <version>2.0-SNAPSHOT</version> </dependency> diff --git a/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java b/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java index dce7431349..731515253b 100644 --- a/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java +++ b/sandbox/kgoodson/jagg/src/main/java/launch/Launch.java @@ -34,7 +34,6 @@ public class Launch { System.in.read(); System.out.println("Stopping ..."); node.stop(); - node.destroy(); System.out.println(); } } diff --git a/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java b/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java deleted file mode 100644 index ffb68270da..0000000000 --- a/sandbox/kgoodson/jagg/src/main/java/services/PlanView.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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.Plan; - - - - - -@Remotable -public interface PlanView { - - Plan get(); - Plan getLite(); // don't go off to issue site - use cached properties - void postNewWorkItem(String msChoice, String jira); - void postNewMilestone(String newMSName); - -}
\ No newline at end of file diff --git a/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java b/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java deleted file mode 100644 index fad6f68b63..0000000000 --- a/sandbox/kgoodson/jagg/src/main/java/services/PlanViewImpl.java +++ /dev/null @@ -1,252 +0,0 @@ -/* - * 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.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.List; - -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBElement; -import javax.xml.bind.Marshaller; -import javax.xml.bind.Unmarshaller; - -import org.oasisopen.sca.annotation.Init; -import org.oasisopen.sca.annotation.Property; - -import com.example.ipo.jaxb.Item; -import com.example.ipo.jaxb.JiraData; -import com.example.ipo.jaxb.Milestone; -import com.example.ipo.jaxb.Plan; -import com.example.ipo.jaxb.RSS; -import com.example.ipo.jaxb.WorkItem; - -public class PlanViewImpl implements PlanView { - - static String rssPrefix = "http://issues.apache.org/jira/si/jira.issueviews:issue-xml/"; - @Property - public String planFile = "src/main/resources/jiraSideBand.xml"; - - @Init - public void init() { - } - - private Plan getPlan() { - Plan p = null; - try { - p = readPlan(); - augmentPlan(p); - writePlan(p); - } catch (Exception e) { - e.printStackTrace(); - } - return p; - } - - - - private void augmentPlan(Plan plan) { - for(Milestone m : plan.getMilestone()) { - for (WorkItem wi: m.getWorkItem()) { - augmentWorkItem(wi); - - } - } - } - - private void augmentWorkItem(WorkItem wi) { - String jira = wi.getJira(); - if(jira != null) { - JiraData jd = new JiraData(); - wi.setJiraData(jd); - jd.setID(jira); - - try { - JAXBContext jaxbContext = JAXBContext - .newInstance("com.example.ipo.jaxb"); - Unmarshaller m2 = jaxbContext.createUnmarshaller(); - InputStream is = null; - RSS jfeed = null; - try{ - URL url = new URL("http://issues.apache.org/jira/si/jira.issueviews:issue-xml/"+jira+"/"+jira+".xml"); - is = url.openStream(); - jfeed = ((JAXBElement<RSS>) m2.unmarshal(is)).getValue(); - } - catch (FileNotFoundException e) { - String note = wi.getNote(); - note += ": attempt to reference non-existent JIRA " + jira; - wi.setNote(note); - wi.setJira(null); - wi.setJiraData(null); - } - finally { - if(is != null) is.close(); - } - - if(jfeed != null) { - Item i = jfeed.getChannel().getItem(); - List<JAXBElement<?>> c = i.getContent(); - // TODO see if there's a better way to get this data out - for (JAXBElement<?> element : c) { - if("title".equals(element.getName().getLocalPart())) { - String jtitle = (String)element.getValue(); - jd.setTitle(jtitle.substring(jtitle.indexOf(']')+1, jtitle.length())); - } - else if("status".equals(element.getName().getLocalPart())){ - jd.setStatus((String)element.getValue()); - } - else if("assignee".equals(element.getName().getLocalPart())) { - jd.setAssignedTo((String)element.getValue()); - } - } - } - } catch (Exception e) { - e.printStackTrace(); - } finally { - - } - } - } - - public Plan get() { - Plan p = getPlan(); - return p; - } - - public Plan getLite() { - Plan p = readPlan(); - return p; - } - - private Milestone getMS(Plan p, String id) { - - Milestone m = null; - for(Milestone mi : p.getMilestone()) { - if(id.equals(mi.getID())) { - m = mi; - break; - } - } - return m; - } - - public void postNewWorkItem(String msid, String jira) { - - Plan p = readPlan(); - Milestone m = getMS(p,msid); - WorkItem wi = new WorkItem(); - wi.setJira(jira); - augmentWorkItem(wi); - m.getWorkItem().add(wi); - writePlan(p); - } - - public void postNewMilestone(String msid) { - Plan p = readPlan(); - if(getMS(p, msid) == null) { - List<Milestone> mis = p.getMilestone(); - Milestone newm = new Milestone(); - newm.setID(msid); - mis.add(newm); - writePlan(p); - } - } - - - private void writePlan(Plan p) - { - FileOutputStream fos = null; - String dbPath = null; - File existingFile = null; - File newFile= null; - String backupPath = null; - - try { - JAXBContext jaxbContext = JAXBContext - .newInstance("com.example.ipo.jaxb"); - Marshaller m = jaxbContext.createMarshaller(); - m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); - - existingFile = new File(planFile).getAbsoluteFile(); - dbPath = existingFile.getAbsolutePath(); - - - String tempPath = dbPath.substring(0,dbPath.indexOf(".xml"))+".tmp.xml"; - backupPath = dbPath.substring(0,dbPath.indexOf(".xml")); - DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); - String timestamp = df.format(Calendar.getInstance().getTime()); - backupPath+= timestamp; - backupPath+=".xml"; - - newFile = new File(tempPath).getAbsoluteFile(); - fos = new FileOutputStream(newFile); - - - m.marshal(p, fos); - } catch (Exception e) { - e.printStackTrace(); - } finally { - - } - - - if(fos!=null) - try { - fos.close(); - - new File(dbPath).renameTo(new File(backupPath)); - newFile.renameTo(new File(dbPath)); - - - } catch (IOException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - - private Plan readPlan() - { - Plan p = null; - try { - JAXBContext jaxbContext = JAXBContext - .newInstance("com.example.ipo.jaxb"); - Unmarshaller m = jaxbContext.createUnmarshaller(); - - File inputFile = new File(planFile).getAbsoluteFile(); - if(!inputFile.exists()){ // start afresh - Plan newPlan = new Plan(); - writePlan(newPlan); - inputFile = new File(planFile).getAbsoluteFile(); - } - - p = (Plan)m.unmarshal(inputFile); - } catch(Exception e) { - throw new IllegalStateException("Failed to read plan file",e); - } - return p; - } -}
\ No newline at end of file diff --git a/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml index 2d60a3b83a..e2f8401d8f 100644 --- a/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml +++ b/sandbox/kgoodson/jagg/src/main/resources/JiraSideband.xml @@ -62,4 +62,5 @@ </workItem> </milestone> <milestone ID="V8_M5I15a"/> + <milestone ID="MMX"/> </ns2:plan> diff --git a/sandbox/kgoodson/jagg/src/main/resources/plan.composite b/sandbox/kgoodson/jagg/src/main/resources/plan.composite index 041f6f46cb..7801f07093 100644 --- a/sandbox/kgoodson/jagg/src/main/resources/plan.composite +++ b/sandbox/kgoodson/jagg/src/main/resources/plan.composite @@ -17,7 +17,7 @@ * specific language governing permissions and limitations * under the License. --> -<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903" +<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912" xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" targetNamespace="http://jagg" name="jagg"> @@ -25,7 +25,7 @@ <component name="planApp"> <tuscany:implementation.widget location="uiservices/plan.html"/> <service name="Widget"> - <tuscany:binding.http uri="/plan"/> + <tuscany:binding.http uri="/"/> </service> <reference name="plan" target="Plan"/> </component> @@ -34,7 +34,7 @@ <implementation.java class="services.PlanViewImpl"/> <property name="planFile">src/main/resources/jiraSideBand.xml</property> <service name="PlanView"> - <tuscany:binding.jsonrpc/> + <tuscany:binding.jsonrpc uri="/Plan"/> </service> </component> diff --git a/sandbox/kgoodson/jagg/src/main/resources/uiservices/plan.html b/sandbox/kgoodson/jagg/src/main/resources/uiservices/plan.html index fbfb187932..38f5c0b273 100644 --- a/sandbox/kgoodson/jagg/src/main/resources/uiservices/plan.html +++ b/sandbox/kgoodson/jagg/src/main/resources/uiservices/plan.html @@ -129,6 +129,7 @@ <h1>Plan</h1> + <div id="wilist"> <table> <tr><td><div id="milestones"></div></td></tr> <tr><td> @@ -147,5 +148,8 @@ </form> </td></tr> </table> + </div> + <div id="wiprops"> + </div> </body> </html>
\ No newline at end of file |