You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2015/02/03 04:14:18 UTC

juddi git commit: JUDDI-926 fixed

Repository: juddi
Updated Branches:
  refs/heads/master 09abb1b4e -> 5eda4a714


JUDDI-926 fixed


Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/5eda4a71
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/5eda4a71
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/5eda4a71

Branch: refs/heads/master
Commit: 5eda4a714c86584b24576a51a9995d72240fa55c
Parents: 09abb1b
Author: Alex <al...@apache.org>
Authored: Mon Feb 2 22:14:13 2015 -0500
Committer: Alex <al...@apache.org>
Committed: Mon Feb 2 22:14:13 2015 -0500

----------------------------------------------------------------------
 .../juddi/v3/client/config/ClientConfig.java    |  14 +-
 .../apache/juddi/webconsole/hub/UddiHub.java    |   4 +-
 juddi-gui/src/main/resources/META-INF/uddi.xml  |  21 +-
 .../juddi/webconsole/resources/web.properties   |   1 +
 .../webconsole/resources/web_es.properties      |   1 +
 juddi-gui/src/main/webapp/ajax/settings.jsp     | 177 ++++--
 juddi-gui/src/main/webapp/settings.jsp          | 537 ++++++++++++++-----
 7 files changed, 564 insertions(+), 191 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/5eda4a71/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
----------------------------------------------------------------------
diff --git a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
index 10a63be..db8c970 100644
--- a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
+++ b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
@@ -460,6 +460,12 @@ public class ClientConfig {
                 throw new ConfigurationException("One of the node elements in the client configuration needs to a 'isHomeJUDDI=\"true\"' attribute.");
         }
 
