You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by js...@apache.org on 2008/02/24 18:27:32 UTC
svn commit: r630640 - in
/incubator/tuscany/java/sca/modules/workspace-admin: ./
src/main/java/org/apache/tuscany/sca/workspace/admin/
src/main/java/org/apache/tuscany/sca/workspace/admin/impl/
src/main/java/org/apache/tuscany/sca/workspace/admin/launc...
Author: jsdelfino
Date: Sun Feb 24 09:27:27 2008
New Revision: 630640
URL: http://svn.apache.org/viewvc?rev=630640&view=rev
Log:
Added support for collections of composites and nodes.
Added:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/CompositeCollection.java (with props)
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java (with props)
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/AdminLauncher.java
- copied, changed from r630061, incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/WorkspaceAdminLauncher.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite
- copied, changed from r630061, incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/WorkspaceAdmin.composite
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html (with props)
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html (with props)
Removed:
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/WorkspaceAdminLauncher.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/WorkspaceAdmin.composite
Modified:
incubator/tuscany/java/sca/modules/workspace-admin/ (props changed)
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/ContributionFileCollection.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileCollectionImpl.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sun Feb 24 09:27:27 2008
@@ -15,3 +15,6 @@
.wtpmodules
contributions
workspace.xml
+domain.composite
+nodes.composite
+cloud.composite
Added: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/CompositeCollection.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/CompositeCollection.java?rev=630640&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/CompositeCollection.java (added)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/CompositeCollection.java Sun Feb 24 09:27:27 2008
@@ -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 org.apache.tuscany.sca.workspace.admin;
+
+import org.apache.tuscany.sca.implementation.data.collection.Collection;
+import org.apache.tuscany.sca.implementation.data.collection.Item;
+import org.osoa.sca.annotations.Remotable;
+
+/**
+ * The composite collection service interface.
+ *
+ * @version $Rev$ $Date$
+ */
+@Remotable
+public interface CompositeCollection extends Collection<String, Item>{
+
+}
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/CompositeCollection.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/CompositeCollection.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/ContributionFileCollection.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/ContributionFileCollection.java?rev=630640&r1=630639&r2=630640&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/ContributionFileCollection.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/ContributionFileCollection.java Sun Feb 24 09:27:27 2008
@@ -24,7 +24,7 @@
import org.osoa.sca.annotations.Remotable;
/**
- * The contribution store service interface.
+ * The contribution file store service interface.
*
* @version $Rev$ $Date$
*/
Added: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java?rev=630640&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java (added)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java Sun Feb 24 09:27:27 2008
@@ -0,0 +1,264 @@
+/*
+ * 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 org.apache.tuscany.sca.workspace.admin.impl;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.stream.XMLInputFactory;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.tuscany.sca.assembly.AssemblyFactory;
+import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.DefaultAssemblyFactory;
+import org.apache.tuscany.sca.assembly.xml.CompositeProcessor;
+import org.apache.tuscany.sca.assembly.xml.Constants;
+import org.apache.tuscany.sca.contribution.ContributionFactory;
+import org.apache.tuscany.sca.contribution.DefaultContributionFactory;
+import org.apache.tuscany.sca.contribution.service.ContributionReadException;
+import org.apache.tuscany.sca.contribution.service.ContributionWriteException;
+import org.apache.tuscany.sca.implementation.data.collection.Entry;
+import org.apache.tuscany.sca.implementation.data.collection.Item;
+import org.apache.tuscany.sca.implementation.data.collection.NotFoundException;
+import org.apache.tuscany.sca.interfacedef.InterfaceContractMapper;
+import org.apache.tuscany.sca.policy.DefaultPolicyFactory;
+import org.apache.tuscany.sca.policy.PolicyFactory;
+import org.apache.tuscany.sca.workspace.admin.CompositeCollection;
+import org.apache.xml.serialize.OutputFormat;
+import org.apache.xml.serialize.XMLSerializer;
+import org.osoa.sca.ServiceRuntimeException;
+import org.osoa.sca.annotations.Init;
+import org.osoa.sca.annotations.Property;
+import org.osoa.sca.annotations.Scope;
+import org.w3c.dom.Document;
+
+/**
+ * Implementation of a composite collection service.
+ *
+ * @version $Rev$ $Date$
+ */
+@Scope("COMPOSITE")
+public class CompositeCollectionImpl implements CompositeCollection {
+
+ @Property
+ public String compositeCollectionName;
+
+ private AssemblyFactory assemblyFactory;
+ private ContributionFactory contributionFactory;
+ private PolicyFactory policyFactory;
+ private InterfaceContractMapper contractMapper;
+ private Composite compositeCollection;
+ private CompositeProcessor compositeProcessor;
+ private XMLOutputFactory outputFactory;
+ private DocumentBuilder documentBuilder;
+
+ /**
+ * Initialize the workspace administration component.
+ */
+ @Init
+ public void init() throws IOException, ContributionReadException, XMLStreamException, ParserConfigurationException {
+
+ // Create factories
+ contributionFactory = new DefaultContributionFactory();
+ assemblyFactory = new DefaultAssemblyFactory();
+ policyFactory = new DefaultPolicyFactory();
+ outputFactory = XMLOutputFactory.newInstance();
+ outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE);
+ documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
+
+ // Read domain.composite
+ compositeProcessor = new CompositeProcessor(contributionFactory, assemblyFactory, policyFactory, contractMapper, null);
+ File file = new File(compositeCollectionName + ".composite");
+ if (file.exists()) {
+ XMLInputFactory inputFactory = XMLInputFactory.newInstance();
+ FileInputStream is = new FileInputStream(file);
+ XMLStreamReader reader = inputFactory.createXMLStreamReader(is);
+ compositeCollection = compositeProcessor.read(reader);
+ } else {
+ compositeCollection = assemblyFactory.createComposite();
+ compositeCollection.setName(new QName(Constants.SCA10_TUSCANY_NS, compositeCollectionName));
+ }
+ }
+
+ public Entry<String, Item>[] getAll() {
+ // Return all the composites in the domain composite
+ List<Entry<String, Item>> entries = new ArrayList<Entry<String, Item>>();
+ for (Composite composite: compositeCollection.getIncludes()) {
+ Entry<String, Item> entry = new Entry<String, Item>();
+ entry.setKey(name(composite.getName()));
+ Item item = new Item();
+ item.setTitle(name(composite.getName()));
+ item.setLink(composite.getURI());
+ entry.setData(item);
+ entries.add(entry);
+ }
+ return entries.toArray(new Entry[entries.size()]);
+ }
+
+ public Item get(String key) throws NotFoundException {
+
+ // Returns the composite with the given name key
+ for (Composite composite: compositeCollection.getIncludes()) {
+ if (key.equals(name(composite.getName()))) {
+ Item item = new Item();
+ item.setTitle(name(composite.getName()));
+ item.setLink(composite.getURI());
+ return item;
+ }
+ }
+ throw new NotFoundException(key);
+ }
+
+ public String post(String key, Item item) {
+
+ // Adds a new composite to the domain composite
+ Composite composite = assemblyFactory.createComposite();
+ composite.setName(qname(key));
+ composite.setURI(item.getLink());
+ composite.setUnresolved(true);
+ compositeCollection.getIncludes().add(composite);
+
+ // Write the domain composite
+ write();
+
+ return key;
+ }
+
+ public void put(String key, Item item) throws NotFoundException {
+
+ // Update a composite already in the domain composite
+ Composite newComposite = assemblyFactory.createComposite();
+ newComposite.setName(qname(key));
+ newComposite.setURI(item.getLink());
+ newComposite.setUnresolved(true);
+ List<Composite> composites = compositeCollection.getIncludes();
+ for (int i = 0, n = composites.size(); i < n; i++) {
+ if (name(composites.get(i).getName()).equals(key)) {
+ composites.set(i, newComposite);
+
+ // Write the domain composite
+ write();
+
+ return;
+ }
+ }
+ throw new NotFoundException(key);
+ }
+
+ public void delete(String key) throws NotFoundException {
+
+ // Delete a composite from the domain composite
+ List<Composite> composites = compositeCollection.getIncludes();
+ for (int i = 0, n = composites.size(); i < n; i++) {
+ if (name(composites.get(i).getName()).equals(key)) {
+ composites.remove(i);
+
+ // Write the domain composite
+ write();
+
+ return;
+ }
+ }
+ throw new NotFoundException(key);
+ }
+
+ public Entry<String, Item>[] query(String queryString) {
+ if (queryString.startsWith("usedBy=")) {
+ //FIXME Invoke the Composite processing code from workspace-impl
+ return getAll();
+ } else {
+ throw new UnsupportedOperationException();
+ }
+ }
+
+ /**
+ * Write the domain composite back to disk
+ */
+ private void write() {
+ try {
+ // First write to a byte stream
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ XMLStreamWriter writer = outputFactory.createXMLStreamWriter(bos);
+ compositeProcessor.write(compositeCollection, writer);
+
+ // Parse again to pretty format the document
+ Document document = documentBuilder.parse(new ByteArrayInputStream(bos.toByteArray()));
+ OutputFormat format = new OutputFormat();
+ format.setIndenting(true);
+ format.setIndent(2);
+
+ // Write to domain.composite
+ FileOutputStream os = new FileOutputStream(compositeCollectionName + ".composite");
+ XMLSerializer serializer = new XMLSerializer(os, format);
+ serializer.serialize(document);
+
+ } catch (FileNotFoundException e) {
+ throw new ServiceRuntimeException(e);
+ } catch (ContributionWriteException e) {
+ throw new ServiceRuntimeException(e);
+ } catch (XMLStreamException e) {
+ throw new ServiceRuntimeException(e);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * Returns a qname object from its expression as namespace#localpart.
+ * @param name
+ * @return
+ */
+ private static QName qname(String name) {
+ int i = name.indexOf('}');
+ if (i != -1) {
+ return new QName(name.substring(1, i), name.substring(i + 1));
+ } else {
+ return new QName(name);
+ }
+ }
+
+ /**
+ * Returns a qname expressed as namespace#localpart.
+ * @param qname
+ * @return
+ */
+ private static String name(QName qname) {
+ String ns = qname.getNamespaceURI();
+ if (ns != null) {
+ return '{' + ns + '}' + qname.getLocalPart();
+ } else {
+ return qname.getLocalPart();
+ }
+ }
+}
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/CompositeCollectionImpl.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileCollectionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileCollectionImpl.java?rev=630640&r1=630639&r2=630640&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileCollectionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileCollectionImpl.java Sun Feb 24 09:27:27 2008
@@ -32,7 +32,7 @@
import org.osoa.sca.annotations.Scope;
/**
- * Implementation of the contribution workspace administration service component.
+ * Implementation of a file collection service component.
*
* @version $Rev$ $Date$
*/
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java?rev=630640&r1=630639&r2=630640&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionFileServiceImpl.java Sun Feb 24 09:27:27 2008
@@ -38,7 +38,7 @@
import org.osoa.sca.annotations.Scope;
/**
- * ContributionUploadServlet
+ * Implementation of a servlet component supporting file upload/download.
*
* @version $Rev$ $Date$
*/
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java?rev=630640&r1=630639&r2=630640&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/WorkspaceCollectionImpl.java Sun Feb 24 09:27:27 2008
@@ -26,7 +26,6 @@
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
-import java.net.URI;
import java.util.ArrayList;
import java.util.List;
@@ -60,7 +59,7 @@
import org.w3c.dom.Document;
/**
- * Implementation of the contribution workspace administration service component.
+ * Implementation of a contribution workspace service component.
*
* @version $Rev$ $Date$
*/
Copied: incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/AdminLauncher.java (from r630061, incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/WorkspaceAdminLauncher.java)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/AdminLauncher.java?p2=incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/AdminLauncher.java&p1=incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/WorkspaceAdminLauncher.java&r1=630061&r2=630640&rev=630640&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/WorkspaceAdminLauncher.java (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/launch/AdminLauncher.java Sun Feb 24 09:27:27 2008
@@ -22,15 +22,15 @@
import org.apache.tuscany.sca.host.embedded.SCADomain;
/**
- * Default launcher for the workspace admin application.
+ * Simple launcher for the administration application.
*
* @version $Rev$ $Date$
*/
-public class WorkspaceAdminLauncher {
+public class AdminLauncher {
public static void main(String[] args) throws Exception {
- SCADomain.newInstance("WorkspaceAdmin.composite");
- System.out.println("WorkspaceAdmin started...");
+ SCADomain.newInstance("Admin.composite");
+ System.out.println("Admin started...");
System.in.read();
}
Copied: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite (from r630061, incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/WorkspaceAdmin.composite)
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite?p2=incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite&p1=incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/WorkspaceAdmin.composite&r1=630061&r2=630640&rev=630640&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/WorkspaceAdmin.composite (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/Admin.composite Sun Feb 24 09:27:27 2008
@@ -20,7 +20,7 @@
<composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
- name="WorkspaceAdmin">
+ name="Admin">
<component name="WorkspaceUI">
<t:implementation.widget location="workspace.html"/>
@@ -42,6 +42,26 @@
</reference>
</component>
+ <component name="DomainCompositeUI">
+ <t:implementation.widget location="composite.html"/>
+ <service name="Widget">
+ <t:binding.http uri="http://localhost:9990/ui/composite"/>
+ </service>
+ <reference name="domainComposite" target="DomainCompositeCollectionComponent">
+ <t:binding.atom/>
+ </reference>
+ </component>
+
+ <component name="CloudUI">
+ <t:implementation.widget location="cloud.html"/>
+ <service name="Widget">
+ <t:binding.http uri="http://localhost:9990/ui/cloud"/>
+ </service>
+ <reference name="cloudComposite" target="CloudCollectionComponent">
+ <t:binding.atom/>
+ </reference>
+ </component>
+
<component name="WorkspaceCollectionComponent">
<implementation.java class="org.apache.tuscany.sca.workspace.admin.impl.WorkspaceCollectionImpl"/>
<service name="WorkspaceCollection">
@@ -60,6 +80,22 @@
<implementation.java class="org.apache.tuscany.sca.workspace.admin.impl.ContributionFileServiceImpl"/>
<service name="ContributionFileServiceImpl">
<t:binding.http uri="http://localhost:9990/files"/>
+ </service>
+ </component>
+
+ <component name="DomainCompositeCollectionComponent">
+ <implementation.java class="org.apache.tuscany.sca.workspace.admin.impl.CompositeCollectionImpl"/>
+ <property name="compositeCollectionName">domain</property>
+ <service name="CompositeCollection">
+ <t:binding.atom uri="http://localhost:9990/composite"/>
+ </service>
+ </component>
+
+ <component name="CloudCollectionComponent">
+ <implementation.java class="org.apache.tuscany.sca.workspace.admin.impl.CompositeCollectionImpl"/>
+ <property name="compositeCollectionName">cloud</property>
+ <service name="CompositeCollection">
+ <t:binding.atom uri="http://localhost:9990/cloud"/>
</service>
</component>
Added: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html?rev=630640&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html (added)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html Sun Feb 24 09:27:27 2008
@@ -0,0 +1,112 @@
+<!--
+ * 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>SCA Node Cloud</title>
+
+<script type="text/javascript" src="cloud.js"></script>
+
+<script language="JavaScript">
+
+ //@Reference
+ var cloudComposite = new Reference("cloudComposite");
+
+ function getComposites() {
+ cloudComposite.get("", getCompositesResponse);
+ }
+
+ function getCompositesResponse(feed) {
+ if (feed != null) {
+ var entries = feed.getElementsByTagName("entry");
+ var composites = "";
+ composites += '<table border="0">';
+ for (var i=0; i<entries.length; i++) {
+ var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
+ var location = entries[i].getElementsByTagName("link")[0].getAttribute("href");
+ composites += '<tr>'
+ composites += '<td><input name="composites" type="checkbox" value="' + id + '">' +
+ '<a href=\"' + location + '\">' + id + '</a></td>';
+ composites += '</tr>';
+ }
+ composites += '</table>';
+ document.getElementById("composites").innerHTML = composites;
+ }
+ }
+
+ function deleteComposite() {
+ var composites = document.cloudCompositeForm.composites;
+ for (var i = 0; i < composites.length; i++) {
+ if (composites[i].checked) {
+ var id = composites[i].value;
+ cloudComposite.del(id, deleteCompositeResponse);
+ }
+ }
+ }
+
+ function deleteCompositeResponse() {
+ getComposites();
+ }
+
+ function addComposite() {
+ var id = document.newCompositeForm.compositeQName.value;
+ var location = document.newCompositeForm.compositeLocation.value;
+ var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' +
+ '<title>Contribution - ' + id +'</title>' +
+ '<id>' + id + '</id>' +
+ '<link rel="alternate" href="' + location + '" />' +
+ '<link rel="edit" href="' + location + '" />' +
+ '</entry>';
+ cloudComposite.post(entry, addCompositeResponse);
+ }
+
+ function addCompositeResponse() {
+ document.newCompositeForm.compositeQName.value = "";
+ document.newCompositeForm.compositeLocation.value = "";
+ getComposites();
+ }
+
+ getComposites();
+</script>
+
+</head>
+
+<body>
+ <h2>SCA Node Cloud</h2>
+ <div id="cloudComposite">
+ <form name="cloudCompositeForm">
+ <div id="composites" ></div>
+ <br/>
+ <input type="button" onClick="deleteComposite()" value="Delete" />
+ <a href="/cloud/">(feed)</a>
+ </form>
+ <br/>
+
+ <b>Add Composite</b>
+ <form name="newCompositeForm">
+ <table border="0">
+ <tr><td>QName:</td><td><input type="text" name="compositeQName" /></td></tr>
+ <tr><td>Address:</td><td><input type="text" name="compositeLocation" /></td></tr>
+ </table>
+ <br/>
+ <input type="button" onClick="addComposite()" value="Add" />
+ </form>
+
+ </div>
+</body>
+</html>
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/cloud.html
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html?rev=630640&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html (added)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html Sun Feb 24 09:27:27 2008
@@ -0,0 +1,112 @@
+<!--
+ * 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>SCA Domain Composites</title>
+
+<script type="text/javascript" src="composite.js"></script>
+
+<script language="JavaScript">
+
+ //@Reference
+ var domainComposite = new Reference("domainComposite");
+
+ function getComposites() {
+ domainComposite.get("", getCompositesResponse);
+ }
+
+ function getCompositesResponse(feed) {
+ if (feed != null) {
+ var entries = feed.getElementsByTagName("entry");
+ var composites = "";
+ composites += '<table border="0">';
+ for (var i=0; i<entries.length; i++) {
+ var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
+ var location = entries[i].getElementsByTagName("link")[0].getAttribute("href");
+ composites += '<tr>'
+ composites += '<td><input name="composites" type="checkbox" value="' + id + '">' +
+ '<a href=\"' + location + '\">' + id + '</a></td>';
+ composites += '</tr>';
+ }
+ composites += '</table>';
+ document.getElementById("composites").innerHTML = composites;
+ }
+ }
+
+ function deleteComposite() {
+ var composites = document.domainCompositeForm.composites;
+ for (var i = 0; i < composites.length; i++) {
+ if (composites[i].checked) {
+ var id = composites[i].value;
+ domainComposite.del(id, deleteCompositeResponse);
+ }
+ }
+ }
+
+ function deleteCompositeResponse() {
+ getComposites();
+ }
+
+ function addComposite() {
+ var id = document.newCompositeForm.compositeQName.value;
+ var location = document.newCompositeForm.compositeLocation.value;
+ var entry = '<entry xmlns="http://www.w3.org/2005/Atom">' +
+ '<title>Contribution - ' + id +'</title>' +
+ '<id>' + id + '</id>' +
+ '<link rel="alternate" href="' + location + '" />' +
+ '<link rel="edit" href="' + location + '" />' +
+ '</entry>';
+ domainComposite.post(entry, addCompositeResponse);
+ }
+
+ function addCompositeResponse() {
+ document.newCompositeForm.compositeQName.value = "";
+ document.newCompositeForm.compositeLocation.value = "";
+ getComposites();
+ }
+
+ getComposites();
+</script>
+
+</head>
+
+<body>
+ <h2>SCA Domain Composites</h2>
+ <div id="domainComposite">
+ <form name="domainCompositeForm">
+ <div id="composites" ></div>
+ <br/>
+ <input type="button" onClick="deleteComposite()" value="Delete" />
+ <a href="/composite/">(feed)</a>
+ </form>
+ <br/>
+
+ <b>Add Composite</b>
+ <form name="newCompositeForm">
+ <table border="0">
+ <tr><td>QName:</td><td><input type="text" name="compositeQName" /></td></tr>
+ <tr><td>Address:</td><td><input type="text" name="compositeLocation" /></td></tr>
+ </table>
+ <br/>
+ <input type="button" onClick="addComposite()" value="Add" />
+ </form>
+
+ </div>
+</body>
+</html>
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/composite.html
------------------------------------------------------------------------------
svn:keywords = Rev Date
Modified: incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html?rev=630640&r1=630639&r2=630640&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html (original)
+++ incubator/tuscany/java/sca/modules/workspace-admin/src/main/resources/workspace.html Sun Feb 24 09:27:27 2008
@@ -35,14 +35,17 @@
if (feed != null) {
var entries = feed.getElementsByTagName("entry");
var contributions = "";
+ contributions += '<table border="0">';
for (var i=0; i<entries.length; i++) {
var id = entries[i].getElementsByTagName("id")[0].firstChild.nodeValue;
var location = entries[i].getElementsByTagName("link")[0].getAttribute("href");
- contributions += '<input name="contributions" type="checkbox" value="' + id + '">' +
- '<a href=\"' + location + '\">' + id + '</a> ';
- contributions += '<a href=\"/workspace/?importedBy=' + id + '\">dependencies</a>';
- contributions += '<br/>';
+ contributions += '<tr>'
+ contributions += '<td><input name="contributions" type="checkbox" value="' + id + '">' +
+ '<a href=\"' + location + '\">' + id + '</a></td>';
+ contributions += '<td> <a href=\"/workspace/?importedBy=' + id + '\">dependencies</a></td>';
+ contributions += '</tr>';
}
+ contributions += '</table>';
document.getElementById("contributions").innerHTML = contributions;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org