You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2014/05/12 00:08:22 UTC

git commit: JUDDI-878 source code fix for on install issue on jboss 7

Repository: juddi
Updated Branches:
  refs/heads/master 8c61d91b7 -> 804cf1d50


JUDDI-878 source code fix for on install issue on jboss 7


Project: http://git-wip-us.apache.org/repos/asf/juddi/repo
Commit: http://git-wip-us.apache.org/repos/asf/juddi/commit/804cf1d5
Tree: http://git-wip-us.apache.org/repos/asf/juddi/tree/804cf1d5
Diff: http://git-wip-us.apache.org/repos/asf/juddi/diff/804cf1d5

Branch: refs/heads/master
Commit: 804cf1d501c20ced8f7a278089e50afd7f9c814d
Parents: 8c61d91
Author: alexoree <al...@apache.org>
Authored: Sun May 11 18:07:13 2014 -0400
Committer: alexoree <al...@apache.org>
Committed: Sun May 11 18:07:13 2014 -0400

----------------------------------------------------------------------
 .../java/org/apache/juddi/config/Install.java   | 1229 +++++++++---------
 1 file changed, 623 insertions(+), 606 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/juddi/blob/804cf1d5/juddi-core/src/main/java/org/apache/juddi/config/Install.java
----------------------------------------------------------------------
diff --git a/juddi-core/src/main/java/org/apache/juddi/config/Install.java b/juddi-core/src/main/java/org/apache/juddi/config/Install.java
index c9c8eb9..cd83040 100644
--- a/juddi-core/src/main/java/org/apache/juddi/config/Install.java
+++ b/juddi-core/src/main/java/org/apache/juddi/config/Install.java
@@ -14,7 +14,6 @@
  * limitations under the License.
  *
  */
-
 package org.apache.juddi.config;
 
 import java.io.File;
