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 2014/01/12 19:57:44 UTC

svn commit: r1557594 - in /juddi/trunk/juddi-examples/subscription-notification-amqp/src/main: java/org/apache/juddi/subscription/notify/ resources/ resources/META-INF/

Author: alexoree
Date: Sun Jan 12 18:57:43 2014
New Revision: 1557594

URL: http://svn.apache.org/r1557594
Log:
JUDDI-717 updating the amqp test cases

Added:
    juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/Demo.java
    juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/resources/
    juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/resources/META-INF/
    juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/resources/META-INF/uddi.xml
Modified:
    juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/AMQPNotifier.java

Modified: juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/AMQPNotifier.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/AMQPNotifier.java?rev=1557594&r1=1557593&r2=1557594&view=diff
==============================================================================
--- juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/AMQPNotifier.java (original)
+++ juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/AMQPNotifier.java Sun Jan 12 18:57:43 2014
@@ -46,102 +46,116 @@ import org.uddi.v3_service.DispositionRe
 
 /**
  * AMQP Notifier
- * 
- * This is designed to enable users to setup AMQP based alerts for UDDI subscriptions
- * 
- * This class is partically complete, but it is largely untested and lacks any kind of 
- * 
+ *
+ * This is designed to enable users to setup AMQP based alerts for UDDI
+ * subscriptions
+ *
+ * This class is partically complete, but it is largely untested and lacks any
+ * kind of
+ *
  * the following settings need to be added to the juddiv3.xml file
  * amqp.java.naming.factory.initial=org.apache.qpid.jndi.PropertiesFileInitialContextFactory
- * amqp.connectionfactory.qpidConnectionfactory
- * amqp.destination=(some topic or queue name)
- * amqp.destination.type=topic
- * 
- * usage
- * create a service/bindingtemplate/accessPoint where the value is amqp://url_to_qpid/amqp The useType must be "endPoint".
- * create a subscription where the binding template reference points to this endpoint.
- * trigger the subscription and wait for delivery.
+ * amqp.connectionfactory.qpidConnectionfactory amqp.destination=(some topic or
+ * queue name) amqp.destination.type=topic
+ *
+ * usage create a service/bindingtemplate/accessPoint where the value is
+ * amqp://url_to_qpid/amqp The useType must be "endPoint". create a subscription
+ * where the binding template reference points to this endpoint. trigger the
+ * subscription and wait for delivery.
+ *
  * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
  */
 public class AMQPNotifier implements Notifier {
 
-    Log log = LogFactory.getLog(this.getClass());
-    String destination = null;
+        Log log = LogFactory.getLog(this.getClass());
+        String destination = null;
 
-    public AMQPNotifier(BindingTemplate bindingTemplate) throws URISyntaxException, ConfigurationException {
-        super();
-        if (!AccessPointType.END_POINT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
-            log.error("AMQP enpoints only support AccessPointType " + AccessPointType.END_POINT);
-        }
-        String accessPointUrl = bindingTemplate.getAccessPointUrl().toLowerCase();
-        if (!accessPointUrl.startsWith("amqp:")) {
-            log.warn("AMQP accessPointUrl for bindingTemplate " + bindingTemplate.getEntityKey()
-                    + " should start with 'amqp:'");
-        } else {
-            destination = accessPointUrl.substring(accessPointUrl.indexOf(":") + 1);
+        String exchangeType = null;
+        String exchangeName = null;
 
+        public AMQPNotifier(BindingTemplate bindingTemplate) throws URISyntaxException, ConfigurationException {
+                super();
+                if (!AccessPointType.END_POINT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
+                        log.error("AMQP enpoints only support AccessPointType " + AccessPointType.END_POINT);
+                }
+                String accessPointUrl = bindingTemplate.getAccessPointUrl().toLowerCase();
+                if (!accessPointUrl.startsWith("amqp:")) {
+                        log.warn("AMQP accessPointUrl for bindingTemplate " + bindingTemplate.getEntityKey()
+                                + " should start with 'amqp:'");
+                } else {
+                        destination = accessPointUrl.substring(accessPointUrl.indexOf(":") + 1);
+
+                }
+                for (int i = 0; i < bindingTemplate.getTmodelInstanceInfos().size(); i++) {
+                        if (bindingTemplate.getTmodelInstanceInfos().get(i).getTmodelKey().equals(Demo.TMODEL_DESTINATION_TYPE)) {
+                                exchangeType = bindingTemplate.getTmodelInstanceInfos().get(i).getInstanceParms();
+                        }
+                        if (bindingTemplate.getTmodelInstanceInfos().get(i).getTmodelKey().equals(Demo.TMODEL_DESTINATION_NAME)) {
+                                exchangeName = bindingTemplate.getTmodelInstanceInfos().get(i).getInstanceParms();
+                        }
+                }
         }
-    }
 
-    @Override
-    public DispositionReport notifySubscriptionListener(NotifySubscriptionListener body) throws DispositionReportFaultMessage, RemoteException {
-        Connection connection = null;
-        Context context = null;
-        boolean success = false;
-        String err = null;
-        try {
-            if (destination != null) {
-                log.info("Sending notification AMQP to " + destination);
-                Properties properties = new Properties();
-                 
-                properties.put("java.naming.factory.initial", 
-                        AppConfig.getConfiguration().getString("amqp.java.naming.factory.initial", "org.apache.qpid.jndi.PropertiesFileInitialContextFactory"));
-                properties.put("connectionfactory.qpidConnectionfactory", destination);
-                properties.put("destination." +AppConfig.getConfiguration().getString("amqp.destination") ,
-                        AppConfig.getConfiguration().getString("amqp.destination.type"));
-                //test only
-                //properties.load(this.getClass().getResourceAsStream("hello.properties"));
-                context = new InitialContext(properties);
-
-                ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("qpidConnectionfactory");
-                connection = connectionFactory.createConnection();
-                connection.start();
-
-                Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
-                Destination destinationLocal = (Destination) context.lookup("UDDISubscriptionUpdates");
-
-                MessageProducer messageProducer = session.createProducer(destinationLocal);
-
-
-                String subscriptionResultXML = JAXBMarshaller.marshallToString(body, JAXBMarshaller.PACKAGE_SUBSCR_RES);
-                TextMessage message = session.createTextMessage(subscriptionResultXML);
-                messageProducer.send(message);
-                success = true;
-
-            }
-        } catch (Exception e) {
-            log.error(e.getMessage(), e);
-            err = e.getMessage();
-
-        } finally {
-            try {
-                connection.close();
-            } catch (JMSException ex) {
-                log.error(null, ex);
-            }
-            try {
-                context.close();
-            } catch (NamingException ex) {
-                log.error(null, ex);
-            }
-        }
-        if (!success) {
-            throw new DispositionReportFaultMessage(err, null);
-        }
-        DispositionReport dr = new DispositionReport();
-        Result res = new Result();
-        dr.getResult().add(res);
+        @Override
+        public DispositionReport notifySubscriptionListener(NotifySubscriptionListener body) throws DispositionReportFaultMessage, RemoteException {
+                Connection connection = null;
+                Context context = null;
+                boolean success = false;
+                String err = null;
+                try {
+                        if (destination != null && exchangeType != null && exchangeName != null) {
+                                log.info("Sending notification AMQP to " + destination);
+                                Properties properties = new Properties();
+
+                                properties.put("java.naming.factory.initial", "org.apache.qpid.jndi.PropertiesFileInitialContextFactory");
+                                properties.put("connectionfactory.qpidConnectionfactory", destination);
+                                properties.put("destination." + exchangeName,exchangeType);
+
+                                context = new InitialContext(properties);
+
+                                ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("qpidConnectionfactory");
+                                connection = connectionFactory.createConnection();
+                                connection.start();
+
+                                Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                                Destination destinationLocal = (Destination) context.lookup(exchangeName);
+
+                                MessageProducer messageProducer = session.createProducer(destinationLocal);
+
+                                String subscriptionResultXML = JAXBMarshaller.marshallToString(body, JAXBMarshaller.PACKAGE_SUBSCR_RES);
+                                TextMessage message = session.createTextMessage(subscriptionResultXML);
+                                messageProducer.send(message);
+                                success = true;
+
+                        }
+                } catch (Exception e) {
+                        log.error("Error deliverying AMQP subscription " + e.getMessage());
+                        log.debug("Error deliverying AMQP subscription " + e.getMessage(),e);
+                        err = e.getMessage();
+
+                } finally {
+                        try {
+                                if (connection != null) {
+                                        connection.close();
+                                }
+                        } catch (JMSException ex) {
+                                log.error(null, ex);
+                        }
+                        try {
+                                if (context != null) {
+                                        context.close();
+                                }
+                        } catch (NamingException ex) {
+                                log.error(null, ex);
+                        }
+                }
+                if (!success) {
+                        throw new DispositionReportFaultMessage(err, null);
+                }
+                DispositionReport dr = new DispositionReport();
+                Result res = new Result();
+                dr.getResult().add(res);
 
-        return dr;
-    }
+                return dr;
+        }
 }

Added: juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/Demo.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/Demo.java?rev=1557594&view=auto
==============================================================================
--- juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/Demo.java (added)
+++ juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/java/org/apache/juddi/subscription/notify/Demo.java Sun Jan 12 18:57:43 2014
@@ -0,0 +1,218 @@
+/*
+ * Copyright 2014 The Apache Software Foundation.
+ *
+ * Licensed 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.juddi.subscription.notify;
+
+import java.util.Properties;
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.Destination;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageListener;
+import javax.jms.Session;
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.xml.datatype.DatatypeFactory;
+import org.apache.juddi.api_v3.AccessPointType;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.client.config.UDDIClerk;
+import org.apache.juddi.v3.client.config.UDDIClient;
+import org.apache.qpid.client.AMQAnyDestination;
+import org.apache.qpid.client.AMQConnection;
+import org.apache.qpid.client.AMQTopic;
+import org.uddi.api_v3.AccessPoint;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BindingTemplates;
+import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.BusinessServices;
+import org.uddi.api_v3.Description;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindService;
+import org.uddi.api_v3.FindTModel;
+import org.uddi.api_v3.InstanceDetails;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.TModel;
+import org.uddi.api_v3.TModelInstanceDetails;
+import org.uddi.api_v3.TModelInstanceInfo;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionFilter;
+
+/**
+ *
+ * @author Alex O'Ree
+ */
+public class Demo implements MessageListener {
+
+        public static void main(String[] args) throws Exception {
+                System.out.println("Hello world!");
+                new Demo().Fire();
+        }
+
+        public static final String TOPIC="UDDI";
+        public static final String TMODEL_KEY_BASE = "uddi:amqptestdomain:";
+        public static final String TMODEL_KEY_TOPIC = TMODEL_KEY_BASE + ":topic";
+        public static final String TMODEL_DESTINATION_TYPE = TMODEL_KEY_BASE + "amqp.destination.type";
+        public static final String TMODEL_DESTINATION_NAME = TMODEL_KEY_BASE + "amqp.destination";
+
+        private void Fire() throws Exception {
+                String amqpURL = "amqp://guest:guest@clientid/?brokerlist='tcp://localhost:5672'";
+                UDDIClient client = new UDDIClient("META-INF/uddi.xml");
+                UDDIClerk clerk = client.getClerk("default");
+                String base = "uddi:amqptestdomain:";
+                String lang = "en";
+
+                TModel destinationType = new TModel();
+                destinationType.setName(new Name("AMQP Destination Type", lang));
+                destinationType.getDescription().add(new Description("topicExchange, queue, etc", lang));
+                destinationType.setTModelKey(TMODEL_DESTINATION_TYPE);
+
+                TModel destinationName = new TModel();
+                destinationName.setName(new Name("AMQP Destination Name", lang));
+                destinationName.getDescription().add(new Description("The name of the topic or queue", lang));
+                destinationName.setTModelKey(TMODEL_DESTINATION_NAME);
+
+                TModel createKeyGenator = UDDIClerk.createKeyGenator(base + "keygenerator", "AMQP Test Key domain", lang);
+                BusinessEntity be = new BusinessEntity();
+                be.setBusinessKey(base + "business");
+                be.getName().add(new Name("AMQP Test callbacks", lang));
+                be.setBusinessServices(new BusinessServices());
+                BusinessService bs = new BusinessService();
+                bs.setBindingTemplates(new BindingTemplates());
+                bs.setBusinessKey(base + "business");
+                bs.setServiceKey(base + "service");
+
+                BindingTemplate bt = new BindingTemplate();
+                bt.setBindingKey(base + "binding");
+                bt.setServiceKey(base + "service");
+                bt.setAccessPoint(new AccessPoint(amqpURL, AccessPointType.END_POINT.toString()));
+                bt.setTModelInstanceDetails(new TModelInstanceDetails());
+
+                TModelInstanceInfo version = UDDIClerk.createServiceInterfaceVersion("1.0", lang);
+                bt.getTModelInstanceDetails().getTModelInstanceInfo().add(version);
+
+                TModelInstanceInfo transport = new TModelInstanceInfo();
+                transport.setTModelKey(UDDIConstants.TRANSPORT_AMQP);
+                bt.getTModelInstanceDetails().getTModelInstanceInfo().add(transport);
+
+                TModelInstanceInfo topic = new TModelInstanceInfo();
+                topic.setTModelKey(TMODEL_DESTINATION_TYPE);
+                topic.setInstanceDetails(new InstanceDetails());
+                topic.getInstanceDetails().setInstanceParms("topicExchange");
+                bt.getTModelInstanceDetails().getTModelInstanceInfo().add(topic);
+                
+                TModelInstanceInfo name = new TModelInstanceInfo();
+                name.setTModelKey(TMODEL_DESTINATION_NAME);
+                name.setInstanceDetails(new InstanceDetails());
+                name.getInstanceDetails().setInstanceParms(TOPIC);
+                bt.getTModelInstanceDetails().getTModelInstanceInfo().add(name);
+                
+
+                bs.getBindingTemplates().getBindingTemplate().add(bt);
+
+                be.getBusinessServices().getBusinessService().add(bs);
+                try {
+                        System.out.println("Registering tModel");
+                        clerk.register(createKeyGenator);
+                        System.out.println("Registering destination type tmodel");
+                        clerk.register(destinationType);
+                        System.out.println("Registering destination name tmodel");
+                        clerk.register(destinationName);
+                        
+                        System.out.println("Registering business with callback definition");
+                        clerk.register(bs);
+
+                        Properties p = new Properties();
+                        p.setProperty("java.naming.factory.initial", "org.apache.qpid.jndi.PropertiesFileInitialContextFactory");
+                        p.setProperty("connectionfactory.qpidConnectionfactory", amqpURL);
+                        p.setProperty("destination.topicExchange", TOPIC);
+
+                        System.out.println("Connecting to AMQP at " + amqpURL);
+
+                        Context context = new InitialContext(p);
+
+                        ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup("topicExchange");
+                        Connection connection = connectionFactory.createConnection();
+                        connection.start();
+
+                        Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
+                        Destination destination = (Destination) context.lookup("topicExchange");
+
+                        MessageConsumer consumer = session.createConsumer(destination);
+
+                        consumer.setMessageListener(this);
+                        System.out.println("Connected and listening...");
+
+                        Subscription sub = new Subscription();
+                        sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(1000));
+                        sub.setBindingKey(base + "binding");
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        sub.getSubscriptionFilter().setFindBusiness(new FindBusiness());
+                        sub.getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers());
+                        sub.getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        sub.getSubscriptionFilter().getFindBusiness().getName().add(new Name(UDDIConstants.WILDCARD, null));
+
+                        Subscription subscriptionBiz = clerk.register(sub, clerk.getUDDINode().getApiNode());
+
+                        System.out.println("Registered FindBusiness subscription key: " + (subscriptionBiz.getSubscriptionKey()) + " bindingkey: " + subscriptionBiz.getBindingKey());
+
+                        sub = new Subscription();
+                        sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(1000));
+                        sub.setBindingKey(base + "binding");
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        sub.getSubscriptionFilter().setFindService(new FindService());
+                        sub.getSubscriptionFilter().getFindService().setFindQualifiers(new FindQualifiers());
+                        sub.getSubscriptionFilter().getFindService().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        sub.getSubscriptionFilter().getFindService().getName().add(new Name(UDDIConstants.WILDCARD, null));
+
+                        Subscription subscriptionSvc = clerk.register(sub, clerk.getUDDINode().getApiNode());
+
+                        System.out.println("Registered FindService subscription key: " + (subscriptionSvc.getSubscriptionKey()) + " bindingkey: " + subscriptionSvc.getBindingKey());
+
+                        sub = new Subscription();
+                        sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(1000));
+                        sub.setBindingKey(base + "binding");
+                        sub.setSubscriptionFilter(new SubscriptionFilter());
+                        sub.getSubscriptionFilter().setFindTModel(new FindTModel());
+                        sub.getSubscriptionFilter().getFindTModel().setFindQualifiers(new FindQualifiers());
+                        sub.getSubscriptionFilter().getFindTModel().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        sub.getSubscriptionFilter().getFindTModel().setName(new Name(UDDIConstants.WILDCARD, null));
+
+                        Subscription subscriptionTM = clerk.register(sub, clerk.getUDDINode().getApiNode());
+
+                        System.out.println("Registered FindTModel subscription key: " + (subscriptionTM.getSubscriptionKey()) + " bindingkey: " + subscriptionTM.getBindingKey());
+
+                        System.out.println("Waiting for callbacks. Now would be a good time to launch either another program or juddi-gui to make some changes. Press any key to stop!");
+
+                        System.out.println("Listening, press any key to quit");
+                        System.in.read();
+                        connection.close();
+
+                } catch (Exception ex) {
+
+                } finally {
+                        clerk.unRegisterBusiness(be.getBusinessKey());
+                        clerk.unRegisterTModel(createKeyGenator.getTModelKey());
+                }
+        }
+
+        @Override
+        public void onMessage(Message msg) {
+
+                System.out.println("Message received: " + msg);
+        }
+}

Added: juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/resources/META-INF/uddi.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/resources/META-INF/uddi.xml?rev=1557594&view=auto
==============================================================================
--- juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/resources/META-INF/uddi.xml (added)
+++ juddi/trunk/juddi-examples/subscription-notification-amqp/src/main/resources/META-INF/uddi.xml Sun Jan 12 18:57:43 2014
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<uddi xmlns="urn:juddi-apache-org:v3_client" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="classpath:/xsd/uddi-client.xsd">
+    <reloadDelay>5000</reloadDelay>
+    <client name="example-client">
+		<nodes>
+			<node>
+			    <!-- required 'default' node -->
+				<name>default</name> 
+                <properties>
+                    <property name="serverName" value="localhost"/>
+                    <property name="serverPort" value="8080"/>
+					<!-- for UDDI nodes that use HTTP u/p, using the following 
+					<property name="basicAuthUsername" value="root" />
+					<property name="basicAuthPassword" value="password" />
+					<property name="basicAuthPasswordIsEncrypted" value="false" />
+					<property name="basicAuthPasswordCryptoProvider" value="org.apache.juddi.v3.client.crypto.AES128Cryptor (an example)" />-->
+                </properties>
+				<description>Main jUDDI node</description>
+				<!-- JAX-WS Transport -->
+				<proxyTransport>org.apache.juddi.v3.client.transport.JAXWSTransport</proxyTransport>
+				<custodyTransferUrl>http://${serverName}:${serverPort}/juddiv3/services/custody-transfer</custodyTransferUrl>
+				<inquiryUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiry</inquiryUrl>
+				<inquiryRESTUrl>http://${serverName}:${serverPort}/juddiv3/services/inquiryRest</inquiryRESTUrl>
+		        <publishUrl>http://${serverName}:${serverPort}/juddiv3/services/publish</publishUrl>
+		        <securityUrl>http://${serverName}:${serverPort}/juddiv3/services/security</securityUrl>
+				<subscriptionUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription</subscriptionUrl>
+				<subscriptionListenerUrl>http://${serverName}:${serverPort}/juddiv3/services/subscription-listener</subscriptionListenerUrl>
+				<juddiApiUrl>http://${serverName}:${serverPort}/juddiv3/services/juddi-api</juddiApiUrl>
+			</node>
+		</nodes>
+		<signature>
+			<!-- signing stuff -->
+			<signingKeyStorePath>keystore.jks</signingKeyStorePath>
+			<signingKeyStoreType>JKS</signingKeyStoreType>
+			<signingKeyStoreFilePassword 
+				isPasswordEncrypted="false" 
+				cryptoProvider="org.apache.juddi.v3.client.crypto.AES128Cryptor">password</signingKeyStoreFilePassword>
+			<signingKeyPassword
+				isPasswordEncrypted="false" 
+				cryptoProvider="org.apache.juddi.v3.client.crypto.AES128Cryptor">password</signingKeyPassword>
+			<signingKeyAlias>my special key</signingKeyAlias>
+                        
+			<canonicalizationMethod>http://www.w3.org/2001/10/xml-exc-c14n#</canonicalizationMethod>
+			<signatureMethod>http://www.w3.org/2000/09/xmldsig#rsa-sha1</signatureMethod>
+			<XML_DIGSIG_NS>http://www.w3.org/2000/09/xmldsig#</XML_DIGSIG_NS>
+
+			<!-- validation stuff 
+			Used whenever someone views an entity that is signed and validation is required	-->
+			<!-- if this doesn't exist or is incorrect, the client will atempt to load the standard jdk trust store-->
+			<trustStorePath>truststore.jks</trustStorePath>
+			<trustStoreType>JKS</trustStoreType>
+			<trustStorePassword
+				isPasswordEncrypted="false" 
+				cryptoProvider="org.apache.juddi.v3.client.crypto.AES128Cryptor">password</trustStorePassword>
+			
+			<checkTimestamps>true</checkTimestamps>
+			<checkTrust>true</checkTrust>
+			<checkRevocationCRL>true</checkRevocationCRL>
+			<keyInfoInclusionSubjectDN>false</keyInfoInclusionSubjectDN>
+			<keyInfoInclusionSerial>false</keyInfoInclusionSerial>
+			<keyInfoInclusionBase64PublicKey>true</keyInfoInclusionBase64PublicKey>
+			<digestMethod>http://www.w3.org/2000/09/xmldsig#sha1</digestMethod>
+		</signature>
+		<subscriptionCallbacks>
+			<keyDomain>uddi:somebusiness</keyDomain>
+			<listenUrl>http://MyHostname:4444/callback</listenUrl>
+			<autoRegisterBindingTemplate>false</autoRegisterBindingTemplate>
+			<autoRegisterBusinessServiceKey>uddi:somebusiness:someservicekey</autoRegisterBusinessServiceKey>
+			<signatureBehavior>DoNothing</signatureBehavior>
+			<!--valid values are AbortIfSigned,Sign,DoNothing,SignOnlyIfParentIsntSigned, default is DoNothing-->
+		</subscriptionCallbacks>
+		<XtoWsdl>
+			<IgnoreSSLErrors>false</IgnoreSSLErrors>
+		</XtoWsdl>
+	</client>
+</uddi>



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