[exo-jcr-commits] exo-jcr SVN: r4594 - jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jul 5 05:11:59 EDT 2011


Author: tolusha
Date: 2011-07-05 05:11:58 -0400 (Tue, 05 Jul 2011)
New Revision: 4594

Modified:
   jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java
Log:
EXOJCR-1423: Remove reference from InitialContextBinder

Modified: jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java	2011-07-05 09:11:22 UTC (rev 4593)
+++ jcr/trunk/exo.jcr.component.ext/src/main/java/org/exoplatform/services/jcr/ext/repository/creation/RepositoryCreationServiceImpl.java	2011-07-05 09:11:58 UTC (rev 4594)
@@ -779,8 +779,11 @@
    {
       try
       {
+         // extract list of all datasources
+         ManageableRepository repositorty = repositoryService.getRepository(repositoryName);
+         Set<String> datasources = extractDataSourceNames(repositorty.getConfiguration(), false);
+
          // close all opened sessions
-         ManageableRepository repositorty = repositoryService.getRepository(repositoryName);
          for (String workspaceName : repositorty.getWorkspaceNames())
          {
             WorkspaceContainerFacade wc = repositorty.getWorkspaceContainer(workspaceName);
@@ -792,6 +795,12 @@
          // remove repository from configuration
          repositoryService.removeRepository(repositoryName);
          repositoryService.getConfig().retain();
+         
+         // unbind datasource
+         for (String ds : datasources)
+         {
+            initialContextInitializer.getInitialContextBinder().unbind(ds);
+         }
       }
       catch (RepositoryException e)
       {
@@ -801,6 +810,18 @@
       {
          throw new RepositoryCreationException("Can't remove repository", e);
       }
+      catch (FileNotFoundException e)
+      {
+         throw new RepositoryCreationException("Can't remove repository", e);
+      }
+      catch (NamingException e)
+      {
+         throw new RepositoryCreationException("Can't remove repository", e);
+      }
+      catch (XMLStreamException e)
+      {
+         throw new RepositoryCreationException("Can't remove repository", e);
+      }
    }
 
    private DBCreator getDBCreator(DBCreationProperties creationProps) throws ConfigurationException



More information about the exo-jcr-commits mailing list