You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by jf...@apache.org on 2009/02/06 06:58:33 UTC
svn commit: r741422 - in /webservices/juddi/branches/v3_trunk:
juddi-core/src/main/java/org/apache/juddi/api/impl/
juddi-core/src/main/java/org/apache/juddi/auth/
juddi-core/src/main/java/org/apache/juddi/config/
juddi-core/src/main/java/org/apache/jud...
Author: jfaath
Date: Fri Feb 6 05:58:32 2009
New Revision: 741422
URL: http://svn.apache.org/viewvc?rev=741422&view=rev
Log:
The following changes were made:
-UddiEntityPublisher no longer has persistent KeyGen collection
-Logic in UddiEntityPublisher changed to dynamically find a publisher's key generators
-Detached the publisher reference from UddiEntity class, now this class simply contains the non-nullable authorizedName
-Publisher keys no longer are required to be prefixed by the root partition, they can provide their own domain key
-Authentication split into two phases: authenticate and identify
-Authenticators adjusted to account for new phases
-JUDDIAuthenticator is new default Authenticator, authenticates based on Publisher entity
-Install process adjusted to account for above changes
-Tests and test files adjusted to account for above changes
Added:
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java (contents, props changed)
- copied, changed from r740405, webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java
Removed:
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKey.java
Modified:
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml
webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java Fri Feb 6 05:58:32 2009
@@ -21,6 +21,8 @@
import javax.persistence.EntityManager;
+import org.apache.juddi.auth.Authenticator;
+import org.apache.juddi.auth.AuthenticatorFactory;
import org.apache.juddi.error.AuthTokenRequiredException;
import org.apache.juddi.error.ErrorMessage;
import org.apache.juddi.model.UddiEntityPublisher;
@@ -45,10 +47,16 @@
if (modelAuthToken.getTokenState() == AUTHTOKEN_RETIRED)
throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthInvalid"));
- UddiEntityPublisher entityPublisher = em.find(UddiEntityPublisher.class, modelAuthToken.getAuthorizedName());
+ Authenticator authenticator = AuthenticatorFactory.getAuthenticator();
+ UddiEntityPublisher entityPublisher = authenticator.identify(authInfo, modelAuthToken.getAuthorizedName());
+
+ // Must make sure the returned publisher has all the necessary fields filled
if (entityPublisher == null)
throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthInvalid"));
-
+
+ if (entityPublisher.getAuthorizedName() == null)
+ throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthInvalid"));
+
// Auth token is being used. Adjust appropriate values so that it's internal 'expiration clock' is reset.
modelAuthToken.setLastUsed(new Date());
modelAuthToken.setNumberOfUses(modelAuthToken.getNumberOfUses() + 1);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java Fri Feb 6 05:58:32 2009
@@ -176,18 +176,18 @@
List<String> keyList = keyBag.getKey();
for (String key : keyList) {
UddiEntity uddiEntity = em.find(UddiEntity.class, key);
- uddiEntity.setPublisher(publisher);
+ uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
if (uddiEntity instanceof BusinessEntity) {
BusinessEntity be = (BusinessEntity)uddiEntity;
List<BusinessService> bsList = be.getBusinessServices();
for (BusinessService bs : bsList) {
- bs.setPublisher(publisher);
+ bs.setAuthorizedName(publisher.getAuthorizedName());
List<BindingTemplate> btList = bs.getBindingTemplates();
for (BindingTemplate bt : btList)
- bt.setPublisher(publisher);
+ bt.setAuthorizedName(publisher.getAuthorizedName());
}
}
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java Fri Feb 6 05:58:32 2009
@@ -50,7 +50,6 @@
import org.uddi.v3_service.UDDIPublicationPortType;
import org.apache.commons.configuration.ConfigurationException;
-import org.apache.juddi.keygen.KeyGenerator;
import org.apache.juddi.mapping.MappingApiToModel;
import org.apache.juddi.mapping.MappingModelToApi;
import org.apache.juddi.validation.ValidatePublish;
@@ -251,10 +250,6 @@
for (String entityKey : entityKeyList) {
Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
((org.apache.juddi.model.Tmodel)obj).setDeleted(true);
-
- // Must check if tModel is a Key Generator, and if so, it must be removed from publisher collection
- if (entityKey.toUpperCase().contains(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase()))
- publisher.removeKeyGeneratorKey(em, entityKey);
}
@@ -508,9 +503,6 @@
result.getTModel().add(apiTModel);
- // If the TModel is a key generator, it must be added to the publisher's key generators.
- if (modelTModel.getEntityKey().toUpperCase().contains(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase()))
- publisher.addKeyGeneratorKey(modelTModel.getEntityKey());
}
tx.commit();
@@ -569,7 +561,7 @@
private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BusinessEntity uddiEntity, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
- uddiEntity.setPublisher(publisher);
+ uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
Date now = new Date();
uddiEntity.setModified(now);
@@ -600,7 +592,7 @@
private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BusinessService uddiEntity, UddiEntityPublisher publisher, boolean isChild) throws DispositionReportFaultMessage {
- uddiEntity.setPublisher(publisher);
+ uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
Date now = new Date();
uddiEntity.setModified(now);
@@ -638,7 +630,7 @@
private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BindingTemplate uddiEntity, UddiEntityPublisher publisher, boolean isChild) throws DispositionReportFaultMessage {
- uddiEntity.setPublisher(publisher);
+ uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
Date now = new Date();
uddiEntity.setModified(now);
@@ -670,7 +662,7 @@
private void setOperationalInfo(EntityManager em, org.apache.juddi.model.Tmodel uddiEntity, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
- uddiEntity.setPublisher(publisher);
+ uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
Date now = new Date();
uddiEntity.setModified(now);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java Fri Feb 6 05:58:32 2009
@@ -35,7 +35,6 @@
import org.apache.juddi.error.UnknownUserException;
import org.apache.juddi.error.ErrorMessage;
import org.apache.juddi.mapping.MappingModelToApi;
-import org.apache.juddi.model.Publisher;
import org.apache.juddi.query.PersistenceManager;
/**
@@ -83,10 +82,6 @@
EntityTransaction tx = em.getTransaction();
tx.begin();
- // Verify that that user has a publisher account and thus the authority to publish
- Publisher publisher = em.find(org.apache.juddi.model.Publisher.class, publisherId);
- if (publisher == null)
- throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", publisherId));
// Generate auth token and store it!
String authInfo = AUTH_TOKEN_PREFIX + UUID.randomUUID();
@@ -96,7 +91,6 @@
modelAuthToken.setCreated(new Date());
modelAuthToken.setLastUsed(new Date());
modelAuthToken.setAuthorizedName(publisherId);
- modelAuthToken.setPublisherName(publisher.getPublisherName());
modelAuthToken.setNumberOfUses(0);
modelAuthToken.setTokenState(AUTHTOKEN_ACTIVE);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java Fri Feb 6 05:58:32 2009
@@ -19,11 +19,17 @@
import org.apache.juddi.error.AuthenticationException;
import org.apache.juddi.error.FatalErrorException;
+import org.apache.juddi.model.UddiEntityPublisher;
/**
* Authenticator interface. Any class implementing this interface can be invoked by
* the AuthenticatorFactory to handle authentication of the user executing a UDDI request.
*
+ * This occurs in two steps:
+ *
+ * 1) Authenticating the user based the passed credentials
+ * 2) Identifying the user by associating either the authorizationKey or user Id with publisher information
+ *
* @author Steve Viens (sviens@apache.org)
* @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
*/
@@ -31,12 +37,22 @@
/**
*
- * @param userID - userId of the user making the registry request
+ * @param authorizedName - userId of the user making the registry request
* @param cred - some authentical creditial (i.e. a password) which can be used to
* authenticate the user.
*
* @return The publisherID for this user
* @throws {@link AuthenticationException}, {@link FatalErrorException}
*/
- String authenticate(String userID,String cred) throws AuthenticationException, FatalErrorException;
+ String authenticate(String authorizedName, String cred) throws AuthenticationException, FatalErrorException;
+
+ /*
+ * Either input parameter can be used to populate the publisher object
+ *
+ * @param authInfo - the authorization token
+ * @param authorizedName - the authorized Name
+ *
+ * @return - The entity publisher
+ */
+ UddiEntityPublisher identify(String authInfo, String authorizedName) throws AuthenticationException, FatalErrorException;
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java Fri Feb 6 05:58:32 2009
@@ -31,7 +31,7 @@
private static Logger log = Logger.getLogger(AuthenticatorFactory.class);
// Default authenticator implementation
- private static final String DEFAULT_IMPL = "org.apache.juddi.auth.DefaultAuthenticator";
+ private static final String DEFAULT_IMPL = "org.apache.juddi.auth.JUDDIAuthenticator";
// the shared Authenticator instance
private static Authenticator auth = null;
Copied: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java (from r740405, webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java)
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java?p2=webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java&p1=webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java&r1=740405&r2=741422&rev=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java Fri Feb 6 05:58:32 2009
@@ -17,21 +17,55 @@
package org.apache.juddi.auth;
+import javax.persistence.EntityManager;
+
+import org.apache.juddi.model.Publisher;
import org.apache.juddi.error.AuthenticationException;
+import org.apache.juddi.error.ErrorMessage;
+import org.apache.juddi.error.UnknownUserException;
+import org.apache.juddi.model.UddiEntityPublisher;
+import org.apache.juddi.query.PersistenceManager;
/**
- * This is the simplest (and default) implementation of jUDDI's Authenticator interface, which
- * successfully authenticates any authentication request.
+ * This is the default implementation of jUDDI's Authenticator interface, which
+ * authenticates a request only if the user id has an associated publisher.
*
* @author Steve Viens (sviens@apache.org)
* @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
*/
-public class DefaultAuthenticator implements Authenticator {
+public class JUDDIAuthenticator implements Authenticator {
/**
*
- * @return the same userId that came in on the request.
+ * @return the userId that came in on the request providing the user has a publishing account in jUDDI.
*/
- public String authenticate(String userID, String credential) throws AuthenticationException {
- return userID;
+ public String authenticate(String authorizedName, String credential) throws AuthenticationException {
+ EntityManager em = PersistenceManager.getEntityManager();
+ try {
+ Publisher publisher = em.find(Publisher.class, authorizedName);
+ if (publisher == null)
+ throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", authorizedName));
+
+ return authorizedName;
+ }
+ finally {
+ if (em.isOpen())
+ em.close();
+ }
+ }
+
+ public UddiEntityPublisher identify(String authInfo, String authorizedName) throws AuthenticationException {
+ EntityManager em = PersistenceManager.getEntityManager();
+ try {
+ Publisher publisher = em.find(Publisher.class, authorizedName);
+ if (publisher == null)
+ throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", authorizedName));
+
+ return publisher;
+ }
+ finally {
+ if (em.isOpen())
+ em.close();
+ }
}
}
\ No newline at end of file
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java Fri Feb 6 05:58:32 2009
@@ -34,6 +34,7 @@
import org.apache.juddi.error.ErrorMessage;
import org.apache.juddi.error.FatalErrorException;
import org.apache.juddi.error.UnknownUserException;
+import org.apache.juddi.model.UddiEntityPublisher;
import org.apache.log4j.Logger;
import org.apache.log4j.helpers.Loader;
@@ -54,6 +55,7 @@
*
* @author Steve Viens (sviens@apache.org)
* @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
*/
public class XMLDocAuthenticator implements Authenticator
{
@@ -119,4 +121,9 @@
return userID;
}
+
+ public UddiEntityPublisher identify(String authInfo, String authorizedName) throws AuthenticationException {
+ return new UddiEntityPublisher(authorizedName);
+ }
+
}
\ No newline at end of file
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java Fri Feb 6 05:58:32 2009
@@ -32,7 +32,6 @@
import org.apache.commons.configuration.SystemConfiguration;
import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
import org.apache.juddi.keygen.KeyGenerator;
-import org.apache.juddi.model.KeyGeneratorKey;
import org.apache.juddi.model.UddiEntityPublisher;
import org.apache.juddi.query.FindBusinessByCategoryQuery;
import org.apache.juddi.query.PersistenceManager;
@@ -117,12 +116,14 @@
}
tx.commit();
tx.begin();
- UddiEntityPublisher rootPublisher = em.find(UddiEntityPublisher.class, Constants.ROOT_PUBLISHER);
- List<KeyGeneratorKey> rootKeyGenList = rootPublisher.getKeyGeneratorKeys();
+
+ UddiEntityPublisher rootPublisher = new UddiEntityPublisher(Constants.ROOT_PUBLISHER);
+ rootPublisher.populateKeyGeneratorKeys(em);
+ List<String> rootKeyGenList = rootPublisher.getKeyGeneratorKeys();
if (rootKeyGenList == null || rootKeyGenList.size() == 0)
throw new ConfigurationException("The 'root' publisher key generator was not found. Please make sure that the application is properly installed.");
- String rootKeyGen = rootKeyGenList.iterator().next().getKeygenTModelKey();
+ String rootKeyGen = rootKeyGenList.iterator().next();
//rootKeyGen = rootKeyGen.substring((KeyGenerator.UDDI_SCHEME + KeyGenerator.PARTITION_SEPARATOR).length());
rootKeyGen = rootKeyGen.substring(0, rootKeyGen.length() - (KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).length());
log.debug("root partition: " + rootKeyGen);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java Fri Feb 6 05:58:32 2009
@@ -35,7 +35,6 @@
import javax.xml.bind.Unmarshaller;
import org.apache.commons.configuration.ConfigurationException;
-import org.apache.juddi.api.datatype.Publisher;
import org.apache.juddi.api.impl.UDDIInquiryImpl;
import org.apache.juddi.error.ErrorMessage;
import org.apache.juddi.error.FatalErrorException;
@@ -44,7 +43,6 @@
import org.apache.juddi.error.ValueNotAllowedException;
import org.apache.juddi.keygen.KeyGenerator;
import org.apache.juddi.mapping.MappingApiToModel;
-import org.apache.juddi.model.KeyGeneratorKey;
import org.apache.juddi.model.UddiEntityPublisher;
import org.apache.juddi.query.PersistenceManager;
import org.apache.juddi.validation.ValidatePublish;
@@ -105,14 +103,15 @@
rootPublisher = installPublisher(em, JUDDI_INSTALL_DATA_DIR + FILE_ROOT_PUBLISHER);
uddiPublisher = installPublisher(em, JUDDI_INSTALL_DATA_DIR + FILE_UDDI_PUBLISHER);
- //Inserting 2 test publishers
+ // TODO: These do not belong here
+ // Inserting 2 test publishers
installPublisher(em, JUDDI_INSTALL_DATA_DIR + FILE_JOE_PUBLISHER);
installPublisher(em, JUDDI_INSTALL_DATA_DIR + FILE_SSYNDICATOR);
installRootPublisherKeyGen(em, rootTModelKeyGen, rootPartition, rootPublisher, nodeId);
rootBusinessEntity.setBusinessKey(nodeId);
- installRootBusinessEntity(em, rootBusinessEntity, rootPublisher);
+ installRootBusinessEntity(em, rootBusinessEntity, rootPublisher, rootPartition);
installUDDITModels(em, JUDDI_INSTALL_DATA_DIR + FILE_UDDI_TMODELS, uddiPublisher, nodeId);
@@ -172,11 +171,11 @@
public static boolean alreadyInstalled(EntityManager em) {
- UddiEntityPublisher publisher = em.find(UddiEntityPublisher.class, Constants.ROOT_PUBLISHER);
+ org.apache.juddi.model.Publisher publisher = em.find(org.apache.juddi.model.Publisher.class, Constants.ROOT_PUBLISHER);
if (publisher != null)
return true;
- publisher = em.find(UddiEntityPublisher.class, Constants.UDDI_PUBLISHER);
+ publisher = em.find(org.apache.juddi.model.Publisher.class, Constants.UDDI_PUBLISHER);
if (publisher != null)
return true;
@@ -219,7 +218,7 @@
result = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
}
else {
- ValidateUDDIKey.validateUDDIv3Key(result, rootPartition);
+ ValidateUDDIKey.validateUDDIv3Key(result);
String keyPartition = result.substring(0, result.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
if (!rootPartition.equalsIgnoreCase(keyPartition))
throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", userNodeId));
@@ -244,15 +243,15 @@
}
- private static String installRootBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity, UddiEntityPublisher rootPublisher)
+ private static String installRootBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity, UddiEntityPublisher rootPublisher, String rootPartition)
throws JAXBException, DispositionReportFaultMessage, IOException {
- validateRootBusinessEntity(rootBusinessEntity, rootPublisher);
+ validateRootBusinessEntity(rootBusinessEntity, rootPublisher, rootPartition);
org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
MappingApiToModel.mapBusinessEntity(rootBusinessEntity, modelBusinessEntity);
- modelBusinessEntity.setPublisher(rootPublisher);
+ modelBusinessEntity.setAuthorizedName(rootPublisher.getAuthorizedName());
Date now = new Date();
modelBusinessEntity.setCreated(now);
@@ -261,7 +260,7 @@
modelBusinessEntity.setNodeId(modelBusinessEntity.getEntityKey());
for (org.apache.juddi.model.BusinessService service : modelBusinessEntity.getBusinessServices()) {
- service.setPublisher(rootPublisher);
+ service.setAuthorizedName(rootPublisher.getAuthorizedName());
service.setCreated(now);
service.setModified(now);
@@ -269,7 +268,7 @@
service.setNodeId(modelBusinessEntity.getEntityKey());
for (org.apache.juddi.model.BindingTemplate binding : service.getBindingTemplates()) {
- binding.setPublisher(rootPublisher);
+ binding.setAuthorizedName(rootPublisher.getAuthorizedName());
binding.setCreated(now);
binding.setModified(now);
@@ -287,16 +286,13 @@
// A watered down version of ValidatePublish's validateBusinessEntity, designed for the specific condition that this is run upon the initial
// jUDDI install.
- private static void validateRootBusinessEntity(org.uddi.api_v3.BusinessEntity businessEntity, UddiEntityPublisher rootPublisher)
+ private static void validateRootBusinessEntity(org.uddi.api_v3.BusinessEntity businessEntity, UddiEntityPublisher rootPublisher, String rootPartition)
throws DispositionReportFaultMessage {
// A supplied businessService can't be null
if (businessEntity == null)
throw new ValueNotAllowedException(new ErrorMessage("errors.businessentity.NullInput"));
- String rootPartition = rootPublisher.getKeyGeneratorKeys().iterator().next().getKeygenTModelKey();
- rootPartition = rootPartition.substring(0, rootPartition.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
-
// The business key should already be set to the previously calculated and validated nodeId. This validation is unnecessary but kept for
// symmetry with the other entity validations.
String entityKey = businessEntity.getBusinessKey();
@@ -305,8 +301,9 @@
businessEntity.setBusinessKey(entityKey);
}
else {
- ValidateUDDIKey.validateUDDIv3Key(entityKey, rootPartition);
- if (!rootPublisher.isValidPublisherKey(entityKey))
+ ValidateUDDIKey.validateUDDIv3Key(entityKey);
+ String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+ if (!rootPartition.equalsIgnoreCase(keyPartition))
throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
}
@@ -325,7 +322,7 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.businessservices.NoInput"));
for (org.uddi.api_v3.BusinessService businessService : businessServiceList) {
- validateRootBusinessService(businessService, businessEntity, rootPublisher);
+ validateRootBusinessService(businessService, businessEntity, rootPublisher, rootPartition);
}
}
@@ -333,7 +330,7 @@
// A watered down version of ValidatePublish's validateBusinessService, designed for the specific condition that this is run upon the initial
// jUDDI install.
- private static void validateRootBusinessService(org.uddi.api_v3.BusinessService businessService, org.uddi.api_v3.BusinessEntity parent, UddiEntityPublisher rootPublisher)
+ private static void validateRootBusinessService(org.uddi.api_v3.BusinessService businessService, org.uddi.api_v3.BusinessEntity parent, UddiEntityPublisher rootPublisher, String rootPartition)
throws DispositionReportFaultMessage {
// A supplied businessService can't be null
@@ -347,9 +344,6 @@
throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ParentBusinessNotFound", parentKey));
}
- String rootPartition = rootPublisher.getKeyGeneratorKeys().iterator().next().getKeygenTModelKey();
- rootPartition = rootPartition.substring(0, rootPartition.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
-
// Retrieve the service's passed key
String entityKey = businessService.getServiceKey();
if (entityKey == null || entityKey.length() == 0) {
@@ -357,8 +351,9 @@
businessService.setServiceKey(entityKey);
}
else {
- ValidateUDDIKey.validateUDDIv3Key(entityKey, rootPartition);
- if (!rootPublisher.isValidPublisherKey(entityKey))
+ ValidateUDDIKey.validateUDDIv3Key(entityKey);
+ String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+ if (!rootPartition.equalsIgnoreCase(keyPartition))
throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
}
@@ -374,14 +369,14 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplates.NoInput"));
for (org.uddi.api_v3.BindingTemplate bindingTemplate : bindingTemplateList) {
- validateRootBindingTemplate(bindingTemplate, businessService, rootPublisher);
+ validateRootBindingTemplate(bindingTemplate, businessService, rootPublisher, rootPartition);
}
}
}
// A watered down version of ValidatePublish's validatBindingTemplate, designed for the specific condition that this is run upon the initial
// jUDDI install.
- private static void validateRootBindingTemplate(org.uddi.api_v3.BindingTemplate bindingTemplate, org.uddi.api_v3.BusinessService parent, UddiEntityPublisher rootPublisher)
+ private static void validateRootBindingTemplate(org.uddi.api_v3.BindingTemplate bindingTemplate, org.uddi.api_v3.BusinessService parent, UddiEntityPublisher rootPublisher, String rootPartition)
throws DispositionReportFaultMessage {
// A supplied businessService can't be null
@@ -395,9 +390,6 @@
throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ParentServiceNotFound", parentKey));
}
- String rootPartition = rootPublisher.getKeyGeneratorKeys().iterator().next().getKeygenTModelKey();
- rootPartition = rootPartition.substring(0, rootPartition.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
-
// Retrieve the service's passed key
String entityKey = bindingTemplate.getBindingKey();
if (entityKey == null || entityKey.length() == 0) {
@@ -405,8 +397,9 @@
bindingTemplate.setBindingKey(entityKey);
}
else {
- ValidateUDDIKey.validateUDDIv3Key(entityKey, rootPartition);
- if (!rootPublisher.isValidPublisherKey(entityKey))
+ ValidateUDDIKey.validateUDDIv3Key(entityKey);
+ String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+ if (!rootPartition.equalsIgnoreCase(keyPartition))
throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
}
@@ -428,7 +421,7 @@
private static UddiEntityPublisher installPublisher(EntityManager em, String resource)
throws JAXBException, DispositionReportFaultMessage, IOException {
- Publisher apiPub = (Publisher)buildEntityFromDoc(resource, "org.apache.juddi.api.datatype");
+ org.apache.juddi.api.datatype.Publisher apiPub = (org.apache.juddi.api.datatype.Publisher)buildEntityFromDoc(resource, "org.apache.juddi.api.datatype");
org.apache.juddi.model.Publisher modelPub = new org.apache.juddi.model.Publisher();
MappingApiToModel.mapPublisher(apiPub, modelPub);
em.persist(modelPub);
@@ -447,7 +440,7 @@
org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
MappingApiToModel.mapTModel(apiTModel, modelTModel);
- modelTModel.setPublisher(publisher);
+ modelTModel.setAuthorizedName(publisher.getAuthorizedName());
Date now = new Date();
modelTModel.setCreated(now);
@@ -476,7 +469,7 @@
org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
MappingApiToModel.mapTModel(apiTModel, modelTModel);
- modelTModel.setPublisher(publisher);
+ modelTModel.setAuthorizedName(publisher.getAuthorizedName());
Date now = new Date();
modelTModel.setCreated(now);
@@ -486,11 +479,6 @@
em.persist(modelTModel);
- KeyGeneratorKey keyGenKey = new KeyGeneratorKey();
- keyGenKey.setPublisher(publisher);
- keyGenKey.setKeygenTModelKey(modelTModel.getEntityKey());
- publisher.getKeyGeneratorKeys().add(keyGenKey);
-
}
private static Object buildEntityFromDoc(String resource, String thePackage) throws JAXBException, IOException {
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java Fri Feb 6 05:58:32 2009
@@ -72,7 +72,7 @@
this.authorizedName = authorizedName;
}
- @Column(name = "publisher_name", nullable = false)
+ @Column(name = "publisher_name")
public String getPublisherName() {
return this.publisherName;
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java Fri Feb 6 05:58:32 2009
@@ -54,7 +54,7 @@
this.modified = modified;
}
public BusinessEntity(String entityKey, String authorizedName,
- UddiEntityPublisher publisher, String operator,
+ String operator,
Date modified, List<Contact> contacts,
List<BusinessIdentifier> businessIdentifiers,
List<PublisherAssertion> publisherAssertionsForFromKey,
@@ -64,7 +64,7 @@
List<BusinessService> businessServices,
List<BusinessDescr> businessDescrs) {
this.entityKey = entityKey;
- this.publisher = publisher;
+ this.authorizedName = authorizedName;
this.modified = modified;
this.contacts = contacts;
this.businessIdentifiers = businessIdentifiers;
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java Fri Feb 6 05:58:32 2009
@@ -15,11 +15,8 @@
* limitations under the License.
*/
-import java.util.List;
-
import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.persistence.PrimaryKeyJoinColumn;
import javax.persistence.Table;
import javax.persistence.Transient;
@@ -29,7 +26,7 @@
*/
@Entity
@Table(name = "publisher")
-@PrimaryKeyJoinColumn(name = "authorized_name")
+//@PrimaryKeyJoinColumn(name = "authorized_name")
public class Publisher extends UddiEntityPublisher implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@@ -43,17 +40,20 @@
private Integer maxTmodels;
public Publisher() {
+ super(null);
}
public Publisher(String publisherId, String publisherName) {
+ super(publisherId);
this.authorizedName = publisherId;
this.publisherName = publisherName;
}
public Publisher(String publisherId, String publisherName,
String emailAddress, String isAdmin, String isEnabled,
Integer maxBusinesses, Integer maxServicesPerBusiness,
- Integer maxBindingsPerService, Integer maxTmodels,
- List<KeyGeneratorKey> keyGenerators) {
+ Integer maxBindingsPerService, Integer maxTmodels) {
+
+ super(publisherId);
this.authorizedName = publisherId;
this.publisherName = publisherName;
this.emailAddress = emailAddress;
@@ -63,7 +63,6 @@
this.maxServicesPerBusiness = maxServicesPerBusiness;
this.maxBindingsPerService = maxBindingsPerService;
this.maxTmodels = maxTmodels;
- this.keyGeneratorKeys = keyGenerators;
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java Fri Feb 6 05:58:32 2009
@@ -54,14 +54,14 @@
this.name = name;
this.modified = modified;
}
- public Tmodel(String entityKey, String authorizedName, UddiEntityPublisher publisher, String operator,
+ public Tmodel(String entityKey, String authorizedName, String operator,
String name, String langCode, boolean deleted, Date modified,
List<OverviewDoc> overviewDocs,
List<TmodelDescr> tmodelDescrs,
List<TmodelIdentifier> tmodelIdentifiers,
TmodelCategoryBag categoryBag) {
this.entityKey = entityKey;
- this.publisher = publisher;
+ this.authorizedName = authorizedName;
this.name = name;
this.langCode = langCode;
this.deleted = deleted;
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java Fri Feb 6 05:58:32 2009
@@ -19,12 +19,9 @@
import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
-import javax.persistence.JoinColumn;
-import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
@@ -42,7 +39,7 @@
protected Date modified;
protected Date modifiedIncludingChildren;
protected String nodeId;
- protected UddiEntityPublisher publisher;
+ protected String authorizedName;
@Id
@Column(name = "entity_key", nullable = false, length = 255)
@@ -87,14 +84,14 @@
public void setNodeId(String nodeId) {
this.nodeId = nodeId;
}
+
- @ManyToOne(fetch = FetchType.LAZY)
- @JoinColumn(name = "authorized_name", nullable = false)
- public UddiEntityPublisher getPublisher() {
- return this.publisher;
+ @Column(name = "authorized_name", nullable=false, length = 255)
+ public String getAuthorizedName() {
+ return authorizedName;
}
- public void setPublisher(UddiEntityPublisher publisher) {
- this.publisher = publisher;
+ public void setAuthorizedName(String authorizedName) {
+ this.authorizedName = authorizedName;
}
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java Fri Feb 6 05:58:32 2009
@@ -17,24 +17,16 @@
package org.apache.juddi.model;
-import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
import java.util.Vector;
-import javax.persistence.CascadeType;
import javax.persistence.Column;
-import javax.persistence.Entity;
import javax.persistence.EntityManager;
-import javax.persistence.FetchType;
import javax.persistence.Id;
-import javax.persistence.Inheritance;
-import javax.persistence.InheritanceType;
-import javax.persistence.OneToMany;
-import javax.persistence.OrderBy;
+import javax.persistence.MappedSuperclass;
import javax.persistence.Query;
-import javax.persistence.Table;
+import javax.persistence.Transient;
import org.apache.juddi.keygen.KeyGenerator;
import org.apache.juddi.query.util.DynamicQuery;
@@ -44,67 +36,75 @@
/**
* @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
*/
-@Entity
-@Table(name = "uddi_publisher")
-@Inheritance(strategy = InheritanceType.JOINED)
-public abstract class UddiEntityPublisher {
+@MappedSuperclass
+public class UddiEntityPublisher {
protected String authorizedName;
- protected List<KeyGeneratorKey> keyGeneratorKeys = new ArrayList<KeyGeneratorKey>(0);
+ private List<String> keyGeneratorKeys = null;
+ public UddiEntityPublisher(String authorizedName) {
+ this.authorizedName = authorizedName;
+ }
+
@Id
@Column(name = "authorized_name", nullable = false, length = 20)
public String getAuthorizedName() {
return this.authorizedName;
}
-
public void setAuthorizedName(String authorizedName) {
this.authorizedName = authorizedName;
}
- @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "publisher")
- @OrderBy
- public List<KeyGeneratorKey> getKeyGeneratorKeys() {
- return this.keyGeneratorKeys;
+ @Transient
+ public List<String> getKeyGeneratorKeys() {
+ return keyGeneratorKeys;
}
- public void setKeyGeneratorKeys(List<KeyGeneratorKey> keyGeneratorKeys) {
+ public void setKeyGeneratorKeys(List<String> keyGeneratorKeys) {
this.keyGeneratorKeys = keyGeneratorKeys;
}
- public void addKeyGeneratorKey(String keygenTModelKey) {
- KeyGeneratorKey keyGenKey = new KeyGeneratorKey(this, keygenTModelKey);
- keyGeneratorKeys.add(keyGenKey);
- }
- public void removeKeyGeneratorKey(EntityManager em, String keygenTModelKey) {
- // Must use iterator to remove while iterating.
- Iterator<KeyGeneratorKey> keyGenItr = keyGeneratorKeys.iterator();
- while(keyGenItr.hasNext()) {
- KeyGeneratorKey keyGen = keyGenItr.next();
- if (keyGen.getKeygenTModelKey().equalsIgnoreCase(keygenTModelKey)) {
- keyGenItr.remove();
- keyGeneratorKeys.remove(keyGen);
- em.remove(keyGen);
- }
- }
+
+ @SuppressWarnings("unchecked")
+ public void populateKeyGeneratorKeys(EntityManager em) {
+ DynamicQuery getKeysQuery = new DynamicQuery();
+ getKeysQuery.append("select t.entityKey from Tmodel t").pad().WHERE().pad();
+
+ DynamicQuery.Parameter pubParam = new DynamicQuery.Parameter("t.authorizedName",
+ this.authorizedName,
+ DynamicQuery.PREDICATE_EQUALS);
+
+ DynamicQuery.Parameter keyParam = new DynamicQuery.Parameter("UPPER(t.entityKey)",
+ (DynamicQuery.WILDCARD + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase(),
+ DynamicQuery.PREDICATE_LIKE);
+
+ getKeysQuery.appendGroupedAnd(pubParam, keyParam);
+ Query qry = getKeysQuery.buildJPAQuery(em);
+
+ keyGeneratorKeys = qry.getResultList();
}
public boolean isOwner(UddiEntity entity){
boolean ret = false;
if (entity != null) {
- if (entity.getPublisher().getAuthorizedName().equals(this.authorizedName))
+ if (entity.getAuthorizedName().equals(this.authorizedName))
ret = true;
}
return ret;
}
- public boolean isValidPublisherKey(String key) {
+
+ public boolean isValidPublisherKey(EntityManager em, String key) {
if (key == null)
return false;
+
+ if (keyGeneratorKeys == null)
+ populateKeyGeneratorKeys(em);
+
String keyPartition = key.substring(0, key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
- for (KeyGeneratorKey keyGenKey : keyGeneratorKeys) {
- String keyGenPartition = keyGenKey.getKeygenTModelKey().substring(0, key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+ for (String keyGenKey : keyGeneratorKeys) {
+ String keyGenPartition = keyGenKey.substring(0, key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
if (keyGenPartition.equalsIgnoreCase(keyPartition))
return true;
}
@@ -117,56 +117,83 @@
*/
public boolean isKeyGeneratorAvailable(EntityManager em, String keygenKey) throws DispositionReportFaultMessage {
- // First make sure the key is a valid UDDIv3 key
+ // First make sure the key is a valid UDDIv3 key per the specification's rules
ValidateUDDIKey.validateUDDIv3KeyGeneratorKey(keygenKey);
- String keyGenSuffix = (KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase();
- if (!(keygenKey.toUpperCase().endsWith(keyGenSuffix)))
- return false;
-
- String partition = keygenKey.toUpperCase().substring(0, keygenKey.length() - keyGenSuffix.length());
+ String partition = keygenKey.toUpperCase().substring(0, keygenKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
StringTokenizer tokenizer = new StringTokenizer(partition, KeyGenerator.PARTITION_SEPARATOR);
- // Must have 3 or more tokens as the first is the uddi scheme and the second is the domain key.
- if (tokenizer.countTokens() < 3)
+ int tokenCount = tokenizer.countTokens();
+ // Must have 2 or more tokens as the first is the uddi scheme and the second is the domain key.
+ if (tokenCount < 2)
return false;
+
+ String domainPartition = (String)tokenizer.nextElement() + KeyGenerator.PARTITION_SEPARATOR + (String)tokenizer.nextElement();
- Vector<DynamicQuery.Parameter> params = new Vector<DynamicQuery.Parameter>(0);
- String subPartition = "";
- for (int count = 0; tokenizer.hasMoreElements(); count++) {
- String nextToken = (String)tokenizer.nextElement();
- if (count == 0) {
- subPartition = nextToken;
- }
- else {
+ // If three or more tokens then we need to make sure the current publisher has the parent partitions. For example, you can't register the
+ // uddi:domain:abc:123 key generator without having the uddi:domain and uddi:domain:abc key generators. This implicitly checks if another
+ // publisher has any of these partitions since if they do, current publisher won't have them.
+ if (tokenCount > 2) {
+ Vector<DynamicQuery.Parameter> params = new Vector<DynamicQuery.Parameter>(0);
+
+ DynamicQuery.Parameter pubParam = new DynamicQuery.Parameter("t.authorizedName",
+ this.authorizedName,
+ DynamicQuery.PREDICATE_EQUALS);
+
+ int requiredCount = 0;
+ params.add(new DynamicQuery.Parameter("UPPER(t.entityKey)",
+ (domainPartition + KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase(),
+ DynamicQuery.PREDICATE_EQUALS));
+ requiredCount++;
+
+ String subPartition = domainPartition;
+ while (tokenizer.hasMoreElements()) {
+ // Don't need to add the last token as it is the proposed key generator.
+ if (tokenizer.countTokens() == 1)
+ break;
+
+ String nextToken = (String)tokenizer.nextElement();
subPartition = subPartition + KeyGenerator.PARTITION_SEPARATOR + nextToken;
- if (count > 1) {
- DynamicQuery.Parameter param = new DynamicQuery.Parameter("UPPER(k.keygenTModelKey)",
- subPartition + DynamicQuery.WILDCARD,
- DynamicQuery.PREDICATE_LIKE);
- params.add(param);
- }
+ DynamicQuery.Parameter param = new DynamicQuery.Parameter("UPPER(t.entityKey)",
+ (subPartition + KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase(),
+ DynamicQuery.PREDICATE_EQUALS);
+ params.add(param);
+ requiredCount++;
}
+
+ DynamicQuery checkParentKeyQry = new DynamicQuery();
+ checkParentKeyQry.append("select COUNT(t.entityKey) from Tmodel t").pad();
+
+ checkParentKeyQry.WHERE().pad().appendGroupedAnd(pubParam);
+ checkParentKeyQry.AND().pad().appendGroupedOr(params.toArray(new DynamicQuery.Parameter[0]));
+
+ Query qry = checkParentKeyQry.buildJPAQuery(em);
+ Number resultCount = (Number)qry.getSingleResult();
+ if (resultCount.longValue() != requiredCount)
+ return false;
+ }
+ else {
+ // If only two tokens, then a domain key generator is being checked. A domain key generator can only be registered if no other publishers
+ // own it. For example, if trying to register the uddi:domain:abc:123 key then uddi:domain cannot be owned by another publisher.
+ DynamicQuery.Parameter notPubParam = new DynamicQuery.Parameter("t.authorizedName",
+ this.authorizedName,
+ DynamicQuery.PREDICATE_NOTEQUALS);
+
+ DynamicQuery.Parameter keyParam = new DynamicQuery.Parameter("UPPER(t.entityKey)",
+ (domainPartition + KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase(),
+ DynamicQuery.PREDICATE_EQUALS);
+
+ DynamicQuery checkDomainKeyQry = new DynamicQuery();
+ checkDomainKeyQry.append("select t.entityKey from Tmodel t").pad();
+
+ checkDomainKeyQry.WHERE().pad().appendGroupedAnd(notPubParam, keyParam);
+
+ Query qry = checkDomainKeyQry.buildJPAQuery(em);
+ List<?> obj = qry.getResultList();
+ // If there are results then another publisher has the domain key and therefore the key generator is unavailable
+ if (obj != null && obj.size() > 0)
+ return false;
}
-
- if (params.size() == 0)
- return false;
-
- DynamicQuery checkTokensQry = new DynamicQuery();
- checkTokensQry.append("select k.keygenTModelKey from KeyGeneratorKey k ");
-
- DynamicQuery.Parameter pubParam = new DynamicQuery.Parameter("k.publisher.authorizedName",
- this.authorizedName,
- DynamicQuery.PREDICATE_NOTEQUALS);
- checkTokensQry.WHERE().pad().appendGroupedAnd(pubParam).pad();
- checkTokensQry.AND().pad();
- checkTokensQry.appendGroupedOr(params.toArray(new DynamicQuery.Parameter[0])).pad();
-
- Query qry = checkTokensQry.buildJPAQuery(em);
- List<?> obj = qry.getResultList();
- // If even one of the partitions are taken by another publisher, then the key generator is unavailable
- if (obj != null && obj.size() > 0)
- return false;
return true;
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java Fri Feb 6 05:58:32 2009
@@ -37,7 +37,7 @@
private Logger log = Logger.getLogger(FindEntityByPublisherQuery.class);
- public static final String PUBLISHER_ID_FIELD = "publisher.authorizedName";
+ public static final String AUTHORIZED_NAME_FIELD = "authorizedName";
private String entityName;
private String entityAlias;
@@ -100,7 +100,7 @@
*/
public void appendConditions(DynamicQuery qry, FindQualifiers fq, UddiEntityPublisher publisher) {
qry.WHERE().pad();
- qry.appendGroupedAnd(new DynamicQuery.Parameter(entityAlias + "." + PUBLISHER_ID_FIELD, publisher.getAuthorizedName(), DynamicQuery.PREDICATE_EQUALS));
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(entityAlias + "." + AUTHORIZED_NAME_FIELD, publisher.getAuthorizedName(), DynamicQuery.PREDICATE_EQUALS));
}
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java Fri Feb 6 05:58:32 2009
@@ -333,7 +333,7 @@
// Validate key and then check to see that the proposed key is valid for this publisher
ValidateUDDIKey.validateUDDIv3Key(entityKey);
- if (!publisher.isValidPublisherKey(entityKey))
+ if (!publisher.isValidPublisherKey(em, entityKey))
throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
}
@@ -454,7 +454,7 @@
// Validate key and then check to see that the proposed key is valid for this publisher
ValidateUDDIKey.validateUDDIv3Key(entityKey);
- if (!publisher.isValidPublisherKey(entityKey))
+ if (!publisher.isValidPublisherKey(em, entityKey))
throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
}
@@ -572,7 +572,7 @@
// Validate key and then check to see that the proposed key is valid for this publisher
ValidateUDDIKey.validateUDDIv3Key(entityKey);
- if (!publisher.isValidPublisherKey(entityKey))
+ if (!publisher.isValidPublisherKey(em, entityKey))
throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
}
@@ -659,7 +659,7 @@
else {
// If not a key generator, then simply validate key and then check to see that the proposed key is valid for this publisher
ValidateUDDIKey.validateUDDIv3Key(entityKey);
- if (!publisher.isValidPublisherKey(entityKey))
+ if (!publisher.isValidPublisherKey(em, entityKey))
throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
}
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java Fri Feb 6 05:58:32 2009
@@ -23,12 +23,8 @@
import javax.xml.bind.JAXBElement;
import org.uddi.v3_service.DispositionReportFaultMessage;
-import org.apache.commons.configuration.ConfigurationException;
import org.apache.juddi.keygen.KeyGenerator;
-import org.apache.juddi.config.AppConfig;
-import org.apache.juddi.config.Property;
import org.apache.juddi.error.ErrorMessage;
-import org.apache.juddi.error.FatalErrorException;
import org.apache.juddi.error.InvalidKeyPassedException;
import org.apache.juddi.error.ValueNotAllowedException;
@@ -38,39 +34,32 @@
public class ValidateUDDIKey {
public static void validateUDDIv3Key(String key) throws DispositionReportFaultMessage {
- String rootPartition = "";
- try
- { rootPartition = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PARTITION); }
- catch(ConfigurationException ce)
- { throw new FatalErrorException(new ErrorMessage("errors.configuration.Retrieval", Property.JUDDI_ROOT_PARTITION));}
-
- validateUDDIv3Key(key, rootPartition);
- }
-
- public static void validateUDDIv3Key(String key, String rootPartition) throws DispositionReportFaultMessage {
if (key == null)
throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NullKey"));
String keyToTest = key.trim();
if (keyToTest.endsWith(KeyGenerator.PARTITION_SEPARATOR))
throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
-
- // Key must be prefixed with the root partition
- if (!keyToTest.toUpperCase().startsWith(rootPartition.toUpperCase()))
- throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
- // Key must have at least one more partition beyond the root.
- keyToTest = keyToTest.substring(rootPartition.length());
- if (keyToTest.length() == 0 || !keyToTest.startsWith(KeyGenerator.PARTITION_SEPARATOR))
- throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
-
- keyToTest = keyToTest.substring(1);
StringTokenizer tokenizer = new StringTokenizer(key.toLowerCase(), KeyGenerator.PARTITION_SEPARATOR);
+ int tokensCount = tokenizer.countTokens();
+ if(tokensCount <= 1)
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
for(int count = 0; tokenizer.hasMoreTokens(); count++) {
String nextToken = tokenizer.nextToken();
- if (!isValidKSS(nextToken))
- throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
+ if (count == 0) {
+ if (!ValidateUDDIKey.isValidUDDIScheme(nextToken))
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
+ }
+ else if (count == 1) {
+ if(!ValidateUDDIKey.isValidDomainKey(nextToken))
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
+ }
+ else {
+ if (!isValidKSS(nextToken))
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
+ }
}
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties Fri Feb 6 05:58:32 2009
@@ -42,7 +42,7 @@
juddi.transfer.expiration.days=3
#
# jUDDI Authentication module to use
-juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
+juddi.auth = org.apache.juddi.auth.JUDDIAuthenticator
#
# jUDDI UUIDGen implementation to use
juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java Fri Feb 6 05:58:32 2009
@@ -28,6 +28,7 @@
import org.apache.juddi.error.UnknownUserException;
import org.apache.log4j.Logger;
import org.junit.Assert;
+import org.junit.Ignore;
import org.junit.Test;
/**
@@ -40,10 +41,10 @@
* The DefaultAuthenticator is basically a pass-through.
* @throws ConfigurationException
*/
- @Test
+ @Test @Ignore
public void testDefaultAuthenticator()
{
- Authenticator auth = new DefaultAuthenticator();
+ Authenticator auth = new JUDDIAuthenticator();
try {
auth.authenticate("anou_mana","password");
auth.authenticate("anou_mana","badpass");
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java Fri Feb 6 05:58:32 2009
@@ -34,7 +34,7 @@
public class TckBindingTemplate
{
final static String JOE_BINDING_XML = "uddi_data/joepublisher/bindingTemplate.xml";
- final static String JOE_BINDING_KEY = "uddi:juddi.apache.org:joepublisher:bindingtwo";
+ final static String JOE_BINDING_KEY = "uddi:uddi.joepublisher.com:bindingtwo";
private Logger logger = Logger.getLogger(this.getClass());
private UDDIPublicationPortType publication = null;
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java Fri Feb 6 05:58:32 2009
@@ -34,9 +34,9 @@
public class TckBusiness
{
final static String JOE_BUSINESS_XML = "uddi_data/joepublisher/businessEntity.xml";
- final static String JOE_BUSINESS_KEY = "uddi:juddi.apache.org:joepublisher:businessone";
+ final static String JOE_BUSINESS_KEY = "uddi:uddi.joepublisher.com:businessone";
final static String SAM_BUSINESS_XML = "uddi_data/samsyndicator/businessEntity.xml";
- final static String SAM_BUSINESS_KEY = "uddi:juddi.apache.org:samco:repository:samco";
+ final static String SAM_BUSINESS_KEY = "uddi:www.samco.com:samco";
private Logger logger = Logger.getLogger(this.getClass());
private UDDIPublicationPortType publication = null;
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java Fri Feb 6 05:58:32 2009
@@ -34,9 +34,9 @@
public class TckBusinessService
{
final static String JOE_SERVICE_XML = "uddi_data/joepublisher/businessService.xml";
- final static String JOE_SERVICE_KEY = "uddi:juddi.apache.org:joepublisher:serviceone";
+ final static String JOE_SERVICE_KEY = "uddi:uddi.joepublisher.com:serviceone";
final static String SAM_SERVICE_XML = "uddi_data/samsyndicator/businessService.xml";
- final static String SAM_SERVICE_KEY = "uddi:juddi.apache.org:samco:repository:listingservice";
+ final static String SAM_SERVICE_KEY = "uddi:www.samco.com:listingservice";
private Logger logger = Logger.getLogger(this.getClass());
private UDDIPublicationPortType publication = null;
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java Fri Feb 6 05:58:32 2009
@@ -34,9 +34,9 @@
public class TckTModel
{
final static String JOE_PUBLISHER_TMODEL_XML = "uddi_data/joepublisher/tModelKeyGen.xml";
- final static String JOE_PUBLISHER_TMODEL_KEY = "uddi:juddi.apache.org:joepublisher:KEYGENERATOR";
+ final static String JOE_PUBLISHER_TMODEL_KEY = "uddi:uddi.joepublisher.com:KEYGENERATOR";
final static String SAM_SYNDICATOR_TMODEL_XML = "uddi_data/samsyndicator/tModelKeyGen.xml";
- final static String SAM_SYNDICATOR_TMODEL_KEY = "uddi:juddi.apache.org:samco:repository:keygenerator";
+ final static String SAM_SYNDICATOR_TMODEL_KEY = "uddi:www.samco.com:keygenerator";
private Logger logger = Logger.getLogger(this.getClass());
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml Fri Feb 6 05:58:32 2009
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<bindingTemplate xmlns="urn:uddi-org:api_v3" serviceKey="uddi:juddi.apache.org:joepublisher:serviceone" bindingKey="uddi:juddi.apache.org:joepublisher:bindingtwo">
+<bindingTemplate xmlns="urn:uddi-org:api_v3" serviceKey="uddi:uddi.joepublisher.com:serviceone" bindingKey="uddi:uddi.joepublisher.com:bindingtwo">
<description xml:lang="en">This is the secure access point for service one</description>
<accessPoint useType="endPoint">https://businessone.com/services/serviceone</accessPoint>
<tModelInstanceDetails>
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml Fri Feb 6 05:58:32 2009
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:joepublisher:businessone">
+<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:uddi.joepublisher.com:businessone">
<discoveryURLs>
<discoveryURL useType="home">http://www.businessone.com</discoveryURL>
<discoveryURL useType="serviceList">http://www.businessone.com/services</discoveryURL>
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml Fri Feb 6 05:58:32 2009
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace"
- businessKey="uddi:juddi.apache.org:joepublisher:businessone" serviceKey="uddi:juddi.apache.org:joepublisher:serviceone">
+ businessKey="uddi:uddi.joepublisher.com:businessone" serviceKey="uddi:uddi.joepublisher.com:serviceone">
<name xml:lang="en">Service One</name>
<name xml:lang="es">Servicio Uno</name>
<description xml:lang="en">This is the description of service one.</description>
<description xml:lang="es">Ãsta es la descripción del servicio uno.</description>
<bindingTemplates>
- <bindingTemplate bindingKey="uddi:juddi.apache.org:joepublisher:bindingone">
+ <bindingTemplate bindingKey="uddi:uddi.joepublisher.com:bindingone">
<description xml:lang="en">This is the access point for service one.</description>
<accessPoint useType="endPoint">http://businessone.com/services/serviceone</accessPoint>
<tModelInstanceDetails>
- <tModelInstanceInfo tModelKey="uddi:businessone.com:services:serviceone:wsdlSpec">
+ <tModelInstanceInfo tModelKey="uddi:uddi.joepublisher.com:services:serviceone:wsdlSpec">
<description xml:lang="en">The wsdl for this service: service one</description>
<instanceDetails>
<overviewDoc>
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml Fri Feb 6 05:58:32 2009
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<publisherAssertion xmlns="urn:uddi-org:api_v3">
- <fromKey>uddi:juddi.apache.org:joepublisher:businessone</fromKey>
- <toKey>uddi:juddi.apache.org:samco:repository:samco</toKey>
+ <fromKey>uddi:uddi.joepublisher.com:businessone</fromKey>
+ <toKey>uddi:www.samco.com:samco</toKey>
<keyedReference tModelKey="uddi:uddi.org:relationships" keyName="Holding Company" keyValue="parent-child" />
</publisherAssertion>
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml Fri Feb 6 05:58:32 2009
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<tModel tModelKey="uddi:juddi.apache.org:joepublisher:KEYGENERATOR" xmlns="urn:uddi-org:api_v3">
+<tModel tModelKey="uddi:uddi.joepublisher.com:KEYGENERATOR" xmlns="urn:uddi-org:api_v3">
<name>Joe Publisher's Key Generator</name>
<description>This is the key generator for Joe Publisher's UDDI entities!</description>
<overviewDoc>
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml Fri Feb 6 05:58:32 2009
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:samco:repository:samco">
+<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:www.samco.com:samco">
<discoveryURLs>
<discoveryURL useType="home">http://www.samco.com</discoveryURL>
<discoveryURL useType="serviceList">http://www.samco.com/services</discoveryURL>
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml Fri Feb 6 05:58:32 2009
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
-<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:samco:repository:samco" serviceKey="uddi:juddi.apache.org:samco:repository:listingservice">
+<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:www.samco.com:samco" serviceKey="uddi:www.samco.com:listingservice">
<name xml:lang="en">Listing Service</name>
<name xml:lang="es">Servicio del listado</name>
<description xml:lang="en">This is the description of the listing service.</description>
<description xml:lang="es">Ãsta es la descripción del servicio del listado.</description>
<bindingTemplates>
- <bindingTemplate bindingKey="uddi:juddi.apache.org:samco:repository:listservice-accesspoint">
+ <bindingTemplate bindingKey="uddi:www.samco.com:listservice-accesspoint">
<description xml:lang="en">This is the access point for listing service.</description>
<accessPoint useType="endPoint">http:/samco.com/services/listingservice</accessPoint>
<tModelInstanceDetails>
- <tModelInstanceInfo tModelKey="uddi:juddi.apache.org:samco:repository:listservice-wsdlSpec">
+ <tModelInstanceInfo tModelKey="uddi:www.samco.com:listservice-wsdlSpec">
<description xml:lang="en">The wsdl for this service: Listing Service</description>
<instanceDetails>
<overviewDoc>
Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml?rev=741422&r1=741421&r2=741422&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml (original)
+++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml Fri Feb 6 05:58:32 2009
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<tModel tModelKey="uddi:juddi.apache.org:samco:repository:keygenerator" xmlns="urn:uddi-org:api_v3">
+<tModel tModelKey="uddi:www.samco.com:keygenerator" xmlns="urn:uddi-org:api_v3">
<name>Sam Syndicator's Key Generator</name>
<description>This is the key generator for Sam Syndicator's UDDI entities!</description>
<overviewDoc>
---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org
Re: svn commit: r741422 - in /webservices/juddi/branches/v3_trunk:
juddi-core/src/main/java/org/apache/juddi/api/impl/ juddi-core/src/main/java/org/apache/juddi/auth/
juddi-core/src/main/java/org/apache/juddi/config/ juddi-core/src/main/java/org/apache/jud...
Posted by Kurt T Stam <ku...@gmail.com>.
Hey Jeff,
To which Jira task does this belong to? Can you reference them on the
commit next time?
thx,
--Kurt
jfaath@apache.org wrote:
> Author: jfaath
> Date: Fri Feb 6 05:58:32 2009
> New Revision: 741422
>
> URL: http://svn.apache.org/viewvc?rev=741422&view=rev
> Log:
> The following changes were made:
>
> -UddiEntityPublisher no longer has persistent KeyGen collection
> -Logic in UddiEntityPublisher changed to dynamically find a publisher's key generators
> -Detached the publisher reference from UddiEntity class, now this class simply contains the non-nullable authorizedName
> -Publisher keys no longer are required to be prefixed by the root partition, they can provide their own domain key
> -Authentication split into two phases: authenticate and identify
> -Authenticators adjusted to account for new phases
> -JUDDIAuthenticator is new default Authenticator, authenticates based on Publisher entity
> -Install process adjusted to account for above changes
> -Tests and test files adjusted to account for above changes
>
> Added:
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java (contents, props changed)
> - copied, changed from r740405, webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java
> Removed:
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKey.java
> Modified:
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java
> webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties
> webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml
> webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/AuthenticatedService.java Fri Feb 6 05:58:32 2009
> @@ -21,6 +21,8 @@
>
> import javax.persistence.EntityManager;
>
> +import org.apache.juddi.auth.Authenticator;
> +import org.apache.juddi.auth.AuthenticatorFactory;
> import org.apache.juddi.error.AuthTokenRequiredException;
> import org.apache.juddi.error.ErrorMessage;
> import org.apache.juddi.model.UddiEntityPublisher;
> @@ -45,10 +47,16 @@
> if (modelAuthToken.getTokenState() == AUTHTOKEN_RETIRED)
> throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthInvalid"));
>
> - UddiEntityPublisher entityPublisher = em.find(UddiEntityPublisher.class, modelAuthToken.getAuthorizedName());
> + Authenticator authenticator = AuthenticatorFactory.getAuthenticator();
> + UddiEntityPublisher entityPublisher = authenticator.identify(authInfo, modelAuthToken.getAuthorizedName());
> +
> + // Must make sure the returned publisher has all the necessary fields filled
> if (entityPublisher == null)
> throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthInvalid"));
> -
> +
> + if (entityPublisher.getAuthorizedName() == null)
> + throw new AuthTokenRequiredException(new ErrorMessage("errors.auth.AuthInvalid"));
> +
> // Auth token is being used. Adjust appropriate values so that it's internal 'expiration clock' is reset.
> modelAuthToken.setLastUsed(new Date());
> modelAuthToken.setNumberOfUses(modelAuthToken.getNumberOfUses() + 1);
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDICustodyTransferImpl.java Fri Feb 6 05:58:32 2009
> @@ -176,18 +176,18 @@
> List<String> keyList = keyBag.getKey();
> for (String key : keyList) {
> UddiEntity uddiEntity = em.find(UddiEntity.class, key);
> - uddiEntity.setPublisher(publisher);
> + uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
>
> if (uddiEntity instanceof BusinessEntity) {
> BusinessEntity be = (BusinessEntity)uddiEntity;
>
> List<BusinessService> bsList = be.getBusinessServices();
> for (BusinessService bs : bsList) {
> - bs.setPublisher(publisher);
> + bs.setAuthorizedName(publisher.getAuthorizedName());
>
> List<BindingTemplate> btList = bs.getBindingTemplates();
> for (BindingTemplate bt : btList)
> - bt.setPublisher(publisher);
> + bt.setAuthorizedName(publisher.getAuthorizedName());
> }
> }
> }
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java Fri Feb 6 05:58:32 2009
> @@ -50,7 +50,6 @@
> import org.uddi.v3_service.UDDIPublicationPortType;
>
> import org.apache.commons.configuration.ConfigurationException;
> -import org.apache.juddi.keygen.KeyGenerator;
> import org.apache.juddi.mapping.MappingApiToModel;
> import org.apache.juddi.mapping.MappingModelToApi;
> import org.apache.juddi.validation.ValidatePublish;
> @@ -251,10 +250,6 @@
> for (String entityKey : entityKeyList) {
> Object obj = em.find(org.apache.juddi.model.Tmodel.class, entityKey);
> ((org.apache.juddi.model.Tmodel)obj).setDeleted(true);
> -
> - // Must check if tModel is a Key Generator, and if so, it must be removed from publisher collection
> - if (entityKey.toUpperCase().contains(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase()))
> - publisher.removeKeyGeneratorKey(em, entityKey);
>
> }
>
> @@ -508,9 +503,6 @@
>
> result.getTModel().add(apiTModel);
>
> - // If the TModel is a key generator, it must be added to the publisher's key generators.
> - if (modelTModel.getEntityKey().toUpperCase().contains(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase()))
> - publisher.addKeyGeneratorKey(modelTModel.getEntityKey());
> }
>
> tx.commit();
> @@ -569,7 +561,7 @@
>
> private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BusinessEntity uddiEntity, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
>
> - uddiEntity.setPublisher(publisher);
> + uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
>
> Date now = new Date();
> uddiEntity.setModified(now);
> @@ -600,7 +592,7 @@
>
> private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BusinessService uddiEntity, UddiEntityPublisher publisher, boolean isChild) throws DispositionReportFaultMessage {
>
> - uddiEntity.setPublisher(publisher);
> + uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
>
> Date now = new Date();
> uddiEntity.setModified(now);
> @@ -638,7 +630,7 @@
>
> private void setOperationalInfo(EntityManager em, org.apache.juddi.model.BindingTemplate uddiEntity, UddiEntityPublisher publisher, boolean isChild) throws DispositionReportFaultMessage {
>
> - uddiEntity.setPublisher(publisher);
> + uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
>
> Date now = new Date();
> uddiEntity.setModified(now);
> @@ -670,7 +662,7 @@
>
> private void setOperationalInfo(EntityManager em, org.apache.juddi.model.Tmodel uddiEntity, UddiEntityPublisher publisher) throws DispositionReportFaultMessage {
>
> - uddiEntity.setPublisher(publisher);
> + uddiEntity.setAuthorizedName(publisher.getAuthorizedName());
>
> Date now = new Date();
> uddiEntity.setModified(now);
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISecurityImpl.java Fri Feb 6 05:58:32 2009
> @@ -35,7 +35,6 @@
> import org.apache.juddi.error.UnknownUserException;
> import org.apache.juddi.error.ErrorMessage;
> import org.apache.juddi.mapping.MappingModelToApi;
> -import org.apache.juddi.model.Publisher;
> import org.apache.juddi.query.PersistenceManager;
>
> /**
> @@ -83,10 +82,6 @@
> EntityTransaction tx = em.getTransaction();
> tx.begin();
>
> - // Verify that that user has a publisher account and thus the authority to publish
> - Publisher publisher = em.find(org.apache.juddi.model.Publisher.class, publisherId);
> - if (publisher == null)
> - throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", publisherId));
>
> // Generate auth token and store it!
> String authInfo = AUTH_TOKEN_PREFIX + UUID.randomUUID();
> @@ -96,7 +91,6 @@
> modelAuthToken.setCreated(new Date());
> modelAuthToken.setLastUsed(new Date());
> modelAuthToken.setAuthorizedName(publisherId);
> - modelAuthToken.setPublisherName(publisher.getPublisherName());
> modelAuthToken.setNumberOfUses(0);
> modelAuthToken.setTokenState(AUTHTOKEN_ACTIVE);
>
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/Authenticator.java Fri Feb 6 05:58:32 2009
> @@ -19,11 +19,17 @@
>
> import org.apache.juddi.error.AuthenticationException;
> import org.apache.juddi.error.FatalErrorException;
> +import org.apache.juddi.model.UddiEntityPublisher;
>
> /**
> * Authenticator interface. Any class implementing this interface can be invoked by
> * the AuthenticatorFactory to handle authentication of the user executing a UDDI request.
> *
> + * This occurs in two steps:
> + *
> + * 1) Authenticating the user based the passed credentials
> + * 2) Identifying the user by associating either the authorizationKey or user Id with publisher information
> + *
> * @author Steve Viens (sviens@apache.org)
> * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
> */
> @@ -31,12 +37,22 @@
>
> /**
> *
> - * @param userID - userId of the user making the registry request
> + * @param authorizedName - userId of the user making the registry request
> * @param cred - some authentical creditial (i.e. a password) which can be used to
> * authenticate the user.
> *
> * @return The publisherID for this user
> * @throws {@link AuthenticationException}, {@link FatalErrorException}
> */
> - String authenticate(String userID,String cred) throws AuthenticationException, FatalErrorException;
> + String authenticate(String authorizedName, String cred) throws AuthenticationException, FatalErrorException;
> +
> + /*
> + * Either input parameter can be used to populate the publisher object
> + *
> + * @param authInfo - the authorization token
> + * @param authorizedName - the authorized Name
> + *
> + * @return - The entity publisher
> + */
> + UddiEntityPublisher identify(String authInfo, String authorizedName) throws AuthenticationException, FatalErrorException;
> }
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/AuthenticatorFactory.java Fri Feb 6 05:58:32 2009
> @@ -31,7 +31,7 @@
> private static Logger log = Logger.getLogger(AuthenticatorFactory.class);
>
> // Default authenticator implementation
> - private static final String DEFAULT_IMPL = "org.apache.juddi.auth.DefaultAuthenticator";
> + private static final String DEFAULT_IMPL = "org.apache.juddi.auth.JUDDIAuthenticator";
>
> // the shared Authenticator instance
> private static Authenticator auth = null;
>
> Copied: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java (from r740405, webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java)
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java?p2=webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java&p1=webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java&r1=740405&r2=741422&rev=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/DefaultAuthenticator.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java Fri Feb 6 05:58:32 2009
> @@ -17,21 +17,55 @@
>
> package org.apache.juddi.auth;
>
> +import javax.persistence.EntityManager;
> +
> +import org.apache.juddi.model.Publisher;
> import org.apache.juddi.error.AuthenticationException;
> +import org.apache.juddi.error.ErrorMessage;
> +import org.apache.juddi.error.UnknownUserException;
> +import org.apache.juddi.model.UddiEntityPublisher;
> +import org.apache.juddi.query.PersistenceManager;
>
> /**
> - * This is the simplest (and default) implementation of jUDDI's Authenticator interface, which
> - * successfully authenticates any authentication request.
> + * This is the default implementation of jUDDI's Authenticator interface, which
> + * authenticates a request only if the user id has an associated publisher.
> *
> * @author Steve Viens (sviens@apache.org)
> * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
> + * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
> */
> -public class DefaultAuthenticator implements Authenticator {
> +public class JUDDIAuthenticator implements Authenticator {
> /**
> *
> - * @return the same userId that came in on the request.
> + * @return the userId that came in on the request providing the user has a publishing account in jUDDI.
> */
> - public String authenticate(String userID, String credential) throws AuthenticationException {
> - return userID;
> + public String authenticate(String authorizedName, String credential) throws AuthenticationException {
> + EntityManager em = PersistenceManager.getEntityManager();
> + try {
> + Publisher publisher = em.find(Publisher.class, authorizedName);
> + if (publisher == null)
> + throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", authorizedName));
> +
> + return authorizedName;
> + }
> + finally {
> + if (em.isOpen())
> + em.close();
> + }
> + }
> +
> + public UddiEntityPublisher identify(String authInfo, String authorizedName) throws AuthenticationException {
> + EntityManager em = PersistenceManager.getEntityManager();
> + try {
> + Publisher publisher = em.find(Publisher.class, authorizedName);
> + if (publisher == null)
> + throw new UnknownUserException(new ErrorMessage("errors.auth.NoPublisher", authorizedName));
> +
> + return publisher;
> + }
> + finally {
> + if (em.isOpen())
> + em.close();
> + }
> }
> }
> \ No newline at end of file
>
> Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java
> ------------------------------------------------------------------------------
> svn:mergeinfo =
>
> Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/JUDDIAuthenticator.java
> ------------------------------------------------------------------------------
> svn:mime-type = text/plain
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/auth/XMLDocAuthenticator.java Fri Feb 6 05:58:32 2009
> @@ -34,6 +34,7 @@
> import org.apache.juddi.error.ErrorMessage;
> import org.apache.juddi.error.FatalErrorException;
> import org.apache.juddi.error.UnknownUserException;
> +import org.apache.juddi.model.UddiEntityPublisher;
> import org.apache.log4j.Logger;
> import org.apache.log4j.helpers.Loader;
>
> @@ -54,6 +55,7 @@
> *
> * @author Steve Viens (sviens@apache.org)
> * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
> + * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
> */
> public class XMLDocAuthenticator implements Authenticator
> {
> @@ -119,4 +121,9 @@
>
> return userID;
> }
> +
> + public UddiEntityPublisher identify(String authInfo, String authorizedName) throws AuthenticationException {
> + return new UddiEntityPublisher(authorizedName);
> + }
> +
> }
> \ No newline at end of file
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java Fri Feb 6 05:58:32 2009
> @@ -32,7 +32,6 @@
> import org.apache.commons.configuration.SystemConfiguration;
> import org.apache.commons.configuration.reloading.FileChangedReloadingStrategy;
> import org.apache.juddi.keygen.KeyGenerator;
> -import org.apache.juddi.model.KeyGeneratorKey;
> import org.apache.juddi.model.UddiEntityPublisher;
> import org.apache.juddi.query.FindBusinessByCategoryQuery;
> import org.apache.juddi.query.PersistenceManager;
> @@ -117,12 +116,14 @@
> }
> tx.commit();
> tx.begin();
> - UddiEntityPublisher rootPublisher = em.find(UddiEntityPublisher.class, Constants.ROOT_PUBLISHER);
> - List<KeyGeneratorKey> rootKeyGenList = rootPublisher.getKeyGeneratorKeys();
> +
> + UddiEntityPublisher rootPublisher = new UddiEntityPublisher(Constants.ROOT_PUBLISHER);
> + rootPublisher.populateKeyGeneratorKeys(em);
> + List<String> rootKeyGenList = rootPublisher.getKeyGeneratorKeys();
> if (rootKeyGenList == null || rootKeyGenList.size() == 0)
> throw new ConfigurationException("The 'root' publisher key generator was not found. Please make sure that the application is properly installed.");
>
> - String rootKeyGen = rootKeyGenList.iterator().next().getKeygenTModelKey();
> + String rootKeyGen = rootKeyGenList.iterator().next();
> //rootKeyGen = rootKeyGen.substring((KeyGenerator.UDDI_SCHEME + KeyGenerator.PARTITION_SEPARATOR).length());
> rootKeyGen = rootKeyGen.substring(0, rootKeyGen.length() - (KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).length());
> log.debug("root partition: " + rootKeyGen);
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java Fri Feb 6 05:58:32 2009
> @@ -35,7 +35,6 @@
> import javax.xml.bind.Unmarshaller;
>
> import org.apache.commons.configuration.ConfigurationException;
> -import org.apache.juddi.api.datatype.Publisher;
> import org.apache.juddi.api.impl.UDDIInquiryImpl;
> import org.apache.juddi.error.ErrorMessage;
> import org.apache.juddi.error.FatalErrorException;
> @@ -44,7 +43,6 @@
> import org.apache.juddi.error.ValueNotAllowedException;
> import org.apache.juddi.keygen.KeyGenerator;
> import org.apache.juddi.mapping.MappingApiToModel;
> -import org.apache.juddi.model.KeyGeneratorKey;
> import org.apache.juddi.model.UddiEntityPublisher;
> import org.apache.juddi.query.PersistenceManager;
> import org.apache.juddi.validation.ValidatePublish;
> @@ -105,14 +103,15 @@
>
> rootPublisher = installPublisher(em, JUDDI_INSTALL_DATA_DIR + FILE_ROOT_PUBLISHER);
> uddiPublisher = installPublisher(em, JUDDI_INSTALL_DATA_DIR + FILE_UDDI_PUBLISHER);
> - //Inserting 2 test publishers
> + // TODO: These do not belong here
> + // Inserting 2 test publishers
> installPublisher(em, JUDDI_INSTALL_DATA_DIR + FILE_JOE_PUBLISHER);
> installPublisher(em, JUDDI_INSTALL_DATA_DIR + FILE_SSYNDICATOR);
>
> installRootPublisherKeyGen(em, rootTModelKeyGen, rootPartition, rootPublisher, nodeId);
>
> rootBusinessEntity.setBusinessKey(nodeId);
> - installRootBusinessEntity(em, rootBusinessEntity, rootPublisher);
> + installRootBusinessEntity(em, rootBusinessEntity, rootPublisher, rootPartition);
>
> installUDDITModels(em, JUDDI_INSTALL_DATA_DIR + FILE_UDDI_TMODELS, uddiPublisher, nodeId);
>
> @@ -172,11 +171,11 @@
>
> public static boolean alreadyInstalled(EntityManager em) {
>
> - UddiEntityPublisher publisher = em.find(UddiEntityPublisher.class, Constants.ROOT_PUBLISHER);
> + org.apache.juddi.model.Publisher publisher = em.find(org.apache.juddi.model.Publisher.class, Constants.ROOT_PUBLISHER);
> if (publisher != null)
> return true;
>
> - publisher = em.find(UddiEntityPublisher.class, Constants.UDDI_PUBLISHER);
> + publisher = em.find(org.apache.juddi.model.Publisher.class, Constants.UDDI_PUBLISHER);
> if (publisher != null)
> return true;
>
> @@ -219,7 +218,7 @@
> result = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
> }
> else {
> - ValidateUDDIKey.validateUDDIv3Key(result, rootPartition);
> + ValidateUDDIKey.validateUDDIv3Key(result);
> String keyPartition = result.substring(0, result.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> if (!rootPartition.equalsIgnoreCase(keyPartition))
> throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", userNodeId));
> @@ -244,15 +243,15 @@
> }
>
>
> - private static String installRootBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity, UddiEntityPublisher rootPublisher)
> + private static String installRootBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity, UddiEntityPublisher rootPublisher, String rootPartition)
> throws JAXBException, DispositionReportFaultMessage, IOException {
>
> - validateRootBusinessEntity(rootBusinessEntity, rootPublisher);
> + validateRootBusinessEntity(rootBusinessEntity, rootPublisher, rootPartition);
>
> org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
> MappingApiToModel.mapBusinessEntity(rootBusinessEntity, modelBusinessEntity);
>
> - modelBusinessEntity.setPublisher(rootPublisher);
> + modelBusinessEntity.setAuthorizedName(rootPublisher.getAuthorizedName());
>
> Date now = new Date();
> modelBusinessEntity.setCreated(now);
> @@ -261,7 +260,7 @@
> modelBusinessEntity.setNodeId(modelBusinessEntity.getEntityKey());
>
> for (org.apache.juddi.model.BusinessService service : modelBusinessEntity.getBusinessServices()) {
> - service.setPublisher(rootPublisher);
> + service.setAuthorizedName(rootPublisher.getAuthorizedName());
>
> service.setCreated(now);
> service.setModified(now);
> @@ -269,7 +268,7 @@
> service.setNodeId(modelBusinessEntity.getEntityKey());
>
> for (org.apache.juddi.model.BindingTemplate binding : service.getBindingTemplates()) {
> - binding.setPublisher(rootPublisher);
> + binding.setAuthorizedName(rootPublisher.getAuthorizedName());
>
> binding.setCreated(now);
> binding.setModified(now);
> @@ -287,16 +286,13 @@
>
> // A watered down version of ValidatePublish's validateBusinessEntity, designed for the specific condition that this is run upon the initial
> // jUDDI install.
> - private static void validateRootBusinessEntity(org.uddi.api_v3.BusinessEntity businessEntity, UddiEntityPublisher rootPublisher)
> + private static void validateRootBusinessEntity(org.uddi.api_v3.BusinessEntity businessEntity, UddiEntityPublisher rootPublisher, String rootPartition)
> throws DispositionReportFaultMessage {
>
> // A supplied businessService can't be null
> if (businessEntity == null)
> throw new ValueNotAllowedException(new ErrorMessage("errors.businessentity.NullInput"));
>
> - String rootPartition = rootPublisher.getKeyGeneratorKeys().iterator().next().getKeygenTModelKey();
> - rootPartition = rootPartition.substring(0, rootPartition.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> -
> // The business key should already be set to the previously calculated and validated nodeId. This validation is unnecessary but kept for
> // symmetry with the other entity validations.
> String entityKey = businessEntity.getBusinessKey();
> @@ -305,8 +301,9 @@
> businessEntity.setBusinessKey(entityKey);
> }
> else {
> - ValidateUDDIKey.validateUDDIv3Key(entityKey, rootPartition);
> - if (!rootPublisher.isValidPublisherKey(entityKey))
> + ValidateUDDIKey.validateUDDIv3Key(entityKey);
> + String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> + if (!rootPartition.equalsIgnoreCase(keyPartition))
> throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
> }
>
> @@ -325,7 +322,7 @@
> throw new ValueNotAllowedException(new ErrorMessage("errors.businessservices.NoInput"));
>
> for (org.uddi.api_v3.BusinessService businessService : businessServiceList) {
> - validateRootBusinessService(businessService, businessEntity, rootPublisher);
> + validateRootBusinessService(businessService, businessEntity, rootPublisher, rootPartition);
> }
> }
>
> @@ -333,7 +330,7 @@
>
> // A watered down version of ValidatePublish's validateBusinessService, designed for the specific condition that this is run upon the initial
> // jUDDI install.
> - private static void validateRootBusinessService(org.uddi.api_v3.BusinessService businessService, org.uddi.api_v3.BusinessEntity parent, UddiEntityPublisher rootPublisher)
> + private static void validateRootBusinessService(org.uddi.api_v3.BusinessService businessService, org.uddi.api_v3.BusinessEntity parent, UddiEntityPublisher rootPublisher, String rootPartition)
> throws DispositionReportFaultMessage {
>
> // A supplied businessService can't be null
> @@ -347,9 +344,6 @@
> throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ParentBusinessNotFound", parentKey));
> }
>
> - String rootPartition = rootPublisher.getKeyGeneratorKeys().iterator().next().getKeygenTModelKey();
> - rootPartition = rootPartition.substring(0, rootPartition.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> -
> // Retrieve the service's passed key
> String entityKey = businessService.getServiceKey();
> if (entityKey == null || entityKey.length() == 0) {
> @@ -357,8 +351,9 @@
> businessService.setServiceKey(entityKey);
> }
> else {
> - ValidateUDDIKey.validateUDDIv3Key(entityKey, rootPartition);
> - if (!rootPublisher.isValidPublisherKey(entityKey))
> + ValidateUDDIKey.validateUDDIv3Key(entityKey);
> + String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> + if (!rootPartition.equalsIgnoreCase(keyPartition))
> throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
> }
>
> @@ -374,14 +369,14 @@
> throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplates.NoInput"));
>
> for (org.uddi.api_v3.BindingTemplate bindingTemplate : bindingTemplateList) {
> - validateRootBindingTemplate(bindingTemplate, businessService, rootPublisher);
> + validateRootBindingTemplate(bindingTemplate, businessService, rootPublisher, rootPartition);
> }
> }
> }
>
> // A watered down version of ValidatePublish's validatBindingTemplate, designed for the specific condition that this is run upon the initial
> // jUDDI install.
> - private static void validateRootBindingTemplate(org.uddi.api_v3.BindingTemplate bindingTemplate, org.uddi.api_v3.BusinessService parent, UddiEntityPublisher rootPublisher)
> + private static void validateRootBindingTemplate(org.uddi.api_v3.BindingTemplate bindingTemplate, org.uddi.api_v3.BusinessService parent, UddiEntityPublisher rootPublisher, String rootPartition)
> throws DispositionReportFaultMessage {
>
> // A supplied businessService can't be null
> @@ -395,9 +390,6 @@
> throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ParentServiceNotFound", parentKey));
> }
>
> - String rootPartition = rootPublisher.getKeyGeneratorKeys().iterator().next().getKeygenTModelKey();
> - rootPartition = rootPartition.substring(0, rootPartition.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> -
> // Retrieve the service's passed key
> String entityKey = bindingTemplate.getBindingKey();
> if (entityKey == null || entityKey.length() == 0) {
> @@ -405,8 +397,9 @@
> bindingTemplate.setBindingKey(entityKey);
> }
> else {
> - ValidateUDDIKey.validateUDDIv3Key(entityKey, rootPartition);
> - if (!rootPublisher.isValidPublisherKey(entityKey))
> + ValidateUDDIKey.validateUDDIv3Key(entityKey);
> + String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> + if (!rootPartition.equalsIgnoreCase(keyPartition))
> throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
> }
>
> @@ -428,7 +421,7 @@
>
> private static UddiEntityPublisher installPublisher(EntityManager em, String resource)
> throws JAXBException, DispositionReportFaultMessage, IOException {
> - Publisher apiPub = (Publisher)buildEntityFromDoc(resource, "org.apache.juddi.api.datatype");
> + org.apache.juddi.api.datatype.Publisher apiPub = (org.apache.juddi.api.datatype.Publisher)buildEntityFromDoc(resource, "org.apache.juddi.api.datatype");
> org.apache.juddi.model.Publisher modelPub = new org.apache.juddi.model.Publisher();
> MappingApiToModel.mapPublisher(apiPub, modelPub);
> em.persist(modelPub);
> @@ -447,7 +440,7 @@
> org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
> MappingApiToModel.mapTModel(apiTModel, modelTModel);
>
> - modelTModel.setPublisher(publisher);
> + modelTModel.setAuthorizedName(publisher.getAuthorizedName());
>
> Date now = new Date();
> modelTModel.setCreated(now);
> @@ -476,7 +469,7 @@
> org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
> MappingApiToModel.mapTModel(apiTModel, modelTModel);
>
> - modelTModel.setPublisher(publisher);
> + modelTModel.setAuthorizedName(publisher.getAuthorizedName());
>
> Date now = new Date();
> modelTModel.setCreated(now);
> @@ -486,11 +479,6 @@
>
> em.persist(modelTModel);
>
> - KeyGeneratorKey keyGenKey = new KeyGeneratorKey();
> - keyGenKey.setPublisher(publisher);
> - keyGenKey.setKeygenTModelKey(modelTModel.getEntityKey());
> - publisher.getKeyGeneratorKeys().add(keyGenKey);
> -
> }
>
> private static Object buildEntityFromDoc(String resource, String thePackage) throws JAXBException, IOException {
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/AuthToken.java Fri Feb 6 05:58:32 2009
> @@ -72,7 +72,7 @@
> this.authorizedName = authorizedName;
> }
>
> - @Column(name = "publisher_name", nullable = false)
> + @Column(name = "publisher_name")
> public String getPublisherName() {
> return this.publisherName;
> }
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java Fri Feb 6 05:58:32 2009
> @@ -54,7 +54,7 @@
> this.modified = modified;
> }
> public BusinessEntity(String entityKey, String authorizedName,
> - UddiEntityPublisher publisher, String operator,
> + String operator,
> Date modified, List<Contact> contacts,
> List<BusinessIdentifier> businessIdentifiers,
> List<PublisherAssertion> publisherAssertionsForFromKey,
> @@ -64,7 +64,7 @@
> List<BusinessService> businessServices,
> List<BusinessDescr> businessDescrs) {
> this.entityKey = entityKey;
> - this.publisher = publisher;
> + this.authorizedName = authorizedName;
> this.modified = modified;
> this.contacts = contacts;
> this.businessIdentifiers = businessIdentifiers;
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Publisher.java Fri Feb 6 05:58:32 2009
> @@ -15,11 +15,8 @@
> * limitations under the License.
> */
>
> -import java.util.List;
> -
> import javax.persistence.Column;
> import javax.persistence.Entity;
> -import javax.persistence.PrimaryKeyJoinColumn;
> import javax.persistence.Table;
> import javax.persistence.Transient;
>
> @@ -29,7 +26,7 @@
> */
> @Entity
> @Table(name = "publisher")
> -@PrimaryKeyJoinColumn(name = "authorized_name")
> +//@PrimaryKeyJoinColumn(name = "authorized_name")
> public class Publisher extends UddiEntityPublisher implements java.io.Serializable {
>
> private static final long serialVersionUID = 1L;
> @@ -43,17 +40,20 @@
> private Integer maxTmodels;
>
> public Publisher() {
> + super(null);
> }
>
> public Publisher(String publisherId, String publisherName) {
> + super(publisherId);
> this.authorizedName = publisherId;
> this.publisherName = publisherName;
> }
> public Publisher(String publisherId, String publisherName,
> String emailAddress, String isAdmin, String isEnabled,
> Integer maxBusinesses, Integer maxServicesPerBusiness,
> - Integer maxBindingsPerService, Integer maxTmodels,
> - List<KeyGeneratorKey> keyGenerators) {
> + Integer maxBindingsPerService, Integer maxTmodels) {
> +
> + super(publisherId);
> this.authorizedName = publisherId;
> this.publisherName = publisherName;
> this.emailAddress = emailAddress;
> @@ -63,7 +63,6 @@
> this.maxServicesPerBusiness = maxServicesPerBusiness;
> this.maxBindingsPerService = maxBindingsPerService;
> this.maxTmodels = maxTmodels;
> - this.keyGeneratorKeys = keyGenerators;
> }
>
>
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java Fri Feb 6 05:58:32 2009
> @@ -54,14 +54,14 @@
> this.name = name;
> this.modified = modified;
> }
> - public Tmodel(String entityKey, String authorizedName, UddiEntityPublisher publisher, String operator,
> + public Tmodel(String entityKey, String authorizedName, String operator,
> String name, String langCode, boolean deleted, Date modified,
> List<OverviewDoc> overviewDocs,
> List<TmodelDescr> tmodelDescrs,
> List<TmodelIdentifier> tmodelIdentifiers,
> TmodelCategoryBag categoryBag) {
> this.entityKey = entityKey;
> - this.publisher = publisher;
> + this.authorizedName = authorizedName;
> this.name = name;
> this.langCode = langCode;
> this.deleted = deleted;
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntity.java Fri Feb 6 05:58:32 2009
> @@ -19,12 +19,9 @@
>
> import javax.persistence.Column;
> import javax.persistence.Entity;
> -import javax.persistence.FetchType;
> import javax.persistence.Id;
> import javax.persistence.Inheritance;
> import javax.persistence.InheritanceType;
> -import javax.persistence.JoinColumn;
> -import javax.persistence.ManyToOne;
> import javax.persistence.Table;
> import javax.persistence.Temporal;
> import javax.persistence.TemporalType;
> @@ -42,7 +39,7 @@
> protected Date modified;
> protected Date modifiedIncludingChildren;
> protected String nodeId;
> - protected UddiEntityPublisher publisher;
> + protected String authorizedName;
>
> @Id
> @Column(name = "entity_key", nullable = false, length = 255)
> @@ -87,14 +84,14 @@
> public void setNodeId(String nodeId) {
> this.nodeId = nodeId;
> }
> +
>
> - @ManyToOne(fetch = FetchType.LAZY)
> - @JoinColumn(name = "authorized_name", nullable = false)
> - public UddiEntityPublisher getPublisher() {
> - return this.publisher;
> + @Column(name = "authorized_name", nullable=false, length = 255)
> + public String getAuthorizedName() {
> + return authorizedName;
> }
> - public void setPublisher(UddiEntityPublisher publisher) {
> - this.publisher = publisher;
> + public void setAuthorizedName(String authorizedName) {
> + this.authorizedName = authorizedName;
> }
>
> }
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java Fri Feb 6 05:58:32 2009
> @@ -17,24 +17,16 @@
>
> package org.apache.juddi.model;
>
> -import java.util.ArrayList;
> -import java.util.Iterator;
> import java.util.List;
> import java.util.StringTokenizer;
> import java.util.Vector;
>
> -import javax.persistence.CascadeType;
> import javax.persistence.Column;
> -import javax.persistence.Entity;
> import javax.persistence.EntityManager;
> -import javax.persistence.FetchType;
> import javax.persistence.Id;
> -import javax.persistence.Inheritance;
> -import javax.persistence.InheritanceType;
> -import javax.persistence.OneToMany;
> -import javax.persistence.OrderBy;
> +import javax.persistence.MappedSuperclass;
> import javax.persistence.Query;
> -import javax.persistence.Table;
> +import javax.persistence.Transient;
>
> import org.apache.juddi.keygen.KeyGenerator;
> import org.apache.juddi.query.util.DynamicQuery;
> @@ -44,67 +36,75 @@
> /**
> * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
> */
> -@Entity
> -@Table(name = "uddi_publisher")
> -@Inheritance(strategy = InheritanceType.JOINED)
> -public abstract class UddiEntityPublisher {
> +@MappedSuperclass
> +public class UddiEntityPublisher {
>
>
> protected String authorizedName;
> - protected List<KeyGeneratorKey> keyGeneratorKeys = new ArrayList<KeyGeneratorKey>(0);
> + private List<String> keyGeneratorKeys = null;
>
> + public UddiEntityPublisher(String authorizedName) {
> + this.authorizedName = authorizedName;
> + }
> +
> @Id
> @Column(name = "authorized_name", nullable = false, length = 20)
> public String getAuthorizedName() {
> return this.authorizedName;
> }
> -
> public void setAuthorizedName(String authorizedName) {
> this.authorizedName = authorizedName;
> }
>
> - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "publisher")
> - @OrderBy
> - public List<KeyGeneratorKey> getKeyGeneratorKeys() {
> - return this.keyGeneratorKeys;
> + @Transient
> + public List<String> getKeyGeneratorKeys() {
> + return keyGeneratorKeys;
> }
> - public void setKeyGeneratorKeys(List<KeyGeneratorKey> keyGeneratorKeys) {
> + public void setKeyGeneratorKeys(List<String> keyGeneratorKeys) {
> this.keyGeneratorKeys = keyGeneratorKeys;
> }
> - public void addKeyGeneratorKey(String keygenTModelKey) {
> - KeyGeneratorKey keyGenKey = new KeyGeneratorKey(this, keygenTModelKey);
> - keyGeneratorKeys.add(keyGenKey);
> - }
> - public void removeKeyGeneratorKey(EntityManager em, String keygenTModelKey) {
> - // Must use iterator to remove while iterating.
> - Iterator<KeyGeneratorKey> keyGenItr = keyGeneratorKeys.iterator();
> - while(keyGenItr.hasNext()) {
> - KeyGeneratorKey keyGen = keyGenItr.next();
> - if (keyGen.getKeygenTModelKey().equalsIgnoreCase(keygenTModelKey)) {
> - keyGenItr.remove();
> - keyGeneratorKeys.remove(keyGen);
> - em.remove(keyGen);
> - }
> - }
> +
> + @SuppressWarnings("unchecked")
> + public void populateKeyGeneratorKeys(EntityManager em) {
> + DynamicQuery getKeysQuery = new DynamicQuery();
> + getKeysQuery.append("select t.entityKey from Tmodel t").pad().WHERE().pad();
> +
> + DynamicQuery.Parameter pubParam = new DynamicQuery.Parameter("t.authorizedName",
> + this.authorizedName,
> + DynamicQuery.PREDICATE_EQUALS);
> +
> + DynamicQuery.Parameter keyParam = new DynamicQuery.Parameter("UPPER(t.entityKey)",
> + (DynamicQuery.WILDCARD + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase(),
> + DynamicQuery.PREDICATE_LIKE);
> +
> + getKeysQuery.appendGroupedAnd(pubParam, keyParam);
> + Query qry = getKeysQuery.buildJPAQuery(em);
> +
> + keyGeneratorKeys = qry.getResultList();
> }
>
> public boolean isOwner(UddiEntity entity){
> boolean ret = false;
> if (entity != null) {
> - if (entity.getPublisher().getAuthorizedName().equals(this.authorizedName))
> + if (entity.getAuthorizedName().equals(this.authorizedName))
> ret = true;
> }
> return ret;
> }
>
> - public boolean isValidPublisherKey(String key) {
> +
> + public boolean isValidPublisherKey(EntityManager em, String key) {
> if (key == null)
> return false;
> +
> + if (keyGeneratorKeys == null)
> + populateKeyGeneratorKeys(em);
> +
>
> String keyPartition = key.substring(0, key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
>
> - for (KeyGeneratorKey keyGenKey : keyGeneratorKeys) {
> - String keyGenPartition = keyGenKey.getKeygenTModelKey().substring(0, key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> + for (String keyGenKey : keyGeneratorKeys) {
> + String keyGenPartition = keyGenKey.substring(0, key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
> if (keyGenPartition.equalsIgnoreCase(keyPartition))
> return true;
> }
> @@ -117,56 +117,83 @@
> */
> public boolean isKeyGeneratorAvailable(EntityManager em, String keygenKey) throws DispositionReportFaultMessage {
>
> - // First make sure the key is a valid UDDIv3 key
> + // First make sure the key is a valid UDDIv3 key per the specification's rules
> ValidateUDDIKey.validateUDDIv3KeyGeneratorKey(keygenKey);
>
> - String keyGenSuffix = (KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase();
> - if (!(keygenKey.toUpperCase().endsWith(keyGenSuffix)))
> - return false;
> -
> - String partition = keygenKey.toUpperCase().substring(0, keygenKey.length() - keyGenSuffix.length());
> + String partition = keygenKey.toUpperCase().substring(0, keygenKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
>
> StringTokenizer tokenizer = new StringTokenizer(partition, KeyGenerator.PARTITION_SEPARATOR);
> - // Must have 3 or more tokens as the first is the uddi scheme and the second is the domain key.
> - if (tokenizer.countTokens() < 3)
> + int tokenCount = tokenizer.countTokens();
> + // Must have 2 or more tokens as the first is the uddi scheme and the second is the domain key.
> + if (tokenCount < 2)
> return false;
> +
> + String domainPartition = (String)tokenizer.nextElement() + KeyGenerator.PARTITION_SEPARATOR + (String)tokenizer.nextElement();
>
> - Vector<DynamicQuery.Parameter> params = new Vector<DynamicQuery.Parameter>(0);
> - String subPartition = "";
> - for (int count = 0; tokenizer.hasMoreElements(); count++) {
> - String nextToken = (String)tokenizer.nextElement();
> - if (count == 0) {
> - subPartition = nextToken;
> - }
> - else {
> + // If three or more tokens then we need to make sure the current publisher has the parent partitions. For example, you can't register the
> + // uddi:domain:abc:123 key generator without having the uddi:domain and uddi:domain:abc key generators. This implicitly checks if another
> + // publisher has any of these partitions since if they do, current publisher won't have them.
> + if (tokenCount > 2) {
> + Vector<DynamicQuery.Parameter> params = new Vector<DynamicQuery.Parameter>(0);
> +
> + DynamicQuery.Parameter pubParam = new DynamicQuery.Parameter("t.authorizedName",
> + this.authorizedName,
> + DynamicQuery.PREDICATE_EQUALS);
> +
> + int requiredCount = 0;
> + params.add(new DynamicQuery.Parameter("UPPER(t.entityKey)",
> + (domainPartition + KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase(),
> + DynamicQuery.PREDICATE_EQUALS));
> + requiredCount++;
> +
> + String subPartition = domainPartition;
> + while (tokenizer.hasMoreElements()) {
> + // Don't need to add the last token as it is the proposed key generator.
> + if (tokenizer.countTokens() == 1)
> + break;
> +
> + String nextToken = (String)tokenizer.nextElement();
> subPartition = subPartition + KeyGenerator.PARTITION_SEPARATOR + nextToken;
> - if (count > 1) {
> - DynamicQuery.Parameter param = new DynamicQuery.Parameter("UPPER(k.keygenTModelKey)",
> - subPartition + DynamicQuery.WILDCARD,
> - DynamicQuery.PREDICATE_LIKE);
> - params.add(param);
> - }
> + DynamicQuery.Parameter param = new DynamicQuery.Parameter("UPPER(t.entityKey)",
> + (subPartition + KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase(),
> + DynamicQuery.PREDICATE_EQUALS);
> + params.add(param);
> + requiredCount++;
> }
> +
> + DynamicQuery checkParentKeyQry = new DynamicQuery();
> + checkParentKeyQry.append("select COUNT(t.entityKey) from Tmodel t").pad();
> +
> + checkParentKeyQry.WHERE().pad().appendGroupedAnd(pubParam);
> + checkParentKeyQry.AND().pad().appendGroupedOr(params.toArray(new DynamicQuery.Parameter[0]));
> +
> + Query qry = checkParentKeyQry.buildJPAQuery(em);
> + Number resultCount = (Number)qry.getSingleResult();
> + if (resultCount.longValue() != requiredCount)
> + return false;
> + }
> + else {
> + // If only two tokens, then a domain key generator is being checked. A domain key generator can only be registered if no other publishers
> + // own it. For example, if trying to register the uddi:domain:abc:123 key then uddi:domain cannot be owned by another publisher.
> + DynamicQuery.Parameter notPubParam = new DynamicQuery.Parameter("t.authorizedName",
> + this.authorizedName,
> + DynamicQuery.PREDICATE_NOTEQUALS);
> +
> + DynamicQuery.Parameter keyParam = new DynamicQuery.Parameter("UPPER(t.entityKey)",
> + (domainPartition + KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX).toUpperCase(),
> + DynamicQuery.PREDICATE_EQUALS);
> +
> + DynamicQuery checkDomainKeyQry = new DynamicQuery();
> + checkDomainKeyQry.append("select t.entityKey from Tmodel t").pad();
> +
> + checkDomainKeyQry.WHERE().pad().appendGroupedAnd(notPubParam, keyParam);
> +
> + Query qry = checkDomainKeyQry.buildJPAQuery(em);
> + List<?> obj = qry.getResultList();
> + // If there are results then another publisher has the domain key and therefore the key generator is unavailable
> + if (obj != null && obj.size() > 0)
> + return false;
> }
> -
> - if (params.size() == 0)
> - return false;
> -
> - DynamicQuery checkTokensQry = new DynamicQuery();
> - checkTokensQry.append("select k.keygenTModelKey from KeyGeneratorKey k ");
> -
> - DynamicQuery.Parameter pubParam = new DynamicQuery.Parameter("k.publisher.authorizedName",
> - this.authorizedName,
> - DynamicQuery.PREDICATE_NOTEQUALS);
> - checkTokensQry.WHERE().pad().appendGroupedAnd(pubParam).pad();
> - checkTokensQry.AND().pad();
> - checkTokensQry.appendGroupedOr(params.toArray(new DynamicQuery.Parameter[0])).pad();
> -
> - Query qry = checkTokensQry.buildJPAQuery(em);
> - List<?> obj = qry.getResultList();
> - // If even one of the partitions are taken by another publisher, then the key generator is unavailable
> - if (obj != null && obj.size() > 0)
> - return false;
>
> return true;
> }
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java Fri Feb 6 05:58:32 2009
> @@ -37,7 +37,7 @@
>
> private Logger log = Logger.getLogger(FindEntityByPublisherQuery.class);
>
> - public static final String PUBLISHER_ID_FIELD = "publisher.authorizedName";
> + public static final String AUTHORIZED_NAME_FIELD = "authorizedName";
>
> private String entityName;
> private String entityAlias;
> @@ -100,7 +100,7 @@
> */
> public void appendConditions(DynamicQuery qry, FindQualifiers fq, UddiEntityPublisher publisher) {
> qry.WHERE().pad();
> - qry.appendGroupedAnd(new DynamicQuery.Parameter(entityAlias + "." + PUBLISHER_ID_FIELD, publisher.getAuthorizedName(), DynamicQuery.PREDICATE_EQUALS));
> + qry.appendGroupedAnd(new DynamicQuery.Parameter(entityAlias + "." + AUTHORIZED_NAME_FIELD, publisher.getAuthorizedName(), DynamicQuery.PREDICATE_EQUALS));
> }
>
> }
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java Fri Feb 6 05:58:32 2009
> @@ -333,7 +333,7 @@
>
> // Validate key and then check to see that the proposed key is valid for this publisher
> ValidateUDDIKey.validateUDDIv3Key(entityKey);
> - if (!publisher.isValidPublisherKey(entityKey))
> + if (!publisher.isValidPublisherKey(em, entityKey))
> throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
>
> }
> @@ -454,7 +454,7 @@
>
> // Validate key and then check to see that the proposed key is valid for this publisher
> ValidateUDDIKey.validateUDDIv3Key(entityKey);
> - if (!publisher.isValidPublisherKey(entityKey))
> + if (!publisher.isValidPublisherKey(em, entityKey))
> throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
>
> }
> @@ -572,7 +572,7 @@
>
> // Validate key and then check to see that the proposed key is valid for this publisher
> ValidateUDDIKey.validateUDDIv3Key(entityKey);
> - if (!publisher.isValidPublisherKey(entityKey))
> + if (!publisher.isValidPublisherKey(em, entityKey))
> throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
>
> }
> @@ -659,7 +659,7 @@
> else {
> // If not a key generator, then simply validate key and then check to see that the proposed key is valid for this publisher
> ValidateUDDIKey.validateUDDIv3Key(entityKey);
> - if (!publisher.isValidPublisherKey(entityKey))
> + if (!publisher.isValidPublisherKey(em, entityKey))
> throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
> }
> }
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java Fri Feb 6 05:58:32 2009
> @@ -23,12 +23,8 @@
> import javax.xml.bind.JAXBElement;
>
> import org.uddi.v3_service.DispositionReportFaultMessage;
> -import org.apache.commons.configuration.ConfigurationException;
> import org.apache.juddi.keygen.KeyGenerator;
> -import org.apache.juddi.config.AppConfig;
> -import org.apache.juddi.config.Property;
> import org.apache.juddi.error.ErrorMessage;
> -import org.apache.juddi.error.FatalErrorException;
> import org.apache.juddi.error.InvalidKeyPassedException;
> import org.apache.juddi.error.ValueNotAllowedException;
>
> @@ -38,39 +34,32 @@
> public class ValidateUDDIKey {
>
> public static void validateUDDIv3Key(String key) throws DispositionReportFaultMessage {
> - String rootPartition = "";
> - try
> - { rootPartition = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PARTITION); }
> - catch(ConfigurationException ce)
> - { throw new FatalErrorException(new ErrorMessage("errors.configuration.Retrieval", Property.JUDDI_ROOT_PARTITION));}
> -
> - validateUDDIv3Key(key, rootPartition);
> - }
> -
> - public static void validateUDDIv3Key(String key, String rootPartition) throws DispositionReportFaultMessage {
> if (key == null)
> throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NullKey"));
>
> String keyToTest = key.trim();
> if (keyToTest.endsWith(KeyGenerator.PARTITION_SEPARATOR))
> throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
> -
> - // Key must be prefixed with the root partition
> - if (!keyToTest.toUpperCase().startsWith(rootPartition.toUpperCase()))
> - throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
>
> - // Key must have at least one more partition beyond the root.
> - keyToTest = keyToTest.substring(rootPartition.length());
> - if (keyToTest.length() == 0 || !keyToTest.startsWith(KeyGenerator.PARTITION_SEPARATOR))
> - throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
> -
> - keyToTest = keyToTest.substring(1);
> StringTokenizer tokenizer = new StringTokenizer(key.toLowerCase(), KeyGenerator.PARTITION_SEPARATOR);
> + int tokensCount = tokenizer.countTokens();
> + if(tokensCount <= 1)
> + throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
> for(int count = 0; tokenizer.hasMoreTokens(); count++) {
> String nextToken = tokenizer.nextToken();
>
> - if (!isValidKSS(nextToken))
> - throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
> + if (count == 0) {
> + if (!ValidateUDDIKey.isValidUDDIScheme(nextToken))
> + throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
> + }
> + else if (count == 1) {
> + if(!ValidateUDDIKey.isValidDomainKey(nextToken))
> + throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
> + }
> + else {
> + if (!isValidKSS(nextToken))
> + throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
> + }
> }
> }
>
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/juddi.properties Fri Feb 6 05:58:32 2009
> @@ -42,7 +42,7 @@
> juddi.transfer.expiration.days=3
> #
> # jUDDI Authentication module to use
> -juddi.auth = org.apache.juddi.auth.DefaultAuthenticator
> +juddi.auth = org.apache.juddi.auth.JUDDIAuthenticator
> #
> # jUDDI UUIDGen implementation to use
> juddi.uuidgen = org.apache.juddi.uuidgen.DefaultUUIDGen
>
> Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java (original)
> +++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/auth/AuthenticatorTest.java Fri Feb 6 05:58:32 2009
> @@ -28,6 +28,7 @@
> import org.apache.juddi.error.UnknownUserException;
> import org.apache.log4j.Logger;
> import org.junit.Assert;
> +import org.junit.Ignore;
> import org.junit.Test;
>
> /**
> @@ -40,10 +41,10 @@
> * The DefaultAuthenticator is basically a pass-through.
> * @throws ConfigurationException
> */
> - @Test
> + @Test @Ignore
> public void testDefaultAuthenticator()
> {
> - Authenticator auth = new DefaultAuthenticator();
> + Authenticator auth = new JUDDIAuthenticator();
> try {
> auth.authenticate("anou_mana","password");
> auth.authenticate("anou_mana","badpass");
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBindingTemplate.java Fri Feb 6 05:58:32 2009
> @@ -34,7 +34,7 @@
> public class TckBindingTemplate
> {
> final static String JOE_BINDING_XML = "uddi_data/joepublisher/bindingTemplate.xml";
> - final static String JOE_BINDING_KEY = "uddi:juddi.apache.org:joepublisher:bindingtwo";
> + final static String JOE_BINDING_KEY = "uddi:uddi.joepublisher.com:bindingtwo";
>
> private Logger logger = Logger.getLogger(this.getClass());
> private UDDIPublicationPortType publication = null;
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusiness.java Fri Feb 6 05:58:32 2009
> @@ -34,9 +34,9 @@
> public class TckBusiness
> {
> final static String JOE_BUSINESS_XML = "uddi_data/joepublisher/businessEntity.xml";
> - final static String JOE_BUSINESS_KEY = "uddi:juddi.apache.org:joepublisher:businessone";
> + final static String JOE_BUSINESS_KEY = "uddi:uddi.joepublisher.com:businessone";
> final static String SAM_BUSINESS_XML = "uddi_data/samsyndicator/businessEntity.xml";
> - final static String SAM_BUSINESS_KEY = "uddi:juddi.apache.org:samco:repository:samco";
> + final static String SAM_BUSINESS_KEY = "uddi:www.samco.com:samco";
>
> private Logger logger = Logger.getLogger(this.getClass());
> private UDDIPublicationPortType publication = null;
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckBusinessService.java Fri Feb 6 05:58:32 2009
> @@ -34,9 +34,9 @@
> public class TckBusinessService
> {
> final static String JOE_SERVICE_XML = "uddi_data/joepublisher/businessService.xml";
> - final static String JOE_SERVICE_KEY = "uddi:juddi.apache.org:joepublisher:serviceone";
> + final static String JOE_SERVICE_KEY = "uddi:uddi.joepublisher.com:serviceone";
> final static String SAM_SERVICE_XML = "uddi_data/samsyndicator/businessService.xml";
> - final static String SAM_SERVICE_KEY = "uddi:juddi.apache.org:samco:repository:listingservice";
> + final static String SAM_SERVICE_KEY = "uddi:www.samco.com:listingservice";
>
> private Logger logger = Logger.getLogger(this.getClass());
> private UDDIPublicationPortType publication = null;
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/java/org/uddi/api_v3/tck/TckTModel.java Fri Feb 6 05:58:32 2009
> @@ -34,9 +34,9 @@
> public class TckTModel
> {
> final static String JOE_PUBLISHER_TMODEL_XML = "uddi_data/joepublisher/tModelKeyGen.xml";
> - final static String JOE_PUBLISHER_TMODEL_KEY = "uddi:juddi.apache.org:joepublisher:KEYGENERATOR";
> + final static String JOE_PUBLISHER_TMODEL_KEY = "uddi:uddi.joepublisher.com:KEYGENERATOR";
> final static String SAM_SYNDICATOR_TMODEL_XML = "uddi_data/samsyndicator/tModelKeyGen.xml";
> - final static String SAM_SYNDICATOR_TMODEL_KEY = "uddi:juddi.apache.org:samco:repository:keygenerator";
> + final static String SAM_SYNDICATOR_TMODEL_KEY = "uddi:www.samco.com:keygenerator";
>
>
> private Logger logger = Logger.getLogger(this.getClass());
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/bindingTemplate.xml Fri Feb 6 05:58:32 2009
> @@ -1,5 +1,5 @@
> <?xml version="1.0" encoding="UTF-8"?>
> -<bindingTemplate xmlns="urn:uddi-org:api_v3" serviceKey="uddi:juddi.apache.org:joepublisher:serviceone" bindingKey="uddi:juddi.apache.org:joepublisher:bindingtwo">
> +<bindingTemplate xmlns="urn:uddi-org:api_v3" serviceKey="uddi:uddi.joepublisher.com:serviceone" bindingKey="uddi:uddi.joepublisher.com:bindingtwo">
> <description xml:lang="en">This is the secure access point for service one</description>
> <accessPoint useType="endPoint">https://businessone.com/services/serviceone</accessPoint>
> <tModelInstanceDetails>
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessEntity.xml Fri Feb 6 05:58:32 2009
> @@ -1,5 +1,5 @@
> <?xml version="1.0" encoding="UTF-8"?>
> -<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:joepublisher:businessone">
> +<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:uddi.joepublisher.com:businessone">
> <discoveryURLs>
> <discoveryURL useType="home">http://www.businessone.com</discoveryURL>
> <discoveryURL useType="serviceList">http://www.businessone.com/services</discoveryURL>
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/businessService.xml Fri Feb 6 05:58:32 2009
> @@ -1,16 +1,16 @@
> <?xml version="1.0" encoding="UTF-8"?>
> <businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace"
> - businessKey="uddi:juddi.apache.org:joepublisher:businessone" serviceKey="uddi:juddi.apache.org:joepublisher:serviceone">
> + businessKey="uddi:uddi.joepublisher.com:businessone" serviceKey="uddi:uddi.joepublisher.com:serviceone">
> <name xml:lang="en">Service One</name>
> <name xml:lang="es">Servicio Uno</name>
> <description xml:lang="en">This is the description of service one.</description>
> <description xml:lang="es">Ãsta es la descripción del servicio uno.</description>
> <bindingTemplates>
> - <bindingTemplate bindingKey="uddi:juddi.apache.org:joepublisher:bindingone">
> + <bindingTemplate bindingKey="uddi:uddi.joepublisher.com:bindingone">
> <description xml:lang="en">This is the access point for service one.</description>
> <accessPoint useType="endPoint">http://businessone.com/services/serviceone</accessPoint>
> <tModelInstanceDetails>
> - <tModelInstanceInfo tModelKey="uddi:businessone.com:services:serviceone:wsdlSpec">
> + <tModelInstanceInfo tModelKey="uddi:uddi.joepublisher.com:services:serviceone:wsdlSpec">
> <description xml:lang="en">The wsdl for this service: service one</description>
> <instanceDetails>
> <overviewDoc>
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/publisherAssertion.xml Fri Feb 6 05:58:32 2009
> @@ -1,6 +1,6 @@
> <?xml version="1.0" encoding="UTF-8"?>
> <publisherAssertion xmlns="urn:uddi-org:api_v3">
> - <fromKey>uddi:juddi.apache.org:joepublisher:businessone</fromKey>
> - <toKey>uddi:juddi.apache.org:samco:repository:samco</toKey>
> + <fromKey>uddi:uddi.joepublisher.com:businessone</fromKey>
> + <toKey>uddi:www.samco.com:samco</toKey>
> <keyedReference tModelKey="uddi:uddi.org:relationships" keyName="Holding Company" keyValue="parent-child" />
> </publisherAssertion>
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/joepublisher/tModelKeyGen.xml Fri Feb 6 05:58:32 2009
> @@ -1,5 +1,5 @@
> <?xml version="1.0" encoding="UTF-8"?>
> -<tModel tModelKey="uddi:juddi.apache.org:joepublisher:KEYGENERATOR" xmlns="urn:uddi-org:api_v3">
> +<tModel tModelKey="uddi:uddi.joepublisher.com:KEYGENERATOR" xmlns="urn:uddi-org:api_v3">
> <name>Joe Publisher's Key Generator</name>
> <description>This is the key generator for Joe Publisher's UDDI entities!</description>
> <overviewDoc>
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessEntity.xml Fri Feb 6 05:58:32 2009
> @@ -1,5 +1,5 @@
> <?xml version="1.0" encoding="UTF-8"?>
> -<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:samco:repository:samco">
> +<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:www.samco.com:samco">
> <discoveryURLs>
> <discoveryURL useType="home">http://www.samco.com</discoveryURL>
> <discoveryURL useType="serviceList">http://www.samco.com/services</discoveryURL>
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/businessService.xml Fri Feb 6 05:58:32 2009
> @@ -1,15 +1,15 @@
> <?xml version="1.0" encoding="UTF-8"?>
> -<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:samco:repository:samco" serviceKey="uddi:juddi.apache.org:samco:repository:listingservice">
> +<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:www.samco.com:samco" serviceKey="uddi:www.samco.com:listingservice">
> <name xml:lang="en">Listing Service</name>
> <name xml:lang="es">Servicio del listado</name>
> <description xml:lang="en">This is the description of the listing service.</description>
> <description xml:lang="es">Ãsta es la descripción del servicio del listado.</description>
> <bindingTemplates>
> - <bindingTemplate bindingKey="uddi:juddi.apache.org:samco:repository:listservice-accesspoint">
> + <bindingTemplate bindingKey="uddi:www.samco.com:listservice-accesspoint">
> <description xml:lang="en">This is the access point for listing service.</description>
> <accessPoint useType="endPoint">http:/samco.com/services/listingservice</accessPoint>
> <tModelInstanceDetails>
> - <tModelInstanceInfo tModelKey="uddi:juddi.apache.org:samco:repository:listservice-wsdlSpec">
> + <tModelInstanceInfo tModelKey="uddi:www.samco.com:listservice-wsdlSpec">
> <description xml:lang="en">The wsdl for this service: Listing Service</description>
> <instanceDetails>
> <overviewDoc>
>
> Modified: webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml
> URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml?rev=741422&r1=741421&r2=741422&view=diff
> ==============================================================================
> --- webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml (original)
> +++ webservices/juddi/branches/v3_trunk/uddi-tck/src/main/resources/uddi_data/samsyndicator/tModelKeyGen.xml Fri Feb 6 05:58:32 2009
> @@ -1,5 +1,5 @@
> <?xml version="1.0" encoding="UTF-8"?>
> -<tModel tModelKey="uddi:juddi.apache.org:samco:repository:keygenerator" xmlns="urn:uddi-org:api_v3">
> +<tModel tModelKey="uddi:www.samco.com:keygenerator" xmlns="urn:uddi-org:api_v3">
> <name>Sam Syndicator's Key Generator</name>
> <description>This is the key generator for Sam Syndicator's UDDI entities!</description>
> <overviewDoc>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
> For additional commands, e-mail: juddi-cvs-help@ws.apache.org
>
>
>