Index: juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiry.java =================================================================== --- juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiry.java (revision 1451436) +++ juddi-core/src/main/java/org/apache/juddi/validation/ValidateInquiry.java (working copy) @@ -315,6 +315,8 @@ for (Name n : names) { if (n.getValue() == null || n.getValue().length() == 0) throw new ValueNotAllowedException(new ErrorMessage("errors.names.NoValue")); + if (n.getLang() != null && n.getLang().length() >5) + throw new ValueNotAllowedException(new ErrorMessage("errors.names.LangTooLong")); } } } Index: juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java =================================================================== --- juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (revision 1451436) +++ juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (working copy) @@ -288,6 +288,7 @@ } } catch (ConfigurationException e) { log.error(e.getMessage(), e); + maxBusinesses =-1; //in case the configuration is not available } //if we have the maxBusinesses set for this publisher then we need to make sure we did not exceed it. if (maxBusinesses > 0) { @@ -338,6 +339,7 @@ } } catch (ConfigurationException e) { log.error(e.getMessage(), e); + maxServices = -1; //incase the configuration isn't available } //if we have the maxServices set for a business then we need to make sure we did not exceed it. if (maxServices > 0) { @@ -386,6 +388,7 @@ } } catch (ConfigurationException e) { log.error(e.getMessage(), e); + maxBindings = -1; //incase the config isn't available } //if we have the maxBindings set for a service then we need to make sure we did not exceed it. if (maxBindings > 0) { @@ -434,6 +437,7 @@ } } catch (ConfigurationException e) { log.error(e.getMessage(), e); + maxTModels = -1; //incase the config isn't available } //if we have the TModels set for a publisher then we need to make sure we did not exceed it. if (maxTModels > 0) { @@ -958,6 +962,8 @@ for (Name n : names) { if (n.getValue() == null || n.getValue().length() == 0) throw new ValueNotAllowedException(new ErrorMessage("errors.names.NoValue")); + if (n.getLang() != null && n.getLang().length() >5) + throw new ValueNotAllowedException(new ErrorMessage("errors.names.LangTooLong")); } } Index: juddi-core/src/main/resources/messages.properties =================================================================== --- juddi-core/src/main/resources/messages.properties (revision 1451436) +++ juddi-core/src/main/resources/messages.properties (working copy) @@ -66,7 +66,7 @@ errors.configuration.Retrieval=An error occurred attempting to retrieve configuration information errors.install.AlreadyInstalled=It appears that the application is already installed. Please un-install before proceeding. errors.NullInput=No input was provided for this API call -errors.keyunavailable.BadPartition=The proposed key is not within the partition defined by owning publisher +errors.keyunavailable.BadPartition=The proposed key is not within the partition defined by owning publisher. If you're tring to create a new tModel in a new partition, try creating a tModel that ends in :keyGenerator errors.keyunavailable.KeyExists=The key used for the save operation already exists. Another key must be chosen errors.invalidkey.NullKey=The key cannot be null errors.invalidkey.MalformedKey=The passed key does not conform to UDDI v3 rules @@ -93,6 +93,7 @@ errors.invalidprojection.ParentMismatch=The supplied business key doesn't match the actual business key of the service being projected errors.usermismatch.InvalidOwner=The user is not authorized to access the given entity errors.usermismatch.InvalidOwnerParent=The user is not authorized to access the given parent entity +errors.config.InvalidTokenExpirationSetting=The authentication token expiration setting is missing or invalid, will default to 15 minutes. See juddiv3.properties file #-- Error messages related to entities and other data structures errors.savebusiness.NoInput=At least one BusinessEntity must be provided @@ -109,8 +110,8 @@ errors.bindingtemplate.NoAccessPoint=A binding template must contain an access point errors.tmodel.NullInput=The tModel structure cannot be blank errors.tmodel.NoName=A tModel must contain a name -errors.tmodel.keygenerator.BadCategory=A Key Generator tModel must have exactly one 'types' category whose value is 'keyGenerator' -errors.tmodel.keygenerator.RootKeyGen=A Key Generator cannot be added for the root publisher +errors.tmodel.keygenerator.BadCategory=A Key Generator tModel must have exactly one 'types' category (categoryBag/keyedReference/value) whose value is 'keyGenerator' +errors.tmodel.keygenerator.RootKeyGen=A Key Generator cannot be added for the root publisher. Try signing in as a different user errors.pubassertion.NullInput=The publisherAssertion structure cannot be blank errors.pubassertion.BlankKeyedRef=The keyedReference of the publisherAssertion cannot be blank. All fields must contain content. errors.pubassertion.BlankFromKey=The fromKey of the publisherAssertion cannot be blank. @@ -123,6 +124,8 @@ errors.bindingtemplates.NoInput=A bindingTemplates collection must contain at least one bindingTemplate errors.names.NoInput=At least one name is required errors.names.NoValue=A name was provided with no value +errors.names.LangTooLong=A name language was provided that is too long, only 5 characters are permitted. + errors.contacts.NoInput=At least one contact is required errors.contact.NullInput=The contact structure cannot be blank errors.contact.NoPersonName=The contact structure must contain at least one personName @@ -140,10 +143,10 @@ errors.instdetails.NoOverviewOrParms=The instanceDetails structure must contain either an overviewDoc or instanceParms errors.overviewdoc.NullInput=The overviewDoc structure cannot be blank errors.overviewdoc.NoDescOrUrl=The overviewDoc structure must contain either a description or overviewURL -errors.findqualifiers.NoInput=The findQualifier collection must contain at least one findQualifier +errors.findqualifiers.NoInput=The findQualifier collection must contain at least one findQualifier. Try 'approximateMatch' errors.findqualifiers.DuplicateValue=A duplicate findQualifier was passed. No duplicates are allowed errors.findqualifiers.InvalidCombo=An invalid findQualifier combination occurred -errors.findbusiness.NoInput=At least one search criterion must be supplied +errors.findbusiness.NoInput=At least one search criterion must be supplied. Try using '%' as a wild card with the a 'approximateMatch' find qualifer for everything errors.findservice.NoInput=At least one name, categoryBag, find_tModel or tModelBag or name must be supplied errors.findbinding.NoInput=At least one categoryBag, find_tModel or tModelBag must be supplied errors.findtmodel.NoInput=At least one categoryBag, identifierBag or name must be supplied @@ -197,6 +200,7 @@ #-- Authentication error messages errors.auth.AuthRequired=Authentication is required for this API call errors.auth.AuthInvalid=Invalid authentication information +errors.auth.AuthTokenExpired=The authentication token is expired errors.auth.InvalidUserId=An invalid user identification was passed errors.auth.InvalidCredentials=Invalid credentials were passed errors.auth.NoPublisher=The user provided does not have a publishing account @@ -216,6 +220,5 @@ errors.local.registryunavailable=The registry is currently unavailable errors.local.operation.notidentified=The UDDI service operation could not be identified errors.local.inquiry.notsupported=The operation is not supported by the UDDI version 3 Inquiry API -errors.local.publish.notsupported=The operation is not supported by the UDDI ver -sion 3 Publish API +errors.local.publish.notsupported=The operation is not supported by the UDDI version 3 Publish API errors.local.security.notsupported=The operation is not supported by the UDDI version 3 Security API