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 <[email protected]> Authored: Wed Dec 24 15:52:28 2014 -0500 Committer: Alex <[email protected]> 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:[email protected]">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:[email protected]">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: [email protected] For additional commands, e-mail: [email protected]
