Index: jcr-mapping/src/test/java/org/apache/jackrabbit/ocm/repository/RepositoryUtil.java
===================================================================
--- jcr-mapping/src/test/java/org/apache/jackrabbit/ocm/repository/RepositoryUtil.java (revision 595354)
+++ jcr-mapping/src/test/java/org/apache/jackrabbit/ocm/repository/RepositoryUtil.java (revision 595354)
@@ -1,227 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.jackrabbit.ocm.repository;
-
-import java.util.Hashtable;
-
-import javax.jcr.Repository;
-import javax.jcr.Session;
-import javax.jcr.SimpleCredentials;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.jackrabbit.core.jndi.RegistryHelper;
-import org.apache.jackrabbit.ocm.exception.JcrMappingException;
-import org.apache.jackrabbit.ocm.exception.ObjectContentManagerException;
-import org.apache.jackrabbit.ocm.exception.RepositoryException;
-import org.apache.jackrabbit.util.ISO9075;
-import org.apache.jackrabbit.util.Text;
-
-/**
-* Utility class for managing JCR repositories.
-* Note: most of the utility methods in this class can be used only with Jackrabbit.
-*
-* @author Lombart Christophe
-* @version $Id: Exp $
-*/
-public class RepositoryUtil
-{
-
- /** namespace prefix constant */
- public static final String OCM_NAMESPACE_PREFIX = "ocm";
-
- /** namespace constant */
- public static final String OCM_NAMESPACE = "http://jackrabbit.apache.org/ocm";
-
- /** Item path separator */
- public static final String PATH_SEPARATOR = "/";
-
- private final static Log log = LogFactory.getLog(RepositoryUtil.class);
-
- /**
- * Register a new repository
- *
- * @param repositoryName The repository unique name
- * @param configFile The JCR config file
- * @param homeDir The directory containing the complete repository settings (workspace, node types, ...)
- *
- * @throws RepositoryException when it is not possible to register the repository
- */
- public static void registerRepository(String repositoryName, String configFile, String homeDir) throws RepositoryException
- {
- try
- {
- Hashtable env = new Hashtable();
- env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
- env.put(Context.PROVIDER_URL, "localhost");
- InitialContext ctx = new InitialContext(env);
-
- RegistryHelper.registerRepository(ctx, repositoryName, configFile, homeDir, true);
- }
- catch (Exception e)
- {
- throw new RepositoryException("Impossible to register the respository : " +
- repositoryName + " - config file : " + configFile, e);
- }
-
- }
-
-
- /**
- * Unregister a repository
- *
- * @param repositoryName The repository unique name
- *
- * @throws RepositoryException when it is not possible to unregister the repository
- */
- public static void unRegisterRepository(String repositoryName) throws RepositoryException
- {
- try
- {
- Hashtable env = new Hashtable();
- env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
- env.put(Context.PROVIDER_URL, "localhost");
- InitialContext ctx = new InitialContext(env);
-
- RegistryHelper.unregisterRepository(ctx, repositoryName);
- }
- catch (Exception e)
- {
- throw new RepositoryException("Impossible to unregister the respository : " +
- repositoryName , e);
- }
-
- }
-
- /**
- * Get a repository
- *
- * @param repositoryName The repository name
- * @return a JCR repository reference
- *
- * @throws RepositoryException when it is not possible to get the repository.
- * Before calling this method, the repository has to be registered (@see RepositoryUtil#registerRepository(String, String, String)
- */
- public static Repository getRepository(String repositoryName) throws RepositoryException
- {
- try
- {
- Hashtable env = new Hashtable();
- env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
- env.put(Context.PROVIDER_URL, "localhost");
- InitialContext ctx = new InitialContext(env);
-
- Repository repository = (Repository) ctx.lookup(repositoryName);
- return repository;
- }
- catch (Exception e)
- {
- throw new RepositoryException("Impossible to get the repository : " + repositoryName, e);
- }
- }
-
- /**
- * Connect to a JCR repository
- *
- * @param repository The JCR repository
- * @param user The user name
- * @param password The password
- * @return a valid JCR session
- *
- * @throws RepositoryException when it is not possible to connect to the JCR repository
- */
- public static Session login(Repository repository, String user, String password) throws RepositoryException
- {
- try
- {
- Session session = repository.login(new SimpleCredentials(user, password.toCharArray()), null);
-
-
- return session;
- }
- catch (Exception e)
- {
- throw new RepositoryException("Impossible to login ", e);
- }
- }
-
-
-
-
-
- /**
- * Setup the session.
- * Until now, we check only if the namespace prefix exist in the repository
- *
- */
- public static void setupSession(Session session) throws RepositoryException
- {
- try
- {
- log.info("Setup Jcr session setup ...");
-
- String[] jcrNamespaces = session.getWorkspace().getNamespaceRegistry().getPrefixes();
- boolean createNamespace = true;
- for (int i = 0; i < jcrNamespaces.length; i++)
- {
- if (jcrNamespaces[i].equals(OCM_NAMESPACE_PREFIX))
- {
- createNamespace = false;
- log.debug("Jackrabbit OCM namespace exists.");
- }
- }
-
- if (createNamespace)
- {
- session.getWorkspace().getNamespaceRegistry().registerNamespace(OCM_NAMESPACE_PREFIX, OCM_NAMESPACE);
- log.info("Successfully created Jackrabbit OCM namespace.");
- }
-
- if (session.getRootNode() != null)
- {
- log.info("Jcr session setup successfull.");
- }
-
-
- }
- catch (Exception e)
- {
- log.error("Error while setting up the jcr session.", e);
- throw new RepositoryException(e.getMessage());
- }
- }
-
- /**
- * Encode a path
- * @TODO : drop Jackrabbit dependency
- *
- * @param path the path to encode
- * @return the encoded path
- *
- */
- public static String encodePath(String path)
- {
- String[] pathElements = Text.explode(path, '/');
- for (int i=0;iNote: most of the utility methods in this class can be used only with Jackrabbit.
+*
+* @author Lombart Christophe
+* @version $Id: Exp $
+*/
+public class RepositoryUtil
+{
+
+ /** namespace prefix constant */
+ public static final String OCM_NAMESPACE_PREFIX = "ocm";
+
+ /** namespace constant */
+ public static final String OCM_NAMESPACE = "http://jackrabbit.apache.org/ocm";
+
+ /** Item path separator */
+ public static final String PATH_SEPARATOR = "/";
+
+ private final static Log log = LogFactory.getLog(RepositoryUtil.class);
+
+ /**
+ * Register a new repository
+ *
+ * @param repositoryName The repository unique name
+ * @param configFile The JCR config file
+ * @param homeDir The directory containing the complete repository settings (workspace, node types, ...)
+ *
+ * @throws RepositoryException when it is not possible to register the repository
+ */
+ public static void registerRepository(String repositoryName, String configFile, String homeDir) throws RepositoryException
+ {
+ try
+ {
+ Hashtable env = new Hashtable();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
+ env.put(Context.PROVIDER_URL, "localhost");
+ InitialContext ctx = new InitialContext(env);
+
+ RegistryHelper.registerRepository(ctx, repositoryName, configFile, homeDir, true);
+ }
+ catch (Exception e)
+ {
+ throw new RepositoryException("Impossible to register the respository : " +
+ repositoryName + " - config file : " + configFile, e);
+ }
+
+ }
+
+
+ /**
+ * Unregister a repository
+ *
+ * @param repositoryName The repository unique name
+ *
+ * @throws RepositoryException when it is not possible to unregister the repository
+ */
+ public static void unRegisterRepository(String repositoryName) throws RepositoryException
+ {
+ try
+ {
+ Hashtable env = new Hashtable();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
+ env.put(Context.PROVIDER_URL, "localhost");
+ InitialContext ctx = new InitialContext(env);
+
+ RegistryHelper.unregisterRepository(ctx, repositoryName);
+ }
+ catch (Exception e)
+ {
+ throw new RepositoryException("Impossible to unregister the respository : " +
+ repositoryName , e);
+ }
+
+ }
+
+ /**
+ * Get a repository
+ *
+ * @param repositoryName The repository name
+ * @return a JCR repository reference
+ *
+ * @throws RepositoryException when it is not possible to get the repository.
+ * Before calling this method, the repository has to be registered (@see RepositoryUtil#registerRepository(String, String, String)
+ */
+ public static Repository getRepository(String repositoryName) throws RepositoryException
+ {
+ try
+ {
+ Hashtable env = new Hashtable();
+ env.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory");
+ env.put(Context.PROVIDER_URL, "localhost");
+ InitialContext ctx = new InitialContext(env);
+
+ Repository repository = (Repository) ctx.lookup(repositoryName);
+ return repository;
+ }
+ catch (Exception e)
+ {
+ throw new RepositoryException("Impossible to get the repository : " + repositoryName, e);
+ }
+ }
+
+ /**
+ * Connect to a JCR repository
+ *
+ * @param repository The JCR repository
+ * @param user The user name
+ * @param password The password
+ * @return a valid JCR session
+ *
+ * @throws RepositoryException when it is not possible to connect to the JCR repository
+ */
+ public static Session login(Repository repository, String user, String password) throws RepositoryException
+ {
+ try
+ {
+ Session session = repository.login(new SimpleCredentials(user, password.toCharArray()), null);
+
+
+ return session;
+ }
+ catch (Exception e)
+ {
+ throw new RepositoryException("Impossible to login ", e);
+ }
+ }
+
+
+
+
+
+ /**
+ * Setup the session.
+ * Until now, we check only if the namespace prefix exist in the repository
+ *
+ */
+ public static void setupSession(Session session) throws RepositoryException
+ {
+ try
+ {
+ log.info("Setup Jcr session setup ...");
+
+ String[] jcrNamespaces = session.getWorkspace().getNamespaceRegistry().getPrefixes();
+ boolean createNamespace = true;
+ for (int i = 0; i < jcrNamespaces.length; i++)
+ {
+ if (jcrNamespaces[i].equals(OCM_NAMESPACE_PREFIX))
+ {
+ createNamespace = false;
+ log.debug("Jackrabbit OCM namespace exists.");
+ }
+ }
+
+ if (createNamespace)
+ {
+ session.getWorkspace().getNamespaceRegistry().registerNamespace(OCM_NAMESPACE_PREFIX, OCM_NAMESPACE);
+ log.info("Successfully created Jackrabbit OCM namespace.");
+ }
+
+ if (session.getRootNode() != null)
+ {
+ log.info("Jcr session setup successfull.");
+ }
+
+
+ }
+ catch (Exception e)
+ {
+ log.error("Error while setting up the jcr session.", e);
+ throw new RepositoryException(e.getMessage());
+ }
+ }
+
+ /**
+ * Encode a path
+ * @TODO : drop Jackrabbit dependency
+ *
+ * @param path the path to encode
+ * @return the encoded path
+ *
+ */
+ public static String encodePath(String path)
+ {
+ String[] pathElements = Text.explode(path, '/');
+ for (int i=0;i