[prev in list] [next in list] [prev in thread] [next in thread]
List: juddi-cvs
Subject: svn commit: r713229 - in /webservices/juddi/branches/v3_trunk/juddi-core:
From: jfaath () apache ! org
Date: 2008-11-12 0:47:04
Message-ID: 20081112004705.9C414238895D () eris ! apache ! org
[Download RAW message or body]
Author: jfaath
Date: Tue Nov 11 16:47:03 2008
New Revision: 713229
URL: http://svn.apache.org/viewvc?rev=713229&view=rev
Log:
JUDDI-139: implementation of key generation strategy. Includes changes to testing \
code to account for new key generation rules.
Added:
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/DefaultKeyGenerator.java \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGenerator.java \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKey.java \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKeyId.java \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/TModelTest.java \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_Publisher.xml \
(props changed)
- copied unchanged from r711730, \
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/publisher1.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessEntity1.xml \
(contents, props changed)
- copied, changed from r711730, \
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity1.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessService1.xml \
(contents, props changed)
- copied, changed from r711730, \
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService1.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_tModelKeyGen.xml \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_Publisher.xml \
(with props) webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_tModelKeyGen.xml \
(with props) Removed:
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity1.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService1.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/publisher1.xml
Modified:
webservices/juddi/branches/v3_trunk/juddi-core/install/root_Publisher.xml
webservices/juddi/branches/v3_trunk/juddi-core/install/root_tModelKeyGen.xml
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/config/Property.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/UddiEntityPublisher.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/util/DynamicQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/util/JPAUtil.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/resources/juddi.properties
webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/BusinessEntityTest.java
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/BusinessServiceTest.java
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/UDDIApiTestHelper.java
webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-one.xml
Modified: webservices/juddi/branches/v3_trunk/juddi-core/install/root_Publisher.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/install/root_Publisher.xml?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/install/root_Publisher.xml \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/install/root_Publisher.xml Tue Nov \
11 16:47:03 2008 @@ -1,7 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<save_publisher xmlns="urn:apache-org:juddi_v3">
- <publisher publisherId="root">
- <publisherName>root publisher</publisherName>
- <isAdmin>true</isAdmin>
- </publisher>
-</save_publisher>
+<publisher xmlns="urn:apache-org:juddi_v3" publisherId="root">
+ <publisherName>root publisher</publisherName>
+ <isAdmin>true</isAdmin>
+</publisher>
Modified: webservices/juddi/branches/v3_trunk/juddi-core/install/root_tModelKeyGen.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/install/root_tModelKeyGen.xml?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/install/root_tModelKeyGen.xml \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/install/root_tModelKeyGen.xml Tue \
Nov 11 16:47:03 2008 @@ -1,15 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<save_tModel xmlns="urn:uddi-org:api_v3">
- <tModel tModelKey="uddi:juddi.apache.org:keygenerator" \
xmlns="urn:uddi-org:api_v3">
- <name>uddi-org:keyGenerator</name>
- <description>UDDI domain key generator</description>
- <overviewDoc>
- <overviewURL useType="text">
- http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
- </overviewDoc>
- <categoryBag>
- <keyedReference tModelKey="uddi:uddi.org:categorization:types" \
keyName="uddi-org:types:keyGenerator"
- keyValue="keyGenerator" />
- </categoryBag>
- </tModel>
-</save_tModel>
\ No newline at end of file
+<tModel tModelKey="uddi:juddi.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+ <name>uddi-org:keyGenerator</name>
+ <description>UDDI domain key generator</description>
+ <overviewDoc>
+ <overviewURL useType="text">
+ http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+ </overviewDoc>
+ <categoryBag>
+ <keyedReference tModelKey="uddi:uddi.org:categorization:types" \
keyName="uddi-org:types:keyGenerator" + keyValue="keyGenerator" />
+ </categoryBag>
+</tModel>
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/m \
ain/java/org/apache/juddi/api/impl/AuthenticatedService.java?rev=713229&r1=713228&r2=713229&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 \
Tue Nov 11 16:47:03 2008 @@ -23,7 +23,6 @@
import org.apache.juddi.error.AuthTokenRequiredException;
import org.apache.juddi.error.ErrorMessage;
-import org.apache.juddi.model.Publisher;
import org.apache.juddi.model.UddiEntityPublisher;
import org.uddi.v3_service.DispositionReportFaultMessage;
@@ -46,7 +45,7 @@
if (modelAuthToken.getTokenState() == AUTHTOKEN_RETIRED)
throw new AuthTokenRequiredException(new \
ErrorMessage("errors.auth.AuthInvalid"));
- UddiEntityPublisher entityPublisher = em.find(Publisher.class, \
modelAuthToken.getPublisherId()); + UddiEntityPublisher entityPublisher = \
em.find(UddiEntityPublisher.class, modelAuthToken.getPublisherId()); if \
(entityPublisher == null) throw new AuthTokenRequiredException(new \
ErrorMessage("errors.auth.AuthInvalid"));
@@ -55,7 +54,6 @@
modelAuthToken.setNumberOfUses(modelAuthToken.getNumberOfUses() + 1);
return entityPublisher;
-
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/m \
ain/java/org/apache/juddi/config/Property.java?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java \
Tue Nov 11 16:47:03 2008 @@ -15,6 +15,7 @@
public final static String JUDDI_UUID_GENERATOR ="juddi.uuidgen";
public final static String JUDDI_UUID_COMMAND \
="juddi.uuidgenCommand"; public final static String JUDDI_CRYPTOR \
="juddi.cryptor"; + public final static String JUDDI_KEYGENERATOR \
="juddi.keygenerator"; public final static String JUDDI_VALIDATOR \
="juddi.validator"; public final static String JUDDI_USERSFILE \
="juddi.usersfile"; }
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/DefaultKeyGenerator.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/DefaultKeyGenerator.java?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/DefaultKeyGenerator.java \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/DefaultKeyGenerator.java \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,36 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.keygen;
+
+import org.apache.juddi.uuidgen.UUIDGenFactory;
+import org.apache.juddi.uuidgen.UUIDGen;
+
+/**
+ * The default jUDDI key generator. Generates a key like this:
+ *
+ * uddiScheme : RootDomain : UUID
+ *
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class DefaultKeyGenerator implements KeyGenerator {
+
+ public String generate() {
+ UUIDGen uuidgen = UUIDGenFactory.getUUIDGen();
+ return UDDI_SCHEME + PARTITION_SEPARATOR + ROOT_DOMAIN + PARTITION_SEPARATOR + \
uuidgen.uuidgen(); + }
+}
\ No newline at end of file
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/DefaultKeyGenerator.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGenerator.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGenerator.java?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGenerator.java \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGenerator.java \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,37 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.keygen;
+
+
+/**
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public interface KeyGenerator {
+ // TODO: This is temporary until JUDDI-155 is worked out.
+ public static String ROOT_DOMAIN = "juddi.apache.org";
+
+
+ public static String UDDI_SCHEME = "uddi";
+ public static String PARTITION_SEPARATOR = ":";
+ public static String KEYGENERATOR_SUFFIX = "keygenerator";
+
+ /*
+ * Generates a key that is used to save a UDDI entity.
+ */
+ public String generate();
+}
\ No newline at end of file
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGenerator.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,97 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.keygen;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.Property;
+import org.apache.juddi.util.Loader;
+import org.apache.log4j.Logger;
+
+/**
+ * Used to create the org.apache.juddi.keygen.KeyGenerator implementation
+ * as specified by the 'juddi.keygenerator' property. Defaults to
+ * org.apache.juddi.cryptor.DefaultKeyGenerator if an implementation is not
+ * specified.
+ *
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public abstract class KeyGeneratorFactory {
+ private static Logger log = Logger.getLogger(KeyGeneratorFactory.class);
+
+ // Key Generator default implementation
+ private static final String DEFAULT_IMPL = \
"org.apache.juddi.keygen.DefaultKeyGenerator"; +
+ // the shared Key Generator instance
+ private static KeyGenerator keyGenerator = null;
+
+ /*
+ * Returns a new instance of a KeyGenerator.
+ *
+ * @return KeyGenerator
+ */
+ public static KeyGenerator getKeyGenerator() {
+ if (keyGenerator == null)
+ keyGenerator = createKeyGenerator();
+ return keyGenerator;
+ }
+
+ /*
+ * Returns a new instance of a Cryptor.
+ *
+ * @return Cryptor
+ */
+ private static synchronized KeyGenerator createKeyGenerator() {
+ if (keyGenerator != null)
+ return keyGenerator;
+
+ // grab class name of the Cryptor implementation to create
+ String className = DEFAULT_IMPL;
+ try {
+ // grab class name of the Authenticator implementation to create
+ className = AppConfig.getConfiguration().getString(Property.JUDDI_KEYGENERATOR, \
DEFAULT_IMPL); + }
+ catch(ConfigurationException ce) {
+ log.error("Configuration exception occurred retrieving: " + \
Property.JUDDI_KEYGENERATOR); + }
+
+ // write the Cryptor implementation name to the log
+ log.debug("Key Generator Implementation = " + className);
+
+ Class<?> keygenClass = null;
+ try {
+ // Use Loader to locate & load the Key Generator implementation
+ keygenClass = Loader.getClassForName(className);
+ }
+ catch(ClassNotFoundException e) {
+ log.error("The specified Key Generator class '" + className + "' was not found in \
classpath."); + log.error(e);
+ }
+
+ try {
+ // try to instantiate the Key Generator implementation
+ keyGenerator = (KeyGenerator)keygenClass.newInstance();
+ }
+ catch(Exception e) {
+ log.error("Exception while attempting to instantiate the implementation of Key \
Generator: " + keygenClass.getName() + "\n" + e.getMessage()); + log.error(e);
+ }
+
+ return keyGenerator;
+ }
+}
\ No newline at end of file
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKey.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKey.java?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKey.java \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKey.java \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,81 @@
+package org.apache.juddi.model;
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import javax.persistence.AttributeOverride;
+import javax.persistence.AttributeOverrides;
+import javax.persistence.Column;
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+
+/**
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+@Entity
+@Table(name = "uddi_publisher_keygenerators")
+public class KeyGeneratorKey implements java.io.Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private KeyGeneratorKeyId id;
+ private UddiEntityPublisher publisher;
+ private String keygenTModelKey;
+
+ public KeyGeneratorKey() {
+ }
+
+ public KeyGeneratorKey(KeyGeneratorKeyId id, UddiEntityPublisher publisher, String \
keygenTModelKey) { + this.id = id;
+ this.publisher = publisher;
+ this.keygenTModelKey = keygenTModelKey;
+ }
+
+ @EmbeddedId
+ @AttributeOverrides({
+ @AttributeOverride(name = "publisherId", column = @Column(name = "publisher_id", \
nullable = false, length = 255)), + @AttributeOverride(name = "keygeneratorId", \
column = @Column(name = "keygenerator_id", nullable = false))}) + public \
KeyGeneratorKeyId getId() { + return this.id;
+ }
+
+ public void setId(KeyGeneratorKeyId id) {
+ this.id = id;
+ }
+
+ @ManyToOne(fetch = FetchType.LAZY)
+ @JoinColumn(name = "publisher_id", nullable = false, insertable = false, updatable \
= false) + public UddiEntityPublisher getPublisher() {
+ return this.publisher;
+ }
+
+ public void setPublisher(UddiEntityPublisher publisher) {
+ this.publisher = publisher;
+ }
+
+ @Column(name = "keygen_tmodel_key", length = 255)
+ public String getKeygenTModelKey() {
+ return this.keygenTModelKey;
+ }
+
+ public void setKeygenTModelKey(String keygenTModelKey) {
+ this.keygenTModelKey = keygenTModelKey;
+ }
+
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKey.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKeyId.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKeyId.java?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKeyId.java \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKeyId.java \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,83 @@
+package org.apache.juddi.model;
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+
+/**
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+@Embeddable
+public class KeyGeneratorKeyId implements java.io.Serializable {
+
+ private static final long serialVersionUID = 1L;
+ private String publisherId;
+ private int keygeneratorId;
+
+ public KeyGeneratorKeyId() {
+ }
+
+ public KeyGeneratorKeyId(String publisherId, int keygeneratorId) {
+ this.publisherId = publisherId;
+ this.keygeneratorId = keygeneratorId;
+ }
+
+ @Column(name = "publisher_id", nullable = false, length = 20)
+ public String getPublisherId() {
+ return this.publisherId;
+ }
+
+ public void setPublisherId(String publisherId) {
+ this.publisherId = publisherId;
+ }
+
+ @Column(name = "category_id", nullable = false)
+ public int getKeygeneratorId() {
+ return this.keygeneratorId;
+ }
+
+ public void setKeygeneratorId(int keygeneratorId) {
+ this.keygeneratorId = keygeneratorId;
+ }
+
+ public boolean equals(Object other) {
+ if ((this == other))
+ return true;
+ if ((other == null))
+ return false;
+ if (!(other instanceof KeyGeneratorKeyId))
+ return false;
+ KeyGeneratorKeyId castOther = (KeyGeneratorKeyId) other;
+
+ return ((this.getPublisherId() == castOther.getPublisherId()) || \
(this.getPublisherId() != null + && castOther.getPublisherId() != null && \
this.getPublisherId() + .equals(castOther.getPublisherId())))
+ && (this.getKeygeneratorId() == castOther.getKeygeneratorId());
+ }
+
+ public int hashCode() {
+ int result = 17;
+
+ result = 37
+ * result
+ + (getPublisherId() == null ? 0 : this.getPublisherId()
+ .hashCode());
+ result = 37 * result + this.getKeygeneratorId();
+ return result;
+ }
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/KeyGeneratorKeyId.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
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/m \
ain/java/org/apache/juddi/model/Publisher.java?rev=713229&r1=713228&r2=713229&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 \
Tue Nov 11 16:47:03 2008 @@ -15,10 +15,12 @@
* limitations under the License.
*/
+import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;
+import javax.persistence.PrimaryKeyJoinColumn;
/**
* @author <a href="mailto:kurt@apache.org">Kurt T Stam</a>
@@ -26,6 +28,7 @@
*/
@Entity
@Table(name = "publisher")
+@PrimaryKeyJoinColumn(name = "publisher_id")
public class Publisher extends UddiEntityPublisher implements java.io.Serializable {
private static final long serialVersionUID = 1L;
@@ -48,7 +51,8 @@
public Publisher(String publisherId, String publisherName,
String emailAddress, String isAdmin, String isEnabled,
Integer maxBusinesses, Integer maxServicesPerBusiness,
- Integer maxBindingsPerService, Integer maxTmodels) {
+ Integer maxBindingsPerService, Integer maxTmodels,
+ Set<KeyGeneratorKey> keyGenerators) {
this.publisherId = publisherId;
this.publisherName = publisherName;
this.emailAddress = emailAddress;
@@ -58,6 +62,7 @@
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/UddiEntityPublisher.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/m \
ain/java/org/apache/juddi/model/UddiEntityPublisher.java?rev=713229&r1=713228&r2=713229&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 \
Tue Nov 11 16:47:03 2008 @@ -17,17 +17,42 @@
package org.apache.juddi.model;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.StringTokenizer;
+import java.util.Vector;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.persistence.CascadeType;
import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
import javax.persistence.Id;
-import javax.persistence.MappedSuperclass;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.OneToMany;
+import javax.persistence.OrderBy;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+import javax.persistence.Table;
+
+import org.apache.juddi.query.util.DynamicQuery;
+import org.apache.juddi.validation.ValidateUDDIKey;
+import org.apache.juddi.keygen.KeyGenerator;
+import org.uddi.v3_service.DispositionReportFaultMessage;
/**
* @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
*/
-@MappedSuperclass
+@Entity
+@Table(name = "uddi_publisher")
+@Inheritance(strategy = InheritanceType.JOINED)
public abstract class UddiEntityPublisher {
+
protected String publisherId;
+ protected Set<KeyGeneratorKey> keyGeneratorKeys = new HashSet<KeyGeneratorKey>(0);
@Id
@Column(name = "publisher_id", nullable = false, length = 20)
@@ -39,6 +64,28 @@
this.publisherId = publisherId;
}
+ @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = \
"publisher") + @OrderBy
+ public Set<KeyGeneratorKey> getKeyGeneratorKeys() {
+ return this.keyGeneratorKeys;
+ }
+ public void setKeyGeneratorKeys(Set<KeyGeneratorKey> keyGeneratorKeys) {
+ this.keyGeneratorKeys = keyGeneratorKeys;
+ }
+ public void addKeyGeneratorKey(String keygenTModelKey) {
+ KeyGeneratorKeyId keyGenKeyId = new KeyGeneratorKeyId(this.publisherId, \
this.keyGeneratorKeys.size()); + KeyGeneratorKey keyGenKey = new \
KeyGeneratorKey(keyGenKeyId, this, keygenTModelKey); \
+ keyGeneratorKeys.add(keyGenKey); + }
+ public void removeKeyGeneratorKey(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))
+ keyGeneratorKeys.remove(keyGen);
+ }
+ }
public boolean isOwner(UddiEntity entity){
boolean ret = false;
@@ -48,4 +95,79 @@
}
return ret;
}
+
+ public boolean isValidPublisherKey(String key) {
+ if (key == null)
+ return false;
+
+ String keyPartition = key.substring(0, \
key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR) - 1); +
+ for (KeyGeneratorKey keyGenKey : keyGeneratorKeys) {
+ String keyGenPartition = keyGenKey.getKeygenTModelKey().substring(0, \
key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR) - 1); + if \
(keyGenPartition.equalsIgnoreCase(keyPartition)) + return true;
+ }
+ return false;
+ }
+
+ /*
+ * This method will check if the given key generator key is available for this \
publisher. The idea is to make sure that the key generator + * and all its \
sub-partitions are not already taken by another publisher. + */
+ public boolean isKeyGeneratorAvailable(EntityManager em, String keygenKey) throws \
DispositionReportFaultMessage { +
+ // First make sure the key is a valid UDDIv3 key
+ 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()); +
+ 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)
+ return false;
+
+ 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 {
+ 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);
+ }
+ }
+ }
+
+ 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.id.publisherId",
+ this.publisherId,
+ 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/util/DynamicQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/m \
ain/java/org/apache/juddi/query/util/DynamicQuery.java?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/util/DynamicQuery.java \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/util/DynamicQuery.java \
Tue Nov 11 16:47:03 2008 @@ -34,6 +34,7 @@
public static String OPERATOR_OR = "or";
public static String OPERATOR_AND = "and";
public static String PREDICATE_EQUALS = "=";
+ public static String PREDICATE_NOTEQUALS = "!=";
public static String PREDICATE_LIKE = "like";
public static String PREDICATE_IN = "in";
public static String SORT_ASC = "asc";
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/util/JPAUtil.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/m \
ain/java/org/apache/juddi/util/JPAUtil.java?rev=713229&r1=713228&r2=713229&view=diff \
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/util/JPAUtil.java \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/util/JPAUtil.java \
Tue Nov 11 16:47:03 2008 @@ -85,4 +85,19 @@
return ret;
}
+
+ public static void runUpdateQuery(String qry) {
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ tx.begin();
+
+ Query q = em.createQuery(qry);
+ q.executeUpdate();
+
+ tx.commit();
+ em.close();
+
+
+ }
+
}
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/m \
ain/java/org/apache/juddi/validation/ValidatePublish.java?rev=713229&r1=713228&r2=713229&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 \
Tue Nov 11 16:47:03 2008 @@ -36,6 +36,8 @@
import org.apache.juddi.api.datatype.SavePublisher;
import org.apache.juddi.api.datatype.DeletePublisher;
+import org.apache.juddi.keygen.KeyGeneratorFactory;
+import org.apache.juddi.keygen.KeyGenerator;
import org.apache.juddi.model.UddiEntityPublisher;
import org.apache.juddi.model.Publisher;
import org.apache.juddi.model.UddiEntity;
@@ -159,6 +161,10 @@
if (!publisher.isOwner((UddiEntity)obj))
throw new UserMismatchException(new \
ErrorMessage("errors.usermismatch.InvalidOwner", entityKey)); +
+ // Must check if tModel is a Key Generator, and if so, removed from publisher \
collection + if (entityKey.toUpperCase().contains(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase()))
+ publisher.removeKeyGeneratorKey(entityKey);
}
}
@@ -260,14 +266,11 @@
boolean entityExists = false;
String entityKey = businessEntity.getBusinessKey();
if (entityKey == null || entityKey.length() == 0) {
- // TODO: apply key generation strategy
- entityKey = "";
+ KeyGenerator keyGen = KeyGeneratorFactory.getKeyGenerator();
+ entityKey = keyGen.generate();
businessEntity.setBusinessKey(entityKey);
}
else {
- // TODO: Test that key value is valid for publisher
- //throw new KeyUnavailableException(new \
ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
-
Object obj = em.find(org.apache.juddi.model.BusinessEntity.class, entityKey);
if (obj != null) {
entityExists = true;
@@ -276,6 +279,15 @@
if (!publisher.isOwner((UddiEntity)obj))
throw new UserMismatchException(new \
ErrorMessage("errors.usermismatch.InvalidOwner", entityKey)); }
+ else {
+ // Inside this block, we have a key proposed by the publisher on a new entity
+
+ // Validate key and then check to see that the proposed key is valid for this \
publisher + ValidateUDDIKey.validateUDDIv3Key(entityKey);
+ if (!publisher.isValidPublisherKey(entityKey))
+ throw new KeyUnavailableException(new \
ErrorMessage("errors.keyunavailable.BadPartition", entityKey)); +
+ }
}
if (!entityExists) {
@@ -358,14 +370,11 @@
boolean entityExists = false;
if (entityKey == null || entityKey.length() == 0) {
- // TODO: apply key generation strategy
- entityKey = "";
+ KeyGenerator keyGen = KeyGeneratorFactory.getKeyGenerator();
+ entityKey = keyGen.generate();
businessService.setServiceKey(entityKey);
}
else {
- // TODO: Test that key value is valid for publisher
- //throw new KeyUnavailableException(new \
ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
-
Object obj = em.find(org.apache.juddi.model.BusinessService.class, entityKey);
if (obj != null) {
entityExists = true;
@@ -380,6 +389,15 @@
throw new UserMismatchException(new \
ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
}
+ else {
+ // Inside this block, we have a key proposed by the publisher on a new entity
+
+ // Validate key and then check to see that the proposed key is valid for this \
publisher + ValidateUDDIKey.validateUDDIv3Key(entityKey);
+ if (!publisher.isValidPublisherKey(entityKey))
+ throw new KeyUnavailableException(new \
ErrorMessage("errors.keyunavailable.BadPartition", entityKey)); +
+ }
}
@@ -459,13 +477,11 @@
boolean entityExists = false;
if (entityKey == null || entityKey.length() == 0) {
- // TODO: apply key generation strategy
- entityKey = "";
+ KeyGenerator keyGen = KeyGeneratorFactory.getKeyGenerator();
+ entityKey = keyGen.generate();
+ bindingTemplate.setBindingKey(entityKey);
}
else {
- // TODO: Test that key value is valid for publisher
- //throw new KeyUnavailableException(new \
ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
-
Object obj = em.find(org.apache.juddi.model.BindingTemplate.class, entityKey);
if (obj != null) {
entityExists = true;
@@ -480,6 +496,15 @@
throw new UserMismatchException(new \
ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
}
+ else {
+ // Inside this block, we have a key proposed by the publisher on a new entity
+
+ // Validate key and then check to see that the proposed key is valid for this \
publisher + ValidateUDDIKey.validateUDDIv3Key(entityKey);
+ if (!publisher.isValidPublisherKey(entityKey))
+ throw new KeyUnavailableException(new \
ErrorMessage("errors.keyunavailable.BadPartition", entityKey)); +
+ }
}
@@ -530,14 +555,11 @@
boolean entityExists = false;
String entityKey = tModel.getTModelKey();
if (entityKey == null || entityKey.length() == 0) {
- // TODO: apply key generation strategy
- entityKey = "";
+ KeyGenerator keyGen = KeyGeneratorFactory.getKeyGenerator();
+ entityKey = keyGen.generate();
tModel.setTModelKey(entityKey);
}
else {
- // TODO: Test that key value is valid for publisher
- //throw new KeyUnavailableException(new \
ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
-
Object obj = em.find(org.apache.juddi.model.BusinessEntity.class, entityKey);
if (obj != null) {
entityExists = true;
@@ -546,6 +568,30 @@
if (!publisher.isOwner((UddiEntity)obj))
throw new UserMismatchException(new \
ErrorMessage("errors.usermismatch.InvalidOwner", entityKey)); }
+ else {
+ // Inside this block, we have a key proposed by the publisher on a new entity
+
+ // First test to see if this is a Key Generator tModel. The keyGenerator suffix \
appearing in the key is the indicator, since this is not + // allowed *unless* \
it's a key generator. + if \
(entityKey.toUpperCase().contains(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase())) { \
+ ValidateUDDIKey.validateUDDIv3KeyGeneratorTModel(tModel); +
+ // It's a valid Key Generator, but is it available for this publisher?
+ if (!publisher.isKeyGeneratorAvailable(em, entityKey))
+ throw new KeyUnavailableException(new \
ErrorMessage("errors.keyunavailable.BadPartition", entityKey)); + else {
+ // The key generator is available, must now add it to the publisher's key \
generators. + publisher.addKeyGeneratorKey(entityKey);
+ }
+
+ }
+ 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)) + throw new \
KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", \
entityKey)); + }
+ }
}
if (!entityExists) {
Added: 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=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,166 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.validation;
+
+import java.util.List;
+import java.util.StringTokenizer;
+
+import javax.xml.bind.JAXBElement;
+
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.apache.juddi.keygen.KeyGenerator;
+import org.apache.juddi.error.ErrorMessage;
+import org.apache.juddi.error.InvalidKeyPassedException;
+import org.apache.juddi.error.ValueNotAllowedException;
+
+/**
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class ValidateUDDIKey {
+
+ public static void validateUDDIv3Key(String key) throws \
DispositionReportFaultMessage { + if (key == null)
+ throw new InvalidKeyPassedException(new \
ErrorMessage("errors.invalidkey.NullKeys")); +
+ key = key.trim();
+ if (key.endsWith(KeyGenerator.PARTITION_SEPARATOR))
+ throw new InvalidKeyPassedException(new \
ErrorMessage("errors.invalidkey.MalformedKey", key)); +
+ 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 (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)); +
+ // TODO: This is temporary until JUDDI-155 is worked out.
+ if (!org.apache.juddi.keygen.KeyGenerator.ROOT_DOMAIN.equalsIgnoreCase(nextToken))
+ throw new InvalidKeyPassedException(new \
ErrorMessage("errors.invalidkey.MalformedKey", key)); +
+ }
+ else {
+ if (!isValidKSS(nextToken))
+ throw new InvalidKeyPassedException(new \
ErrorMessage("errors.invalidkey.MalformedKey", key)); + }
+ }
+ }
+
+ public static void validateUDDIv3KeyGeneratorKey(String key) throws \
DispositionReportFaultMessage { + if (key == null)
+ throw new InvalidKeyPassedException(new \
ErrorMessage("errors.invalidkey.NullKeys")); +
+ if ( !(key.toUpperCase().endsWith(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase())) \
) + throw new InvalidKeyPassedException(new \
ErrorMessage("errors.invalidkey.KeyGenSuffix", key)); +
+ validateUDDIv3Key(key.substring(0, \
key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR)- 1)); + }
+
+ public static void validateUDDIv3KeyGeneratorTModel(org.uddi.api_v3.TModel tModel) \
throws DispositionReportFaultMessage { + if (tModel == null)
+ throw new ValueNotAllowedException(new ErrorMessage("errors.tmodel.NullInput"));
+
+ validateUDDIv3KeyGeneratorKey(tModel.getTModelKey());
+
+ // A key generator key should have exactly one category and it's key value should \
be 'keyGenerator' + org.uddi.api_v3.CategoryBag categories = \
tModel.getCategoryBag(); + if (categories != null) {
+ List<JAXBElement<?>> elems = categories.getContent();
+ if (elems != null && elems.size() == 1) {
+ JAXBElement<?> elem = elems.get(0);
+ if (elem != null) {
+ Object obj = elem.getValue();
+ if (obj != null && obj instanceof org.uddi.api_v3.KeyedReference) {
+ String keyedValue = ((org.uddi.api_v3.KeyedReference)obj).getKeyValue();
+ if (keyedValue != null) {
+ if (keyedValue.equalsIgnoreCase(KeyGenerator.KEYGENERATOR_SUFFIX))
+ return;
+ }
+ }
+ }
+ }
+ }
+
+ throw new ValueNotAllowedException(new \
ErrorMessage("errors.tmodel.keygenerator.BadCategory")); + }
+
+ private static boolean isValidUDDIScheme(String token) {
+ if (token == null)
+ return false;
+
+ if (!KeyGenerator.UDDI_SCHEME.equalsIgnoreCase(token))
+ return false;
+
+ return true;
+
+ }
+
+ private static boolean isValidDomainKey(String token) {
+ if(token.indexOf("..") != -1)
+ return false;
+
+ StringTokenizer tokenizer = new StringTokenizer(token, ".");
+ int tokensCount = tokenizer.countTokens();
+ for(int i = 0; tokenizer.hasMoreTokens(); i++) {
+ String domainPart = tokenizer.nextToken();
+ if(i == tokensCount - 1) {
+ if(!isValidTopLabel(domainPart)) {
+ return false;
+ }
+ } else if(!isValidDomainLabel(domainPart)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+
+ private static boolean isValidDomainLabel(String token) {
+ char[] chars = token.toCharArray();
+ for(int i = 0; i < chars.length; i++) {
+ char c = chars[i];
+ if(c != '-' && !Character.isLetterOrDigit(c)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ private static boolean isValidTopLabel(String token) {
+ return Character.isLetter(token.charAt(0)) && (token.length() == 1 || \
isValidDomainLabel(token.substring(1))); + }
+
+ private static boolean isValidKSS(String token) {
+ if (token.length() == 0)
+ return false;
+
+ // The key generator suffix is a reserved word and cannot be found in any part of \
the KSS + if (token.equalsIgnoreCase(KeyGenerator.KEYGENERATOR_SUFFIX))
+ return false;
+
+ return true;
+ }
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
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=713229&r1=713228&r2=713229&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 \
Tue Nov 11 16:47:03 2008 @@ -41,6 +41,9 @@
#
# jUDDI Validator to use
juddi.validator=org.apache.juddi.validator.DefaultValidator
+#
+# jUDDI Key Generator to use
+juddi.keygeneratorr=org.apache.juddi.keygen.KeyGenerator
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties \
Tue Nov 11 16:47:03 2008 @@ -51,12 +51,16 @@
E_unvalidatable=
E_userMismatch=
E_valueNotAllowed=
+E_keyUnavailable=Key is unavailable
#-- General error messages
errors.Unspecified=An unspecified error occurred
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.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 +errors.invalidkey.KeyGenSuffix=The \
passed key generator key does not end with the appropriate suffix \
errors.invalidkey.NoKeys=No keys passed. At least one key must be passed \
errors.invalidkey.DuplicateKey=A duplicate key was passed. No duplicates are allowed \
errors.invalidkey.PublisherNotFound=The publisher was not found for the given id @@ \
-87,6 +91,7 @@ errors.bindingtemplate.NoAccessPoint=A binding template must contain \
an access point errors.tmodel.NullInput=The tModel structure cannot be blank
errors.tmodel.NoAccessPoint=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.businessservices.NoInput=A \
businessServices collection must contain at least one businessService \
errors.bindingtemplates.NoInput=A bindingTemplates collection must contain at least \
one bindingTemplate errors.names.NoInput=At least one name is required
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/BusinessEntityTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/t \
est/java/org/apache/juddi/test/BusinessEntityTest.java?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/BusinessEntityTest.java \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/BusinessEntityTest.java \
Tue Nov 11 16:47:03 2008 @@ -16,16 +16,16 @@
private UDDIPublicationImpl publish = new UDDIPublicationImpl();
private UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
- @Parameters({ "businessFile", "businessKey", "publisherId" })
+ @Parameters({ "sourceDir", "businessFile", "businessKey", "publisherId" })
@Test
- public void saveBusiness(String businessFile, String businessKey, String \
publisherId) { + public void saveBusiness(String sourceDir, String businessFile, \
String businessKey, String publisherId) { try {
String authInfo = UDDIApiTestHelper.getAuthToken(publisherId);
SaveBusiness sb = new SaveBusiness();
sb.setAuthInfo(authInfo);
- BusinessEntity beIn = \
(BusinessEntity)UDDIApiTestHelper.buildEntityFromDoc(businessFile, \
"org.uddi.api_v3"); + BusinessEntity beIn = \
(BusinessEntity)UDDIApiTestHelper.buildEntityFromDoc(sourceDir + businessFile, \
"org.uddi.api_v3"); sb.getBusinessEntity().add(beIn);
publish.saveBusiness(sb);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/BusinessServiceTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/t \
est/java/org/apache/juddi/test/BusinessServiceTest.java?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/BusinessServiceTest.java \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/BusinessServiceTest.java \
Tue Nov 11 16:47:03 2008 @@ -20,9 +20,9 @@
private UDDIPublicationImpl publish = new UDDIPublicationImpl();
private UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
- @Parameters({ "serviceFile", "serviceKey", "publisherId" })
+ @Parameters({ "sourceDir", "serviceFile", "serviceKey", "publisherId" })
@Test
- public void saveService(String serviceFile, String serviceKey, String publisherId) \
{ + public void saveService(String sourceDir, String serviceFile, String serviceKey, \
String publisherId) { try {
String authInfo = UDDIApiTestHelper.getAuthToken(publisherId);
@@ -30,7 +30,7 @@
SaveService ss = new SaveService();
ss.setAuthInfo(authInfo);
- org.uddi.api_v3.BusinessService bsIn = \
(org.uddi.api_v3.BusinessService)UDDIApiTestHelper.buildEntityFromDoc(serviceFile, \
"org.uddi.api_v3"); + org.uddi.api_v3.BusinessService bsIn = \
(org.uddi.api_v3.BusinessService)UDDIApiTestHelper.buildEntityFromDoc(sourceDir + \
serviceFile, "org.uddi.api_v3"); ss.getBusinessService().add(bsIn);
publish.saveService(ss);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/t \
est/java/org/apache/juddi/test/PublisherTest.java?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java \
Tue Nov 11 16:47:03 2008 @@ -14,23 +14,24 @@
import org.uddi.v3_service.DispositionReportFaultMessage;
public class PublisherTest {
- private static final String ADMIN_PUBID = "admin";
private UDDIPublicationImpl publish = new UDDIPublicationImpl();
private UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
- @Parameters({ "publisherFile", "publisherId" })
+ @Parameters({ "sourceDir", "publisherFile", "publisherId" })
@Test
- public void savePublisher(String publisherFile, String publisherId) {
+ public void savePublisher(String sourceDir, String publisherFile, String \
publisherId) { try {
- // An admin publisher must exist to add publisher accounts
- UDDIApiTestHelper.addAdminPublisher(ADMIN_PUBID);
+ // The root publisher with admin rights must exist to publish another publisher.
+ UDDIApiTestHelper.installRootPublisher(sourceDir);
+ // Install the root Key Generator
+ UDDIApiTestHelper.installRootPublisherKeyGen(sourceDir);
- String authInfo = UDDIApiTestHelper.getAuthToken(ADMIN_PUBID);
+ String authInfo = \
UDDIApiTestHelper.getAuthToken(UDDIApiTestHelper.ROOT_PUBLISHER);
SavePublisher sp = new SavePublisher();
sp.setAuthInfo(authInfo);
- Publisher pubIn = (Publisher)UDDIApiTestHelper.buildEntityFromDoc(publisherFile, \
"org.apache.juddi.api.datatype"); + Publisher pubIn = \
(Publisher)UDDIApiTestHelper.buildEntityFromDoc(sourceDir + publisherFile, \
"org.apache.juddi.api.datatype"); sp.getPublisher().add(pubIn);
publish.savePublisher(sp);
@@ -65,7 +66,7 @@
@Test
public void deletePublisher(String publisherId) {
try {
- String authInfo = UDDIApiTestHelper.getAuthToken(ADMIN_PUBID);
+ String authInfo = \
UDDIApiTestHelper.getAuthToken(UDDIApiTestHelper.ROOT_PUBLISHER);
// Delete the entity and make sure it is removed
DeletePublisher dp = new DeletePublisher();
@@ -74,7 +75,8 @@
dp.getPublisherId().add(publisherId);
publish.deletePublisher(dp);
- UDDIApiTestHelper.removeAdminPublisher(ADMIN_PUBID);
+ UDDIApiTestHelper.removeRootPublisherKeyGen();
+ UDDIApiTestHelper.removeRootPublisher();
UDDIApiTestHelper.removeAuthTokens();
}
catch(DispositionReportFaultMessage dr) {
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/TModelTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/TModelTest.java?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/TModelTest.java \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/TModelTest.java \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,74 @@
+package org.apache.juddi.test;
+
+import java.util.List;
+import javax.xml.bind.JAXBException;
+
+import org.apache.juddi.api.impl.UDDIPublicationImpl;
+import org.apache.juddi.api.impl.UDDIInquiryImpl;
+import org.testng.Assert;
+import org.testng.annotations.*;
+import static junit.framework.Assert.assertEquals;
+
+import org.uddi.api_v3.*;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+
+public class TModelTest {
+ private UDDIPublicationImpl publish = new UDDIPublicationImpl();
+ private UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
+
+ @Parameters({ "sourceDir", "tmodelFile", "tmodelKey", "publisherId" })
+ @Test
+ public void saveTModel(String sourceDir, String tmodelFile, String tmodelKey, \
String publisherId) { + try {
+ String authInfo = UDDIApiTestHelper.getAuthToken(publisherId);
+
+ SaveTModel st = new SaveTModel();
+ st.setAuthInfo(authInfo);
+
+ TModel tmIn = (TModel)UDDIApiTestHelper.buildEntityFromDoc(sourceDir + \
tmodelFile, "org.uddi.api_v3"); + st.getTModel().add(tmIn);
+ publish.saveTModel(st);
+
+ // Now get the entity and check the values
+ GetTModelDetail gt = new GetTModelDetail();
+ gt.getTModelKey().add(tmodelKey);
+ TModelDetail td = inquiry.getTModelDetail(gt);
+ List<TModel> tmOutList = td.getTModel();
+ TModel tmOut = tmOutList.get(0);
+
+ assertEquals(tmIn.getTModelKey(), tmOut.getTModelKey());
+
+ assertEquals(tmIn.getName().getLang(), tmOut.getName().getLang());
+ assertEquals(tmIn.getName().getValue(), tmOut.getName().getValue());
+ UDDIApiTestHelper.checkDescriptions(tmIn.getDescription(), \
tmOut.getDescription()); + UDDIApiTestHelper.checkCategories(tmIn.getCategoryBag(), \
tmOut.getCategoryBag()); + }
+ catch(DispositionReportFaultMessage dr) {
+ Assert.fail("No exception should be thrown", dr);
+ }
+ catch(JAXBException je) {
+ Assert.fail("No exception should be thrown", je);
+ }
+
+ }
+
+ @Parameters({ "tmodelKey", "publisherId" })
+ @Test
+ public void deleteTModel(String tmodelKey, String publisherId) {
+ try {
+ String authInfo = UDDIApiTestHelper.getAuthToken(publisherId);
+
+ // Delete the entity and make sure it is removed
+ DeleteTModel dt = new DeleteTModel();
+ dt.setAuthInfo(authInfo);
+
+ dt.getTModelKey().add(tmodelKey);
+ publish.deleteTModel(dt);
+ }
+ catch(DispositionReportFaultMessage dr) {
+ Assert.fail("No exception should be thrown", dr);
+ }
+
+ }
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/TModelTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/UDDIApiTestHelper.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/t \
est/java/org/apache/juddi/test/UDDIApiTestHelper.java?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/UDDIApiTestHelper.java \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/UDDIApiTestHelper.java \
Tue Nov 11 16:47:03 2008 @@ -15,13 +15,17 @@
import javax.xml.bind.Unmarshaller;
import javax.xml.bind.Marshaller;
+import org.apache.juddi.api.datatype.Publisher;
import org.apache.juddi.api.impl.UDDISecurityImpl;
import org.apache.juddi.query.PersistenceManager;
+import org.apache.juddi.mapping.MappingApiToModel;
import org.uddi.api_v3.*;
import org.uddi.v3_service.DispositionReportFaultMessage;
public class UDDIApiTestHelper {
+ public static final String ROOT_PUBLISHER = "root";
+ public static final String ROOT_PUBLISHER_KEYGEN = \
"uddi:juddi.apache.org:keygenerator";
public static Object buildEntityFromDoc(String fileName, String thePackage) throws \
JAXBException { JAXBContext jc = JAXBContext.newInstance(thePackage);
@@ -37,37 +41,74 @@
}
- public static void addAdminPublisher(String pubId) {
- org.apache.juddi.model.Publisher pub = new org.apache.juddi.model.Publisher();
- pub.setPublisherId(pubId);
- pub.setPublisherName("Administrator");
- pub.setIsAdmin("true");
+ public static void installRootPublisher(String sourceDir) throws JAXBException, \
DispositionReportFaultMessage { + Publisher apiPub = \
(Publisher)buildEntityFromDoc(sourceDir + "root_Publisher.xml", \
"org.apache.juddi.api.datatype"); +
+ org.apache.juddi.model.Publisher modelPub = new \
org.apache.juddi.model.Publisher(); +
+ MappingApiToModel.mapPublisher(apiPub, modelPub);
EntityManager em = PersistenceManager.getEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
- em.persist(pub);
+ em.persist(modelPub);
tx.commit();
em.close();
}
-
- public static void removeAdminPublisher(String pubId) {
+
+ public static void installRootPublisherKeyGen(String sourceDir) throws \
JAXBException, DispositionReportFaultMessage { +
+ TModel apiTModel = (TModel)buildEntityFromDoc(sourceDir + "root_tModelKeyGen.xml", \
"org.uddi.api_v3"); +
+ org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
+
+ MappingApiToModel.mapTModel(apiTModel, modelTModel);
EntityManager em = PersistenceManager.getEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
- Object obj = em.find(org.apache.juddi.model.Publisher.class, pubId);
- em.remove(obj);
+ em.persist(modelTModel);
tx.commit();
em.close();
}
+
+ public static void removeRootPublisher() {
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ tx.begin();
+
+ Object obj = em.find(org.apache.juddi.model.UddiEntityPublisher.class, \
ROOT_PUBLISHER); + if (obj != null)
+ em.remove(obj);
+
+ tx.commit();
+ em.close();
+
+ }
+
+ public static void removeRootPublisherKeyGen() {
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ tx.begin();
+
+ Object obj = em.find(org.apache.juddi.model.Tmodel.class, ROOT_PUBLISHER_KEYGEN);
+ if (obj != null)
+ em.remove(obj);
+
+ tx.commit();
+ em.close();
+
+ }
+
public static void removeAuthTokens() {
EntityManager em = PersistenceManager.getEntityManager();
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_Publisher.xml
------------------------------------------------------------------------------
svn:mergeinfo =
Copied: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessEntity1.xml \
(from r711730, webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity1.xml)
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/t \
est/java/org/apache/juddi/test/jpublisher_businessEntity1.xml?p2=webservices/juddi/bra \
nches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessEntit \
y1.xml&p1=webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity1.xml&r1=711730&r2=713229&rev=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity1.xml \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessEntity1.xml \
Tue Nov 11 16:47:03 2008 @@ -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:businessone.com"> \
+<businessEntity xmlns="urn:uddi-org:api_v3" \
xmlns:xml="http://www.w3.org/XML/1998/namespace" \
businessKey="uddi:juddi.apache.org:joepublisher:businessone"> <discoveryURLs>
<discoveryURL useType="home">http://www.businessone.com</discoveryURL>
<discoveryURL useType="serviceList">http://www.businessone.com/services</discoveryURL>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessEntity1.xml
------------------------------------------------------------------------------
svn:mergeinfo =
Copied: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessService1.xml \
(from r711730, webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService1.xml)
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/t \
est/java/org/apache/juddi/test/jpublisher_businessService1.xml?p2=webservices/juddi/br \
anches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessServ \
ice1.xml&p1=webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService1.xml&r1=711730&r2=713229&rev=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService1.xml \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessService1.xml \
Tue Nov 11 16:47:03 2008 @@ -1,11 +1,12 @@
<?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:businessone.com" \
serviceKey="uddi:businessone.com:services:serviceone"> +<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"> <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:businessone.com:services:serviceone:accesspoint"> + \
<bindingTemplate \
bindingKey="uddi:juddi.apache.org:joepublisher:bindingone">
<description xml:lang="en">This is the access point for service \
one.</description>
<accessPoint useType="endPoint">http://businessone.com/services/serviceone</accessPoint>
<tModelInstanceDetails>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_businessService1.xml
------------------------------------------------------------------------------
svn:mergeinfo =
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_tModelKeyGen.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_tModelKeyGen.xml?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_tModelKeyGen.xml \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_tModelKeyGen.xml \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tModel tModelKey="uddi:juddi.apache.org:joepublisher: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>
+ <overviewURL useType="text">
+ http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+ </overviewDoc>
+ <categoryBag>
+ <keyedReference tModelKey="uddi:uddi.org:categorization:types" \
keyName="uddi-org:types:keyGenerator" + keyValue="keyGenerator" />
+ </categoryBag>
+</tModel>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher_tModelKeyGen.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_Publisher.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_Publisher.xml?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_Publisher.xml \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_Publisher.xml \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<publisher xmlns="urn:apache-org:juddi_v3" publisherId="root">
+ <publisherName>root publisher</publisherName>
+ <isAdmin>true</isAdmin>
+</publisher>
+
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_Publisher.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_tModelKeyGen.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_tModelKeyGen.xml?rev=713229&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_tModelKeyGen.xml \
(added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_tModelKeyGen.xml \
Tue Nov 11 16:47:03 2008 @@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tModel tModelKey="uddi:juddi.apache.org:keygenerator" xmlns="urn:uddi-org:api_v3">
+ <name>uddi-org:keyGenerator</name>
+ <description>UDDI domain key generator</description>
+ <overviewDoc>
+ <overviewURL useType="text">
+ http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+ </overviewDoc>
+ <categoryBag>
+ <keyedReference tModelKey="uddi:uddi.org:categorization:types" \
keyName="uddi-org:types:keyGenerator" + keyValue="keyGenerator" />
+ </categoryBag>
+</tModel>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/root_tModelKeyGen.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-one.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-one.xml?rev=713229&r1=713228&r2=713229&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-one.xml \
(original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-one.xml \
Tue Nov 11 16:47:03 2008 @@ -1,11 +1,19 @@
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="suite-one" verbose="1">
- <parameter name="publisherFile" \
value="./src/test/java/org/apache/juddi/test/publisher1.xml" />
- <parameter name="businessFile" \
value="./src/test/java/org/apache/juddi/test/businessEntity1.xml" />
- <parameter name="serviceFile" \
value="./src/test/java/org/apache/juddi/test/businessService1.xml" /> + <parameter \
name="sourceDir" value="./src/test/java/org/apache/juddi/test/" /> +
+ <parameter name="publisherFile" value="jpublisher_publisher.xml" />
<parameter name="publisherId" value="jpublisher" />
- <parameter name="businessKey" value="uddi:businessone.com" />
- <parameter name="serviceKey" value="uddi:businessone.com:services:serviceone" />
+
+ <parameter name="businessFile" value="jpublisher_businessEntity1.xml" />
+ <parameter name="businessKey" \
value="uddi:juddi.apache.org:joepublisher:businessone" /> +
+ <parameter name="serviceFile" value="jpublisher_businessService1.xml" />
+ <parameter name="serviceKey" value="uddi:juddi.apache.org:joepublisher:serviceone" \
/> +
+ <parameter name="tmodelFile" value="jpublisher_tModelKeyGen.xml" />
+ <parameter name="tmodelKey" \
value="uddi:juddi.apache.org:joepublisher:KEYGENERATOR" /> +
<test name="savePublisher">
<classes>
<class name="org.apache.juddi.test.PublisherTest">
@@ -15,6 +23,15 @@
</class>
</classes>
</test>
+ <test name="saveTModel">
+ <classes>
+ <class name="org.apache.juddi.test.TModelTest">
+ <methods>
+ <include name="saveTModel" />
+ </methods>
+ </class>
+ </classes>
+ </test>
<test name="saveBusiness">
<classes>
<class name="org.apache.juddi.test.BusinessEntityTest">
@@ -51,6 +68,15 @@
</class>
</classes>
</test>
+ <test name="deleteTModel">
+ <classes>
+ <class name="org.apache.juddi.test.TModelTest">
+ <methods>
+ <include name="deleteTModel" />
+ </methods>
+ </class>
+ </classes>
+ </test>
<test name="deletePublisher">
<classes>
<class name="org.apache.juddi.test.PublisherTest">
@@ -60,4 +86,5 @@
</class>
</classes>
</test>
+
</suite>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic