]> 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 53a9ff1e2b4e802a6fddeeb3bc2e9f714daf7cae..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,8 +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}.
  */
+@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";
 
@@ -128,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);
@@ -170,8 +175,8 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                                        String oldDigest = JcrUtils.checksumFile(dataModel,
                                                        DIGEST_ALGORITHM);
                                        if (oldDigest.equals(newDigest)) {
-                                               if (log.isDebugEnabled())
-                                                       log.debug("Data model " + resUrl
+                                               if (log.isTraceEnabled())
+                                                       log.trace("Data model " + resUrl
                                                                        + " hasn't changed, keeping version "
                                                                        + currentVersion);
                                                return;
@@ -241,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);
                }
@@ -285,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
@@ -313,8 +331,8 @@ public class JackrabbitWrapper extends JcrRepositoryWrapper implements
                        resUrl = resUrl.substring(1);
                String pkg = resUrl.substring(0, resUrl.lastIndexOf('/')).replace('/',
                                '.');
-               ServiceReference paSr = bundleContext
-                               .getServiceReference(PackageAdmin.class.getName());
+               ServiceReference<PackageAdmin> paSr = bundleContext
+                               .getServiceReference(PackageAdmin.class);
                PackageAdmin packageAdmin = (PackageAdmin) bundleContext
                                .getService(paSr);
 
@@ -323,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()) {
@@ -339,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;