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/12/24 21:52:35 UTC

juddi git commit: JUDDI-881 filtering is now reenabled, load tests are now performed during junit test executing and are still skipped during the tck tests. Performance doesn't appeared to be too affected

Repository: juddi
Updated Branches:
  refs/heads/master 15ed423ba -> 8f7c669da


JUDDI-881 filtering is now reenabled, load tests are now performed during junit test executing and are still skipped during the tck tests. Performance doesn't appeared to be too affected


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

Branch: refs/heads/master
Commit: 8f7c669da1bfb76c63be3cb03a45832c45787fa9
Parents: 15ed423
Author: Alex <al...@apache.org>
Authored: Wed Dec 24 15:52:28 2014 -0500
Committer: Alex <al...@apache.org>
Committed: Wed Dec 24 15:52:28 2014 -0500

----------------------------------------------------------------------
 .../apache/juddi/api/impl/InquiryHelper.java    |  26 +++-
 .../impl/API_040_BusinessServiceLoadTest.java   | 135 +++++++++++++++++++
 .../API_040_BusinessServiceTestPerformance.java | 135 -------------------
 .../apache/juddi/api/impl/API_099_LoadTest.java | 109 +++++++++++++++
 .../juddi/api/impl/API_099_LoadTests.java       | 104 --------------
 .../api/impl/API_110_FindBusinessTest.java      |   8 +-
 .../juddi/api/impl/API_160_ReplicationTest.java |   4 -
 .../org/apache/juddi/v3/tck/TckBusiness.java    |  10 ++
 .../apache/juddi/v3/tck/TckBusinessService.java |   2 +-
 .../UDDI_110_FindBusinessIntegrationTest.java   |   9 +-
 .../UDDI_110_FindBusinessIntegrationTest.java   |  40 +++++-
 11 files changed, 328 insertions(+), 254 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
