You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by ks...@apache.org on 2009/10/01 18:34:12 UTC
svn commit: r820709 - in /webservices/juddi/trunk:
juddi-console/juddi-portal/ juddi-console/juddi-portal/pluto/WEB-INF/
juddi-console/uddi-portlets/
juddi-core/src/main/java/org/apache/juddi/api/impl/
juddi-core/src/main/java/org/apache/juddi/config/ ...
Author: kstam
Date: Thu Oct 1 16:34:10 2009
New Revision: 820709
URL: http://svn.apache.org/viewvc?rev=820709&view=rev
Log:
JUDDI-204, adding support to use a root publisher named something other then "root"
Removed:
webservices/juddi/trunk/juddi-cxf/src/main/java/org/apache/juddi/
Modified:
webservices/juddi/trunk/juddi-console/juddi-portal/pluto/WEB-INF/pluto-portal-driver-config.xml
webservices/juddi/trunk/juddi-console/juddi-portal/tomcat-users.xml
webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch
webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Constants.java
webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java
webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_010_PublisherTest.java
webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties
webservices/juddi/trunk/juddi-cxf/src/main/webapp/WEB-INF/classes/juddiv3.properties
webservices/juddi/trunk/uddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
webservices/juddi/trunk/uddi-client/src/test/java/org/apache/juddi/v3/client/JUDDI_010_PublisherIntegrationTest.java
Modified: webservices/juddi/trunk/juddi-console/juddi-portal/pluto/WEB-INF/pluto-portal-driver-config.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-console/juddi-portal/pluto/WEB-INF/pluto-portal-driver-config.xml?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-console/juddi-portal/pluto/WEB-INF/pluto-portal-driver-config.xml (original)
+++ webservices/juddi/trunk/juddi-console/juddi-portal/pluto/WEB-INF/pluto-portal-driver-config.xml Thu Oct 1 16:34:10 2009
@@ -49,7 +49,8 @@
<page name="jUDDI Admin" uri="/WEB-INF/themes/pluto-default-theme.jsp">
<portlet context="/uddi-portlets" name="JUDDIPublisherPortlet"/>
</page>
- <page name="jUDDI Subscription Logger" uri="/WEB-INF/themes/pluto-default-theme.jsp">
+ <page name="jUDDI Subscriptions" uri="/WEB-INF/themes/pluto-default-theme.jsp">
+ <portlet context="/uddi-portlets" name="UDDISubscriptionPortlet"/>
<portlet context="/uddi-portlets" name="UDDISubscriptionNotificationPortlet"/>
</page>
<page name="Pluto Admin" uri="/WEB-INF/themes/pluto-default-theme.jsp">
Modified: webservices/juddi/trunk/juddi-console/juddi-portal/tomcat-users.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-console/juddi-portal/tomcat-users.xml?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-console/juddi-portal/tomcat-users.xml (original)
+++ webservices/juddi/trunk/juddi-console/juddi-portal/tomcat-users.xml Thu Oct 1 16:34:10 2009
@@ -5,6 +5,8 @@
<role rolename="role1"/>
<role rolename="manager"/>
<user username="root" password="root" roles="pluto,tomcat,manager"/>
+ <user username="affa" password="affa" roles="pluto"/>
+ <user username="uddi" password="uddi" roles="pluto"/>
<user username="juddi" password="juddi" roles="pluto,tomcat,manager"/>
<user username="pluto" password="pluto" roles="pluto,tomcat,manager"/>
<user username="tomcat" password="tomcat" roles="tomcat,pluto,manager"/>
Modified: webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch (original)
+++ webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch Thu Oct 1 16:34:10 2009
@@ -64,11 +64,9 @@
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/jUDDI/juddi-console/uddi-portlets/target/uddi-portlets-3.0.0.SNAPSHOT/WEB-INF/lib/uddi-ws-3.0.0.SNAPSHOT.jar" path="3" type="2"/> "/>
<listEntry value="<?xml version="1.0" encoding="UTF-8"?> <runtimeClasspathEntry internalArchive="/juddi-console/uddi-portlets/src/main/resources" path="3" type="2"/> "/>
</listAttribute>
-<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.classpathProvider"/>
<booleanAttribute key="org.eclipse.jdt.launching.DEFAULT_CLASSPATH" value="false"/>
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out target/www org.apache.juddi.portlets.UDDIBrowser/UDDIBrowser.html"/>
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="juddi-console"/>
-<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread -Xmx256M"/>
</launchConfiguration>
Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java Thu Oct 1 16:34:10 2009
@@ -433,7 +433,7 @@
UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- new ValidatePublish(publisher).validateSaveBinding(em, body);
+ new ValidatePublish(publisher).validateSaveBinding(em, body, null);
BindingDetail result = new BindingDetail();
@@ -474,7 +474,7 @@
UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- new ValidatePublish(publisher).validateSaveBusiness(em, body);
+ new ValidatePublish(publisher).validateSaveBusiness(em, body, null);
BusinessDetail result = new BusinessDetail();
@@ -513,7 +513,7 @@
UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- new ValidatePublish(publisher).validateSaveService(em, body);
+ new ValidatePublish(publisher).validateSaveService(em, body, null);
ServiceDetail result = new ServiceDetail();
@@ -554,7 +554,7 @@
UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- new ValidatePublish(publisher).validateSaveTModel(em, body);
+ new ValidatePublish(publisher).validateSaveTModel(em, body, null);
TModelDetail result = new TModelDetail();
Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java Thu Oct 1 16:34:10 2009
@@ -103,7 +103,7 @@
try {
tx.begin();
- if (!Install.alreadyInstalled(em)) {
+ if (!Install.alreadyInstalled(em, config)) {
log.info("The 'root' publisher was not found, loading...");
try {
Install.install(config);
@@ -119,7 +119,8 @@
tx.commit();
tx.begin();
- UddiEntityPublisher rootPublisher = new UddiEntityPublisher(Constants.ROOT_PUBLISHER);
+ String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
+ UddiEntityPublisher rootPublisher = new UddiEntityPublisher(rootPublisherStr);
rootPublisher.populateKeyGeneratorKeys(em);
List<String> rootKeyGenList = rootPublisher.getKeyGeneratorKeys();
if (rootKeyGenList == null || rootKeyGenList.size() == 0)
Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Constants.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Constants.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Constants.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Constants.java Thu Oct 1 16:34:10 2009
@@ -23,8 +23,6 @@
* @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
*/
public class Constants {
- public static final String ROOT_PUBLISHER = "root";
- public static final String UDDI_PUBLISHER = "uddi";
public static final String GENERAL_KEYWORD_TMODEL = "uddi:uddi-org:general_keywords";
public static final String NODE_CATEGORY_TMODEL = "uddi:uddi.org:categorization:nodes";
Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Install.java Thu Oct 1 16:34:10 2009
@@ -59,45 +59,64 @@
*/
public class Install {
- public static final String FILE_ROOT_BUSINESSENTITY = "root_BusinessEntity.xml";
- public static final String FILE_ROOT_PUBLISHER = "root_Publisher.xml";
- public static final String FILE_ROOT_TMODELKEYGEN = "root_tModelKeyGen.xml";
- public static final String FILE_UDDI_PUBLISHER = "UDDI_Publisher.xml";
- public static final String FILE_UDDI_TMODELS = "UDDI_tModels.xml";
+ public static final String FILE_BUSINESSENTITY = "_BusinessEntity.xml";
+ public static final String FILE_PUBLISHER = "_Publisher.xml";
+ public static final String FILE_TMODELKEYGEN = "_tModelKeyGen.xml";
+ public static final String FILE_TMODELS = "_tModels.xml";
public static final String FILE_PERSISTENCE = "persistence.xml";
public static final String JUDDI_INSTALL_DATA_DIR = "juddi_install_data/";
public static final String JUDDI_CUSTOM_INSTALL_DATA_DIR = "juddi_custom_install_data/";
public static Logger log = Logger.getLogger(Install.class);
+ @SuppressWarnings("unchecked")
protected static void install(Configuration config) throws JAXBException, DispositionReportFaultMessage, IOException, ConfigurationException {
EntityManager em = PersistenceManager.getEntityManager();
EntityTransaction tx = em.getTransaction();
UddiEntityPublisher rootPublisher = null;
- UddiEntityPublisher uddiPublisher = null;
+
try {
tx.begin();
- if (alreadyInstalled(em))
+ if (alreadyInstalled(em, config))
new FatalErrorException(new ErrorMessage("errors.install.AlreadyInstalled"));
- TModel rootTModelKeyGen = (TModel)buildInstallEntity(FILE_ROOT_TMODELKEYGEN, "org.uddi.api_v3", config);
- org.uddi.api_v3.BusinessEntity rootBusinessEntity = (org.uddi.api_v3.BusinessEntity)buildInstallEntity(FILE_ROOT_BUSINESSENTITY, "org.uddi.api_v3",config);
+ String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
+ String fileRootTModelKeygen = rootPublisherStr + FILE_TMODELKEYGEN;
+ TModel rootTModelKeyGen = (TModel)buildInstallEntity(fileRootTModelKeygen, "org.uddi.api_v3", config);
+ String fileRootBusinessEntity = rootPublisherStr + FILE_BUSINESSENTITY;
+ org.uddi.api_v3.BusinessEntity rootBusinessEntity = (org.uddi.api_v3.BusinessEntity)buildInstallEntity(fileRootBusinessEntity, "org.uddi.api_v3",config);
String rootPartition = getRootPartition(rootTModelKeyGen);
String nodeId = getNodeId(rootBusinessEntity.getBusinessKey(), rootPartition);
- rootPublisher = installPublisher(em, FILE_ROOT_PUBLISHER, config);
- uddiPublisher = installPublisher(em, FILE_UDDI_PUBLISHER, config);
-
+ String fileRootPublisher = rootPublisherStr + FILE_PUBLISHER;
+ rootPublisher = installPublisher(em, fileRootPublisher, config);
+
installRootPublisherKeyGen(em, rootTModelKeyGen, rootPartition, rootPublisher, nodeId);
rootBusinessEntity.setBusinessKey(nodeId);
- installRootBusinessEntity(em, rootBusinessEntity, rootPublisher, rootPartition);
-
- installSaveTModel(em, FILE_UDDI_TMODELS, uddiPublisher, nodeId, config);
+ installBusinessEntity(true, em, rootBusinessEntity, rootPublisher, rootPartition, config);
+
+ List<String> juddiPublishers = config.getList(Property.JUDDI_PUBLISHERS);
+ for (String publisherStr : juddiPublishers) {
+ String filePublisher = publisherStr + FILE_PUBLISHER;
+ String fileTModelKeygen = publisherStr + FILE_TMODELKEYGEN;
+ TModel tModelKeyGen = (TModel)buildInstallEntity(fileTModelKeygen, "org.uddi.api_v3", config);
+ String fileBusinessEntity = publisherStr + FILE_BUSINESSENTITY;
+ org.uddi.api_v3.BusinessEntity businessEntity = (org.uddi.api_v3.BusinessEntity)buildInstallEntity(fileBusinessEntity, "org.uddi.api_v3",config);
+ UddiEntityPublisher publisher = installPublisher(em, filePublisher, config);
+ if (publisher==null) {
+ throw new ConfigurationException("File " + filePublisher + " not found.");
+ } else {
+ if (tModelKeyGen!=null) installPublisherKeyGen(em, tModelKeyGen, publisher, nodeId);
+ if (businessEntity!=null) installBusinessEntity(false, em, businessEntity, publisher, null, config);
+ String fileTModels = publisherStr + FILE_TMODELS;
+ installSaveTModel(em, fileTModels, publisher, nodeId, config);
+ }
+ }
tx.commit();
}
@@ -134,13 +153,13 @@
}
- protected static boolean alreadyInstalled() {
+ protected static boolean alreadyInstalled(Configuration config) throws ConfigurationException {
EntityManager em = PersistenceManager.getEntityManager();
EntityTransaction tx = em.getTransaction();
try {
tx.begin();
- boolean result = alreadyInstalled(em);
+ boolean result = alreadyInstalled(em, config);
tx.commit();
return result;
@@ -152,15 +171,21 @@
}
}
- protected static boolean alreadyInstalled(EntityManager em) {
+ @SuppressWarnings("unchecked")
+ protected static boolean alreadyInstalled(EntityManager em, Configuration config) throws ConfigurationException {
- org.apache.juddi.model.Publisher publisher = em.find(org.apache.juddi.model.Publisher.class, Constants.ROOT_PUBLISHER);
+ String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
+ org.apache.juddi.model.Publisher publisher = em.find(org.apache.juddi.model.Publisher.class, rootPublisherStr);
if (publisher != null)
return true;
- publisher = em.find(org.apache.juddi.model.Publisher.class, Constants.UDDI_PUBLISHER);
- if (publisher != null)
- return true;
+ List<String> publishers = config.getList(Property.JUDDI_PUBLISHERS);
+ for (String publisherStr : publishers) {
+ publisher = em.find(org.apache.juddi.model.Publisher.class, publisherStr);
+ if (publisher != null)
+ return true;
+ }
+
return false;
}
@@ -211,10 +236,11 @@
- private static String installRootBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity, UddiEntityPublisher rootPublisher, String rootPartition)
+ private static String installBusinessEntity(boolean isRoot, EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity,
+ UddiEntityPublisher rootPublisher, String rootPartition, Configuration config)
throws JAXBException, DispositionReportFaultMessage, IOException {
- validateRootBusinessEntity(rootBusinessEntity, rootPublisher, rootPartition);
+ if (isRoot) validateRootBusinessEntity(rootBusinessEntity, rootPublisher, rootPartition, config);
org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
MappingApiToModel.mapBusinessEntity(rootBusinessEntity, modelBusinessEntity);
@@ -252,9 +278,11 @@
}
+
// 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, String rootPartition)
+ private static void validateRootBusinessEntity(org.uddi.api_v3.BusinessEntity businessEntity, UddiEntityPublisher rootPublisher,
+ String rootPartition, Configuration config)
throws DispositionReportFaultMessage {
// A supplied businessService can't be null
@@ -280,8 +308,8 @@
validatePublish.validateNames(businessEntity.getName());
validatePublish.validateDiscoveryUrls(businessEntity.getDiscoveryURLs());
validatePublish.validateContacts(businessEntity.getContacts());
- validatePublish.validateCategoryBag(businessEntity.getCategoryBag());
- validatePublish.validateIdentifierBag(businessEntity.getIdentifierBag());
+ validatePublish.validateCategoryBag(businessEntity.getCategoryBag(),config);
+ validatePublish.validateIdentifierBag(businessEntity.getIdentifierBag(),config);
org.uddi.api_v3.BusinessServices businessServices = businessEntity.getBusinessServices();
if (businessServices != null) {
@@ -290,7 +318,7 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.businessservices.NoInput"));
for (org.uddi.api_v3.BusinessService businessService : businessServiceList) {
- validateRootBusinessService(businessService, businessEntity, rootPublisher, rootPartition);
+ validateRootBusinessService(businessService, businessEntity, rootPublisher, rootPartition, config);
}
}
@@ -298,7 +326,8 @@
// 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, String rootPartition)
+ private static void validateRootBusinessService(org.uddi.api_v3.BusinessService businessService, org.uddi.api_v3.BusinessEntity parent,
+ UddiEntityPublisher rootPublisher, String rootPartition, Configuration config)
throws DispositionReportFaultMessage {
// A supplied businessService can't be null
@@ -328,7 +357,7 @@
ValidatePublish validatePublish = new ValidatePublish(rootPublisher);
validatePublish.validateNames(businessService.getName());
- validatePublish.validateCategoryBag(businessService.getCategoryBag());
+ validatePublish.validateCategoryBag(businessService.getCategoryBag(), config);
org.uddi.api_v3.BindingTemplates bindingTemplates = businessService.getBindingTemplates();
if (bindingTemplates != null) {
@@ -337,14 +366,15 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplates.NoInput"));
for (org.uddi.api_v3.BindingTemplate bindingTemplate : bindingTemplateList) {
- validateRootBindingTemplate(bindingTemplate, businessService, rootPublisher, rootPartition);
+ validateRootBindingTemplate(bindingTemplate, businessService, rootPublisher, rootPartition, config);
}
}
}
// 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, String rootPartition)
+ private static void validateRootBindingTemplate(org.uddi.api_v3.BindingTemplate bindingTemplate, org.uddi.api_v3.BusinessService parent,
+ UddiEntityPublisher rootPublisher, String rootPartition, Configuration config)
throws DispositionReportFaultMessage {
// A supplied businessService can't be null
@@ -373,7 +403,7 @@
ValidatePublish validatePublish = new ValidatePublish(rootPublisher);
- validatePublish.validateCategoryBag(bindingTemplate.getCategoryBag());
+ validatePublish.validateCategoryBag(bindingTemplate.getCategoryBag(), config);
validatePublish.validateTModelInstanceDetails(bindingTemplate.getTModelInstanceDetails());
}
@@ -439,14 +469,19 @@
// First try the custom install directory
URL url = Thread.currentThread().getContextClassLoader().getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR + fileName);
- if (url != null)
- resourceStream = url.openStream();
+ if (url != null) resourceStream = url.openStream();
// If the custom install directory doesn't exist, then use the standard install directory where the resource is guaranteed to exist.
if (resourceStream == null) {
url = Thread.currentThread().getContextClassLoader().getResource(JUDDI_INSTALL_DATA_DIR + fileName);
- resourceStream = url.openStream();
+ if (url != null) resourceStream = url.openStream();
}
+
+ // If file still does not exist then return null;
+ if (resourceStream == null) {
+ return null;
+ }
+
StringBuilder xml = new StringBuilder();
byte[] b = new byte[4096];
for (int n; (n = resourceStream.read(b)) != -1;) {
@@ -525,7 +560,7 @@
throws JAXBException, DispositionReportFaultMessage, IOException, ConfigurationException {
SaveTModel apiSaveTModel = (SaveTModel)buildInstallEntity(fileName, "org.uddi.api_v3", config);
- installTModels(em, apiSaveTModel.getTModel(), publisher, nodeId);
+ if (apiSaveTModel!=null) installTModels(em, apiSaveTModel.getTModel(), publisher, nodeId);
}
/**
@@ -543,6 +578,7 @@
throws JAXBException, DispositionReportFaultMessage, IOException, ConfigurationException {
org.apache.juddi.api_v3.Publisher apiPub = (org.apache.juddi.api_v3.Publisher)buildInstallEntity(fileName, "org.apache.juddi.api_v3", config);
+ if (apiPub==null) return null;
org.apache.juddi.model.Publisher modelPub = new org.apache.juddi.model.Publisher();
MappingApiToModel.mapPublisher(apiPub, modelPub);
em.persist(modelPub);
Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java Thu Oct 1 16:34:10 2009
@@ -2,7 +2,8 @@
public interface Property
{
-
+ public final static String JUDDI_ROOT_PUBLISHER ="juddi.root.publisher";
+ public final static String JUDDI_PUBLISHERS ="juddi.publishers";
public final static String JUDDI_PERSISTENCEUNIT_NAME ="juddi.persistenceunit.name";
public final static String JUDDI_AUTHENTICATOR ="juddi.authenticator";
public final static String JUDDI_CONFIGURATION_RELOAD_DELAY ="juddi.configuration.reload.delay";
Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java Thu Oct 1 16:34:10 2009
@@ -23,9 +23,13 @@
import javax.persistence.EntityManager;
import javax.xml.ws.Holder;
+import org.apache.commons.configuration.Configuration;
+import org.apache.commons.configuration.ConfigurationException;
import org.apache.juddi.api_v3.DeletePublisher;
import org.apache.juddi.api_v3.SavePublisher;
+import org.apache.juddi.config.AppConfig;
import org.apache.juddi.config.Constants;
+import org.apache.juddi.config.Property;
import org.apache.juddi.error.AssertionNotFoundException;
import org.apache.juddi.error.ErrorMessage;
import org.apache.juddi.error.FatalErrorException;
@@ -39,6 +43,7 @@
import org.apache.juddi.model.Publisher;
import org.apache.juddi.model.UddiEntity;
import org.apache.juddi.model.UddiEntityPublisher;
+import org.apache.log4j.Logger;
import org.uddi.api_v3.AddPublisherAssertions;
import org.uddi.api_v3.DeleteBinding;
import org.uddi.api_v3.DeleteBusiness;
@@ -62,6 +67,8 @@
*/
public class ValidatePublish extends ValidateUDDIApi {
+ Logger log = Logger.getLogger(this.getClass());
+
public ValidatePublish(UddiEntityPublisher publisher) {
super(publisher);
}
@@ -211,8 +218,15 @@
}
- public void validateSaveBusiness(EntityManager em, SaveBusiness body) throws DispositionReportFaultMessage {
+ public void validateSaveBusiness(EntityManager em, SaveBusiness body, Configuration config) throws DispositionReportFaultMessage {
+ if (config==null) {
+ try {
+ config = AppConfig.getConfiguration();
+ } catch (ConfigurationException ce){
+ log.error("Could not optain config. " + ce.getMessage(), ce);
+ }
+ }
// No null input
if (body == null)
throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
@@ -223,12 +237,19 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.savebusiness.NoInput"));
for (org.uddi.api_v3.BusinessEntity entity : entityList) {
- validateBusinessEntity(em, entity);
+ validateBusinessEntity(em, entity, config);
}
}
- public void validateSaveService(EntityManager em, SaveService body) throws DispositionReportFaultMessage {
+ public void validateSaveService(EntityManager em, SaveService body, Configuration config) throws DispositionReportFaultMessage {
+ if (config==null) {
+ try {
+ config = AppConfig.getConfiguration();
+ } catch (ConfigurationException ce){
+ log.error("Could not optain config. " + ce.getMessage(), ce);
+ }
+ }
// No null input
if (body == null)
throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
@@ -240,12 +261,19 @@
for (org.uddi.api_v3.BusinessService entity : entityList) {
// Entity specific data validation
- validateBusinessService(em, entity, null);
+ validateBusinessService(em, entity, null, config);
}
}
- public void validateSaveBinding(EntityManager em, SaveBinding body) throws DispositionReportFaultMessage {
+ public void validateSaveBinding(EntityManager em, SaveBinding body, Configuration config) throws DispositionReportFaultMessage {
+ if (config==null) {
+ try {
+ config = AppConfig.getConfiguration();
+ } catch (ConfigurationException ce){
+ log.error("Could not optain config. " + ce.getMessage(), ce);
+ }
+ }
// No null input
if (body == null)
throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
@@ -256,12 +284,19 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.savebinding.NoInput"));
for (org.uddi.api_v3.BindingTemplate entity : entityList) {
- validateBindingTemplate(em, entity, null);
+ validateBindingTemplate(em, entity, null, config);
}
}
- public void validateSaveTModel(EntityManager em, SaveTModel body) throws DispositionReportFaultMessage {
+ public void validateSaveTModel(EntityManager em, SaveTModel body, Configuration config) throws DispositionReportFaultMessage {
+ if (config==null) {
+ try {
+ config = AppConfig.getConfiguration();
+ } catch (ConfigurationException ce){
+ log.error("Could not optain config. " + ce.getMessage(), ce);
+ }
+ }
// No null input
if (body == null)
throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
@@ -272,7 +307,7 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.savetmodel.NoInput"));
for (org.uddi.api_v3.TModel entity : entityList) {
- validateTModel(em, entity);
+ validateTModel(em, entity, config);
}
}
@@ -308,7 +343,7 @@
}
}
- public void validateBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity businessEntity) throws DispositionReportFaultMessage {
+ public void validateBusinessEntity(EntityManager em, org.uddi.api_v3.BusinessEntity businessEntity, Configuration config) throws DispositionReportFaultMessage {
// A supplied businessEntity can't be null
if (businessEntity == null)
@@ -356,14 +391,14 @@
validateNames(businessEntity.getName());
validateDiscoveryUrls(businessEntity.getDiscoveryURLs());
validateContacts(businessEntity.getContacts());
- validateCategoryBag(businessEntity.getCategoryBag());
- validateIdentifierBag(businessEntity.getIdentifierBag());
+ validateCategoryBag(businessEntity.getCategoryBag(), config);
+ validateIdentifierBag(businessEntity.getIdentifierBag(), config);
- validateBusinessServices(em, businessEntity.getBusinessServices(), businessEntity);
+ validateBusinessServices(em, businessEntity.getBusinessServices(), businessEntity, config);
}
- public void validateBusinessServices(EntityManager em, org.uddi.api_v3.BusinessServices businessServices, org.uddi.api_v3.BusinessEntity parent)
+ public void validateBusinessServices(EntityManager em, org.uddi.api_v3.BusinessServices businessServices, org.uddi.api_v3.BusinessEntity parent, Configuration config)
throws DispositionReportFaultMessage {
// Business services is optional
if (businessServices == null)
@@ -374,12 +409,12 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.businessservices.NoInput"));
for (org.uddi.api_v3.BusinessService businessService : businessServiceList) {
- validateBusinessService(em, businessService, parent);
+ validateBusinessService(em, businessService, parent, config);
}
}
- public void validateBusinessService(EntityManager em, org.uddi.api_v3.BusinessService businessService, org.uddi.api_v3.BusinessEntity parent)
+ public void validateBusinessService(EntityManager em, org.uddi.api_v3.BusinessService businessService, org.uddi.api_v3.BusinessEntity parent, Configuration config)
throws DispositionReportFaultMessage {
// A supplied businessService can't be null
@@ -508,14 +543,14 @@
// TODO: validate "checked" categories or category groups (see section 5.2.3 of spec)? optional to support
validateNames(businessService.getName());
- validateCategoryBag(businessService.getCategoryBag());
+ validateCategoryBag(businessService.getCategoryBag(), config);
- validateBindingTemplates(em, businessService.getBindingTemplates(), businessService);
+ validateBindingTemplates(em, businessService.getBindingTemplates(), businessService, config);
}
}
- public void validateBindingTemplates(EntityManager em, org.uddi.api_v3.BindingTemplates bindingTemplates, org.uddi.api_v3.BusinessService parent)
+ public void validateBindingTemplates(EntityManager em, org.uddi.api_v3.BindingTemplates bindingTemplates, org.uddi.api_v3.BusinessService parent, Configuration config)
throws DispositionReportFaultMessage {
// Binding templates is optional
if (bindingTemplates == null)
@@ -526,12 +561,13 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplates.NoInput"));
for (org.uddi.api_v3.BindingTemplate bindingTemplate : bindingTemplateList) {
- validateBindingTemplate(em, bindingTemplate, parent);
+ validateBindingTemplate(em, bindingTemplate, parent, config);
}
}
- public void validateBindingTemplate(EntityManager em, org.uddi.api_v3.BindingTemplate bindingTemplate, org.uddi.api_v3.BusinessService parent)
+ public void validateBindingTemplate(EntityManager em, org.uddi.api_v3.BindingTemplate bindingTemplate,
+ org.uddi.api_v3.BusinessService parent, Configuration config)
throws DispositionReportFaultMessage {
// A supplied bindingTemplate can't be null
@@ -642,13 +678,13 @@
if (bindingTemplate.getAccessPoint() == null)
throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplate.NoAccessPoint"));
- validateCategoryBag(bindingTemplate.getCategoryBag());
+ validateCategoryBag(bindingTemplate.getCategoryBag(), config);
validateTModelInstanceDetails(bindingTemplate.getTModelInstanceDetails());
}
- public void validateTModel(EntityManager em, org.uddi.api_v3.TModel tModel) throws DispositionReportFaultMessage {
+ public void validateTModel(EntityManager em, org.uddi.api_v3.TModel tModel, Configuration config) throws DispositionReportFaultMessage {
// A supplied tModel can't be null
if (tModel == null)
throw new ValueNotAllowedException(new ErrorMessage("errors.tmodel.NullInput"));
@@ -682,7 +718,13 @@
ValidateUDDIKey.validateUDDIv3KeyGeneratorTModel(tModel);
// The root publisher is only allowed one key generator. This is published in the installation.
- if (publisher.getAuthorizedName().equals(Constants.ROOT_PUBLISHER))
+ String rootPublisherStr = "root";
+ try {
+ rootPublisherStr = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PUBLISHER);
+ } catch (ConfigurationException ce) {
+ log.error("Could not read the root publisher setting in the configuration.");
+ }
+ if (publisher.getAuthorizedName().equals(rootPublisherStr))
throw new FatalErrorException(new ErrorMessage("errors.tmodel.keygenerator.RootKeyGen"));
// It's a valid Key Generator, but is it available for this publisher?
@@ -710,8 +752,8 @@
if (tModel.getName() == null)
throw new ValueNotAllowedException(new ErrorMessage("errors.tmodel.NoName"));
- validateCategoryBag(tModel.getCategoryBag());
- validateIdentifierBag(tModel.getIdentifierBag());
+ validateCategoryBag(tModel.getCategoryBag(), config);
+ validateIdentifierBag(tModel.getIdentifierBag(), config);
List<org.uddi.api_v3.OverviewDoc> overviewDocList = tModel.getOverviewDoc();
if (overviewDocList != null) {
@@ -818,7 +860,7 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.discurls.NoInput"));
}
- public void validateCategoryBag(org.uddi.api_v3.CategoryBag categories) throws DispositionReportFaultMessage {
+ public void validateCategoryBag(org.uddi.api_v3.CategoryBag categories, Configuration config) throws DispositionReportFaultMessage {
// Category bag is optional
if (categories == null)
@@ -832,12 +874,12 @@
for (Object elem : elems) {
if (elem instanceof org.uddi.api_v3.KeyedReference) {
- validateKeyedReference((KeyedReference) elem);
+ validateKeyedReference((KeyedReference) elem, config);
}
}
}
- public void validateIdentifierBag(org.uddi.api_v3.IdentifierBag identifiers) throws DispositionReportFaultMessage {
+ public void validateIdentifierBag(org.uddi.api_v3.IdentifierBag identifiers, Configuration config) throws DispositionReportFaultMessage {
// Identifier bag is optional
if (identifiers == null)
@@ -849,7 +891,7 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.identifierbag.NoInput"));
for (org.uddi.api_v3.KeyedReference keyedRef : keyedRefList) {
- validateKeyedReference(keyedRef);
+ validateKeyedReference(keyedRef, config);
}
}
@@ -860,16 +902,17 @@
throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoTModelKey"));
}
- public void validateKeyedReference(KeyedReference kr) throws DispositionReportFaultMessage {
+ public void validateKeyedReference(KeyedReference kr, Configuration config) throws DispositionReportFaultMessage {
if (kr.getTModelKey() == null || kr.getTModelKey().length() == 0)
throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoTModelKey"));
if (kr.getKeyValue() == null || kr.getKeyValue().length() == 0)
throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoKeyValue"));
+ String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
// Per section 6.2.2.1 of the specification, no publishers (except the root) are allowed to use the node categorization tmodelKey
if (Constants.NODE_CATEGORY_TMODEL.equalsIgnoreCase(kr.getTModelKey())) {
- if (!Constants.ROOT_PUBLISHER.equals(publisher.getAuthorizedName()))
+ if (!rootPublisherStr.equals(publisher.getAuthorizedName()))
throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NodeCategoryTModel", Constants.NODE_CATEGORY_TMODEL));
}
}
Modified: webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_010_PublisherTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_010_PublisherTest.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_010_PublisherTest.java (original)
+++ webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_010_PublisherTest.java Thu Oct 1 16:34:10 2009
@@ -26,7 +26,8 @@
import org.apache.juddi.api_v3.Publisher;
import org.apache.juddi.api_v3.PublisherDetail;
import org.apache.juddi.api_v3.SavePublisher;
-import org.apache.juddi.config.Constants;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.Property;
import org.apache.juddi.error.InvalidKeyPassedException;
import org.apache.juddi.v3.tck.EntityCreator;
import org.apache.juddi.v3.tck.TckPublisher;
@@ -124,7 +125,8 @@
private void savePublisher(String publisherId, String publisherXML) {
try {
- authInfo = TckSecurity.getAuthToken(security, Constants.ROOT_PUBLISHER, "");
+ String rootPublisherStr = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PUBLISHER);
+ authInfo = TckSecurity.getAuthToken(security, rootPublisherStr, "");
logger.debug("Saving new publisher: " + publisherXML);
SavePublisher sp = new SavePublisher();
sp.setAuthInfo(authInfo);
@@ -169,7 +171,8 @@
private void deletePublisher(String publisherId) {
try {
- authInfo = TckSecurity.getAuthToken(security, Constants.ROOT_PUBLISHER, "");
+ String rootPublisherStr = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PUBLISHER);
+ authInfo = TckSecurity.getAuthToken(security, rootPublisherStr, "");
logger.debug("Delete publisher: " + publisherId);
//Now deleting this publisher
DeletePublisher dp = new DeletePublisher();
Modified: webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties (original)
+++ webservices/juddi/trunk/juddi-core/src/test/resources/juddiv3.properties Thu Oct 1 16:34:10 2009
@@ -10,6 +10,9 @@
# System parameters.
juddi.server.name=localhost
juddi.server.port=8080
+
+juddi.root.publisher=root
+juddi.publishers=UDDI
#
# Name of the persistence unit to use (the default, "juddiDatabase" refers to the unit compiled into the juddi library)
juddi.persistenceunit.name=juddiDatabase
Modified: webservices/juddi/trunk/juddi-cxf/src/main/webapp/WEB-INF/classes/juddiv3.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-cxf/src/main/webapp/WEB-INF/classes/juddiv3.properties?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-cxf/src/main/webapp/WEB-INF/classes/juddiv3.properties (original)
+++ webservices/juddi/trunk/juddi-cxf/src/main/webapp/WEB-INF/classes/juddiv3.properties Thu Oct 1 16:34:10 2009
@@ -6,6 +6,9 @@
# #
################################################################
#
+juddi.root.publisher=root
+juddi.publishers=UDDI
+#
# Name of the persistence unit to use (the default, "juddiDatabase" refers to the unit compiled into the juddi library)
juddi.persistenceunit.name=juddiDatabase
#
Modified: webservices/juddi/trunk/uddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/uddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/uddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java (original)
+++ webservices/juddi/trunk/uddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java Thu Oct 1 16:34:10 2009
@@ -192,12 +192,6 @@
}
public Map<String, UDDINode> getNodes() {
- try {
- getInstance();
- } catch (ConfigurationException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
return nodes;
}
public Map<String,UDDIClerk> getClerks() {
Modified: webservices/juddi/trunk/uddi-client/src/test/java/org/apache/juddi/v3/client/JUDDI_010_PublisherIntegrationTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/uddi-client/src/test/java/org/apache/juddi/v3/client/JUDDI_010_PublisherIntegrationTest.java?rev=820709&r1=820708&r2=820709&view=diff
==============================================================================
--- webservices/juddi/trunk/uddi-client/src/test/java/org/apache/juddi/v3/client/JUDDI_010_PublisherIntegrationTest.java (original)
+++ webservices/juddi/trunk/uddi-client/src/test/java/org/apache/juddi/v3/client/JUDDI_010_PublisherIntegrationTest.java Thu Oct 1 16:34:10 2009
@@ -29,7 +29,8 @@
import org.apache.juddi.api_v3.Publisher;
import org.apache.juddi.api_v3.PublisherDetail;
import org.apache.juddi.api_v3.SavePublisher;
-import org.apache.juddi.config.Constants;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.Property;
import org.apache.juddi.error.InvalidKeyPassedException;
import org.apache.juddi.v3.client.config.ClientConfig;
import org.apache.juddi.v3.client.transport.InVMTransport;
@@ -191,7 +192,8 @@
private void savePublisher(String publisherId, String publisherXML) {
try {
- authInfo = TckSecurity.getAuthToken(security, Constants.ROOT_PUBLISHER, "");
+ String rootPublisherStr = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PUBLISHER);
+ authInfo = TckSecurity.getAuthToken(security, rootPublisherStr, "");
logger.debug("Saving new publisher: " + publisherXML);
SavePublisher sp = new SavePublisher();
sp.setAuthInfo(authInfo);
@@ -236,7 +238,8 @@
private void deletePublisher(String publisherId) {
try {
- authInfo = TckSecurity.getAuthToken(security, Constants.ROOT_PUBLISHER, "");
+ String rootPublisherStr = AppConfig.getConfiguration().getString(Property.JUDDI_ROOT_PUBLISHER);
+ authInfo = TckSecurity.getAuthToken(security, rootPublisherStr, "");
logger.debug("Delete publisher: " + publisherId);
//Now deleting this publisher
DeletePublisher dp = new DeletePublisher();
---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org