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/18 03:51:38 UTC

svn commit: r1559307 - /juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java

Author: alexoree
Date: Sat Jan 18 02:51:37 2014
New Revision: 1559307

URL: http://svn.apache.org/r1559307
Log:
JUDDI-673 missed the commit for this

Added:
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java

Added: juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java?rev=1559307&view=auto
==============================================================================
--- juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java (added)
+++ juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.java Sat Jan 18 02:51:37 2014
@@ -0,0 +1,207 @@
+/*
+ * 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.v3.tck;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.datatype.DatatypeFactory;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.jaxb.PrintUDDI;
+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.juddi.v3.client.subscription.ISubscriptionCallback;
+import org.apache.juddi.v3.client.subscription.SubscriptionCallbackListener;
+import org.apache.juddi.v3_service.JUDDIApiPortType;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.BusinessServices;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.TModel;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionFilter;
+import org.uddi.sub_v3.SubscriptionResultsList;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ *
+ * @author Alex O'Ree
+ */
+public class JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest implements ISubscriptionCallback {
+
+        private static final Log logger = LogFactory.getLog(JUDDI_101_ClientSubscriptionCallbackAPIIntegrationTest.class);
+        private static UDDIClient manager;
+        private static UDDIClerk clerk;
+        private static UDDISecurityPortType security = null;
+        private static JUDDIApiPortType publisher = null;
+
+        private static String authInfo = null;
+
+        @AfterClass
+        public static void stopManager() throws ConfigurationException {
+
+        }
+
+        @BeforeClass
+        public static void startManager() throws ConfigurationException {
+
+                manager = new UDDIClient();
+                manager.start();
+                clerk=manager.getClerk("default");
+                clerk.setPassword(TckPublisher.getJoePassword());
+                clerk.setPublisher(TckPublisher.getJoePublisherId());
+                clerk.setIsPasswordEncrypted(false);
+                try {
+                        //logger.debug("Getting auth tokens..");
+                } catch (Exception e) {
+                        logger.error(e.getMessage(), e);
+                        Assert.fail(e.getMessage());
+                }
+        }
+
+        @Test
+        public void SubscriptionCallbackTest1() throws Exception {
+                //first some setup
+                reset();
+                
+                
+                
+                TModel createKeyGenator = UDDIClerk.createKeyGenator("somebusiness", "A test key domain SubscriptionCallbackTest1", "SubscriptionCallbackTest1");
+                Assert.assertNotNull(createKeyGenator);
+                clerk.register(createKeyGenator);
+                logger.info("Registered tModel keygen: " + createKeyGenator.getTModelKey());
+
+                //setup the business to attach to
+                BusinessEntity be = new BusinessEntity();
+                be.setBusinessKey("uddi:somebusiness:somebusinesskey");
+                be.getName().add(new Name("somebusiness SubscriptionCallbackTest1", null));
+                be.setBusinessServices(new BusinessServices());
+                BusinessService bs = new BusinessService();
+                bs.setBusinessKey("uddi:somebusiness:somebusinesskey");
+                bs.setServiceKey("uddi:somebusiness:someservicekey");
+                bs.getName().add(new Name("service SubscriptionCallbackTest1", null));
+                be.getBusinessServices().getBusinessService().add(bs);
+                BusinessEntity register = clerk.register(be);
+                logger.info("Registered business keygen: " + register.getBusinessKey());
+
+                //start up our listener
+                BindingTemplate start = SubscriptionCallbackListener.start(manager, "default");
+                Assert.assertNotNull(start);
+
+                if (TckCommon.isDebug()) {
+                        PrintUDDI<BindingTemplate> p = new PrintUDDI<BindingTemplate>();
+                        logger.info(p.print(start));
+                }
+
+                //register for callbacks
+                SubscriptionCallbackListener.registerCallback(this);
+
+                Subscription sub = new Subscription();
+
+                sub.setNotificationInterval(DatatypeFactory.newInstance().newDuration(1000));
+                sub.setBindingKey(start.getBindingKey());
+                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 subscription = clerk.register(sub, clerk.getUDDINode().getApiNode());
+                if (TckCommon.isDebug()) {
+                        PrintUDDI<Subscription> p2 = new PrintUDDI<Subscription>();
+                        logger.info(p2.print(subscription));
+                }
+                Assert.assertNotNull(subscription);
+                Assert.assertNotNull(subscription.getBindingKey());
+                Assert.assertNotNull(subscription.getSubscriptionKey());
+                logger.info("Registered subscription key: " + (subscription.getSubscriptionKey()) + " bindingkey: " + subscription.getBindingKey());
+
+                //fetch the business just to verify binding registration
+                BusinessEntity businessDetail = clerk.getBusinessDetail("uddi:somebusiness:somebusinesskey");
+                Assert.assertNotNull(businessDetail);
+                Assert.assertNotNull(businessDetail.getBusinessKey());
+                Assert.assertNotNull(businessDetail.getBusinessServices());
+                Assert.assertNotNull(businessDetail.getBusinessServices().getBusinessService().get(0));
+                Assert.assertNotNull(businessDetail.getBusinessServices().getBusinessService().get(0).getBindingTemplates());
+                Assert.assertNotNull(businessDetail.getBusinessServices().getBusinessService().get(0).getBindingTemplates().getBindingTemplate().get(0));
+                if (TckCommon.isDebug()) {
+                        PrintUDDI<BusinessEntity> p2 = new PrintUDDI<BusinessEntity>();
+                        logger.info(p2.print(businessDetail));
+                }
+
+                //trigger the callback
+                BusinessEntity trigger = new BusinessEntity();
+                trigger.getName().add(new Name("somebusiness trigger SubscriptionCallbackTest1", null));
+                BusinessEntity triggered = clerk.register(trigger);
+                //wait up to 30 seconds or until we get something
+                long wait = TckPublisher.getSubscriptionTimeout();
+                while (wait > 0 && notifications == 0) {
+                        Thread.sleep(1000);
+                        System.out.print(".");
+                        wait--;
+                }
+
+                logger.info("Callback check." + notifications);
+                //Thread.sleep(2000);
+                SubscriptionCallbackListener.stop(manager, "default", start.getBindingKey());
+                clerk.unRegisterSubscription(subscription.getSubscriptionKey());
+                clerk.unRegisterTModel(createKeyGenator.getTModelKey());
+
+                clerk.unRegisterBusiness(triggered.getBusinessKey());
+                clerk.unRegisterBusiness(businessDetail.getBusinessKey());
+                //verify
+                logger.info("Callback check." + notifications);
+                Assert.assertTrue("No notifications received! " + notifications, notifications > 0);
+
+        }
+
+        private static void reset() {
+                notifications = 0;
+                notificationsMessages.clear();
+                logger.info("Callback check." + notifications);
+        }
+        private static int notifications = 0;
+        private static List<SubscriptionResultsList> notificationsMessages = new ArrayList<SubscriptionResultsList>();
+
+        @Override
+        public void HandleCallback(SubscriptionResultsList body) {
+                if (TckCommon.isDebug()) 
+                {
+                        PrintUDDI<SubscriptionResultsList> p2 = new PrintUDDI<SubscriptionResultsList>();
+                        logger.info(p2.print(body));
+                }
+
+                notifications++;
+                notificationsMessages.add(body);
+
+                logger.info("Callback received." + notifications);
+        }
+
+        @Override
+        public void NotifyEndpointStopped() {
+                logger.info("Notify endpoints stopped");
+        }
+
+}



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