Author: jsdelfino
Date: Sun Mar 23 21:54:14 2008
New Revision: 640314

URL: http://svn.apache.org/viewvc?rev=640314&view=rev
Log:
Merged fix for TUSCANY-2120 from trunk SVN revision r640235.

Added:
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/NodeProcessCollectionFacadeImpl.java
      - copied unchanged from r640235, 
incubator/tuscany/java/sca/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/NodeProcessCollectionFacadeImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/
      - copied from r640235, 
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/
      - copied from r640235, 
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java
      - copied unchanged from r640235, 
incubator/tuscany/java/sca/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/
      - copied from r640235, 
incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/
      - copied from r640235, 
incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java
      - copied unchanged from r640235, 
incubator/tuscany/java/sca/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/builder/impl/ContributionDependencyBuilderTestCase.java
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/
      - copied from r640235, 
incubator/tuscany/java/sca/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java
      - copied unchanged from r640235, 
incubator/tuscany/java/sca/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilder.java
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilderMonitor.java
      - copied unchanged from r640235, 
incubator/tuscany/java/sca/modules/workspace/src/main/java/org/apache/tuscany/sca/workspace/builder/ContributionDependencyBuilderMonitor.java
Removed:
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-impl/src/main/java/org/apache/tuscany/sca/workspace/dependency/
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-impl/src/test/java/org/apache/tuscany/sca/workspace/dependency/
Modified:
    
incubator/tuscany/branches/sca-java-1.2/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/implementation-node-runtime/src/main/resources/NodeDaemon.composite
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DomainAdminUtil.java
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/QuickStartServiceImpl.java
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/DomainAdmin.composite
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/cloud.html
    
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/workspace.html

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-java/src/main/java/org/apache/tuscany/sca/contribution/java/impl/JavaImportImpl.java
 Sun Mar 23 21:54:14 2008
@@ -102,4 +102,9 @@
         
         return false;
     }
+    
+    @Override
+    public String toString() {
+        return String.valueOf(packageName);
+    }
 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportImpl.java?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-namespace/src/main/java/org/apache/tuscany/sca/contribution/namespace/impl/NamespaceImportImpl.java
 Sun Mar 23 21:54:14 2008
@@ -84,4 +84,9 @@
         }
         return false;
     }
+    
+    @Override
+    public String toString() {
+        return String.valueOf(namespace);
+    }
 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/contribution-resource/src/main/java/org/apache/tuscany/sca/contribution/resource/impl/ResourceImportImpl.java
 Sun Mar 23 21:54:14 2008
@@ -99,4 +99,9 @@
         }
         return false;
     }
+    
+    @Override
+    public String toString() {
+        return String.valueOf(uri);
+    }
 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/implementation-node-runtime/src/main/resources/NodeDaemon.composite
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/implementation-node-runtime/src/main/resources/NodeDaemon.composite?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/implementation-node-runtime/src/main/resources/NodeDaemon.composite
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/implementation-node-runtime/src/main/resources/NodeDaemon.composite
 Sun Mar 23 21:54:14 2008
@@ -25,7 +25,7 @@
     <component name="NodeProcessCollectionComponent">
         <implementation.java 
class="org.apache.tuscany.sca.implementation.node.launcher.NodeProcessCollectionImpl"/>
                <service name="ItemCollection">
-                       <t:binding.atom uri="http://localhost:9990/process"; 
title="Log"/>
+                       <t:binding.atom 
uri="http://localhost:9990/node/processes"; title="Log"/>
                </service>
     </component>
 

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/ContributionCollectionImpl.java
 Sun Mar 23 21:54:14 2008
@@ -30,6 +30,7 @@
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 import java.net.URLDecoder;
@@ -53,6 +54,7 @@
 
 import org.apache.tuscany.sca.assembly.AssemblyFactory;
 import org.apache.tuscany.sca.assembly.Composite;
+import org.apache.tuscany.sca.assembly.builder.Problem;
 import org.apache.tuscany.sca.contribution.Contribution;
 import org.apache.tuscany.sca.contribution.ContributionFactory;
 import org.apache.tuscany.sca.contribution.DefaultModelFactoryExtensionPoint;
@@ -77,7 +79,9 @@
 import org.apache.tuscany.sca.implementation.data.collection.NotFoundException;
 import org.apache.tuscany.sca.workspace.Workspace;
 import org.apache.tuscany.sca.workspace.WorkspaceFactory;
-import 
org.apache.tuscany.sca.workspace.dependency.impl.ContributionDependencyAnalyzer;
+import org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilder;
+import 
org.apache.tuscany.sca.workspace.builder.ContributionDependencyBuilderMonitor;
+import 
org.apache.tuscany.sca.workspace.builder.impl.ContributionDependencyBuilderImpl;
 import 
org.apache.tuscany.sca.workspace.processor.impl.ContributionInfoProcessor;
 import org.apache.tuscany.sca.workspace.xml.WorkspaceProcessor;
 import org.apache.xml.serialize.OutputFormat;
@@ -212,7 +216,11 @@
         Workspace workspace = readWorkspace();
         Contribution contribution = contributionFactory.createContribution();
         contribution.setURI(key);