+        /**
+         * returns the named uddi node from config or throws if one is not found
+         * @param nodeName
+         * @return
+         * @throws ConfigurationException 
+         */
         public UDDINode getUDDINode(String nodeName) throws ConfigurationException {
                 if (!uddiNodes.containsKey(nodeName)) {
                         throw new ConfigurationException("Node '" + nodeName
@@ -578,7 +584,8 @@ public class ClientConfig {
          * adds a new node to the client configuration section. Don't forget to
          * call save to persist the changes
          *
-         * @param n
+         * @param node
+         * @throws org.apache.commons.configuration.ConfigurationException
          * @since 3.3
          */
         public void addUDDINode(UDDINode node) throws ConfigurationException {
@@ -592,7 +599,10 @@ public class ClientConfig {
                         log.info("ClientName wasn't specified, I'll configure it with the defaults");
                         node.setClientName(this.clientName);
                 }
-                this.uddiNodes.put(node.getClientName(), node);
+                if (node.getName() == null || "".equalsIgnoreCase(node.getName())) {
+                       throw new ConfigurationException("Node Name wasn't specified. It cannot be null");
+                }
+                this.uddiNodes.put(node.getName(), node);
 
         }
 

http://git-wip-us.apache.org/repos/asf/juddi/blob/5eda4a71/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java b/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
index 261968b..c76a7d1 100644
--- a/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
+++ b/juddi-gui/src/main/java/org/apache/juddi/webconsole/hub/UddiHub.java
@@ -420,7 +420,7 @@ public class UddiHub implements Serializable {
 
         /**
          * gets a reference to the current juddi client config file. this is a
-         * live instance changes can be stored to disk, usually
+         * live instance changes can be stored to disk
          *
          * @return client config
          * @throws ConfigurationException g
@@ -449,7 +449,7 @@ public class UddiHub implements Serializable {
                                         return true;
                                 }
                         }
-                } catch (ConfigurationException ex) {
+                } catch (Exception ex) {
                         log.error(ex);
                         return false;
                 }

http://git-wip-us.apache.org/repos/asf/juddi/blob/5eda4a71/juddi-gui/src/main/resources/META-INF/uddi.xml
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/resources/META-INF/uddi.xml b/juddi-gui/src/main/resources/META-INF/uddi.xml
index a3f6262..7d66c29 100644
--- a/juddi-gui/src/main/resources/META-INF/uddi.xml
+++ b/juddi-gui/src/main/resources/META-INF/uddi.xml
@@ -87,15 +87,26 @@ It currently does not use the ValueSet, jUDDI, Replication, or REST APIs
                 <subscriptionUrl>https://localhost:8443/juddiv3/UDDISubscriptionService</subscriptionUrl>
             </node>
             <node>
+                <name>jUDDI Cloud Prod</name> 
+                <description>This node is a semi-production jUDDI instance.</description>
+                <!-- JAX-WS Transport -->
+                <proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
+                <custodyTransferUrl>http://uddi-jbossoverlord.rhcloud.com/juddiv3/services/custody-transfer</custodyTransferUrl>
+                <inquiryUrl>http://uddi-jbossoverlord.rhcloud.com/juddiv3/services/inquiry</inquiryUrl>
+                <publishUrl>http://uddi-jbossoverlord.rhcloud.com/juddiv3/services/publish</publishUrl>
+                <securityUrl>http://uddi-jbossoverlord.rhcloud.com/juddiv3/services/security</securityUrl>
+                <subscriptionUrl>http://uddi-jbossoverlord.rhcloud.com/juddiv3/services/subscription</subscriptionUrl>
+            </node>
+            <node>
                 <name>jUDDI Cloud Sandbox</name> 
                 <description>This node is maintained by the jUDDI team for you to test and experiment with.</description>
                 <!-- JAX-WS Transport -->
                 <proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
-                <custodyTransferUrl>http://uddi-jbossoverlord.rhcloud.com/services/custody-transfer</custodyTransferUrl>
-                <inquiryUrl>http://uddi-jbossoverlord.rhcloud.com/services/inquiry</inquiryUrl>
-                <publishUrl>http://uddi-jbossoverlord.rhcloud.com/services/publish</publishUrl>
-                <securityUrl>http://uddi-jbossoverlord.rhcloud.com/services/security</securityUrl>
-                <subscriptionUrl>http://uddi-jbossoverlord.rhcloud.com/services/subscription</subscriptionUrl>
+                <custodyTransferUrl>http://uddiconsole-jbossoverlord.rhcloud.com/juddiv3/services/custody-transfer</custodyTransferUrl>
+                <inquiryUrl>http://uddiconsole-jbossoverlord.rhcloud.com/juddiv3/services/inquiry</inquiryUrl>
+                <publishUrl>http://uddiconsole-jbossoverlord.rhcloud.com/juddiv3/services/publish</publishUrl>
+                <securityUrl>http://uddiconsole-jbossoverlord.rhcloud.com/juddiv3/services/security</securityUrl>
+                <subscriptionUrl>http://uddiconsole-jbossoverlord.rhcloud.com/juddiv3/services/subscription</subscriptionUrl>
             </node>
         </nodes>
 		<signature>

http://git-wip-us.apache.org/repos/asf/juddi/blob/5eda4a71/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
index 38367e0..c834934 100644
--- a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
+++ b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web.properties
@@ -450,3 +450,4 @@ actions.popout=Popout
 items.categorizations=Categorizations
 items.categorizations.uddi=UDDI Categorizations
 actions.return=Return
+items.settings.edit=Edit

http://git-wip-us.apache.org/repos/asf/juddi/blob/5eda4a71/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
index 3b5d064..d316427 100644
--- a/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
+++ b/juddi-gui/src/main/resources/org/apache/juddi/webconsole/resources/web_es.properties
@@ -452,3 +452,4 @@ actions.popout=Salir
 items.categorizations=Categorizaciones
 items.categorizations.uddi=UDDI Categorizaciones
 actions.return=Volver
+items.settings.edit=Editar

http://git-wip-us.apache.org/repos/asf/juddi/blob/5eda4a71/juddi-gui/src/main/webapp/ajax/settings.jsp
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/ajax/settings.jsp b/juddi-gui/src/main/webapp/ajax/settings.jsp
index 46aec41..31df17b 100644
--- a/juddi-gui/src/main/webapp/ajax/settings.jsp
+++ b/juddi-gui/src/main/webapp/ajax/settings.jsp
@@ -19,6 +19,8 @@
  */
 --%>
 
+<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
+<%@page import="org.apache.juddi.v3.client.config.UDDINode"%>
 <%@page import="org.apache.juddi.webconsole.resources.ResourceLoader"%>
 <%@page import="java.io.File"%>
 <%@page import="java.io.FileOutputStream"%>
@@ -26,52 +28,137 @@
 <%@page import="java.util.Enumeration"%>
 <%@page contentType="text/html" pageEncoding="UTF-8"%>
 <%@include  file="../csrf.jsp" %>
-<%
-    UddiHub x = UddiHub.getInstance(application, session);
-    if (x.isAdminLocalhostOnly() &&  
-            !request.getRemoteAddr().equalsIgnoreCase("localhost") && 
-            !request.getRemoteHost().equalsIgnoreCase("127.0.0.1") &&
-            !request.getRemoteHost().equalsIgnoreCase("0:0:0:0:0:0:0:1")) {
-        out.write(ResourceLoader.GetResource(session, "pages.settings.accessdenied.remote"));
-        UddiHub.log.fatal("Audit: FAILURE Attempt to alter configuration remotely from " + 
-                request.getRemoteAddr() + " " +
-                request.getRemoteHost() + " " + 
-                request.getRemoteUser());
-        response.setStatus(403);
-        return;
-    } else {
-         
-        
-        //this is controlled by web.xml
+<%        UddiHub x = UddiHub.getInstance(application, session);
+        if (x.isAdminLocalhostOnly()
+                && !request.getRemoteAddr().equalsIgnoreCase("localhost")
+                && !request.getRemoteHost().equalsIgnoreCase("127.0.0.1")
+                && !request.getRemoteHost().equalsIgnoreCase("0:0:0:0:0:0:0:1")) {
+                out.write(ResourceLoader.GetResource(session, "pages.settings.accessdenied.remote"));
+                UddiHub.log.fatal("Audit: FAILURE Attempt to alter configuration remotely from "
+                        + request.getRemoteAddr() + " "
+                        + request.getRemoteHost() + " "
+                        + request.getRemoteUser());
+                response.setStatus(403);
+                return;
+        } else {
+
+                //this is controlled by web.xml
     /*if (!request.isUserInRole("uddiadmin")) {
-         out.write("Sorry, you need to have the 'uddiadmin' admin role to access this page.");
-         response.setStatus(403);
-         }*/
-        if (request.getMethod().equalsIgnoreCase("post")) {
-            UddiHub.log.info("Audit: SUCCESS Altering juddi config " + 
-                request.getRemoteAddr() + " " +
-                request.getRemoteHost() + " " + 
-                request.getRemoteUser());
-            
-            Enumeration it = request.getParameterNames();
-            while (it.hasMoreElements()) {
-                String key = (String) it.nextElement();
-                String value = request.getParameter(key);
-                if (key.startsWith("client.") || key.startsWith("config.")) {
-                    //its part of the juddi client config file
-                    x.GetJuddiClientConfig().getConfiguration().setProperty(key, value);
-                    //this just sets the runtime config
+                 out.write("Sorry, you need to have the 'uddiadmin' admin role to access this page.");
+                 response.setStatus(403);
+                 }*/
+                if (request.getMethod().equalsIgnoreCase("post")) {
+                        UddiHub.log.info("Audit: SUCCESS Altering juddi config "
+                                + request.getRemoteAddr() + " "
+                                + request.getRemoteHost() + " "
+                                + request.getRemoteUser());
+                        try {
+                                String formaction = request.getParameter("formaction");
+                                if (formaction == null) {
+                                        response.setStatus(400);
+                                        return;
+                                }
+                                if ("settings".equalsIgnoreCase(formaction)) {
+                                        Enumeration it = request.getParameterNames();
+                                        while (it.hasMoreElements()) {
+                                                String key = (String) it.nextElement();
+                                                String value = request.getParameter(key);
+                                                if (key.startsWith("client.") || key.startsWith("config.")) {
+                                                        if (!key.startsWith("client.nodes.")) {
+                                                                //its part of the juddi client config file
+                                                                x.GetJuddiClientConfig().getConfiguration().setProperty(key, value);
+                                                                //this just sets the runtime config
+                                                               // System.out.println(key + " = " + value);
+                                                        }
+
+                                                }
+                                        }
+                                } else if ("deleteNode".equalsIgnoreCase(formaction)) {
+                                        String nn = request.getParameter("nodename");
+                                        UDDINode un = x.GetJuddiClientConfig().getUDDINode(nn);
+                                        x.GetJuddiClientConfig().removeUDDINode(nn);
+                                        UddiHub.log.info("Deleting node config for " + nn);
+
+                                } else if ("newNode".equalsIgnoreCase(formaction)) {
+                                        UddiHub.log.info("New node config");
+                                        UDDINode un = new UDDINode();
+                                        un.setName(request.getParameter("nodename"));
+
+                                        un.setClientName(x.GetJuddiClientConfig().getClientName());
+                                        un.setInquiryUrl(request.getParameter("inquiry"));
+                                        un.setProxyTransport(request.getParameter("transport"));
+                                        un.setPublishUrl(request.getParameter("publish"));
+                                        un.setDescription(request.getParameter("description"));
+                                        un.setCustodyTransferUrl(request.getParameter("custody"));
+                                        un.setSubscriptionUrl(request.getParameter("subscription"));
+                                        un.setSecurityUrl(request.getParameter("security"));
+
+                                        un.setFactoryInitial(request.getParameter("factoryinit"));
+                                        un.setFactoryNamingProvider(request.getParameter("factorynaming"));
+                                        un.setFactoryURLPkgs(request.getParameter("factoryurl"));
+                                        un.setInquiryRESTUrl(request.getParameter("inquiryrest"));
+                                        un.setReplicationUrl(request.getParameter("replication"));
+                                        un.setJuddiApiUrl(request.getParameter("juddiapi"));
+                                        x.GetJuddiClientConfig().addUDDINode(un);
+
+                                } else if ("alterNode".equalsIgnoreCase(formaction)) {
+
+                                        String nn = request.getParameter("nodenameAlter");
+                                        UDDINode un = x.GetJuddiClientConfig().getUDDINode(nn);
+                                        UddiHub.log.info("Altering node config for " + nn);
+                                        un.setInquiryUrl(request.getParameter("inquiryAlter"));
+                                        un.setProxyTransport(request.getParameter("transportAlter"));
+                                        un.setPublishUrl(request.getParameter("publishAlter"));
+                                        un.setDescription(request.getParameter("descriptionAlter"));
+                                        un.setCustodyTransferUrl(request.getParameter("custodyAlter"));
+                                        un.setSubscriptionUrl(request.getParameter("subscriptionAlter"));
+                                        un.setSecurityUrl(request.getParameter("securityAlter"));
+
+                                        un.setFactoryInitial(request.getParameter("factoryinitAlter"));
+                                        un.setFactoryNamingProvider(request.getParameter("factorynamingAlter"));
+                                        un.setFactoryURLPkgs(request.getParameter("factoryurlAlter"));
+                                        un.setInquiryRESTUrl(request.getParameter("inquiryrestAlter"));
+                                        un.setReplicationUrl(request.getParameter("replicationAlter"));
+                                        un.setJuddiApiUrl(request.getParameter("juddiapiAlter"));
+                                        x.GetJuddiClientConfig().removeUDDINode(nn);
+                                        x.GetJuddiClientConfig().addUDDINode(un);
+
+                                } else if ("getNode".equalsIgnoreCase(formaction)) {
+                                        String nn = request.getParameter("nodename");
+                                        UDDINode un = x.GetJuddiClientConfig().getUDDINode(nn);
+                                        UddiHub.log.info("Get node config for " + nn);
+                                         out.write("<table class=\"table table-hover\">");
+                                out.write("<tr><td>Node Name</td><td><input class=\"crudnodeAlter\" type=text id=\"nodenameAlter\" value=\"" + StringEscapeUtils.escapeHtml(un.getName()) + "\"></td></tr>");
+
+                                out.write("<tr><td>Description</td><td><input class=\"crudnodeAlter\" type=text id=\"descriptionAlter\" value=\"" + (un.getDescription() != null ? StringEscapeUtils.escapeHtml(un.getDescription()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Transport</td><td><input class=\"crudnodeAlter\" type=text id=\"transportAlter\" value=\"" + (un.getProxyTransport() != null ? StringEscapeUtils.escapeHtml(un.getProxyTransport()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Inquiry</td><td><input class=\"crudnodeAlter\" type=text id=\"inquiryAlter\" value=\"" + (un.getInquiryUrl() != null ? StringEscapeUtils.escapeHtml(un.getInquiryUrl()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Publish</td><td><input class=\"crudnodeAlter\" type=text id=\"publishAlter\" value=\"" + (un.getPublishUrl() != null ? StringEscapeUtils.escapeHtml(un.getPublishUrl()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Security</td><td><input class=\"crudnodeAlter\" type=text id=\"securityAlter\" value=\"" + (un.getSecurityUrl() != null ? StringEscapeUtils.escapeHtml(un.getSecurityUrl()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Custody Transfer</td><td><input class=\"crudnodeAlter\" type=text id=\"custodyAlter\" value=\"" + (un.getCustodyTransferUrl() != null ? StringEscapeUtils.escapeHtml(un.getCustodyTransferUrl()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Subscription</td><td><input class=\"crudnodeAlter\" type=text id=\"subscriptionAlter\" value=\"" + (un.getSubscriptionUrl() != null ? StringEscapeUtils.escapeHtml(un.getSubscriptionUrl()) : "") + "\"></td></tr>");
+                                out.write("<tr><td colspan=2>Not used by juddi-gui</td></tr>");
+                                out.write("<tr><td>Factory Initial</td><td><input type=text class=\"crudnodeAlter\" id=\"factoryinitAlter\" value=\"" + (un.getFactoryInitial() != null ? StringEscapeUtils.escapeHtml(un.getFactoryInitial()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Factory Naming Provider</td><td><input class=\"crudnodeAlter\" type=text id=\"factorynamingAlter\" value=\"" + (un.getFactoryNamingProvider() != null ? StringEscapeUtils.escapeHtml(un.getFactoryNamingProvider()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Factor URL Package</td><td><input class=\"crudnodeAlter\" type=text id=\"factoryurlAlter\" value=\"" + (un.getFactoryURLPkgs() != null ? StringEscapeUtils.escapeHtml(un.getFactoryURLPkgs()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Inquiry REST</td><td><input class=\"crudnodeAlter\" type=text id=\"inquiryrestAlter\" value=\"" + (un.getInquiry_REST_Url() != null ? StringEscapeUtils.escapeHtml(un.getInquiry_REST_Url()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>Replication</td><td><input class=\"crudnodeAlter\" type=text id=\"replicationAlter\" value=\"" + (un.getReplicationUrl() != null ? StringEscapeUtils.escapeHtml(un.getReplicationUrl()) : "") + "\"></td></tr>");
+                                out.write("<tr><td>jUDDI API</td><td><input class=\"crudnodeAlter\" type=text id=\"juddiapiAlter\" value=\"" + (un.getJuddiApiUrl() != null ? StringEscapeUtils.escapeHtml(un.getJuddiApiUrl()) : "") + "\"></td></tr>");
+                                out.write("</table>");
+                                        return;
+
+                                } else {
+                                        response.setStatus(400);
+                                        return;
+                                }
+
+                                x.GetJuddiClientConfig().saveConfig();
+                                out.write(ResourceLoader.GetResource(session, "actions.saved"));
+                        } catch (Exception ex) {
+                                response.setStatus(406);
 
-                }
-            }
-            try {
-                x.GetJuddiClientConfig().saveConfigRaw();
-                out.write(ResourceLoader.GetResource(session, "actions.saved"));
-            } catch (Exception ex) {
-                response.setStatus(406);
-                
-                out.write(x.HandleException(ex));
-            }
+                                out.write(x.HandleException(ex));
+                        }
+                } 
         }
-    }
 %>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/juddi/blob/5eda4a71/juddi-gui/src/main/webapp/settings.jsp
----------------------------------------------------------------------
diff --git a/juddi-gui/src/main/webapp/settings.jsp b/juddi-gui/src/main/webapp/settings.jsp
index d582f92..3ff82fd 100644
--- a/juddi-gui/src/main/webapp/settings.jsp
+++ b/juddi-gui/src/main/webapp/settings.jsp
@@ -19,6 +19,7 @@
  */
 --%>
 
+<%@page import="org.apache.juddi.v3.client.config.UDDINode"%>
 <%@page import="org.apache.juddi.v3.client.config.ClientConfig"%>
 <%@page import="org.apache.commons.configuration.Configuration"%>
 <%@page import="java.util.Iterator"%>
@@ -40,7 +41,7 @@
             <h2><%=ResourceLoader.GetResource(session, "navbar.settings")%></h2>
             <p><%=ResourceLoader.GetResource(session, "items.settings.description")%></p>
             <%
-                UddiHub x = UddiHub.getInstance(application, session);
+                    UddiHub x = UddiHub.getInstance(application, session);
 
 
             %>
@@ -51,117 +52,132 @@
                 <tr><th><%=ResourceLoader.GetResource(session, "items.key")%></th>
                     <th><%=ResourceLoader.GetResource(session, "items.value")%></th></tr>
                         <%
-                            try {
-                                ClientConfig cfg = x.GetJuddiClientConfig();
-                                Configuration cfg2 = cfg.getConfiguration();
-                                Iterator<String> it2 = cfg.getConfiguration().getKeys();
-
-                                String[] nodes2 = cfg2.getStringArray("client.nodes.node.name");
-
-                                while (it2.hasNext()) {
-
-                                    String key = it2.next();
-
-                                    String value = cfg.getConfiguration().getString(key);
-                                    if ((key.startsWith("client") || (key.startsWith("config.props"))) && !key.startsWith("client.nodes.node")) {
-                                        out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                        out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                        out.write(StringEscapeUtils.escapeHtml(key));
-                                        out.write("</td><td><div ");
-                                        if ((key.startsWith("client") && !key.startsWith("client.nodes")) || key.startsWith("config.props")) {
-                                            out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\"");
+                                try {
+                                        ClientConfig cfg = x.GetJuddiClientConfig();
+                                        Configuration cfg2 = cfg.getConfiguration();
+                                        Iterator<String> it2 = cfg.getConfiguration().getKeys();
+
+                                        String[] nodes2 = cfg2.getStringArray("client.nodes.node.name");
+
+                                        while (it2.hasNext()) {
+
+                                                String key = it2.next();
+
+                                                String value = cfg.getConfiguration().getString(key);
+                                                if ((key.startsWith("client") || (key.startsWith("config.props"))) && !key.startsWith("client.nodes.node")) {
+                                                        out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                                        out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                                        out.write(StringEscapeUtils.escapeHtml(key));
+                                                        out.write("</td><td><div ");
+                                                        if ((key.startsWith("client") && !key.startsWith("client.nodes")) || key.startsWith("config.props")) {
+                                                                out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\"");
+                                                        }
+                                                        out.write(">");
+                                                        out.write(StringEscapeUtils.escapeHtml(value));
+                                                        out.write("</div></td></tr>");
+                                                }
                                         }
-                                        out.write(">");
-                                        out.write(StringEscapeUtils.escapeHtml(value));
-                                        out.write("</div></td></tr>");
-                                    }
-                                }
+                        %>
+            </table><br>
+            <a class="btn btn-primary" href="javascript:newItem();"><i class="icon-large icon-plus-sign"></i> <%=ResourceLoader.GetResource(session, "actions.add")%></a>
+            <a class="btn btn-primary " href="javascript:saveSettings();"><i class="icon-large icon-save"></i> <%=ResourceLoader.GetResource(session, "actions.save")%></a>
 
-                                for (int i = 0; i < nodes2.length; i++) {
-
-                                    String key = "client.nodes.node(" + i + ").name";
-                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                    out.write(StringEscapeUtils.escapeHtml(key));
-                                    out.write("</td><td><div ");
-                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
-                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
-                                    out.write("</div></td></tr>");
-
-                                    key = "client.nodes.node(" + i + ").description";
-                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                    out.write(StringEscapeUtils.escapeHtml(key));
-                                    out.write("</td><td><div ");
-                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
-                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
-                                    out.write("</div></td></tr>");
-
-                                    key = "client.nodes.node(" + i + ").proxyTransport";
-                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                    out.write(StringEscapeUtils.escapeHtml(key));
-                                    out.write("</td><td><div ");
-                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
-                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
-                                    out.write("</div></td></tr>");
-
-                                    key = "client.nodes.node(" + i + ").custodyTransferUrl";
-                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                    out.write(StringEscapeUtils.escapeHtml(key));
-                                    out.write("</td><td><div ");
-                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
-                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
-                                    out.write("</div></td></tr>");
-
-                                    key = "client.nodes.node(" + i + ").inquiryUrl";
-                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                    out.write(StringEscapeUtils.escapeHtml(key));
-                                    out.write("</td><td><div ");
-                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
-                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
-                                    out.write("</div></td></tr>");
-
-                                    key = "client.nodes.node(" + i + ").publishUrl";
-                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                    out.write(StringEscapeUtils.escapeHtml(key));
-                                    out.write("</td><td><div ");
-                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
-                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
-                                    out.write("</div></td></tr>");
-
-                                    key = "client.nodes.node(" + i + ").securityUrl";
-                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                    out.write(StringEscapeUtils.escapeHtml(key));
-                                    out.write("</td><td><div ");
-                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
-                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
-                                    out.write("</div></td></tr>");
-
-                                    key = "client.nodes.node(" + i + ").subscriptionUrl";
-                                    out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
-                                    out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
-                                    out.write(StringEscapeUtils.escapeHtml(key));
-                                    out.write("</td><td><div ");
-                                    out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
-                                    out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
-                                    out.write("</div></td></tr>");
+            <hr>
+            <h2>Node Management</h2>
+            <a class="btn btn-primary" href="javascript:newNode();"><i class="icon-large icon-plus-sign"></i> <%=ResourceLoader.GetResource(session, "actions.add")%></a>
+            <table class="table table-hover">
+
+
+
+                <%
+
+                                List<Node> nodesist = x.GetJuddiClientConfig().getUDDINodeList();
+                                for (int i = 0; i < nodesist.size(); i++) {
+                                        out.write("<tr><td>");
+                                        out.write(StringEscapeUtils.escapeHtml(nodesist.get(i).getName()));
+                                        out.write("</td><td><a href=\"javascript:editNode('" + StringEscapeUtils.escapeJavaScript(nodesist.get(i).getName()) + "');\">Edit</a></td>"
+                                                + "<td><a href=\"javascript:deleteNode('" + StringEscapeUtils.escapeJavaScript(nodesist.get(i).getName()) + "');\">Delete</a></td></tr>");
+                                        /*
+                                         String key = "client.nodes.node(" + i + ").name";
+                                         out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                         out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                         out.write(StringEscapeUtils.escapeHtml(key));
+                                         out.write("</td><td><div ");
+                                         out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                         out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                         out.write("</div></td></tr>");
+
+                                         key = "client.nodes.node(" + i + ").description";
+                                         out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                         out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                         out.write(StringEscapeUtils.escapeHtml(key));
+                                         out.write("</td><td><div ");
+                                         out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                         out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                         out.write("</div></td></tr>");
+
+                                         key = "client.nodes.node(" + i + ").proxyTransport";
+                                         out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                         out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                         out.write(StringEscapeUtils.escapeHtml(key));
+                                         out.write("</td><td><div ");
+                                         out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                         out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                         out.write("</div></td></tr>");
+
+                                         key = "client.nodes.node(" + i + ").custodyTransferUrl";
+                                         out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                         out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                         out.write(StringEscapeUtils.escapeHtml(key));
+                                         out.write("</td><td><div ");
+                                         out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                         out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                         out.write("</div></td></tr>");
+
+                                         key = "client.nodes.node(" + i + ").inquiryUrl";
+                                         out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                         out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                         out.write(StringEscapeUtils.escapeHtml(key));
+                                         out.write("</td><td><div ");
+                                         out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                         out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                         out.write("</div></td></tr>");
+
+                                         key = "client.nodes.node(" + i + ").publishUrl";
+                                         out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                         out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                         out.write(StringEscapeUtils.escapeHtml(key));
+                                         out.write("</td><td><div ");
+                                         out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                         out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                         out.write("</div></td></tr>");
+
+                                         key = "client.nodes.node(" + i + ").securityUrl";
+                                         out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                         out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                         out.write(StringEscapeUtils.escapeHtml(key));
+                                         out.write("</td><td><div ");
+                                         out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                         out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                         out.write("</div></td></tr>");
+
+                                         key = "client.nodes.node(" + i + ").subscriptionUrl";
+                                         out.write("<tr id=\"" + StringEscapeUtils.escapeHtml(key) + "ROW\"><td>");
+                                         out.write("<a href=\"javascript:removeKey('" + StringEscapeUtils.escapeJavaScript(key) + "');\"><i class=\"icon-trash icon-large\"></i></a>");
+                                         out.write(StringEscapeUtils.escapeHtml(key));
+                                         out.write("</td><td><div ");
+                                         out.write("class=\"edit\" id=\"" + StringEscapeUtils.escapeHtml(key) + "\">");
+                                         out.write(StringEscapeUtils.escapeHtml(cfg2.getString(key)));
+                                         out.write("</div></td></tr>");*/
 
                                 }
 
-
-                            } catch (Exception ex) {
+                        } catch (Exception ex) {
                                 x.log.error(ex);
-                            }
-                        %>
+                        }
+                %>
             </table>
 
-            <a class="btn btn-primary" href="javascript:newItem();"><i class="icon-large icon-plus-sign"></i> <%=ResourceLoader.GetResource(session, "actions.add")%></a>
-            <a class="btn btn-primary " href="javascript:saveSettings();"><i class="icon-large icon-save"></i> <%=ResourceLoader.GetResource(session, "actions.save")%></a>
             <script type="text/javascript">
 
                 Reedit();
@@ -169,7 +185,7 @@
                 {
                     var url = 'ajax/settings.jsp';
                     var postbackdata = new Array();
-                    $("div.edit").each(function()
+                    $("div.edit").each(function ()
                     {
                         var id = $(this).attr("id");
                         var value = $(this).text();
@@ -182,7 +198,7 @@
                         name: "nonce",
                         value: $("#nonce").val()
                     });
-                    $("div.noedit").each(function()
+                    $("div.noedit").each(function ()
                     {
                         var id = $(this).attr("id");
                         var value = $(this).text();
@@ -192,6 +208,11 @@
                         });
                     });
 
+                    postbackdata.push({
+                        name: "formaction",
+                        value: "settings"
+                    });
+
 
                     var request = $.ajax({
                         url: url,
@@ -203,18 +224,18 @@
                     });
 
 
-                        request.done(function(msg) {
-        window.console && console.log('postback done '  + url);                
-        
-        $("#alert_results").html('<i class="icon-2x icon-thumbs-up"></i><br>'  + msg);
-        $("#alert").modal();
-    });
+                    request.done(function (msg) {
+                        window.console && console.log('postback done ' + url);
+
+                        $("#alert_results").html('<i class="icon-2x icon-thumbs-up"></i><br>' + msg);
+                        $("#alert").modal();
+                    });
 
-    request.fail(function(jqXHR, textStatus) {
-        window.console && console.log('postback failed ' + url);                                
-        $("#alert_results").html('<i class="icon-2x icon-thumbs-down"></i><br>'  + jqXHR.responseText + textStatus);
-        $("#alert").modal();
-    });         
+                    request.fail(function (jqXHR, textStatus) {
+                        window.console && console.log('postback failed ' + url);
+                        $("#alert_results").html('<i class="icon-2x icon-thumbs-down"></i><br>' + jqXHR.responseText + textStatus);
+                        $("#alert").modal();
+                    });
 
 
                 }
@@ -233,27 +254,27 @@
                         <th><%=ResourceLoader.GetResource(session, "items.value")%></th></tr>
                             <%
 
-                                try {
-                                    ClientConfig cfg = x.GetJuddiClientConfig();
-                                    Iterator<String> it2 = cfg.getConfiguration().getKeys();
-
-                                    while (it2.hasNext()) {
-
-                                        String key = it2.next();
-
-                                        if (!key.startsWith("config.props.") && !key.startsWith("client")) {
-                                            String value = cfg.getConfiguration().getString(key);
-                                            out.write("<tr><td>");
-                                            out.write(StringEscapeUtils.escapeHtml(key));
-                                            out.write("</td><td><div ");
-                                            out.write(">");
-                                            out.write(StringEscapeUtils.escapeHtml(value));
-                                            out.write("</div></td></tr>");
-                                        }
+                                    try {
+                                            ClientConfig cfg = x.GetJuddiClientConfig();
+                                            Iterator<String> it2 = cfg.getConfiguration().getKeys();
+
+                                            while (it2.hasNext()) {
+
+                                                    String key = it2.next();
+
+                                                    if (!key.startsWith("config.props.") && !key.startsWith("client")) {
+                                                            String value = cfg.getConfiguration().getString(key);
+                                                            out.write("<tr><td>");
+                                                            out.write(StringEscapeUtils.escapeHtml(key));
+                                                            out.write("</td><td><div ");
+                                                            out.write(">");
+                                                            out.write(StringEscapeUtils.escapeHtml(value));
+                                                            out.write("</div></td></tr>");
+                                                    }
+                                            }
+                                    } catch (Exception ex) {
+                                            x.log.error(ex);
                                     }
-                                } catch (Exception ex) {
-                                    x.log.error(ex);
-                                }
 
                             %>
                 </table>
@@ -264,7 +285,201 @@
 
 
     <script type="text/javascript">
+        function deleteNode(node) {
+            var url = 'ajax/settings.jsp';
+            var postbackdata = new Array();
+
+            postbackdata.push({
+                name: "nonce",
+                value: $("#nonce").val()
+            });
+
+            postbackdata.push({
+                name: "nodename",
+                value: node
+            });
+
+
+
+            postbackdata.push({
+                name: "formaction",
+                value: "deleteNode"
+            });
+
+
+            var request = $.ajax({
+                url: url,
+                type: "POST",
+                //  data" + i18n_type + ": "html", 
+                cache: false,
+                //  processData: false,f
+                data: postbackdata
+            });
+
+
+            request.done(function (msg) {
+                window.console && console.log('postback done ' + url);
+
+                $("#alert_results").html('<i class="icon-2x icon-thumbs-up"></i><br>' + msg);
+                $("#alert").modal();
+            });
+
+            request.fail(function (jqXHR, textStatus) {
+                window.console && console.log('postback failed ' + url);
+                $("#alert_results").html('<i class="icon-2x icon-thumbs-down"></i><br>' + jqXHR.responseText + textStatus);
+                $("#alert").modal();
+            });
+        }
+        function editNode(node) {
+            var url = 'ajax/settings.jsp';
+            var postbackdata = new Array();
+
+            postbackdata.push({
+                name: "nonce",
+                value: $("#nonce").val()
+            });
+
+            postbackdata.push({
+                name: "nodename",
+                value: node
+            });
+
+
+
+            postbackdata.push({
+                name: "formaction",
+                value: "getNode"
+            });
+
+
+            var request = $.ajax({
+                url: url,
+                type: "POST",
+                //  data" + i18n_type + ": "html", 
+                cache: false,
+                //  processData: false,f
+                data: postbackdata
+            });
+
+
+            request.done(function (msg) {
+                window.console && console.log('postback done ' + url);
 
+                $("#alterNodeModalContent").html(msg);
+                $("#alterNodeModal").modal();
+            });
+
+            request.fail(function (jqXHR, textStatus) {
+                window.console && console.log('postback failed ' + url);
+                $("#alert_results").html('<i class="icon-2x icon-thumbs-down"></i><br>' + jqXHR.responseText + textStatus);
+                $("#alert").modal();
+            });
+
+        }
+        function newNode() {
+            $("#newNodeModal").modal('show');
+
+        }
+        function saveNewNode() {
+            var url = 'ajax/settings.jsp';
+            var postbackdata = new Array();
+
+            postbackdata.push({
+                name: "nonce",
+                value: $("#nonce").val()
+            });
+            $(".crudnode").each(function ()
+            {
+                var id = $(this).attr("id");
+                var value = $(this).val();
+                postbackdata.push({
+                    name: id,
+                    value: value
+                });
+            });
+
+            postbackdata.push({
+                name: "formaction",
+                value: "newNode"
+            });
+
+
+            var request = $.ajax({
+                url: url,
+                type: "POST",
+                //  data" + i18n_type + ": "html", 
+                cache: false,
+                //  processData: false,f
+                data: postbackdata
+            });
+
+
+            request.done(function (msg) {
+                window.console && console.log('postback done ' + url);
+
+                $("#alert_results").html('<i class="icon-2x icon-thumbs-up"></i><br>' + msg);
+                $('#newNodeModal').modal('hide');
+                $("#alert").modal();
+            });
+
+            request.fail(function (jqXHR, textStatus) {
+                window.console && console.log('postback failed ' + url);
+                $("#alert_results").html('<i class="icon-2x icon-thumbs-down"></i><br>' + jqXHR.responseText + textStatus);
+                $("#alert").modal();
+            });
+
+        }
+        function saveNode(){
+            var url = 'ajax/settings.jsp';
+            var postbackdata = new Array();
+
+            postbackdata.push({
+                name: "nonce",
+                value: $("#nonce").val()
+            });
+            $(".crudnodeAlter").each(function ()
+            {
+                var id = $(this).attr("id");
+                var value = $(this).val();
+                postbackdata.push({
+                    name: id,
+                    value: value
+                });
+            });
+
+            postbackdata.push({
+                name: "formaction",
+                value: "alterNode"
+            });
+
+
+            var request = $.ajax({
+                url: url,
+                type: "POST",
+                //  data" + i18n_type + ": "html", 
+                cache: false,
+                //  processData: false,f
+                data: postbackdata
+            });
+
+
+            request.done(function (msg) {
+                window.console && console.log('postback done ' + url);
+                $('#alterNodeModal').modal('hide');
+                $("#alert_results").html('<i class="icon-2x icon-thumbs-up"></i><br>' + msg);
+                $("#alert").modal();
+               
+                
+            });
+
+            request.fail(function (jqXHR, textStatus) {
+                window.console && console.log('postback failed ' + url);
+                $("#alert_results").html('<i class="icon-2x icon-thumbs-down"></i><br>' + jqXHR.responseText + textStatus);
+                $("#alert").modal();
+            });
+            
+            
+        }
         function newItem() {
             $("#newItemModal").modal('show');
         }
@@ -303,6 +518,54 @@
         </div>
     </div>
 
+    <div class="modal hide fade container" id="newNodeModal">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+            <h3><%=ResourceLoader.GetResource(session, "items.settings.add")%></h3>
+        </div>
+        <div class="modal-body" id="newNodeContent">
+            <%
+                    out.write("<table class=\"table table-hover\">");
+                    out.write("<tr><td>Node Name</td><td><input class=\"crudnode\" type=text id=\"nodename\" value=\"" + "\"></td></tr>");
+
+                    out.write("<tr><td>Description</td><td><input class=\"crudnode\" type=text id=\"description\" value=\"" + "\"></td></tr>");
+                    out.write("<tr><td>Transport</td><td><input class=\"crudnode\" type=text id=\"transport\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Inquiry</td><td><input class=\"crudnode\" type=text id=\"inquiry\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Publish</td><td><input class=\"crudnode\" type=text id=\"publish\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Security</td><td><input class=\"crudnode\" type=text id=\"security\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Custody Transfer</td><td><input class=\"crudnode\" type=text id=\"custody\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Subscription</td><td><input class=\"crudnode\" type=text id=\"subscription\" value=\"\"></td></tr>");
+                    out.write("<tr><td colspan=2>Not used by juddi-gui");
+                    out.write("<tr><td>Factory Initial</td><td><input type=text class=\"crudnode\" id=\"factoryinit\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Factory Naming Provider</td><td><input class=\"crudnode\" type=text id=\"factorynaming\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Factor URL Package</td><td><input class=\"crudnode\" type=text id=\"factoryurl\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Inquiry REST</td><td><input class=\"crudnode\" type=text id=\"inquiryrest\" value=\"\"></td></tr>");
+                    out.write("<tr><td>Replication</td><td><input class=\"crudnode\" type=text id=\"replication\" value=\"\"></td></tr>");
+                    out.write("<tr><td>jUDDI API</td><td><input class=\"crudnode\" type=text id=\"juddiapi\" value=\"\"></td></tr>");
+                    out.write("</table>");
+            %>
+        </div>
+        <div class="modal-footer">
+            <a href="javascript:saveNewNode();" class="btn btn-primary"><%=ResourceLoader.GetResource(session, "actions.add")%></a>
+            <a href="javascript:$('#newNodeModal').modal('hide');" class="btn"><%=ResourceLoader.GetResource(session, "modal.close")%></a>
+        </div>
+    </div>
+
+        <div class="modal hide fade container" id="alterNodeModal">
+        <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
+            <h3><%=ResourceLoader.GetResource(session, "items.settings.edit")%></h3>
+        </div>
+        <div class="modal-body" id="alterNodeModalContent">
+           
+        </div>
+        <div class="modal-footer">
+            <a href="javascript:saveNode();" class="btn btn-primary"><%=ResourceLoader.GetResource(session, "actions.save")%></a>
+            <a href="javascript:$('#alterNodeModal').modal('hide');" class="btn"><%=ResourceLoader.GetResource(session, "modal.close")%></a>
+        </div>
+    </div>
+
+        
 
 
     <%@include file="header-bottom.jsp" %>
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org