index b9c91e0..af5e6ee 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
@@ -225,9 +225,31 @@ public class InquiryHelper {
 		result.setListDescription(listDesc);
 
 		// Sort and retrieve the final results taking paging into account
-		List<?> queryResults = FetchBusinessEntitiesQuery.select(
-				em, findQualifiers, keysFound, body.getMaxRows(), body.getListHead(), listDesc);
+		List<?> queryResults = FetchBusinessEntitiesQuery.select(em, findQualifiers, keysFound, body.getMaxRows(), body.getListHead(), listDesc);
+		List<?> serviceResults = null;
+		for (int i = 0; i<queryResults.size(); i++) {
+			org.apache.juddi.model.BusinessEntity be = (org.apache.juddi.model.BusinessEntity) queryResults.get(i);
 			
+			List<Object> keysIn = new ArrayList<Object>();
+			List<org.apache.juddi.model.BusinessService> services = be.getBusinessServices();
+			for (int j = 0; j<services.size(); j++) {
+				keysIn.add(services.get(j).getEntityKey());
+			}
+
+			serviceResults = FindServiceByTModelKeyQuery.select(em, findQualifiers, body.getTModelBag(), null, keysIn);
+			if (serviceResults == null) {
+				be.setBusinessServices(null);
+			} else { 
+				ListDescription ldesc = new ListDescription();
+				result.setListDescription(listDesc);
+				List<?> srvcs = FetchBusinessServicesQuery.select(em, findQualifiers, serviceResults, body.getMaxRows(), 
+						body.getListHead(), ldesc);
+				be.setBusinessServices((List<org.apache.juddi.model.BusinessService>)srvcs);
+			}
+                }
+
+                
+                
 		if (queryResults != null && queryResults.size() > 0)
 			result.setBusinessInfos(new org.uddi.api_v3.BusinessInfos());
 		

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceLoadTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceLoadTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceLoadTest.java
new file mode 100644
index 0000000..20f1e94
--- /dev/null
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceLoadTest.java
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2001-2009 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.api.impl;
+
+import java.rmi.RemoteException;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.Registry;
+import org.apache.juddi.query.util.FindQualifiers;
+import org.apache.juddi.v3.tck.TckBusiness;
+import org.apache.juddi.v3.tck.TckBusinessService;
+import org.apache.juddi.v3.tck.TckPublisher;
+import org.apache.juddi.v3.tck.TckSecurity;
+import org.apache.juddi.v3.tck.TckTModel;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.api_v3.BusinessList;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindService;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.ServiceList;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
+ */
+public class API_040_BusinessServiceLoadTest
+{	
+	private static Log logger                        = LogFactory.getLog(API_040_BusinessServiceTest.class);
+	
+	private static API_010_PublisherTest api010      = new API_010_PublisherTest();
+	protected static TckTModel tckTModel               = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	protected static TckBusiness tckBusiness           = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	protected static TckBusinessService tckBusinessService  = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	private static UDDIInquiryImpl inquiry             = new UDDIInquiryImpl();
+	
+	int numberOfBusinesses=100;
+	int numberOfServices=100;
+	
+	protected static String authInfoJoe                = null;
+	protected static String authInfoSam                = null;
+	
+	@BeforeClass
+	public static void setup() throws ConfigurationException {
+		Registry.start();
+                logger.info("API_040_BusinessServiceTestPerformance");
+		logger.debug("Getting auth tokens..");
+		try {
+			api010.saveJoePublisher();
+			UDDISecurityPortType security      = new UDDISecurityImpl();
+			authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
+			String authInfoUDDI  = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(),  TckPublisher.getUDDIPassword());
+			tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+			tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
+		} catch (RemoteException e) {
+			logger.error(e.getMessage(), e);
+			Assert.fail("Could not obtain authInfo token.");
+		}
+	}
+        
+        @AfterClass
+        public static void shutdown() throws ConfigurationException{
+                tckTModel.deleteCreatedTModels(authInfoJoe);
+                Registry.stop();
+        }
+        
+	@Test
+	public void find20Businesses() throws DispositionReportFaultMessage {
+		tckTModel.saveJoePublisherTmodel(authInfoJoe);
+		long startSave = System.currentTimeMillis();
+		//loading up 100 businesses, with a 100 services each
+		tckBusiness.saveJoePublisherBusinesses(authInfoJoe, numberOfBusinesses);
+		for (int i=0; i<numberOfBusinesses; i++) {
+			tckBusinessService.saveJoePublisherServices(authInfoJoe, i, numberOfServices);
+		}
+		long saveDuration = System.currentTimeMillis() - startSave;
+		System.out.println("Saved " + numberOfBusinesses + " businesses with each " + numberOfServices + " services in " + saveDuration + "ms");
+		
+		//find 20 businesses by name
+		FindBusiness fb = new FindBusiness();
+		org.uddi.api_v3.FindQualifiers apiFq = new org.uddi.api_v3.FindQualifiers();
+		apiFq.getFindQualifier().add(FindQualifiers.APPROXIMATE_MATCH);
+		apiFq.getFindQualifier().add(FindQualifiers.CASE_INSENSITIVE_MATCH);
+		fb.setFindQualifiers(apiFq);
+		Name name = new Name();
+		name.setValue("John%");
+		fb.getName().add(name);
+		fb.setMaxRows(20);
+		long startFind = System.currentTimeMillis();
+		BusinessList result = inquiry.findBusiness(fb);
+		long findDuration = System.currentTimeMillis() - startFind;
+		System.out.println("Find 20 businesses took "  +  findDuration + "ms. Size=" + result.getBusinessInfos().getBusinessInfo().size());
+		// it takes less then 1 second, make sure it stays faster then 5 seconds
+		//Assert.assertTrue(findDuration < 5000);
+				
+		FindService fs = new FindService();
+		fs.setFindQualifiers(apiFq);
+		name.setValue("Service One%");
+		fs.getName().add(name);
+		startFind = System.currentTimeMillis();
+		//this will match ALL services (100 * 100 =) 10,000 services
+		int all = numberOfBusinesses * numberOfServices;
+		System.out.println("Matching " + all+  " services");
+		ServiceList serviceList = inquiry.findService(fs);
+		findDuration = System.currentTimeMillis() - startFind;
+		System.out.println("Find " + all + " services took "  +  findDuration + "ms. Size=" + serviceList.getServiceInfos().getServiceInfo().size());
+
+		long startDelete = System.currentTimeMillis();
+		for (int i=0; i<numberOfBusinesses; i++) {
+			tckBusinessService.deleteJoePublisherServices(authInfoJoe, i, numberOfServices);
+		}
+		long deleteDuration = System.currentTimeMillis() - startDelete;
+		System.out.println("Delete all business and services in " + deleteDuration + "ms");
+		tckBusiness.deleteJoePublisherBusinesses(authInfoJoe, numberOfBusinesses);
+		tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+	}
+	
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java
deleted file mode 100644
index 16d719c..0000000
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*
- * Copyright 2001-2009 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.api.impl;
-
-import java.rmi.RemoteException;
-
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.juddi.Registry;
-import org.apache.juddi.query.util.FindQualifiers;
-import org.apache.juddi.v3.tck.TckBusiness;
-import org.apache.juddi.v3.tck.TckBusinessService;
-import org.apache.juddi.v3.tck.TckPublisher;
-import org.apache.juddi.v3.tck.TckSecurity;
-import org.apache.juddi.v3.tck.TckTModel;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.uddi.api_v3.BusinessList;
-import org.uddi.api_v3.FindBusiness;
-import org.uddi.api_v3.FindService;
-import org.uddi.api_v3.Name;
-import org.uddi.api_v3.ServiceList;
-import org.uddi.v3_service.DispositionReportFaultMessage;
-import org.uddi.v3_service.UDDISecurityPortType;
-
-/**
- * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
- */
-public class API_040_BusinessServiceTestPerformance
-{	
-	private static Log logger                        = LogFactory.getLog(API_040_BusinessServiceTest.class);
-	
-	private static API_010_PublisherTest api010      = new API_010_PublisherTest();
-	protected static TckTModel tckTModel               = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-	protected static TckBusiness tckBusiness           = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-	protected static TckBusinessService tckBusinessService  = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-	private static UDDIInquiryImpl inquiry             = new UDDIInquiryImpl();
-	
-	int numberOfBusinesses=100;
-	int numberOfServices=100;
-	
-	protected static String authInfoJoe                = null;
-	protected static String authInfoSam                = null;
-	
-	@BeforeClass
-	public static void setup() throws ConfigurationException {
-		Registry.start();
-                logger.info("API_040_BusinessServiceTestPerformance");
-		logger.debug("Getting auth tokens..");
-		try {
-			api010.saveJoePublisher();
-			UDDISecurityPortType security      = new UDDISecurityImpl();
-			authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
-			String authInfoUDDI  = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(),  TckPublisher.getUDDIPassword());
-			tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
-			tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
-		} catch (RemoteException e) {
-			logger.error(e.getMessage(), e);
-			Assert.fail("Could not obtain authInfo token.");
-		}
-	}
-        
-        @AfterClass
-        public static void shutdown() throws ConfigurationException{
-                tckTModel.deleteCreatedTModels(authInfoJoe);
-                Registry.stop();
-        }
-        
-	@Test
-	public void find20Businesses() throws DispositionReportFaultMessage {
-		tckTModel.saveJoePublisherTmodel(authInfoJoe);
-		long startSave = System.currentTimeMillis();
-		//loading up 100 businesses, with a 100 services each
-		tckBusiness.saveJoePublisherBusinesses(authInfoJoe, numberOfBusinesses);
-		for (int i=0; i<numberOfBusinesses; i++) {
-			tckBusinessService.saveJoePublisherServices(authInfoJoe, i, numberOfServices);
-		}
-		long saveDuration = System.currentTimeMillis() - startSave;
-		System.out.println("Saved " + numberOfBusinesses + " businesses with each " + numberOfServices + " services in " + saveDuration + "ms");
-		
-		//find 20 businesses by name
-		FindBusiness fb = new FindBusiness();
-		org.uddi.api_v3.FindQualifiers apiFq = new org.uddi.api_v3.FindQualifiers();
-		apiFq.getFindQualifier().add(FindQualifiers.APPROXIMATE_MATCH);
-		apiFq.getFindQualifier().add(FindQualifiers.CASE_INSENSITIVE_MATCH);
-		fb.setFindQualifiers(apiFq);
-		Name name = new Name();
-		name.setValue("John%");
-		fb.getName().add(name);
-		fb.setMaxRows(20);
-		long startFind = System.currentTimeMillis();
-		BusinessList result = inquiry.findBusiness(fb);
-		long findDuration = System.currentTimeMillis() - startFind;
-		System.out.println("Find 20 businesses took "  +  findDuration + "ms. Size=" + result.getBusinessInfos().getBusinessInfo().size());
-		// it takes less then 1 second, make sure it stays faster then 5 seconds
-		//Assert.assertTrue(findDuration < 5000);
-				
-		FindService fs = new FindService();
-		fs.setFindQualifiers(apiFq);
-		name.setValue("Service One%");
-		fs.getName().add(name);
-		startFind = System.currentTimeMillis();
-		//this will match ALL services (100 * 100 =) 10,000 services
-		int all = numberOfBusinesses * numberOfServices;
-		System.out.println("Matching " + all+  " services");
-		ServiceList serviceList = inquiry.findService(fs);
-		findDuration = System.currentTimeMillis() - startFind;
-		System.out.println("Find " + all + " services took "  +  findDuration + "ms. Size=" + serviceList.getServiceInfos().getServiceInfo().size());
-
-		long startDelete = System.currentTimeMillis();
-		for (int i=0; i<numberOfBusinesses; i++) {
-			tckBusinessService.deleteJoePublisherServices(authInfoJoe, i, numberOfServices);
-		}
-		long deleteDuration = System.currentTimeMillis() - startDelete;
-		System.out.println("Delete all business and services in " + deleteDuration + "ms");
-		tckBusiness.deleteJoePublisherBusinesses(authInfoJoe, numberOfBusinesses);
-		tckTModel.deleteJoePublisherTmodel(authInfoJoe);
-	}
-	
-}

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTest.java
new file mode 100644
index 0000000..ccd388f
--- /dev/null
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTest.java
@@ -0,0 +1,109 @@
+/*
+ * 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.api.impl;
+
+import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.ws.Holder;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.Registry;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.tck.TckBindingTemplate;
+import org.apache.juddi.v3.tck.TckBusiness;
+import org.apache.juddi.v3.tck.TckBusinessService;
+import org.apache.juddi.v3.tck.TckPublisher;
+import org.apache.juddi.v3.tck.TckSecurity;
+import org.apache.juddi.v3.tck.TckTModel;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Assume;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.Name;
+import org.uddi.sub_v3.DeleteSubscription;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionFilter;
+
+/**
+ * Load tests for subscriptions
+ * @author Alex O'Ree
+ */
+public class API_099_LoadTest {
+
+        private static Log logger = LogFactory.getLog(API_080_SubscriptionTest.class);
+
+        private static API_010_PublisherTest api010 = new API_010_PublisherTest();
+        private static TckTModel tckTModel = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+        private static TckBusiness tckBusiness = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+        private static TckBusinessService tckBusinessService = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+        private static TckBindingTemplate tckBindingTemplate = new TckBindingTemplate(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+        UDDISubscriptionImpl sub = new UDDISubscriptionImpl();
+
+        private static String authInfoJoe = null;
+        private static String authInfoSam = null;
+
+        @BeforeClass
+        public static void setup() throws ConfigurationException {
+                Registry.start();
+                logger.info("API_080_SubscriptionTest");
+                logger.debug("Getting auth token..");
+                try {
+                        api010.saveJoePublisher();
+                        authInfoJoe = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+                } catch (RemoteException e) {
+                        logger.error(e.getMessage(), e);
+                        Assert.fail("Could not obtain authInfo token.");
+                }
+
+        }
+
+        @AfterClass
+        public static void stopRegistry() throws ConfigurationException {
+                tckTModel.deleteCreatedTModels(authInfoJoe);
+                Registry.stop();
+        }
+
+        @Test
+        public void joePublisher() throws Exception {
+                //Assume.assumeTrue(TckPublisher.isLoadTest());
+                List<String> keys = new ArrayList<String>();
+                for (int i = 0; i < 1000; i++) {
+                        Holder<List<Subscription>> items = new Holder<List<Subscription>>();
+                        items.value = new ArrayList<Subscription>();
+                        Subscription s = new Subscription();
+                        s.setSubscriptionFilter(new SubscriptionFilter());
+                        s.getSubscriptionFilter().setFindBusiness(new FindBusiness());
+                        s.getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers());
+                        s.getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+                        s.getSubscriptionFilter().getFindBusiness().getName().add(new Name(UDDIConstants.WILDCARD, null));
+                        items.value.add(s);
+                        sub.saveSubscription(authInfoJoe, items);
+                        keys.add(items.value.get(0).getSubscriptionKey());
+                }
+                List<Subscription> subscriptions = sub.getSubscriptions(authInfoJoe);
+                DeleteSubscription ds = new DeleteSubscription();
+                ds.setAuthInfo(authInfoJoe);
+                ds.getSubscriptionKey().addAll(keys);
+                sub.deleteSubscription(ds);
+                Assert.assertEquals(subscriptions.size(), keys.size());
+        }
+
+}

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java
deleted file mode 100644
index 3d44b09..0000000
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_099_LoadTests.java
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * 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.api.impl;
-
-import java.rmi.RemoteException;
-import java.util.ArrayList;
-import java.util.List;
-import javax.xml.ws.Holder;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.juddi.Registry;
-import org.apache.juddi.v3.client.UDDIConstants;
-import org.apache.juddi.v3.tck.TckBindingTemplate;
-import org.apache.juddi.v3.tck.TckBusiness;
-import org.apache.juddi.v3.tck.TckBusinessService;
-import org.apache.juddi.v3.tck.TckPublisher;
-import org.apache.juddi.v3.tck.TckSecurity;
-import org.apache.juddi.v3.tck.TckTModel;
-import org.junit.AfterClass;
-import org.junit.Assert;
-import org.junit.Assume;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.uddi.api_v3.FindBusiness;
-import org.uddi.api_v3.FindQualifiers;
-import org.uddi.api_v3.Name;
-import org.uddi.sub_v3.Subscription;
-import org.uddi.sub_v3.SubscriptionFilter;
-
-/**
- *
- * @author Alex O'Ree
- */
-public class API_099_LoadTests {
-
-        private static Log logger = LogFactory.getLog(API_080_SubscriptionTest.class);
-
-        private static API_010_PublisherTest api010 = new API_010_PublisherTest();
-        private static TckTModel tckTModel = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-        private static TckBusiness tckBusiness = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-        private static TckBusinessService tckBusinessService = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-        private static TckBindingTemplate tckBindingTemplate = new TckBindingTemplate(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-        UDDISubscriptionImpl sub = new UDDISubscriptionImpl();
-
-        private static String authInfoJoe = null;
-        private static String authInfoSam = null;
-
-        @BeforeClass
-        public static void setup() throws ConfigurationException {
-                Registry.start();
-                logger.info("API_080_SubscriptionTest");
-                logger.debug("Getting auth token..");
-                try {
-                        api010.saveJoePublisher();
-                        authInfoJoe = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
-                } catch (RemoteException e) {
-                        logger.error(e.getMessage(), e);
-                        Assert.fail("Could not obtain authInfo token.");
-                }
-
-        }
-
-        @AfterClass
-        public static void stopRegistry() throws ConfigurationException {
-                tckTModel.deleteCreatedTModels(authInfoJoe);
-                Registry.stop();
-        }
-
-        @Test
-        public void joePublisher() throws Exception {
-                Assume.assumeTrue(TckPublisher.isLoadTest());
-                List<String> keys = new ArrayList<String>();
-                for (int i = 0; i < 1000; i++) {
-                        Holder<List<Subscription>> items = new Holder<List<Subscription>>();
-                        items.value = new ArrayList<Subscription>();
-                        Subscription s = new Subscription();
-                        s.setSubscriptionFilter(new SubscriptionFilter());
-                        s.getSubscriptionFilter().setFindBusiness(new FindBusiness());
-                        s.getSubscriptionFilter().getFindBusiness().setFindQualifiers(new FindQualifiers());
-                        s.getSubscriptionFilter().getFindBusiness().getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
-                        s.getSubscriptionFilter().getFindBusiness().getName().add(new Name(UDDIConstants.WILDCARD, null));
-                        items.value.add(s);
-                        sub.saveSubscription(authInfoJoe, items);
-                        keys.add(items.value.get(0).getSubscriptionKey());
-                }
-                List<Subscription> subscriptions = sub.getSubscriptions(authInfoJoe);
-                Assert.assertEquals(subscriptions.size(), keys.size());
-        }
-
-}

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java
index e2a5497..f03dd60 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_110_FindBusinessTest.java
@@ -87,9 +87,11 @@ public class API_110_FindBusinessTest
 				Assert.fail("Could not obtain authInfo token.");
 	     } 
 	}