-        contribution.setLocation(item.getLink());
+        try {
+            contribution.setLocation(locationURL(item.getLink()).toString());
+        } catch (MalformedURLException e) {
+            throw new ServiceRuntimeException(e);
+        }
         workspace.getContributions().add(contribution);
         
         // Write the workspace
@@ -227,7 +235,11 @@
         Workspace workspace = readWorkspace();
         Contribution newContribution = 
contributionFactory.createContribution();
         newContribution.setURI(key);
-        newContribution.setLocation(item.getLink());
+        try {
+            
newContribution.setLocation(locationURL(item.getLink()).toString());
+        } catch (MalformedURLException e) {
+            throw new ServiceRuntimeException(e);
+        }
         List<Contribution> contributions = workspace.getContributions();
         for (int i = 0, n = contributions.size(); i < n; i++) {
             if (contributions.get(i).getURI().equals(key)) {
@@ -279,8 +291,8 @@
                 if (key.equals(contribution.getURI())) {
 
                     // Compute the contribution dependencies
-                    ContributionDependencyAnalyzer analyzer = new 
ContributionDependencyAnalyzer();
-                    List<Contribution> dependencies = 
analyzer.calculateContributionDependencies(workspace, contribution);
+                    ContributionDependencyBuilder analyzer = new 
ContributionDependencyBuilderImpl(null);
+                    List<Contribution> dependencies = 
analyzer.buildContributionDependencies(workspace, contribution);
                     
                     // Returns entries for the dependencies
                     // optionally skip the specified contribution
@@ -329,9 +341,16 @@
         item.setAlternate(contribution.getLocation());
         
         // List the contribution dependencies in the item contents
+        final List<String> problems = new ArrayList<String>();
+        ContributionDependencyBuilderMonitor monitor = new 
ContributionDependencyBuilderMonitor() {
+            public void problem(Problem problem) {
+                problems.add(problem.getMessage() + " " + problem.getModel());
+            }
+        };
+        
         StringBuffer sb = new StringBuffer();
-        ContributionDependencyAnalyzer analyzer = new 
ContributionDependencyAnalyzer();
-        List<Contribution> dependencies = 
analyzer.calculateContributionDependencies(workspace, contribution);
+        ContributionDependencyBuilderImpl analyzer = new 
ContributionDependencyBuilderImpl(monitor);
+        List<Contribution> dependencies = 
analyzer.buildContributionDependencies(workspace, contribution);
         if (dependencies.size() > 1) {
             sb.append("Dependencies: <span id=\"dependencies\">");
             for (int i = 0, n = dependencies.size(); i < n ; i++) {
@@ -362,7 +381,16 @@
             sb.append("</span><br>");
         }
         
-        // Store the two lists in the item contents
+        // List the dependency problems
+        if (problems.size() > 1) {
+            sb.append("<span id=\"problems\" style=\"color: red\">");
+            for (int i = 0, n = problems.size(); i < n ; i++) {
+                sb.append("Problem: "+ problems.get(i) + "<br>");
+            }
+            sb.append("</span>");
+        }
+        
+        // Store in the item contents
         item.setContents(sb.toString());
         
         return item;

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DomainAdminUtil.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DomainAdminUtil.java?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DomainAdminUtil.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/DomainAdminUtil.java
 Sun Mar 23 21:54:14 2008
@@ -154,4 +154,23 @@
         }
     }
 
+    /**
+     * Extract a node URI from an ATOM entry content.
+     * 
+     * @param content
+     * @return
+     */
+    static String nodeURI(String content) {
+        if (content != null) {
+            int bs = content.indexOf("<span id=\"nodeURI\">");
+            if (bs != -1) {
+                content = content.substring(bs + 19);
+                int es = content.indexOf("</span>");
+                if (es != -1) {
+                    return content.substring(0, es);
+                }
+            }
+        }
+        return null;
+    }
 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/QuickStartServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/QuickStartServiceImpl.java?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/QuickStartServiceImpl.java
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/java/org/apache/tuscany/sca/workspace/admin/impl/QuickStartServiceImpl.java
 Sun Mar 23 21:54:14 2008
@@ -22,6 +22,7 @@
 import static 
org.apache.tuscany.sca.workspace.admin.impl.DomainAdminUtil.compositeKey;
 import static 
org.apache.tuscany.sca.workspace.admin.impl.DomainAdminUtil.compositeQName;
 import static 
org.apache.tuscany.sca.workspace.admin.impl.DomainAdminUtil.contributionURI;
+import static 
org.apache.tuscany.sca.workspace.admin.impl.DomainAdminUtil.nodeURI;
 
 import java.io.IOException;
 import java.net.URI;
@@ -174,20 +175,12 @@
                 Set<Integer> nodePorts = new HashSet<Integer>(); 
                 for (Entry<String, Item> entry: nodeEntries) {
                     Item item = entry.getData();
-                    String content = item.getContents();
-                    if (content != null) {
-                        int bs = content.indexOf("<span id=\"nodeURI\">");
-                        if (bs != -1) {
-                            content = content.substring(bs + 19);
-                            int es = content.indexOf("</span>");
-                            if (es != -1) {
-                                content = content.substring(0, es);
-                                URI uri = URI.create(content);
-                                int port = uri.getPort();
-                                if (port != -1) {
-                                    nodePorts.add(port);
-                                }
-                            }
+                    String uri = nodeURI(item.getContents());
+                    if (uri != null) {
+                        URI u = URI.create(uri);
+                        int port = u.getPort();
+                        if (port != -1) {
+                            nodePorts.add(port);
                         }
                     }
                 }

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/DomainAdmin.composite
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/DomainAdmin.composite?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/DomainAdmin.composite
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/DomainAdmin.composite
 Sun Mar 23 21:54:14 2008
@@ -67,7 +67,7 @@
                 <reference name="cloudComposite" 
target="CloudCollectionComponent/ItemCollection">
                        <t:binding.atom/>
                 </reference>
-                <reference name="processCollection" 
target="NodeProcessCollectionComponent/ItemCollection">
+                <reference name="processCollection" 
target="NodeProcessCollectionFacadeComponent/ItemCollection">
                        <t:binding.atom/>
                 </reference>
     </component>
@@ -162,10 +162,21 @@
                <reference name="processCollection" 
target="NodeProcessCollectionComponent/LocalItemCollection"/>
     </component>
 
+    <component name="NodeProcessCollectionFacadeComponent">
+        <implementation.java 
class="org.apache.tuscany.sca.workspace.admin.impl.NodeProcessCollectionFacadeImpl"/>
+               <service name="ItemCollection">
+                       <t:binding.atom uri="http://localhost:9990/processes"; 
title="Log"/>
+               </service>
+               <reference name="cloudCollection" 
target="CloudCollectionComponent/LocalItemCollection"/>
+               <reference name="processCollection" 
target="NodeProcessCollectionComponent/ItemCollection">
+                       <t:binding.atom/>
+               </reference>
+    </component>
+
     <component name="NodeProcessCollectionComponent">
         <implementation.java 
class="org.apache.tuscany.sca.implementation.node.launcher.NodeProcessCollectionImpl"/>
                <service name="ItemCollection">
-                       <t:binding.atom uri="http://localhost:9990/process"; 
title="Log"/>
+                       <t:binding.atom 
uri="http://localhost:9990/node/processes"; title="Log"/>
                </service>
     </component>
 

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/cloud.html
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/cloud.html?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/cloud.html
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/cloud.html
 Sun Mar 23 21:54:14 2008
@@ -104,7 +104,7 @@
                                        composites += '<td><a 
href="/contribution/' + uri + '">' + uri + '</a></td>';
                                }
                                composites += '<td><a href="/node-image/' + 
nodeName + '"><img src="icons/feed-icon.png" border="0"></a></td>';
-                               composites += '<td><a href="/process/?node=' + 
nodeName + '"><img src="icons/feed-icon.png" border="0"></a></td>';
+                               composites += '<td><a href="/processes/?node=' 
+ nodeName + '"><img src="icons/feed-icon.png" border="0"></a></td>';
                                composites += '</tr>';
                        }
                        composites += '</table>';

Modified: 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/workspace.html
URL: 
http://svn.apache.org/viewvc/incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/workspace.html?rev=640314&r1=640313&r2=640314&view=diff
==============================================================================
--- 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/workspace.html
 (original)
+++ 
incubator/tuscany/branches/sca-java-1.2/modules/workspace-admin/src/main/resources/workspace.html
 Sun Mar 23 21:54:14 2008
@@ -63,8 +63,18 @@
                                        var es = content.indexOf('</span>', 
bs); 
                                        deployables = content.substring(bs, es 
+ 7);
                                }
+                               
+                               var problems = "";
+                               var bs = content.indexOf('<span id="problems" 
');
+                               if (bs != -1) {
+                                       var es = content.indexOf('</span>', bs);
+                                       if (dependencies.length != 0) {
+                                         problems = '<br>';
+                                       } 
+                                       problems += content.substring(bs, es + 
7);
+                               }
                                                                                
        
-                               contributions += '<td class=tdw>' + 
dependencies +' </td>';
+                               contributions += '<td class=tdw>' + 
dependencies + ' </td>';
                                contributions += '<td class=tdw>' + deployables 
+ '</td>';
                                contributions += '</tr>';
                        }
@@ -138,7 +148,7 @@
     <br>
     <table>
     <tr><td>Contribution URI:</td><td><input type="text" name="contributionID" 
size="50"/></td></td><td>e.g. mycontrib, http://mycontrib</td></tr> 
-    <tr><td>Address:</td><td><input type="text" name="contributionLocation" 
size="50"/></td></td><td>e.g. http://host/myjar.jar, file:/mydir, 
file:/myjar.jar</td></tr>
+    <tr><td>Location:</td><td><input type="text" name="contributionLocation" 
size="50"/></td></td><td>e.g. http://host/myjar.jar, file:/mydir, 
file:/myjar.jar</td></tr>
     </table>
     <input type="button" onClick="addContribution()" value="Add" />
   </form>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to