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/27 04:18:57 UTC
juddi git commit: JUDDI-899 adding test cases for this issue. It
appears to be a non-issue. JUDDI-881 adding additional checks to ensure
correct operation in openjpa and hibernate
Repository: juddi
Updated Branches:
refs/heads/master ad8ecf462 -> 7ccb68295
JUDDI-899 adding test cases for this issue. It appears to be a non-issue.
JUDDI-881 adding additional checks to ensure correct operation in openjpa and hibernate
Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/7ccb6829
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/7ccb6829
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/7ccb6829
Branch: refs/heads/master
Commit: 7ccb68295ace2e1ce5bb98f026a3645448c47de3
Parents: ad8ecf4
Author: Alex <al...@apache.org>
Authored: Fri Dec 26 22:18:43 2014 -0500
Committer: Alex <al...@apache.org>
Committed: Fri Dec 26 22:18:43 2014 -0500
----------------------------------------------------------------------
juddi-core-openjpa/pom.xml | 30 ++-
.../src/test/resources/META-INF/persistence.xml | 2 +-
.../resources/juddiv3DisabledTModelKeybag.xml | 200 ++++++++++++++++++
.../main/java/org/apache/juddi/Registry.java | 1 +
.../apache/juddi/api/impl/InquiryHelper.java | 4 +-
.../apache/juddi/api/impl/UDDIInquiryImpl.java | 10 +
.../java/org/apache/juddi/config/AppConfig.java | 9 +-
.../impl/API_040_BusinessServiceLoadTest.java | 205 +++++++++++--------
.../api/impl/API_050_BindingTemplateTest.java | 62 +++---
.../resources/juddiv3DisabledTModelKeybag.xml | 200 ++++++++++++++++++
.../org/apache/juddi/v3/tck/TckFindEntity.java | 2 +-
11 files changed, 600 insertions(+), 125 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/juddi-core-openjpa/pom.xml
----------------------------------------------------------------------
diff --git a/juddi-core-openjpa/pom.xml b/juddi-core-openjpa/pom.xml
index bf5759b..92c2b79 100644
--- a/juddi-core-openjpa/pom.xml
+++ b/juddi-core-openjpa/pom.xml
@@ -68,7 +68,7 @@
<plugin>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa-maven-plugin</artifactId>
- <version>2.2.1</version>
+ <version>2.3.0</version>
<configuration>
<includes>**/org/apache/juddi/model/*.class</includes>
<addDefaultConstructor>true</addDefaultConstructor>
@@ -88,10 +88,34 @@
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
- <version>2.2.1</version>
+ <version>2.3.0</version>
</dependency>
</dependencies>
</plugin>
+
+ <plugin>
+ <artifactId>maven-clean-plugin</artifactId>
+ <version>2.6.1</version>
+ <configuration>
+ <filesets>
+ <fileset>
+ <directory>src/main/java</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
+ <fileset>
+ <directory>src/test/java</directory>
+ <includes>
+ <include>**/*</include>
+ </includes>
+ <followSymlinks>false</followSymlinks>
+ </fileset>
+ </filesets>
+ </configuration>
+ </plugin>
+
</plugins>
</build>
<dependencies>
@@ -123,7 +147,7 @@
<dependency>
<groupId>org.apache.openjpa</groupId>
<artifactId>openjpa</artifactId>
- <version>2.2.1</version>
+ <version>2.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
----------------------------------------------------------------------
diff --git a/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml b/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
index f42c65f..92d777f 100644
--- a/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
+++ b/juddi-core-openjpa/src/test/resources/META-INF/persistence.xml
@@ -93,7 +93,7 @@
<property name="openjpa.ConnectionURL" value="jdbc:derby:memory:juddi-derby-test-db;create=true"/>
<property name="openjpa.ConnectionUserName" value=""/>
<property name="openjpa.ConnectionPassword" value=""/>
-
+ <!--<property name="openjpa.Log" value="DefaultLevel=WARN, Runtime=INFO, Tool=INFO, SQL=TRACE"/>-->
<!-- mysql connection properties
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/juddi"/>
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/juddi-core-openjpa/src/test/resources/juddiv3DisabledTModelKeybag.xml
----------------------------------------------------------------------
diff --git a/juddi-core-openjpa/src/test/resources/juddiv3DisabledTModelKeybag.xml b/juddi-core-openjpa/src/test/resources/juddiv3DisabledTModelKeybag.xml
new file mode 100644
index 0000000..879933c
--- /dev/null
+++ b/juddi-core-openjpa/src/test/resources/juddiv3DisabledTModelKeybag.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+################################################################
+# jUDDI-v3.0 configuration. #
+################################################################
+# Note that the property settings in this #
+# file can be overriden by system parameters #
+# #
+################################################################
+-->
+<config>
+ <juddi>
+ <!-- The ${juddi.server.baseurl} token can be referenced in accessPoints and will be resolved at runtime. -->
+ <server>
+ <baseurl>http://localhost:8080/juddiv3</baseurl>
+ <baseurlsecure>https://localhost:8443/juddiv3</baseurlsecure>
+ </server>
+ <!-- The node Id must be unique when setup in a cluster of UDDI servers implementing the replication API
+ don't worry, jUDDI doesn't implement it right now, but it may come in the future -->
+ <nodeId>uddi:juddi.apache.org:node1</nodeId>
+ <!-- The key of the root business that all of the UDDI services are registered in, as defined in the install_data -->
+ <root>
+ <!-- this is the 'root' username, or owner of the node -->
+ <publisher>root</publisher>
+ <!-- The key of the root business that all of the UDDI services are registered in, as defined in the install_data -->
+ <businessId>uddi:juddi.apache.org:businesses-asf</businessId>
+ <partition>uddi:juddi.apache.org</partition>
+ </root>
+ <seed>
+ <always>false</always>
+ </seed>
+
+ <!-- Name of the persistence unit to use (the default, "juddiDatabase" refers to the unit compiled into the juddi library)-->
+ <persistenceunit>
+ <name>juddiDatabase</name>
+ </persistenceunit>
+
+ <!-- Check-the-time-stamp-on-this-file Interval in milli seconds -->
+ <configuration>
+ <reload>
+ <delay>2000</delay>
+ </reload>
+ </configuration>
+ <!--Default locale-->
+ <locale>en_US</locale>
+
+ <!--The UDDI Operator Contact Email Address-->
+ <operatorEmailAddress>admin@local.localhost</operatorEmailAddress>
+
+ <!-- The maximum name size and maximum number of name elements allows in several of the FindXxxx and SaveXxxx UDDI functions.-->
+ <maxNameLength>255</maxNameLength>
+ <maxNameElementsAllowed>5</maxNameElementsAllowed>
+
+
+ <!-- The maximum number of rows returned in a find_* operation. Each call can set this independently, but this property defines a global maximum.-->
+ <maxRows>1000</maxRows>
+ <!-- The maximum number of "IN" clause parameters. Some RDMBS limit the number of parameters allowed in a SQL "IN" clause.-->
+ <maxInClause>1000</maxInClause>
+
+ <!-- The maximum number of UDDI artifacts allowed per publisher. A value of '-1' indicates any number of artifacts is valid (These values can be overridden at the individual publisher level).-->
+ <maxBusinessesPerPublisher>100</maxBusinessesPerPublisher>
+ <maxServicesPerBusiness>100</maxServicesPerBusiness>
+ <maxBindingsPerService>100</maxBindingsPerService>
+ <maxTModelsPerPublisher>100</maxTModelsPerPublisher>
+
+ <!-- Days before a transfer request expires-->
+ <transfer>
+ <expiration>
+ <days>3</days>
+ </expiration>
+ </transfer>
+
+ <!-- Days before a subscription expires-->
+ <subscription>
+ <expiration>
+ <days>30</days>
+ </expiration>
+
+ <!-- Minutes before a "chunked" subscription call expires-->
+ <chunkexpiration>
+ <minutes>5</minutes>
+ </chunkexpiration>
+
+ <!--Since 3.1.5 the maxium ammount of returned subscription entities allowed-->
+ <maxentities>1000</maxentities>
+ </subscription>
+
+ <!-- jUDDI UUIDGen implementation to use-->
+ <uuidgen>org.apache.juddi.uuidgen.DefaultUUIDGen</uuidgen>
+
+ <!-- jUDDI Cryptor implementation to use-->
+ <cryptor>org.apache.juddi.v3.client.cryptor.DefaultCryptor</cryptor>
+
+ <!-- jUDDI Key Generator to use-->
+ <keygenerator>org.apache.juddi.keygen.DefaultKeyGenerator</keygenerator>
+
+ <notification>
+ <!-- Specifies the interval at which the notification timer triggers-->
+ <interval>5000</interval>
+ <!-- Specifies the amount of time to wait before the notification timer initially fires-->
+ <start>
+ <buffer>0</buffer>
+ </start>
+ <acceptableLagtime>1000</acceptableLagtime>
+ <maxTries>3</maxTries>
+ <!-- 10 minutes -->
+ <maxTriesResetInterval>600000</maxTriesResetInterval>
+ <sendAuthTokenWithResultList>false</sendAuthTokenWithResultList>
+ </notification>
+ <!-- All Authentication related settings -->
+ <auth>
+ <!-- Specifies whether the inquiry API requires authentication, all other APIs require authN-->
+ <Inquiry>false</Inquiry>
+
+ <!-- When using file based authentication, this is the filename to use
+ <usersfile>juddi-users.xml</usersfile>-->
+ <!-- jUDDI Authentication module to use-->
+ <authenticator>
+ <!-- build in Authenticators:
+ org.apache.juddi.v3.auth.JUDDIAuthenticator - no authentication
+ LDAP Based
+ org.apache.juddi.v3.auth.LdapSimpleAuthenticator - use LDAP
+ org.apache.juddi.v3.auth.LdapExpandedAuthenticator - use LDAP
+
+ File based, see usersfile
+ org.apache.juddi.v3.auth.XMLDocAuthenticator - XML doc, clear text
+ org.apache.juddi.v3.auth.CryptedXMLDocAuthenticator - XML doc, encrypted
+ org.apache.juddi.v3.auth.MD5XMLDocAuthenticator - XML doc, Hashed
+
+ See also, the Jboss Authenticator
+ -->
+ <class>org.apache.juddi.v3.auth.JUDDIAuthenticator</class>
+ <!-- other settings (mostly used by Ldap based auth mods
+ url
+ initialcontext
+ style
+ ldapexp
+ -->
+ </authenticator>
+
+ <token>
+ <!-- Time in minutes to expire tokes after inactivity-->
+ <Timeout>15</Timeout>
+ <!-- As of 3.1.5 Duration of time for tokens to expire, regardless of inactivity -->
+ <Expiration>15</Expiration>
+ <!-- As of 3.2, when set to true, tokens can only be used from the same IP address they were issued to -->
+ <enforceSameIPRule>true</enforceSameIPRule>
+ </token>
+ </auth>
+
+
+
+
+ <validation>
+ <!-- As of 3.1.5 This setting will force referential integrity for all tModels (except keyGenerators), category bags, bindingTemplate/AccessPoint/hostingRedirector (referencing another host), tModelinstanceparms and anything else that references a KeyName default value is true. set to false for backwards compatibility or for a more lax registry-->
+ <enforceReferentialIntegrity>true</enforceReferentialIntegrity>
+ </validation>
+
+ <!--As of 3.1.5 Email delivery options for subscription API functions-->
+ <mail>
+ <smtp>
+ <!--The Operator’s Email address
+ <from>admin@local.localhost</from>-->
+
+ <!--the hostname of the SMTP server
+ <host>localhost</host>-->
+
+ <!--The portname of the SMTP server
+ <port>25</port>-->
+
+ <!--If set, specifies the name of a class that implements the javax.net.SocketFactory interface. This class will be used to create SMTP sockets.-->
+ <socketFactory>
+ <!--<class></class>-->
+
+ <!--If set to true, failure to create a socket using the specified socket factory class will cause the socket to be created using the java.net.Socket class. Defaults to true.
+ <fallback>true</fallback>-->
+ <!--Specifies the port to connect to when using the specified socket factory. If not set, the default port will be used.
+ <port>25</port>-->
+ </socketFactory>
+ <!--if true, enables the use of the STARTTLS command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. Note that an appropriate trust store must configured so that the client will trust the server’s certificate. Defaults to false.
+ <starttls>
+ <enabled>false</enabled>
+ </starttls>-->
+
+ <!--If true, attempt to authenticate the user using the AUTH command. Defaults to false.
+ <auth>false</auth>-->
+
+ <!--Username used to authenticate to the SMTP server used only if mail.smtp.auth is true
+ <user>user</user>-->
+
+ <!--Password used to authenticate to the SMTP server, used only if mail.smtp.auth is true
+ <password encrypted="false">pass</password>-->
+ </smtp>
+ </mail>
+
+ <preformance>
+ <enableFindBusinessTModelBagFiltering>false</enableFindBusinessTModelBagFiltering>
+ </preformance>
+ </juddi>
+</config>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/juddi-core/src/main/java/org/apache/juddi/Registry.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/Registry.java b/juddi-core/src/main/java/org/apache/juddi/Registry.java
index 60477ef..eaaff53 100644
--- a/juddi-core/src/main/java/org/apache/juddi/Registry.java
+++ b/juddi-core/src/main/java/org/apache/juddi/Registry.java
@@ -81,6 +81,7 @@ public class Registry {
log.info("Starting jUDDI registry...");
registry = new Registry();
replicationNotifier = new ReplicationNotifier();
+ AppConfig.triggerReload();
if (AppConfig.getConfiguration().getBoolean(Property.JUDDI_SUBSCRIPTION_NOTIFICATION, true)) {
subscriptionNotifier = new SubscriptionNotifier();
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/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 90e4eb8..1b3b9b9 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
@@ -234,11 +234,13 @@ public class InquiryHelper {
boolean enabled = true;
try {
- AppConfig.getConfiguration().getBoolean(Property.JUDDI_ENABLE_FIND_BUSINESS_TMODEL_BAG_FILTERING, true);
+ //AppConfig.reloadConfig();
+ enabled= AppConfig.getConfiguration().getBoolean(Property.JUDDI_ENABLE_FIND_BUSINESS_TMODEL_BAG_FILTERING, true);
} catch (ConfigurationException ex) {
logger.error(ex);
}
if (enabled) {
+ logger.info("FindBusiness by tModelBag is enabled! Loaded from " + AppConfig.getConfigFileURL());
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);
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
index c043298..2f47e43 100644
--- a/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
+++ b/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
@@ -20,6 +20,8 @@ package org.apache.juddi.api.impl;
import java.io.File;
import java.io.FileOutputStream;
import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
import javax.jws.WebService;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
@@ -190,6 +192,14 @@ public class UDDIInquiryImpl extends AuthenticatedService implements UDDIInquiry
EntityManager em = PersistenceManager.getEntityManager();
EntityTransaction tx = em.getTransaction();
try {
+ try {
+ //AppConfig.reloadConfig();
+ logger.info("FindBusiness with tModel bag filtering is enabled: " +
+ AppConfig.getConfiguration().getBoolean(Property.JUDDI_ENABLE_FIND_BUSINESS_TMODEL_BAG_FILTERING,true)
+ + " loaded from " + AppConfig.getConfigFileURL());
+ } catch (ConfigurationException ex) {
+ ex.printStackTrace();
+ }
tx.begin();
if (isAuthenticated())
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java b/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
index fcfaeaf..47c11a9 100644
--- a/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
+++ b/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
@@ -21,8 +21,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import java.util.Properties;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
@@ -31,7 +29,6 @@ import org.apache.commons.configuration.CompositeConfiguration;
import org.apache.commons.configuration.Configuration;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.MapConfiguration;
-import org.apache.commons.configuration.PropertiesConfiguration;
import org.apache.commons.configuration.SystemConfiguration;
import org.apache.commons.configuration.XMLConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
@@ -88,7 +85,7 @@ public class AppConfig
}
/**
* Does the actual work of reading the configuration from System
- * Properties and/or juddiv3.properties file. When the juddiv3.properties
+ * Properties and/or juddiv3.xml file. When the juddiv3.xml
* file is updated the file will be reloaded. By default the reloadDelay is
* set to 1 second to prevent excessive date stamp checking.
*/
@@ -249,6 +246,10 @@ public class AppConfig
getInstance().loadConfiguration();
Registry.start();
}
+
+ public static void triggerReload() throws ConfigurationException{
+ getInstance().loadConfiguration();
+ }
/**
* The object from which property values can be obtained.
* @return the commons Configuration interface
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/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
index 9062a79..15aef45 100644
--- 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
@@ -14,6 +14,7 @@
*/
package org.apache.juddi.api.impl;
+import java.io.File;
import java.rmi.RemoteException;
import org.apache.commons.configuration.ConfigurationException;
@@ -21,6 +22,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.juddi.Registry;
import org.apache.juddi.config.AppConfig;
+import static org.apache.juddi.config.AppConfig.JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY;
import org.apache.juddi.config.Property;
import org.apache.juddi.query.util.FindQualifiers;
import org.apache.juddi.v3.tck.TckBusiness;
@@ -43,103 +45,126 @@ import org.uddi.v3_service.UDDISecurityPortType;
/**
* @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
+ * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</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();
+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 {
+ File f = new File(".");
+ System.out.println("Current working dir is " + f.getAbsolutePath());
+ System.setProperty(JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, f.getAbsolutePath()+"/src/test/resources/juddiv3DisabledTModelKeybag.xml");
+ 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.");
- }
- }
-
+ 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{
+ public static void shutdown() throws ConfigurationException {
tckTModel.deleteCreatedTModels(authInfoJoe);
Registry.stop();
+ System.clearProperty(JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY);
}
-
- @Test
+
+ /**
+ * loads the database with 100x100 services, runs a basic query, then
+ * deletes the records
+ *
+ * @throws DispositionReportFaultMessage
+ * @throws ConfigurationException
+ */
+ @Test
//@Ignore
- public void find20Businesses() throws DispositionReportFaultMessage, ConfigurationException {
+ public void find20Businesses() throws DispositionReportFaultMessage, ConfigurationException {
//disable TModelBag filtering
- logger.info("Disabling findBusiness tModelBag filtering....");
- AppConfig.getConfiguration().setProperty(Property.JUDDI_ENABLE_FIND_BUSINESS_TMODEL_BAG_FILTERING, false);
- logger.info("findBusiness tModelBag filtering is enabled: " +
- AppConfig.getConfiguration().getProperty(Property.JUDDI_ENABLE_FIND_BUSINESS_TMODEL_BAG_FILTERING));
- 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");
- System.out.println("Tiggering findBusiness query...");
- //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);
- System.out.println("Tiggering findService query...");
- 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());
+ try {
+ //logger.info("Disabling findBusiness tModelBag filtering....");
+ //AppConfig.getConfiguration().setProperty(Property.JUDDI_ENABLE_FIND_BUSINESS_TMODEL_BAG_FILTERING, false);
+ //logger.info("findBusiness tModelBag filtering is enabled: "
+ // + AppConfig.getConfiguration().getProperty(Property.JUDDI_ENABLE_FIND_BUSINESS_TMODEL_BAG_FILTERING));
+ System.setProperty(JUDDI_CONFIGURATION_FILE_SYSTEM_PROPERTY, "/src/test/resources/juddiv3DisabledTModelKeybag.xml");
+ 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");
+ System.out.println("Tiggering findBusiness query...");
+ //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
+ if (findDuration > 20000) {
+ Assert.fail("This operation took too long to process");
+ }
+ //Assert.assertTrue(findDuration < 5000);
+ System.out.println("Tiggering findService query...");
+ 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());
+ if (findDuration > 20000) {
+ Assert.fail("This operation took too long to process");
+ }
+
+ } finally {
+ System.out.println("Tiggering deletion...");
+ 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);
+ }
+
+ }
- System.out.println("Tiggering deletion...");
- 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/7ccb6829/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
index f8c679d..072c188 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
@@ -150,43 +150,55 @@ public class API_050_BindingTemplateTest {
*
* @throws Exception
*/
- @Test
- //@Ignore
+ @Test
public void testJUDDI_899() throws Exception {
- UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
+ try {
+ tckTModel.saveJoePublisherTmodel(authInfoJoe);
+ tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+ tckBusinessService.saveJoePublisherService(authInfoJoe);
+ tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
+
+ UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
- FindBinding fb = new FindBinding();
- fb.setAuthInfo(authInfoJoe);
+ FindBinding fb = new FindBinding();
+ fb.setAuthInfo(authInfoJoe);
- fb.setTModelBag(new TModelBag());
- //this is stored in joe's binding template
- fb.getTModelBag().getTModelKey().add("uddi:uddi.org:protocol:serverauthenticatedssl3");
+ fb.setTModelBag(new TModelBag());
+ //this is stored in joe's binding template
+ fb.getTModelBag().getTModelKey().add("uddi:uddi.org:protocol:serverauthenticatedssl3");
+ logger.info("testJUDDI_899 searching...");
+ BindingDetail findBinding = inquiry.findBinding(fb);
+ logger.info("testJUDDI_899 searching complete.");
+ Assert.assertNotNull(findBinding);
+ Assert.assertNotNull(findBinding.getBindingTemplate());
+ Assert.assertFalse(findBinding.getBindingTemplate().isEmpty());
- BindingDetail findBinding = inquiry.findBinding(fb);
- Assert.assertNotNull(findBinding);
- Assert.assertNotNull(findBinding.getBindingTemplate());
- Assert.assertFalse(findBinding.getBindingTemplate().isEmpty());
-
for (int i = 0; i < findBinding.getBindingTemplate().size(); i++) {
if (findBinding.getBindingTemplate().get(i).getBindingKey().equals(TckBindingTemplate.JOE_BINDING_KEY)) {
return;
}
}
-
- /* if (findBinding.isTruncated()==null) {
- findBinding.setTruncated(false);
+
+ Assert.fail("Binding wasn't returned");
+ } finally {
+ tckBusinessService.deleteJoePublisherService(authInfoJoe);
+ tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+ tckTModel.deleteJoePublisherTmodel(authInfoJoe);
}
- //support for paging
- while (!findBinding.isTruncated() && !findBinding.getBindingTemplate().isEmpty()) {
+ /* if (findBinding.isTruncated()==null) {
+ findBinding.setTruncated(false);
+ }
+ //support for paging
+ while (!findBinding.isTruncated() && !findBinding.getBindingTemplate().isEmpty()) {
- findBinding = inquiry.findBinding(fb);
- Assert.assertNotNull(findBinding);
+ findBinding = inquiry.findBinding(fb);
+ Assert.assertNotNull(findBinding);
- if (findBinding.isTruncated()) {
- findBinding.setTruncated(false);
- }
- }
+ if (findBinding.isTruncated()) {
+ findBinding.setTruncated(false);
+ }
+ }
- Assert.fail("The expected service wasn't returned");*/
+ Assert.fail("The expected service wasn't returned");*/
}
}
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/juddi-core/src/test/resources/juddiv3DisabledTModelKeybag.xml
----------------------------------------------------------------------
diff --git a/juddi-core/src/test/resources/juddiv3DisabledTModelKeybag.xml b/juddi-core/src/test/resources/juddiv3DisabledTModelKeybag.xml
new file mode 100644
index 0000000..ca17631
--- /dev/null
+++ b/juddi-core/src/test/resources/juddiv3DisabledTModelKeybag.xml
@@ -0,0 +1,200 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+################################################################
+# jUDDI-v3.0 configuration. #
+################################################################
+# Note that the property settings in this #
+# file can be overriden by system parameters #
+# #
+################################################################
+-->
+<config>
+ <juddi>
+ <!-- The ${juddi.server.baseurl} token can be referenced in accessPoints and will be resolved at runtime. -->
+ <server>
+ <baseurl>http://localhost:8080/juddiv3</baseurl>
+ <baseurlsecure>https://localhost:8443/juddiv3</baseurlsecure>
+ </server>
+ <!-- The node Id must be unique when setup in a cluster of UDDI servers implementing the replication API
+ don't worry, jUDDI doesn't implement it right now, but it may come in the future -->
+ <nodeId>uddi:juddi.apache.org:node1</nodeId>
+ <!-- The key of the root business that all of the UDDI services are registered in, as defined in the install_data -->
+ <root>
+ <!-- this is the 'root' username, or owner of the node -->
+ <publisher>root</publisher>
+ <!-- The key of the root business that all of the UDDI services are registered in, as defined in the install_data -->
+ <businessId>uddi:juddi.apache.org:businesses-asf</businessId>
+ <partition>uddi:juddi.apache.org</partition>
+ </root>
+ <seed>
+ <always>false</always>
+ </seed>
+
+ <!-- Name of the persistence unit to use (the default, "juddiDatabase" refers to the unit compiled into the juddi library)-->
+ <persistenceunit>
+ <name>juddiDatabase</name>
+ </persistenceunit>
+
+ <!-- Check-the-time-stamp-on-this-file Interval in milli seconds -->
+ <configuration>
+ <reload>
+ <delay>2000</delay>
+ </reload>
+ </configuration>
+ <!--Default locale-->
+ <locale>en_US</locale>
+
+ <!--The UDDI Operator Contact Email Address-->
+ <operatorEmailAddress>admin@local.localhost</operatorEmailAddress>
+
+ <!-- The maximum name size and maximum number of name elements allows in several of the FindXxxx and SaveXxxx UDDI functions.-->
+ <maxNameLength>255</maxNameLength>
+ <maxNameElementsAllowed>5</maxNameElementsAllowed>
+
+
+ <!-- The maximum number of rows returned in a find_* operation. Each call can set this independently, but this property defines a global maximum.-->
+ <maxRows>1000</maxRows>
+ <!-- The maximum number of "IN" clause parameters. Some RDMBS limit the number of parameters allowed in a SQL "IN" clause.-->
+ <maxInClause>1000</maxInClause>
+
+ <!-- The maximum number of UDDI artifacts allowed per publisher. A value of '-1' indicates any number of artifacts is valid (These values can be overridden at the individual publisher level).-->
+ <maxBusinessesPerPublisher>100</maxBusinessesPerPublisher>
+ <maxServicesPerBusiness>100</maxServicesPerBusiness>
+ <maxBindingsPerService>100</maxBindingsPerService>
+ <maxTModelsPerPublisher>100</maxTModelsPerPublisher>
+
+ <!-- Days before a transfer request expires-->
+ <transfer>
+ <expiration>
+ <days>3</days>
+ </expiration>
+ </transfer>
+
+ <!-- Days before a subscription expires-->
+ <subscription>
+ <expiration>
+ <days>30</days>
+ </expiration>
+
+ <!-- Minutes before a "chunked" subscription call expires-->
+ <chunkexpiration>
+ <minutes>5</minutes>
+ </chunkexpiration>
+
+ <!--Since 3.1.5 the maxium ammount of returned subscription entities allowed-->
+ <maxentities>1000</maxentities>
+ </subscription>
+
+ <!-- jUDDI UUIDGen implementation to use-->
+ <uuidgen>org.apache.juddi.uuidgen.DefaultUUIDGen</uuidgen>
+
+ <!-- jUDDI Cryptor implementation to use-->
+ <cryptor>org.apache.juddi.v3.client.cryptor.DefaultCryptor</cryptor>
+
+ <!-- jUDDI Key Generator to use-->
+ <keygenerator>org.apache.juddi.keygen.DefaultKeyGenerator</keygenerator>
+
+ <notification>
+ <!-- Specifies the interval at which the notification timer triggers-->
+ <interval>5000</interval>
+ <!-- Specifies the amount of time to wait before the notification timer initially fires-->
+ <start>
+ <buffer>0</buffer>
+ </start>
+ <acceptableLagtime>1000</acceptableLagtime>
+ <maxTries>3</maxTries>
+ <!-- 10 minutes -->
+ <maxTriesResetInterval>600000</maxTriesResetInterval>
+ <sendAuthTokenWithResultList>false</sendAuthTokenWithResultList>
+ </notification>
+ <!-- All Authentication related settings -->
+ <auth>
+ <!-- Specifies whether the inquiry API requires authentication, all other APIs require authN-->
+ <Inquiry>false</Inquiry>
+
+ <!-- When using file based authentication, this is the filename to use
+ <usersfile>juddi-users.xml</usersfile>-->
+ <!-- jUDDI Authentication module to use-->
+ <authenticator>
+ <!-- build in Authenticators:
+ org.apache.juddi.v3.auth.JUDDIAuthenticator - no authentication
+ LDAP Based
+ org.apache.juddi.v3.auth.LdapSimpleAuthenticator - use LDAP
+ org.apache.juddi.v3.auth.LdapExpandedAuthenticator - use LDAP
+
+ File based, see usersfile
+ org.apache.juddi.v3.auth.XMLDocAuthenticator - XML doc, clear text
+ org.apache.juddi.v3.auth.CryptedXMLDocAuthenticator - XML doc, encrypted
+ org.apache.juddi.v3.auth.MD5XMLDocAuthenticator - XML doc, Hashed
+
+ See also, the Jboss Authenticator
+ -->
+ <class>org.apache.juddi.v3.auth.JUDDIAuthenticator</class>
+ <!-- other settings (mostly used by Ldap based auth mods
+ url
+ initialcontext
+ style
+ ldapexp
+ -->
+ </authenticator>
+
+ <token>
+ <!-- Time in minutes to expire tokes after inactivity-->
+ <Timeout>15</Timeout>
+ <!-- As of 3.1.5 Duration of time for tokens to expire, regardless of inactivity -->
+ <Expiration>15</Expiration>
+ <!-- As of 3.2, when set to true, tokens can only be used from the same IP address they were issued to -->
+ <enforceSameIPRule>true</enforceSameIPRule>
+ </token>
+ </auth>
+
+
+
+
+ <validation>
+ <!-- As of 3.1.5 This setting will force referential integrity for all tModels (except keyGenerators), category bags, bindingTemplate/AccessPoint/hostingRedirector (referencing another host), tModelinstanceparms and anything else that references a KeyName default value is true. set to false for backwards compatibility or for a more lax registry-->
+ <enforceReferentialIntegrity>true</enforceReferentialIntegrity>
+ </validation>
+
+ <!--As of 3.1.5 Email delivery options for subscription API functions-->
+ <mail>
+ <smtp>
+ <!--The Operator’s Email address
+ <from>admin@local.localhost</from>-->
+
+ <!--the hostname of the SMTP server
+ <host>localhost</host>-->
+
+ <!--The portname of the SMTP server
+ <port>25</port>-->
+
+ <!--If set, specifies the name of a class that implements the javax.net.SocketFactory interface. This class will be used to create SMTP sockets.-->
+ <socketFactory>
+ <!--<class></class>-->
+
+ <!--If set to true, failure to create a socket using the specified socket factory class will cause the socket to be created using the java.net.Socket class. Defaults to true.
+ <fallback>true</fallback>-->
+ <!--Specifies the port to connect to when using the specified socket factory. If not set, the default port will be used.
+ <port>25</port>-->
+ </socketFactory>
+ <!--if true, enables the use of the STARTTLS command (if supported by the server) to switch the connection to a TLS-protected connection before issuing any login commands. Note that an appropriate trust store must configured so that the client will trust the server’s certificate. Defaults to false.
+ <starttls>
+ <enabled>false</enabled>
+ </starttls>-->
+
+ <!--If true, attempt to authenticate the user using the AUTH command. Defaults to false.
+ <auth>false</auth>-->
+
+ <!--Username used to authenticate to the SMTP server used only if mail.smtp.auth is true
+ <user>user</user>-->
+
+ <!--Password used to authenticate to the SMTP server, used only if mail.smtp.auth is true
+ <password encrypted="false">pass</password>-->
+ </smtp>
+ </mail>
+
+ <preformance>
+ <enableFindBusinessTModelBagFiltering>false</enableFindBusinessTModelBagFiltering>
+ </preformance>
+ </juddi>
+</config>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/juddi/blob/7ccb6829/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckFindEntity.java
----------------------------------------------------------------------
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckFindEntity.java b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckFindEntity.java
index 97e85ad..fce76e0 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckFindEntity.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckFindEntity.java
@@ -149,7 +149,7 @@ public class TckFindEntity
}
catch(Exception e) {
logger.error(e.getMessage(), e);
- Assert.fail("No exception should be thrown.");
+ Assert.fail("No exception should be thrown." + e.getMessage());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org