@@ -63,632 +62,650 @@ import org.uddi.v3_service.DispositionReportFaultMessage;
 
 /**
  * This class is called when jUDDI starts up
+ *
  * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
  * @author <a href="mailto:alexoree@apache.org">Alex O'Ree</a>
  * @see org.apache.juddi.servlets.RegistryServlet
  */
 public class Install {
 
-	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 final Log log = LogFactory.getLog(Install.class);
-
-	protected static void install(Configuration config) throws JAXBException, DispositionReportFaultMessage, IOException, ConfigurationException {
-				
-		EntityManager em = PersistenceManager.getEntityManager();
-		EntityTransaction tx = em.getTransaction();
-		
-		UddiEntityPublisher rootPublisher = null;
-		
-		try {
-			tx.begin();
-			boolean seedAlways = config.getBoolean("juddi.seed.always", false);
-			boolean alreadyInstalled = alreadyInstalled(config);
-			if (!seedAlways && alreadyInstalled)
-				throw new FatalErrorException(new ErrorMessage("errors.install.AlreadyInstalled"));
-			
-			
-			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);
+        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 final Log log = LogFactory.getLog(Install.class);
+
+        protected static void install(Configuration config) throws JAXBException, DispositionReportFaultMessage, IOException, ConfigurationException {
+
+                EntityManager em = PersistenceManager.getEntityManager();
+                EntityTransaction tx = em.getTransaction();
+
+                UddiEntityPublisher rootPublisher = null;
+
+                try {
+                        tx.begin();
+                        boolean seedAlways = config.getBoolean("juddi.seed.always", false);
+                        boolean alreadyInstalled = alreadyInstalled(config);
+                        if (!seedAlways && alreadyInstalled) {
+                                throw new FatalErrorException(new ErrorMessage("errors.install.AlreadyInstalled"));
+                        }
+
+                        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);
                         //JUDDI-645
-			String nodeId = config.getString(Property.JUDDI_NODE_ID,getNodeId(rootBusinessEntity.getBusinessKey(), rootPartition) );
-                                //getNodeId(rootBusinessEntity.getBusinessKey(), rootPartition);
-			String rootbizkey = getNodeId(rootBusinessEntity.getBusinessKey(), rootPartition);
-			String fileRootPublisher = rootPublisherStr + FILE_PUBLISHER;
-			if (!alreadyInstalled) {
-				log.info("Loading the root Publisher from file " + fileRootPublisher);
-			
-				rootPublisher = installPublisher(em, fileRootPublisher, config);
-				installRootPublisherKeyGen(em, rootTModelKeyGen, rootPartition, rootPublisher, nodeId);
-				rootBusinessEntity.setBusinessKey(rootbizkey);
-				installBusinessEntity(true, em, rootBusinessEntity, rootPublisher, rootPartition, config,nodeId);
-			} else {
-				log.debug("juddi.seed.always reapplies all seed files except for the root data.");
-			}
-			
-			List<String> juddiPublishers = getPublishers(config);
-			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,nodeId);
-					String fileTModels = publisherStr + FILE_TMODELS;
-					installSaveTModel(em, fileTModels, publisher, nodeId, config);
-				}
-			}
-			
-			tx.commit();
-		}
-		catch(DispositionReportFaultMessage dr) {
-			log .error(dr.getMessage(),dr);
-			tx.rollback();
-			throw dr;
-		} 
-		catch (JAXBException je) {
-			log .error(je.getMessage(),je);
-			tx.rollback();
-			throw je;
-		} 
-		catch (IOException ie) {
-			log .error(ie.getMessage(),ie);
-			tx.rollback();
-			throw ie;
-		} finally {
-			if (tx.isActive()) {
-				tx.rollback();
-			}
-			em.close();
-		}
-	}
-
-	protected static void uninstall() {
+                        String nodeId = config.getString(Property.JUDDI_NODE_ID, getNodeId(rootBusinessEntity.getBusinessKey(), rootPartition));
+                        //getNodeId(rootBusinessEntity.getBusinessKey(), rootPartition);
+                        String rootbizkey = getNodeId(rootBusinessEntity.getBusinessKey(), rootPartition);
+                        String fileRootPublisher = rootPublisherStr + FILE_PUBLISHER;
+                        if (!alreadyInstalled) {
+                                log.info("Loading the root Publisher from file " + fileRootPublisher);
+
+                                rootPublisher = installPublisher(em, fileRootPublisher, config);
+                                installRootPublisherKeyGen(em, rootTModelKeyGen, rootPartition, rootPublisher, nodeId);
+                                rootBusinessEntity.setBusinessKey(rootbizkey);
+                                installBusinessEntity(true, em, rootBusinessEntity, rootPublisher, rootPartition, config, nodeId);
+                        } else {
+                                log.debug("juddi.seed.always reapplies all seed files except for the root data.");
+                        }
+
+                        List<String> juddiPublishers = getPublishers(config);
+                        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, nodeId);
+                                        }
+                                        String fileTModels = publisherStr + FILE_TMODELS;
+                                        installSaveTModel(em, fileTModels, publisher, nodeId, config);
+                                }
+                        }
+
+                        tx.commit();
+                } catch (DispositionReportFaultMessage dr) {
+                        log.error(dr.getMessage(), dr);
+                        tx.rollback();
+                        throw dr;
+                } catch (JAXBException je) {
+                        log.error(je.getMessage(), je);
+                        tx.rollback();
+                        throw je;
+                } catch (IOException ie) {
+                        log.error(ie.getMessage(), ie);
+                        tx.rollback();
+                        throw ie;
+                } finally {
+                        if (tx.isActive()) {
+                                tx.rollback();
+                        }
+                        em.close();
+                }
+        }
+
+        protected static void uninstall() {
 		// Close the open emf, open a new one with Persistence.create...(String, Map) and overwrite the property that handles the table 
-		// generation. The persistence.xml file will have to be read in to determine which property
-		// to overwrite.  The property will be specific to the provider.  
-		// Hibernate:  <property name="hibernate.hbm2ddl.auto" value="update"/> ->use "create-drop" or just "drop"?
-		// OpenJPA: openjpa.jdbc.SynchronizeMappings=buildSchema(SchemaAction='add,deleteTableContents')
-		// etc...(find more)
-		// Then close this emf.  Question:  is the original emf reusable or will closing it cause problems?
-		
-	}
-	
-    /**
-     * Checks if there is a database with a root publisher. If it is not found
-     * an
-     * 
-     * @param config
-     * @return true if it finds a database with the root publisher in it.
-     * @throws ConfigurationException
-     */
-	protected static boolean alreadyInstalled(Configuration config) throws ConfigurationException {
-		
-		String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
+                // generation. The persistence.xml file will have to be read in to determine which property
+                // to overwrite.  The property will be specific to the provider.  
+                // Hibernate:  <property name="hibernate.hbm2ddl.auto" value="update"/> ->use "create-drop" or just "drop"?
+                // OpenJPA: openjpa.jdbc.SynchronizeMappings=buildSchema(SchemaAction='add,deleteTableContents')
+                // etc...(find more)
+                // Then close this emf.  Question:  is the original emf reusable or will closing it cause problems?
+
+        }
+
+        /**
+         * Checks if there is a database with a root publisher. If it is not
+         * found an
+         *
+         * @param config
+         * @return true if it finds a database with the root publisher in it.
+         * @throws ConfigurationException
+         */
+        protected static boolean alreadyInstalled(Configuration config) throws ConfigurationException {
+
+                String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
                 log.info("Checking if jUDDI is seeded by searching for root publisher " + rootPublisherStr);
-		org.apache.juddi.model.Publisher publisher = null;
-		int numberOfTries=0;
-		while (numberOfTries++ < 100) {
-			EntityManager em = PersistenceManager.getEntityManager();
-			EntityTransaction tx = em.getTransaction();
-			try {
-				tx.begin();
-				publisher = em.find(org.apache.juddi.model.Publisher.class, rootPublisherStr);
-				tx.commit();
-			} finally {
-				if (tx.isActive()) {
-					tx.rollback();
-				}
-				em.close();
-			}
-			if (publisher != null) return true;
-	
-			if (config.getBoolean(Property.JUDDI_LOAD_INSTALL_DATA,Property.DEFAULT_LOAD_INSTALL_DATA)) {
-				log.debug("Install data not yet installed.");
-				return false;
-			} else {
-				try {
-					log.info("Install data not yet installed.");
-					log.info("Going to sleep and retry...");
-					Thread.sleep(1000l);
-				} catch (InterruptedException e) {
-					log.error(e.getMessage(),e);
-				}
-			}
-		}
-		throw new ConfigurationException("Could not load the Root node data. Please check for errors.");
-	}
-	
-	protected static String getRootPartition(TModel rootTModelKeyGen) throws JAXBException, IOException, DispositionReportFaultMessage {
-		String result = rootTModelKeyGen.getTModelKey().substring(0, rootTModelKeyGen.getTModelKey().lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
-		
-		if (result == null || result.length() == 0)
-			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", result));
-		
+                org.apache.juddi.model.Publisher publisher = null;
+                int numberOfTries = 0;
+                while (numberOfTries++ < 100) {
+                        EntityManager em = PersistenceManager.getEntityManager();
+                        EntityTransaction tx = em.getTransaction();
+                        try {
+                                tx.begin();
+                                publisher = em.find(org.apache.juddi.model.Publisher.class, rootPublisherStr);
+                                tx.commit();
+                        } finally {
+                                if (tx.isActive()) {
+                                        tx.rollback();
+                                }
+                                em.close();
+                        }
+                        if (publisher != null) {
+                                return true;
+                        }
+
+                        if (config.getBoolean(Property.JUDDI_LOAD_INSTALL_DATA, Property.DEFAULT_LOAD_INSTALL_DATA)) {
+                                log.debug("Install data not yet installed.");
+                                return false;
+                        } else {
+                                try {
+                                        log.info("Install data not yet installed.");
+                                        log.info("Going to sleep and retry...");
+                                        Thread.sleep(1000l);
+                                } catch (InterruptedException e) {
+                                        log.error(e.getMessage(), e);
+                                }
+                        }
+                }
+                throw new ConfigurationException("Could not load the Root node data. Please check for errors.");
+        }
+
+        protected static String getRootPartition(TModel rootTModelKeyGen) throws JAXBException, IOException, DispositionReportFaultMessage {
+                String result = rootTModelKeyGen.getTModelKey().substring(0, rootTModelKeyGen.getTModelKey().lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+
+                if (result == null || result.length() == 0) {
+                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", result));
+                }
+
 		// Must validate the root partition.  The first component should be a domain key and the any following
-		// tokens should be a valid KSS.
-		result = result.trim();
-		if (result.endsWith(KeyGenerator.PARTITION_SEPARATOR) || result.startsWith(KeyGenerator.PARTITION_SEPARATOR))
-			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", result));
-		
-		StringTokenizer tokenizer = new StringTokenizer(result.toLowerCase(), KeyGenerator.PARTITION_SEPARATOR);
-		for(int count = 0; tokenizer.hasMoreTokens(); count++) {
-			String nextToken = tokenizer.nextToken();
-
-			if (count == 0) {
-				if(!ValidateUDDIKey.isValidDomainKey(nextToken))
-					throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", result));
-			}
-			else {
-				if (!ValidateUDDIKey.isValidKSS(nextToken))
-					throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", result));
-			}
-		}
-
-		return result;
-	}
-	
-	protected static String getNodeId(String userNodeId, String rootPartition) throws DispositionReportFaultMessage {
-
-		String result = userNodeId;
-		if (result == null || result.length() == 0) {
-			result = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
-		}
-		else {
-			ValidateUDDIKey.validateUDDIv3Key(result);
-			String keyPartition = result.substring(0, result.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
-			if (!rootPartition.equalsIgnoreCase(keyPartition))
-				throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", userNodeId));
-		}
-		return result;
-	}
-	
-	
-	
-	private static String installBusinessEntity(boolean isRoot, EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity, 
-			UddiEntityPublisher rootPublisher, String rootPartition, Configuration config ,String nodeId) 
-	throws JAXBException, DispositionReportFaultMessage, IOException {
-		
-		if (isRoot) validateRootBusinessEntity(rootBusinessEntity, rootPublisher, rootPartition, config);
-		
-		org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
-		MappingApiToModel.mapBusinessEntity(rootBusinessEntity, modelBusinessEntity);
-		
-		modelBusinessEntity.setAuthorizedName(rootPublisher.getAuthorizedName());
-		modelBusinessEntity.setNodeId(nodeId);
-		Date now = new Date();
-		modelBusinessEntity.setCreated(now);
-		modelBusinessEntity.setModified(now);
-		modelBusinessEntity.setModifiedIncludingChildren(now);
+                // tokens should be a valid KSS.
+                result = result.trim();
+                if (result.endsWith(KeyGenerator.PARTITION_SEPARATOR) || result.startsWith(KeyGenerator.PARTITION_SEPARATOR)) {
+                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", result));
+                }
+
+                StringTokenizer tokenizer = new StringTokenizer(result.toLowerCase(), KeyGenerator.PARTITION_SEPARATOR);
+                for (int count = 0; tokenizer.hasMoreTokens(); count++) {
+                        String nextToken = tokenizer.nextToken();
+
+                        if (count == 0) {
+                                if (!ValidateUDDIKey.isValidDomainKey(nextToken)) {
+                                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", result));
+                                }
+                        } else {
+                                if (!ValidateUDDIKey.isValidKSS(nextToken)) {
+                                        throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", result));
+                                }
+                        }
+                }
+
+                return result;
+        }
+
+        protected static String getNodeId(String userNodeId, String rootPartition) throws DispositionReportFaultMessage {
+
+                String result = userNodeId;
+                if (result == null || result.length() == 0) {
+                        result = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
+                } else {
+                        ValidateUDDIKey.validateUDDIv3Key(result);
+                        String keyPartition = result.substring(0, result.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+                        if (!rootPartition.equalsIgnoreCase(keyPartition)) {
+                                throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", userNodeId));
+                        }
+                }
+                return result;
+        }
+
+        private static String installBusinessEntity(boolean isRoot, EntityManager em, org.uddi.api_v3.BusinessEntity rootBusinessEntity,
+             UddiEntityPublisher rootPublisher, String rootPartition, Configuration config, String nodeId)
+             throws JAXBException, DispositionReportFaultMessage, IOException {
+
+                if (isRoot) {
+                        validateRootBusinessEntity(rootBusinessEntity, rootPublisher, rootPartition, config);
+                }
+
+                org.apache.juddi.model.BusinessEntity modelBusinessEntity = new org.apache.juddi.model.BusinessEntity();
+                MappingApiToModel.mapBusinessEntity(rootBusinessEntity, modelBusinessEntity);
+
+                modelBusinessEntity.setAuthorizedName(rootPublisher.getAuthorizedName());
+                modelBusinessEntity.setNodeId(nodeId);
+                Date now = new Date();
+                modelBusinessEntity.setCreated(now);
+                modelBusinessEntity.setModified(now);
+                modelBusinessEntity.setModifiedIncludingChildren(now);
                 //JUDDI-645
-		//modelBusinessEntity.setNodeId(modelBusinessEntity.getEntityKey());
-                modelBusinessEntity.setNodeId(config.getString(Property.JUDDI_NODE_ID,modelBusinessEntity.getEntityKey()));
-
-		
-		for (org.apache.juddi.model.BusinessService service : modelBusinessEntity.getBusinessServices()) {
-			service.setAuthorizedName(rootPublisher.getAuthorizedName());
-			service.setNodeId(nodeId);
-			service.setCreated(now);
-			service.setModified(now);
-			service.setModifiedIncludingChildren(now);
+                //modelBusinessEntity.setNodeId(modelBusinessEntity.getEntityKey());
+                modelBusinessEntity.setNodeId(config.getString(Property.JUDDI_NODE_ID, modelBusinessEntity.getEntityKey()));
+
+                for (org.apache.juddi.model.BusinessService service : modelBusinessEntity.getBusinessServices()) {
+                        service.setAuthorizedName(rootPublisher.getAuthorizedName());
+                        service.setNodeId(nodeId);
+                        service.setCreated(now);
+                        service.setModified(now);
+                        service.setModifiedIncludingChildren(now);
                         //JUDDI-645
                         //service.setNodeId(config.getString(Property.JUDDI_NODE_ID,modelBusinessEntity.getEntityKey()));
-			//service.setNodeId(modelBusinessEntity.getEntityKey());
-			
-			for (org.apache.juddi.model.BindingTemplate binding : service.getBindingTemplates()) {
-				binding.setAuthorizedName(rootPublisher.getAuthorizedName());
+                        //service.setNodeId(modelBusinessEntity.getEntityKey());
+
+                        for (org.apache.juddi.model.BindingTemplate binding : service.getBindingTemplates()) {
+                                binding.setAuthorizedName(rootPublisher.getAuthorizedName());
                                 binding.setNodeId(nodeId);
-				binding.setCreated(now);
-				binding.setModified(now);
-				binding.setModifiedIncludingChildren(now);
+                                binding.setCreated(now);
+                                binding.setModified(now);
+                                binding.setModifiedIncludingChildren(now);
 				//binding.setNodeId(modelBusinessEntity.getEntityKey());
                                 //binding.setNodeId(config.getString(Property.JUDDI_NODE_ID,modelBusinessEntity.getEntityKey()));
                                 //JUDDI-645
-                                
-			}
-		}
-		
-		
-		em.persist(modelBusinessEntity);
-		
-		return modelBusinessEntity.getEntityKey();
-
-	}
-	
-	
+
+                        }
+                }
+
+                em.persist(modelBusinessEntity);
+
+                return modelBusinessEntity.getEntityKey();
+
+        }
+
 	// 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, Configuration config)
-	throws DispositionReportFaultMessage {
-
-		// A supplied businessService can't be null
-		if (businessEntity == null)
-			throw new ValueNotAllowedException(new ErrorMessage("errors.businessentity.NullInput"));
-		
+        // jUDDI install.
+        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
+                if (businessEntity == null) {
+                        throw new ValueNotAllowedException(new ErrorMessage("errors.businessentity.NullInput"));
+                }
+
 		// The business key should already be set to the previously calculated and validated nodeId.  This validation is unnecessary but kept for 
-		// symmetry with the other entity validations.
-		String entityKey = businessEntity.getBusinessKey();
-		if (entityKey == null || entityKey.length() == 0) {
-			entityKey = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
-			businessEntity.setBusinessKey(entityKey);
-		}
-		else {
-			// Per section 4.4: keys must be case-folded
-			entityKey = entityKey.toLowerCase();
-			businessEntity.setBusinessKey(entityKey);
-			
-			ValidateUDDIKey.validateUDDIv3Key(entityKey);
-			String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
-			if (!rootPartition.equalsIgnoreCase(keyPartition))
-				throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
-		}
-
-		ValidatePublish validatePublish = new ValidatePublish(rootPublisher, config.getString(Property.JUDDI_NODE_ID));
-		
-		validatePublish.validateNames(businessEntity.getName());
-		validatePublish.validateDiscoveryUrls(businessEntity.getDiscoveryURLs());
-		validatePublish.validateContacts(businessEntity.getContacts(),config);
-		validatePublish.validateCategoryBag(businessEntity.getCategoryBag(),config, true);
-		validatePublish.validateIdentifierBag(businessEntity.getIdentifierBag(),config, true);
-
-		org.uddi.api_v3.BusinessServices businessServices = businessEntity.getBusinessServices();
-		if (businessServices != null) {
-			List<org.uddi.api_v3.BusinessService> businessServiceList = businessServices.getBusinessService();
-			if (businessServiceList == null || businessServiceList.size() == 0)
-				throw new ValueNotAllowedException(new ErrorMessage("errors.businessservices.NoInput"));
-			
-			for (org.uddi.api_v3.BusinessService businessService : businessServiceList) {
-				validateRootBusinessService(businessService, businessEntity, rootPublisher, rootPartition, config);
-			}
-		}
-
-	}
-	
+                // symmetry with the other entity validations.
+                String entityKey = businessEntity.getBusinessKey();
+                if (entityKey == null || entityKey.length() == 0) {
+                        entityKey = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
+                        businessEntity.setBusinessKey(entityKey);
+                } else {
+                        // Per section 4.4: keys must be case-folded
+                        entityKey = entityKey.toLowerCase();
+                        businessEntity.setBusinessKey(entityKey);
+
+                        ValidateUDDIKey.validateUDDIv3Key(entityKey);
+                        String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+                        if (!rootPartition.equalsIgnoreCase(keyPartition)) {
+                                throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
+                        }
+                }
+
+                ValidatePublish validatePublish = new ValidatePublish(rootPublisher, config.getString(Property.JUDDI_NODE_ID));
+
+                validatePublish.validateNames(businessEntity.getName());
+                validatePublish.validateDiscoveryUrls(businessEntity.getDiscoveryURLs());
+                validatePublish.validateContacts(businessEntity.getContacts(), config);
+                validatePublish.validateCategoryBag(businessEntity.getCategoryBag(), config, true);
+                validatePublish.validateIdentifierBag(businessEntity.getIdentifierBag(), config, true);
+
+                org.uddi.api_v3.BusinessServices businessServices = businessEntity.getBusinessServices();
+                if (businessServices != null) {
+                        List<org.uddi.api_v3.BusinessService> businessServiceList = businessServices.getBusinessService();
+                        if (businessServiceList == null || businessServiceList.size() == 0) {
+                                throw new ValueNotAllowedException(new ErrorMessage("errors.businessservices.NoInput"));
+                        }
+
+                        for (org.uddi.api_v3.BusinessService businessService : businessServiceList) {
+                                validateRootBusinessService(businessService, businessEntity, rootPublisher, rootPartition, config);
+                        }
+                }
+
+        }
+
 	// 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, Configuration config)
-	throws DispositionReportFaultMessage {
-
-		// A supplied businessService can't be null
-		if (businessService == null)
-			throw new ValueNotAllowedException(new ErrorMessage("errors.businessservice.NullInput"));
-	
-		// A business key doesn't have to be provided, but if it is, it should match the parent business's key
-		String parentKey = businessService.getBusinessKey();
-		if (parentKey != null && parentKey.length()> 0) {
-			if (!parentKey.equalsIgnoreCase(parent.getBusinessKey()))
-				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ParentBusinessNotFound", parentKey + " " + businessService.getBusinessKey() + " " + businessService.getBusinessKey().length() + " " + parentKey.length()));
-		}
-		
-		// Retrieve the service's passed key
-		String entityKey = businessService.getServiceKey();
-		if (entityKey == null || entityKey.length() == 0) {
-			entityKey = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
-			businessService.setServiceKey(entityKey);
-		}
-		else {
-			// Per section 4.4: keys must be case-folded
-			entityKey = entityKey.toLowerCase();
-			businessService.setServiceKey(entityKey);
-			
-			ValidateUDDIKey.validateUDDIv3Key(entityKey);
-			String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
-			if (!rootPartition.equalsIgnoreCase(keyPartition))
-				throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
-		}
-		
-		ValidatePublish validatePublish = new ValidatePublish(rootPublisher, config.getString(Property.JUDDI_NODE_ID));
-		
-		validatePublish.validateNames(businessService.getName());
-		validatePublish.validateCategoryBag(businessService.getCategoryBag(), config,true);
-
-		org.uddi.api_v3.BindingTemplates bindingTemplates = businessService.getBindingTemplates();
-		if (bindingTemplates != null) {
-			List<org.uddi.api_v3.BindingTemplate> bindingTemplateList = bindingTemplates.getBindingTemplate();
-			if (bindingTemplateList == null || bindingTemplateList.size() == 0)
-				throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplates.NoInput"));
-			
-			for (org.uddi.api_v3.BindingTemplate bindingTemplate : bindingTemplateList) {
-				validateRootBindingTemplate(bindingTemplate, businessService, rootPublisher, rootPartition, config);
-			}
-		}
-	}
+        // jUDDI install.
+        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
+                if (businessService == null) {
+                        throw new ValueNotAllowedException(new ErrorMessage("errors.businessservice.NullInput"));
+                }
+
+                // A business key doesn't have to be provided, but if it is, it should match the parent business's key
+                String parentKey = businessService.getBusinessKey();
+                if (parentKey != null && parentKey.length() > 0) {
+                        if (!parentKey.equalsIgnoreCase(parent.getBusinessKey())) {
+                                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ParentBusinessNotFound", parentKey + " " + businessService.getBusinessKey() + " " + businessService.getBusinessKey().length() + " " + parentKey.length()));
+                        }
+                }
+
+                // Retrieve the service's passed key
+                String entityKey = businessService.getServiceKey();
+                if (entityKey == null || entityKey.length() == 0) {
+                        entityKey = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
+                        businessService.setServiceKey(entityKey);
+                } else {
+                        // Per section 4.4: keys must be case-folded
+                        entityKey = entityKey.toLowerCase();
+                        businessService.setServiceKey(entityKey);
+
+                        ValidateUDDIKey.validateUDDIv3Key(entityKey);
+                        String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+                        if (!rootPartition.equalsIgnoreCase(keyPartition)) {
+                                throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
+                        }
+                }
+
+                ValidatePublish validatePublish = new ValidatePublish(rootPublisher, config.getString(Property.JUDDI_NODE_ID));
+
+                validatePublish.validateNames(businessService.getName());
+                validatePublish.validateCategoryBag(businessService.getCategoryBag(), config, true);
+
+                org.uddi.api_v3.BindingTemplates bindingTemplates = businessService.getBindingTemplates();
+                if (bindingTemplates != null) {
+                        List<org.uddi.api_v3.BindingTemplate> bindingTemplateList = bindingTemplates.getBindingTemplate();
+                        if (bindingTemplateList == null || bindingTemplateList.size() == 0) {
+                                throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplates.NoInput"));
+                        }
+
+                        for (org.uddi.api_v3.BindingTemplate bindingTemplate : bindingTemplateList) {
+                                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, Configuration config) 
-	throws DispositionReportFaultMessage {
-
-		// A supplied businessService can't be null
-		if (bindingTemplate == null)
-			throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplate.NullInput"));
-	
-		// A service key doesn't have to be provided, but if it is, it should match the parent service's key
-		String parentKey = bindingTemplate.getServiceKey();
-		if (parentKey != null && parentKey.length()> 0) {
-			if (!parentKey.equalsIgnoreCase(parent.getServiceKey()))
-				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ParentServiceNotFound", parentKey));
-		}
-		
-		// Retrieve the service's passed key
-		String entityKey = bindingTemplate.getBindingKey();
-		if (entityKey == null || entityKey.length() == 0) {
-			entityKey = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
-			bindingTemplate.setBindingKey(entityKey);
-		}
-		else {
-			// Per section 4.4: keys must be case-folded
-			entityKey = entityKey.toLowerCase();
-			bindingTemplate.setBindingKey(entityKey);
-
-			ValidateUDDIKey.validateUDDIv3Key(entityKey);
-			String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
-			if (!rootPartition.equalsIgnoreCase(keyPartition))
-				throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
-		}
-		
-		ValidatePublish validatePublish = new ValidatePublish(rootPublisher, config.getString(Property.JUDDI_NODE_ID));
-		
-		validatePublish.validateCategoryBag(bindingTemplate.getCategoryBag(), config,true);
-		validatePublish.validateTModelInstanceDetails(bindingTemplate.getTModelInstanceDetails(),config,true);
-
-	}
-	
-	
-	
-	
-	private static void installTModels(EntityManager em, List<org.uddi.api_v3.TModel> apiTModelList, UddiEntityPublisher publisher, String nodeId) throws DispositionReportFaultMessage {
-		if (apiTModelList != null) {
-			for (org.uddi.api_v3.TModel apiTModel : apiTModelList) {
-				String tModelKey = apiTModel.getTModelKey();
-
-				if (tModelKey.toUpperCase().endsWith(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase())) {
-					installPublisherKeyGen(em, apiTModel, publisher, nodeId);
-				}
-				else {
-					org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
-					apiTModel.setTModelKey(apiTModel.getTModelKey().toLowerCase());
-					
-					MappingApiToModel.mapTModel(apiTModel, modelTModel);
-
-					modelTModel.setAuthorizedName(publisher.getAuthorizedName());
-					
-					Date now = new Date();
-					modelTModel.setCreated(now);
-					modelTModel.setModified(now);
-					modelTModel.setModifiedIncludingChildren(now);
-					modelTModel.setNodeId(nodeId);
-					
-					em.persist(modelTModel);
-				}
-				
-			}
-		}
-		
-	}
-
-	private static void installRootPublisherKeyGen(EntityManager em, TModel rootTModelKeyGen, String rootPartition, UddiEntityPublisher publisher, String nodeId) 
-		throws DispositionReportFaultMessage {
-		
-		rootTModelKeyGen.setTModelKey(rootPartition + KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX);
-		
-		installPublisherKeyGen(em, rootTModelKeyGen, publisher, nodeId);
-	}
-
-	private static void installPublisherKeyGen(EntityManager em, TModel apiTModel, UddiEntityPublisher publisher, String nodeId) throws DispositionReportFaultMessage {
-
-		org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
-		MappingApiToModel.mapTModel(apiTModel, modelTModel);
-		
-		modelTModel.setAuthorizedName(publisher.getAuthorizedName());
-
-		Date now = new Date();
-		modelTModel.setCreated(now);
-		modelTModel.setModified(now);
-		modelTModel.setModifiedIncludingChildren(now);
-		modelTModel.setNodeId(nodeId);
-		
-		em.persist(modelTModel);
-		
-	}
-	
-	private static List<String> getPublishers(Configuration config) throws ConfigurationException {
-		List<String> publishers = new ArrayList<String>();
-		String basePath = JUDDI_CUSTOM_INSTALL_DATA_DIR;
-		URL url = ClassUtil.getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR, Install.class);
-		if (url==null) {
-			url = ClassUtil.getResource(JUDDI_INSTALL_DATA_DIR, Install.class);
-			basePath = JUDDI_INSTALL_DATA_DIR;
-		}
-		
-		String path = null;
-		
-		try {
-			path = url.toURI().getSchemeSpecificPart();
-		} catch (URISyntaxException e) {
-			throw new ConfigurationException(e);
-		}
-		
-		
-		File dir = new File(path);
-		String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
-		if (dir.exists()) {
-			log.debug("Discovering the Publisher XML data files in directory: " + path);
-			File[] files = dir.listFiles(new PublisherFileFilter());
-		    for (File f : files)
-		    {	
-		        String publisher = f.getName().substring(0,f.getName().indexOf(FILE_PUBLISHER));
-		        if (! rootPublisherStr.equalsIgnoreCase(publisher)) {
-		        	publishers.add(publisher);
-		        } 
-		    }
-		} else {
-			String[] paths = {};
-			Enumeration<JarEntry> en = null;
+        // jUDDI install.
+        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
+                if (bindingTemplate == null) {
+                        throw new ValueNotAllowedException(new ErrorMessage("errors.bindingtemplate.NullInput"));
+                }
+
+                // A service key doesn't have to be provided, but if it is, it should match the parent service's key
+                String parentKey = bindingTemplate.getServiceKey();
+                if (parentKey != null && parentKey.length() > 0) {
+                        if (!parentKey.equalsIgnoreCase(parent.getServiceKey())) {
+                                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.ParentServiceNotFound", parentKey));
+                        }
+                }
+
+                // Retrieve the service's passed key
+                String entityKey = bindingTemplate.getBindingKey();
+                if (entityKey == null || entityKey.length() == 0) {
+                        entityKey = rootPartition + KeyGenerator.PARTITION_SEPARATOR + UUID.randomUUID();
+                        bindingTemplate.setBindingKey(entityKey);
+                } else {
+                        // Per section 4.4: keys must be case-folded
+                        entityKey = entityKey.toLowerCase();
+                        bindingTemplate.setBindingKey(entityKey);
+
+                        ValidateUDDIKey.validateUDDIv3Key(entityKey);
+                        String keyPartition = entityKey.substring(0, entityKey.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
+                        if (!rootPartition.equalsIgnoreCase(keyPartition)) {
+                                throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
+                        }
+                }
+
+                ValidatePublish validatePublish = new ValidatePublish(rootPublisher, config.getString(Property.JUDDI_NODE_ID));
+
+                validatePublish.validateCategoryBag(bindingTemplate.getCategoryBag(), config, true);
+                validatePublish.validateTModelInstanceDetails(bindingTemplate.getTModelInstanceDetails(), config, true);
+
+        }
+
+        private static void installTModels(EntityManager em, List<org.uddi.api_v3.TModel> apiTModelList, UddiEntityPublisher publisher, String nodeId) throws DispositionReportFaultMessage {
+                if (apiTModelList != null) {
+                        for (org.uddi.api_v3.TModel apiTModel : apiTModelList) {
+                                String tModelKey = apiTModel.getTModelKey();
+
+                                if (tModelKey.toUpperCase().endsWith(KeyGenerator.KEYGENERATOR_SUFFIX.toUpperCase())) {
+                                        installPublisherKeyGen(em, apiTModel, publisher, nodeId);
+                                } else {
+                                        org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
+                                        apiTModel.setTModelKey(apiTModel.getTModelKey().toLowerCase());
+
+                                        MappingApiToModel.mapTModel(apiTModel, modelTModel);
+
+                                        modelTModel.setAuthorizedName(publisher.getAuthorizedName());
+
+                                        Date now = new Date();
+                                        modelTModel.setCreated(now);
+                                        modelTModel.setModified(now);
+                                        modelTModel.setModifiedIncludingChildren(now);
+                                        modelTModel.setNodeId(nodeId);
+
+                                        em.persist(modelTModel);
+                                }
+
+                        }
+                }
+
+        }
+
+        private static void installRootPublisherKeyGen(EntityManager em, TModel rootTModelKeyGen, String rootPartition, UddiEntityPublisher publisher, String nodeId)
+             throws DispositionReportFaultMessage {
+
+                rootTModelKeyGen.setTModelKey(rootPartition + KeyGenerator.PARTITION_SEPARATOR + KeyGenerator.KEYGENERATOR_SUFFIX);
+
+                installPublisherKeyGen(em, rootTModelKeyGen, publisher, nodeId);
+        }
+
+        private static void installPublisherKeyGen(EntityManager em, TModel apiTModel, UddiEntityPublisher publisher, String nodeId) throws DispositionReportFaultMessage {
+
+                org.apache.juddi.model.Tmodel modelTModel = new org.apache.juddi.model.Tmodel();
+                MappingApiToModel.mapTModel(apiTModel, modelTModel);
+
+                modelTModel.setAuthorizedName(publisher.getAuthorizedName());
+
+                Date now = new Date();
+                modelTModel.setCreated(now);
+                modelTModel.setModified(now);
+                modelTModel.setModifiedIncludingChildren(now);
+                modelTModel.setNodeId(nodeId);
+
+                em.persist(modelTModel);
+
+        }
+
+        private static List<String> getPublishers(Configuration config) throws ConfigurationException {
+                List<String> publishers = new ArrayList<String>();
+                String basePath = JUDDI_CUSTOM_INSTALL_DATA_DIR;
+                URL url = ClassUtil.getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR, Install.class);
+                if (url == null) {
+                        url = ClassUtil.getResource(JUDDI_INSTALL_DATA_DIR, Install.class);
+                        basePath = JUDDI_INSTALL_DATA_DIR;
+                }
+
+                String path = null;
+
+                try {
+                        path = url.toURI().getSchemeSpecificPart();
+                } catch (URISyntaxException e) {
+                        throw new ConfigurationException(e);
+                }
+
+                File dir = new File(path);
+                String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
+                if (dir.exists()) {
+                        log.debug("Discovering the Publisher XML data files in directory: " + path);
+                        File[] files = dir.listFiles(new PublisherFileFilter());
+                        for (File f : files) {
+                                String publisher = f.getName().substring(0, f.getName().indexOf(FILE_PUBLISHER));
+                                if (!rootPublisherStr.equalsIgnoreCase(publisher)) {
+                                        publishers.add(publisher);
+                                }
+                        }
+                } else {
+                        String[] paths = {};
+                        Enumeration<JarEntry> en = null;
                         JarFile jf = null;
-			try {
-
-				if (path.indexOf("!") > 0) {
-					paths = path.split("!");
-                                        jf=new JarFile(new File(new URI(paths[0])));
-					en = jf.entries();
-				} else {
-					// Handle Windows / jboss-5.1.0 case
-					if (path.indexOf(".jar") > 0) {
-						paths = path.split(".jar");
-						paths[0] = paths[0] + ".jar";
-                                                jf= new JarFile(new File(paths[0]));
-						en = jf.entries();
-					}
-				}
-				if (paths.length > 0) {
-					log.debug("Discovering the Publisher XML data files in jar: " + paths[0]);
-					while (en!=null && en.hasMoreElements()) {
-						String name = en.nextElement().getName();
-						if (name.endsWith(FILE_PUBLISHER)) {
-							log.debug("Found publisher file=" + name);
-							String publisher = name.substring(basePath.length(),name.indexOf(FILE_PUBLISHER));
-					        if (! rootPublisherStr.equalsIgnoreCase(publisher)) {
-					        	publishers.add(publisher);
-					        } 
-						}
-					}
-				} else {
-					log.info("No custom configuration files where found in " + path);
-				}
-                                if (jf!=null)
-                                    jf.close();
-                                
-			} catch (IOException e) {
-				throw new ConfigurationException(e);
-			} catch (URISyntaxException e) {
-				throw new ConfigurationException(e);
-			}
-		}
-		return publishers;
-	}
-	
-	private static Object buildInstallEntity(final String fileName, String packageName, Configuration config) throws JAXBException, IOException, ConfigurationException {
-		InputStream resourceStream = null;
-		
-		// First try the custom install directory
-		URL url = ClassUtil.getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR + fileName, Install.class);
-		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 = ClassUtil.getResource(JUDDI_INSTALL_DATA_DIR + fileName, Install.class);
-			if (url != null) { 
-				resourceStream = url.openStream();
-			}
-			// If file still does not exist then return null;
-			if (url ==null || resourceStream == null) {
-				if (fileName.endsWith(FILE_PUBLISHER)) {
-					throw new ConfigurationException("Could not locate " + JUDDI_INSTALL_DATA_DIR + fileName);
-				} else {
-					log.debug("Could not locate: " + url);
-				}
-				return null;
-			}
-		}
-		log.info("Loading the content of file: " + url);
-		StringBuilder xml = new StringBuilder();
-	    byte[] b = new byte[4096];
-	    for (int n; (n = resourceStream.read(b)) != -1;) {
-	    	xml.append(new String(b, 0, n));
-	    }
-	    log.debug("inserting: " + xml.toString());
-	    StringReader reader = new StringReader(xml.toString());
-		
-		JAXBContext jc = JAXBContext.newInstance(packageName);
-		Unmarshaller unmarshaller = jc.createUnmarshaller();
-		Object obj = ((JAXBElement<?>)unmarshaller.unmarshal(new StreamSource(reader))).getValue();
-		return obj;
-	}
-
-	/**
-	 * Public convenience method that allows one to retrieve the node business entity (perhaps to display during an install process, or even to
-	 * initiate the install process).
-	 * 
-	 * @param businessKey
-	 * @return BusinessEntity Object
-	 * @throws DispositionReportFaultMessage
-	 */
-	public static org.uddi.api_v3.BusinessEntity getNodeBusinessEntity(String businessKey) throws DispositionReportFaultMessage {
-		UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
-		
-		org.uddi.api_v3.GetBusinessDetail gbd = new org.uddi.api_v3.GetBusinessDetail();
-		gbd.getBusinessKey().add(businessKey);
-		
-		org.uddi.api_v3.BusinessDetail bd = inquiry.getBusinessDetail(gbd);
-		if (bd != null) {
-			List<org.uddi.api_v3.BusinessEntity> beList = bd.getBusinessEntity();
-			if (beList != null && beList.size() > 0)
-				return beList.get(0);
-		}
-
-		return new org.uddi.api_v3.BusinessEntity();
-	}
-	
-	/**
-	 * Public convenience method that allows one to install additional TModels via a SaveTModel structure.
-	 * 
-	 * @param em - the entity manager to a juddi model
-	 * @param fileName - name of SaveTModel xml file
-	 * @param publisher - the publisher structure that owns the tModels
-	 * @param nodeId - the node id of the custodial node
-	 * @throws JAXBException
-	 * @throws DispositionReportFaultMessage
-	 * @throws IOException
-	 * @throws ConfigurationException 
-	 */
-	public static void installSaveTModel(EntityManager em, String fileName, UddiEntityPublisher publisher, String nodeId, Configuration config) 
-		throws JAXBException, DispositionReportFaultMessage, IOException, ConfigurationException {
-
-		SaveTModel apiSaveTModel = (SaveTModel)buildInstallEntity(fileName, "org.uddi.api_v3", config);
-		if (apiSaveTModel!=null) installTModels(em, apiSaveTModel.getTModel(), publisher, nodeId);
-	}
-
-	/**
-	 * Public convenience method that allows one to install additional Publishers via a Publisher structure.
-	 * 
-	 * @param em - the entity manager to the juddi model
-	 * @param fileName - name of Publisher xml file
-	 * @return UddiEntityPublisher object, can be any UDDIEntity
-	 * @throws JAXBException
-	 * @throws DispositionReportFaultMessage
-	 * @throws IOException
-	 * @throws ConfigurationException 
-	 */
-	public static UddiEntityPublisher installPublisher(EntityManager em, String fileName, Configuration config) 
-		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);
-		return modelPub;
-	}
-	
-	
+                        try {
+
+                                if (path.indexOf("!") > 0) {
+                                        paths = path.split("!");
+                                        jf = new JarFile(new File(new URI(paths[0])));
+                                        en = jf.entries();
+                                } else {
+                                        // Handle Windows / jboss-5.1.0 case
+                                        if (path.indexOf(".jar") > 0) {
+                                                paths = path.split(".jar");
+                                                paths[0] = paths[0] + ".jar";
+                                                File temp = new File(paths[0]);
+                                                if (temp.exists()) {
+                                                        jf = new JarFile(temp);
+                                                        en = jf.entries();
+                                                }
+                                        }
+                                }
+                                if (paths.length > 0) {
+                                        log.debug("Discovering the Publisher XML data files in jar: " + paths[0]);
+                                        while (en != null && en.hasMoreElements()) {
+                                                String name = en.nextElement().getName();
+                                                if (name.endsWith(FILE_PUBLISHER)) {
+                                                        log.debug("Found publisher file=" + name);
+                                                        String publisher = name.substring(basePath.length(), name.indexOf(FILE_PUBLISHER));
+                                                        if (!rootPublisherStr.equalsIgnoreCase(publisher)) {
+                                                                publishers.add(publisher);
+                                                        }
+                                                }
+                                        }
+                                } else {
+                                        log.info("No custom configuration files where found in " + path);
+                                }
+                                if (jf != null) {
+                                        jf.close();
+                                }
+
+                        } catch (IOException e) {
+                                throw new ConfigurationException(e);
+                        } catch (URISyntaxException e) {
+                                throw new ConfigurationException(e);
+                        }
+                }
+                return publishers;
+        }
+
+        private static Object buildInstallEntity(final String fileName, String packageName, Configuration config) throws JAXBException, IOException, ConfigurationException {
+                InputStream resourceStream = null;
+
+                // First try the custom install directory
+                URL url = ClassUtil.getResource(JUDDI_CUSTOM_INSTALL_DATA_DIR + fileName, Install.class);
+                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 = ClassUtil.getResource(JUDDI_INSTALL_DATA_DIR + fileName, Install.class);
+                        if (url != null) {
+                                resourceStream = url.openStream();
+                        }
+                        // If file still does not exist then return null;
+                        if (url == null || resourceStream == null) {
+                                if (fileName.endsWith(FILE_PUBLISHER)) {
+                                        throw new ConfigurationException("Could not locate " + JUDDI_INSTALL_DATA_DIR + fileName);
+                                } else {
+                                        log.debug("Could not locate: " + url);
+                                }
+                                return null;
+                        }
+                }
+                log.info("Loading the content of file: " + url);
+                StringBuilder xml = new StringBuilder();
+                byte[] b = new byte[4096];
+                for (int n; (n = resourceStream.read(b)) != -1;) {
+                        xml.append(new String(b, 0, n));
+                }
+                log.debug("inserting: " + xml.toString());
+                StringReader reader = new StringReader(xml.toString());
+
+                JAXBContext jc = JAXBContext.newInstance(packageName);
+                Unmarshaller unmarshaller = jc.createUnmarshaller();
+                Object obj = ((JAXBElement<?>) unmarshaller.unmarshal(new StreamSource(reader))).getValue();
+                return obj;
+        }
+
+        /**
+         * Public convenience method that allows one to retrieve the node
+         * business entity (perhaps to display during an install process, or
+         * even to initiate the install process).
+         *
+         * @param businessKey
+         * @return BusinessEntity Object
+         * @throws DispositionReportFaultMessage
+         */
+        public static org.uddi.api_v3.BusinessEntity getNodeBusinessEntity(String businessKey) throws DispositionReportFaultMessage {
+                UDDIInquiryImpl inquiry = new UDDIInquiryImpl();
+
+                org.uddi.api_v3.GetBusinessDetail gbd = new org.uddi.api_v3.GetBusinessDetail();
+                gbd.getBusinessKey().add(businessKey);
+
+                org.uddi.api_v3.BusinessDetail bd = inquiry.getBusinessDetail(gbd);
+                if (bd != null) {
+                        List<org.uddi.api_v3.BusinessEntity> beList = bd.getBusinessEntity();
+                        if (beList != null && beList.size() > 0) {
+                                return beList.get(0);
+                        }
+                }
+
+                return new org.uddi.api_v3.BusinessEntity();
+        }
+
+        /**
+         * Public convenience method that allows one to install additional
+         * TModels via a SaveTModel structure.
+         *
+         * @param em - the entity manager to a juddi model
+         * @param fileName - name of SaveTModel xml file
+         * @param publisher - the publisher structure that owns the tModels
+         * @param nodeId - the node id of the custodial node
+         * @throws JAXBException
+         * @throws DispositionReportFaultMessage
+         * @throws IOException
+         * @throws ConfigurationException
+         */
+        public static void installSaveTModel(EntityManager em, String fileName, UddiEntityPublisher publisher, String nodeId, Configuration config)
+             throws JAXBException, DispositionReportFaultMessage, IOException, ConfigurationException {
+
+                SaveTModel apiSaveTModel = (SaveTModel) buildInstallEntity(fileName, "org.uddi.api_v3", config);
+                if (apiSaveTModel != null) {
+                        installTModels(em, apiSaveTModel.getTModel(), publisher, nodeId);
+                }
+        }
+
+        /**
+         * Public convenience method that allows one to install additional
+         * Publishers via a Publisher structure.
+         *
+         * @param em - the entity manager to the juddi model
+         * @param fileName - name of Publisher xml file
+         * @return UddiEntityPublisher object, can be any UDDIEntity
+         * @throws JAXBException
+         * @throws DispositionReportFaultMessage
+         * @throws IOException
+         * @throws ConfigurationException
+         */
+        public static UddiEntityPublisher installPublisher(EntityManager em, String fileName, Configuration config)
+             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);
+                return modelPub;
+        }
+
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org