]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.server.jcr/src/org/argeo/jackrabbit/JackrabbitWrapper.java
Improve and simplify OSGi Boot
[lgpl/argeo-commons.git] / org.argeo.server.jcr / src / org / argeo / jackrabbit / JackrabbitWrapper.java
index c1addf1622a873a2f888f828e58a771e151083d3..268ecdb282f8832d5c7f37fcb6ec1e9ff184c327 100644 (file)
@@ -26,9 +26,12 @@ import java.util.List;
 import java.util.Map;
 
 import javax.jcr.Credentials;
+import javax.jcr.LoginException;
+import javax.jcr.NoSuchWorkspaceException;
 import javax.jcr.Node;
 import javax.jcr.NodeIterator;
 import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
 import javax.jcr.Session;
 import javax.jcr.nodetype.NodeType;
 
@@ -36,10 +39,11 @@ import org.apache.commons.io.FilenameUtils;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.jackrabbit.api.JackrabbitRepository;
 import org.apache.jackrabbit.commons.NamespaceHelper;
 import org.apache.jackrabbit.commons.cnd.CndImporter;
-import org.argeo.ArgeoException;
 import org.argeo.jcr.ArgeoJcrConstants;
+import org.argeo.jcr.ArgeoJcrException;
 import org.argeo.jcr.ArgeoNames;
 import org.argeo.jcr.ArgeoTypes;
 import org.argeo.jcr.JcrRepositoryWrapper;
@@ -58,9 +62,9 @@ import org.springframework.core.io.ResourceLoader;
  * Wrapper around a Jackrabbit repository which allows to simplify configuration
  * and intercept some actions. It exposes itself as a {@link Repository}.
  */
-@SuppressWarnings("deprecation")
+@Deprecated
 public class JackrabbitWrapper extends JcrRepositoryWrapper implements
-               ResourceLoaderAware {
+               JackrabbitRepository, ResourceLoaderAware {
        private final static Log log = LogFactory.getLog(JackrabbitWrapper.class);
        private final static String DIGEST_ALGORITHM = "MD5";
 
@@ -129,7 +133,7 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                        }
                } catch (Exception e) {
                        JcrUtils.discardQuietly(session);
-                       throw new ArgeoException("Cannot import node type definitions "
+                       throw new ArgeoJcrException("Cannot import node type definitions "
                                        + cndFiles, e);
                } finally {
                        JcrUtils.logoutQuietly(session);
@@ -242,7 +246,7 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                                                + (bundle != null ? ", version " + bundle.getVersion()
                                                                + ", bundle " + bundle.getSymbolicName() : ""));
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot process data model " + resUrl, e);
+                       throw new ArgeoJcrException("Cannot process data model " + resUrl, e);
                } finally {
                        IOUtils.closeQuietly(reader);
                }
@@ -286,21 +290,34 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                                in = res.getInputStream();
                                url = res.getURL();
                        } else {
-                               throw new ArgeoException("No " + resUrl + " in the classpath,"
+                               throw new ArgeoJcrException("No " + resUrl + " in the classpath,"
                                                + " make sure the containing" + " package is visible.");
                        }
 
                        return IOUtils.toByteArray(in);
                } catch (Exception e) {
-                       throw new ArgeoException("Cannot read CND from " + resUrl, e);
+                       throw new ArgeoJcrException("Cannot read CND from " + resUrl, e);
                } finally {
                        IOUtils.closeQuietly(in);
                }
        }
 
        /*
-        * REPOSITORY INTERCEPTOR
+        * JACKRABBIT REPOSITORY IMPLEMENTATION
         */
+       @Override
+       public Session login(Credentials credentials, String workspaceName,
+                       Map<String, Object> attributes) throws LoginException,
+                       NoSuchWorkspaceException, RepositoryException {
+               // TODO Auto-generated method stub
+               return null;
+       }
+
+       @Override
+       public void shutdown() {
+               // TODO Auto-generated method stub
+
+       }
 
        /*
         * UTILITIES
@@ -324,7 +341,7 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                ExportedPackage[] exportedPackages = packageAdmin
                                .getExportedPackages(pkg);
                if (exportedPackages == null)
-                       throw new ArgeoException("No exported package found for " + pkg);
+                       throw new ArgeoJcrException("No exported package found for " + pkg);
                for (ExportedPackage ep : exportedPackages) {
                        for (Bundle b : ep.getImportingBundles()) {
                                if (b.getBundleId() == bundleContext.getBundle().getBundleId()) {
@@ -340,7 +357,7 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                } else {
                        // assume this is in the same bundle
                        exportingBundle = bundleContext.getBundle();
-                       // throw new ArgeoException("No OSGi exporting package found for "
+                       // throw new ArgeoJcrException("No OSGi exporting package found for "
                        // + resUrl);
                }
                return exportingBundle;