-	/**
+
+         /**
          * JUDDI-398
          * JUDDI-881
+         * "If a tModelBag or find_tModel was used in the search, the resulting serviceInfos structure reflects data only for the businessServices that actually contained a matching bindingTemplate.
          */
 	@Test
 	public void findBusinessByTModelBag() {
@@ -115,8 +117,8 @@ public class API_110_FindBusinessTest
 							+ "found " + size);
 				} else {
 					List<BusinessInfo> biList = bl.getBusinessInfos().getBusinessInfo();
-					if (biList.get(0).getServiceInfos().getServiceInfo().size() != 2) {
-						Assert.fail("Should have found two ServiceInfos");
+					if (biList.get(0).getServiceInfos().getServiceInfo().size() != 1) {
+						Assert.fail("Should have found one ServiceInfos");
 					} else {
 							List<ServiceInfo> siList = biList.get(0).getServiceInfos().getServiceInfo();
 							ServiceInfo si = siList.get(0);

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
index 2227973..298cf5d 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_160_ReplicationTest.java
@@ -15,7 +15,6 @@
  */
 package org.apache.juddi.api.impl;
 
-import java.math.BigInteger;
 import java.rmi.RemoteException;
 import java.util.List;
 import java.util.UUID;
@@ -33,10 +32,8 @@ import org.apache.juddi.api_v3.NodeList;
 import org.apache.juddi.api_v3.SaveClerk;
 import org.apache.juddi.api_v3.SaveNode;
 import org.apache.juddi.replication.ReplicationNotifier;
-import org.apache.juddi.v3.error.FatalErrorException;
 import org.apache.juddi.v3.tck.TckPublisher;
 import org.apache.juddi.v3.tck.TckSecurity;
-import org.apache.juddi.v3.tck.TckTModel;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -44,7 +41,6 @@ import org.junit.Test;
 import org.uddi.api_v3.Contact;
 import org.uddi.api_v3.DispositionReport;
 import org.uddi.api_v3.PersonName;
-import org.uddi.repl_v3.ChangeRecord;
 import org.uddi.repl_v3.ChangeRecordIDType;
 import org.uddi.repl_v3.ChangeRecords;
 import org.uddi.repl_v3.CommunicationGraph;

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusiness.java
----------------------------------------------------------------------
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusiness.java b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusiness.java
index f632973..87e02a3 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusiness.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusiness.java
@@ -168,6 +168,16 @@ public class TckBusiness {
                                 beIn.getName().get(0).setValue(businessName + "-" + i);
                                 beIn.setBusinessKey(businessKey + "-" + i);
                                 sb.getBusinessEntity().add(beIn);
+                               /* if (beIn.getBusinessServices()!=null){
+                                        for (int x=0; x < beIn.getBusinessServices().getBusinessService().size(); x++){
+                                                beIn.getBusinessServices().getBusinessService().get(x).setBusinessKey(businessKey + "-" + i);
+                                                if (beIn.getBusinessServices().getBusinessService().get(x).getBindingTemplates()!=null){
+                                                        for (int y=0; y < beIn.getBusinessServices().getBusinessService().get(x).getBindingTemplates().getBindingTemplate().size(); y++){
+                                                                beIn.getBusinessServices().getBusinessService().get(x).getBindingTemplates().getBindingTemplate().get(y).
+                                                        }
+                                                }
+                                        }
+                                }*/
                                 publication.saveBusiness(sb);
                                 logger.info("Saved business with key " + businessName + "-" + i);
                         }

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
----------------------------------------------------------------------
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
index fa4a19d..ab012b4 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
@@ -123,7 +123,7 @@ public class TckBusinessService
 				ss = new SaveService();
 				ss.setAuthInfo(authInfo);
 				bsIn.getName().get(0).setValue(serviceName + "-" + i);
-				bsIn.setBusinessKey(parentBusinessKey);
+				bsIn.setBusinessKey(parentBusinessKey +"-" + businessInt);
 				bsIn.setServiceKey(serviceKey + "-" + businessInt + "-" + i);
 				bsIn.getBindingTemplates().getBindingTemplate().get(0).setBindingKey(bindingKey + "-" + businessInt + "-" + i);
 				bsIn.getBindingTemplates().getBindingTemplate().get(0).setServiceKey(serviceKey + "-" + businessInt + "-" + i);

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/uddi-tck/src/test/java/org/apache/juddi/v2/tck/UDDI_110_FindBusinessIntegrationTest.java
----------------------------------------------------------------------
diff --git a/uddi-tck/src/test/java/org/apache/juddi/v2/tck/UDDI_110_FindBusinessIntegrationTest.java b/uddi-tck/src/test/java/org/apache/juddi/v2/tck/UDDI_110_FindBusinessIntegrationTest.java
index 21e5cd6..5484c02 100644
--- a/uddi-tck/src/test/java/org/apache/juddi/v2/tck/UDDI_110_FindBusinessIntegrationTest.java
+++ b/uddi-tck/src/test/java/org/apache/juddi/v2/tck/UDDI_110_FindBusinessIntegrationTest.java
@@ -102,6 +102,11 @@ public class UDDI_110_FindBusinessIntegrationTest {
                 }
         }
 
+        /**
+         * JUDDI-398
+         * JUDDI-881
+         * "If a tModelBag or find_tModel was used in the search, the resulting serviceInfos structure reflects data only for the businessServices that actually contained a matching bindingTemplate.
+         */
         @Test
         public void findBusinessByTModelBag() {
                 Assume.assumeTrue(TckPublisher.isEnabled());
@@ -127,8 +132,8 @@ public class UDDI_110_FindBusinessIntegrationTest {
                                                 + "found " + size);
                                 } else {
                                         List<BusinessInfo> biList = bl.getBusinessInfos().getBusinessInfo();
-                                        if (biList.get(0).getServiceInfos().getServiceInfo().size() != 2) {
-                                                Assert.fail("Should have found two ServiceInfos");
+                                        if (biList.get(0).getServiceInfos().getServiceInfo().size() != 1) {
+                                                Assert.fail("Should have found one ServiceInfos");
                                         } else {
                                                 List<ServiceInfo> siList = biList.get(0).getServiceInfos().getServiceInfo();
                                                 ServiceInfo si = siList.get(0);

http://git-wip-us.apache.org/repos/asf/juddi/blob/8f7c669d/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_110_FindBusinessIntegrationTest.java
----------------------------------------------------------------------
diff --git a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_110_FindBusinessIntegrationTest.java b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_110_FindBusinessIntegrationTest.java
index 53215b6..fadcc99 100644
--- a/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_110_FindBusinessIntegrationTest.java
+++ b/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_110_FindBusinessIntegrationTest.java
@@ -29,6 +29,7 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.uddi.api_v3.BusinessInfo;
 import org.uddi.api_v3.BusinessList;
+import org.uddi.api_v3.DeleteBusiness;
 import org.uddi.api_v3.FindBusiness;
 import org.uddi.api_v3.ServiceInfo;
 import org.uddi.api_v3.TModelBag;
@@ -61,6 +62,7 @@ public class UDDI_110_FindBusinessIntegrationTest {
         protected static TckBusiness tckBusiness = null;
         protected static String authInfoJoe = null;
         private static UDDIInquiryPortType inquiry = null;
+        private static UDDIPublicationPortType publication=null;
         private static UDDIClient manager;
 
         @AfterClass
@@ -85,12 +87,13 @@ public class UDDI_110_FindBusinessIntegrationTest {
                         authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
                         //Assert.assertNotNull(authInfoJoe);
                         
-                        UDDIPublicationPortType publication = transport.getUDDIPublishService();
+                        publication = transport.getUDDIPublishService();
                         inquiry = transport.getUDDIInquiryService();
                         if (!TckPublisher.isUDDIAuthMode()){
                                 TckSecurity.setCredentials((BindingProvider) publication, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
                                 TckSecurity.setCredentials((BindingProvider) inquiry, TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
                         }
+                        
 
                         tckTModel = new TckTModel(publication, inquiry);
                         tckTModel01 = new TckTModel(publication, inquiry);
@@ -103,16 +106,42 @@ public class UDDI_110_FindBusinessIntegrationTest {
                 }
         }
 
+        /**
+         * JUDDI-881
+         * "If a tModelBag or find_tModel was used in the search, the resulting serviceInfos structure reflects data only for the businessServices that actually contained a matching bindingTemplate.
+         */
         @Test
         public void findBusinessByTModelBag() {
              Assume.assumeTrue(TckPublisher.isEnabled());
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
+             System.out.println("##########################################################");
                 try {
                         tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL_XML, TOM_PUBLISHER_TMODEL_KEY);
                         tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL01_XML, TOM_PUBLISHER_TMODEL01_KEY);
                         tckTModel.saveTModel(authInfoJoe, TOM_PUBLISHER_TMODEL02_XML, TOM_PUBLISHER_TMODEL02_KEY);
 
+                        try{
+                                  // Delete the entity and make sure it is removed
+                                DeleteBusiness db = new DeleteBusiness();
+                                db.setAuthInfo(authInfoJoe);
+                                db.getBusinessKey().add(TOM_BUSINESS_KEY);
+                                publication.deleteBusiness(db);
+                        }       catch (Exception ex){}
                         tckBusiness.saveBusinesses(authInfoJoe, TOM_BUSINESS_XML, TOM_BUSINESS_KEY, 1);
 
+                        String before =TckCommon.DumpAllBusinesses(authInfoJoe, inquiry);
                         try {
                                 int size = 0;
                                 BusinessList bl = null;
@@ -123,17 +152,22 @@ public class UDDI_110_FindBusinessIntegrationTest {
                                 fbb.setTModelBag(tmb);
                                 bl = inquiry.findBusiness(fbb);
                                 size = bl.getBusinessInfos().getBusinessInfo().size();
+                                //JUDDI-881
+                                
                                 if (size != 1) {
+                                        logger.error("Test failed, dumping the business list " + before);
                                         Assert.fail("Should have found one entry on FindBusiness with TModelBag, "
                                                 + "found " + size);
                                 } else {
                                         List<BusinessInfo> biList = bl.getBusinessInfos().getBusinessInfo();
-                                        if (biList.get(0).getServiceInfos().getServiceInfo().size() != 2) {
-                                                Assert.fail("Should have found two ServiceInfos");
+                                        if (biList.get(0).getServiceInfos().getServiceInfo().size() != 1) {
+                                                logger.error("Test failed, dumping the business list " + before);
+                                                Assert.fail("Should have found one ServiceInfos");
                                         } else {
                                                 List<ServiceInfo> siList = biList.get(0).getServiceInfos().getServiceInfo();
                                                 ServiceInfo si = siList.get(0);
                                                 if (!TOM_PUBLISHER_SERVICEINFO_NAME.equals(si.getName().get(0).getValue())) {
+                                                        logger.error("Test failed, dumping the business list " + before);
                                                         Assert.fail("Should have found " + TOM_PUBLISHER_TMODEL01_NAME + " as the "
                                                                 + "ServiceInfo name, found " + si.getName().get(0).getValue());
                                                 }


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