From d6bb3d3e0643c410ecd3ca1d4d88ae412697f258 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 13 Mar 2019 12:43:48 +0100 Subject: [PATCH] More Jackrabbit repo to client dep. Remove unused and deprecated components. --- dep/org.argeo.dep.cms.client/pom.xml | 54 ++++ dep/org.argeo.dep.cms.node/pom.xml | 42 --- {org.argeo.sync => org.argeo.core}/.classpath | 0 {org.argeo.sync => org.argeo.core}/.gitignore | 0 {org.argeo.sync => org.argeo.core}/.project | 2 +- .../.settings/org.eclipse.jdt.core.prefs | 0 .../META-INF/.gitignore | 0 {org.argeo.sync => org.argeo.core}/bnd.bnd | 0 .../build.properties | 0 .../lib/.gitignore | 0 {org.argeo.sync => org.argeo.core}/pom.xml | 4 +- .../src/org/argeo/sync/SyncException.java | 0 .../src/org/argeo/sync/cli/Sync.java | 0 .../src/org/argeo/sync/fs/PathSync.java | 0 .../src/org/argeo/sync/fs/SshSync.java | 36 ++- .../org/argeo/sync/fs/SyncFileVisitor.java | 0 org.argeo.enterprise/build.properties | 3 +- .../osgi/useradmin/LdifUserAdminTest.java | 35 ++- .../server/jcr/JcrResourceAdapterTest.java | 102 -------- .../ext/test/org/argeo/server/jcr/dummy00.xls | Bin 6656 -> 0 bytes .../ext/test/org/argeo/server/jcr/dummy01.xls | Bin 6656 -> 0 bytes .../ext/test/org/argeo/server/jcr/dummy02.xls | Bin 6656 -> 0 bytes .../ext/test/org/argeo/server/jcr/dummy03.xls | Bin 6656 -> 0 bytes .../JackrabbitDataModelMigration.java | 8 +- .../JackrabbitRepositoryFactory.java | 200 -------------- .../src/org/argeo/jcr/JcrResourceAdapter.java | 245 ------------------ .../argeo/jcr/spring/ThreadBoundSession.java | 34 --- pom.xml | 2 +- 28 files changed, 101 insertions(+), 666 deletions(-) rename {org.argeo.sync => org.argeo.core}/.classpath (100%) rename {org.argeo.sync => org.argeo.core}/.gitignore (100%) rename {org.argeo.sync => org.argeo.core}/.project (95%) rename {org.argeo.sync => org.argeo.core}/.settings/org.eclipse.jdt.core.prefs (100%) rename {org.argeo.sync => org.argeo.core}/META-INF/.gitignore (100%) rename {org.argeo.sync => org.argeo.core}/bnd.bnd (100%) rename {org.argeo.sync => org.argeo.core}/build.properties (100%) rename {org.argeo.sync => org.argeo.core}/lib/.gitignore (100%) rename {org.argeo.sync => org.argeo.core}/pom.xml (89%) rename {org.argeo.sync => org.argeo.core}/src/org/argeo/sync/SyncException.java (100%) rename {org.argeo.sync => org.argeo.core}/src/org/argeo/sync/cli/Sync.java (100%) rename {org.argeo.sync => org.argeo.core}/src/org/argeo/sync/fs/PathSync.java (100%) rename {org.argeo.sync => org.argeo.core}/src/org/argeo/sync/fs/SshSync.java (80%) rename {org.argeo.sync => org.argeo.core}/src/org/argeo/sync/fs/SyncFileVisitor.java (100%) delete mode 100644 org.argeo.jcr/ext/test/org/argeo/server/jcr/JcrResourceAdapterTest.java delete mode 100644 org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy00.xls delete mode 100644 org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy01.xls delete mode 100644 org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy02.xls delete mode 100644 org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy03.xls delete mode 100644 org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java delete mode 100644 org.argeo.jcr/src/org/argeo/jcr/JcrResourceAdapter.java delete mode 100644 org.argeo.jcr/src/org/argeo/jcr/spring/ThreadBoundSession.java diff --git a/dep/org.argeo.dep.cms.client/pom.xml b/dep/org.argeo.dep.cms.client/pom.xml index 7605293a3..1df3b1d0b 100644 --- a/dep/org.argeo.dep.cms.client/pom.xml +++ b/dep/org.argeo.dep.cms.client/pom.xml @@ -17,11 +17,21 @@ org.argeo.util 2.1.77-SNAPSHOT + + org.argeo.commons + org.argeo.enterprise + 2.1.77-SNAPSHOT + org.argeo.commons org.argeo.jcr 2.1.77-SNAPSHOT + + org.argeo.commons + org.argeo.core + 2.1.77-SNAPSHOT + @@ -60,6 +70,10 @@ org.argeo.tp.bouncycastle bcpkix + + org.argeo.tp.bouncycastle + bcpg + org.argeo.tp.apache org.apache.httpcomponents.httpcore @@ -121,6 +135,12 @@ javax.servlet + + + org.argeo.tp.misc + org.h2 + + org.argeo.tp.equinox @@ -253,6 +273,40 @@ org.apache.jackrabbit.jcr2spi + + + org.argeo.tp.apache.jackrabbit + org.apache.jackrabbit.data + + + org.argeo.tp.apache.jackrabbit + org.apache.jackrabbit.core + + + org.argeo.tp.apache.jackrabbit + org.apache.jackrabbit.server + + + org.argeo.tp.misc + EDU.oswego.cs.dl.util.concurrent + + + org.argeo.tp.apache.commons + org.apache.commons.fileupload + + + org.argeo.tp.apache + org.apache.tika.core + + + org.argeo.tp.apache + org.apache.tika.parsers + + + org.argeo.tp.apache + org.apache.lucene + + org.argeo.tp.misc diff --git a/dep/org.argeo.dep.cms.node/pom.xml b/dep/org.argeo.dep.cms.node/pom.xml index 83d83e76d..8e70bb829 100644 --- a/dep/org.argeo.dep.cms.node/pom.xml +++ b/dep/org.argeo.dep.cms.node/pom.xml @@ -30,11 +30,6 @@ org.argeo.cms 2.1.77-SNAPSHOT - - org.argeo.commons - org.argeo.enterprise - 2.1.77-SNAPSHOT - org.argeo.commons org.argeo.ext.jackrabbit @@ -63,10 +58,6 @@ - - org.argeo.tp.misc - org.h2 - org.argeo.tp.misc org.postgresql.jdbc42 @@ -121,39 +112,6 @@ com.vladsch.flexmark.formatter - - - org.argeo.tp.apache.jackrabbit - org.apache.jackrabbit.data - - - org.argeo.tp.apache.jackrabbit - org.apache.jackrabbit.core - - - org.argeo.tp.apache.jackrabbit - org.apache.jackrabbit.server - - - org.argeo.tp.misc - EDU.oswego.cs.dl.util.concurrent - - - org.argeo.tp.apache.commons - org.apache.commons.fileupload - - - org.argeo.tp.apache - org.apache.tika.core - - - org.argeo.tp.apache - org.apache.tika.parsers - - - org.argeo.tp.apache - org.apache.lucene - diff --git a/org.argeo.sync/.classpath b/org.argeo.core/.classpath similarity index 100% rename from org.argeo.sync/.classpath rename to org.argeo.core/.classpath diff --git a/org.argeo.sync/.gitignore b/org.argeo.core/.gitignore similarity index 100% rename from org.argeo.sync/.gitignore rename to org.argeo.core/.gitignore diff --git a/org.argeo.sync/.project b/org.argeo.core/.project similarity index 95% rename from org.argeo.sync/.project rename to org.argeo.core/.project index 38af86992..cb3127eb8 100644 --- a/org.argeo.sync/.project +++ b/org.argeo.core/.project @@ -1,6 +1,6 @@ - org.argeo.sync + org.argeo.core diff --git a/org.argeo.sync/.settings/org.eclipse.jdt.core.prefs b/org.argeo.core/.settings/org.eclipse.jdt.core.prefs similarity index 100% rename from org.argeo.sync/.settings/org.eclipse.jdt.core.prefs rename to org.argeo.core/.settings/org.eclipse.jdt.core.prefs diff --git a/org.argeo.sync/META-INF/.gitignore b/org.argeo.core/META-INF/.gitignore similarity index 100% rename from org.argeo.sync/META-INF/.gitignore rename to org.argeo.core/META-INF/.gitignore diff --git a/org.argeo.sync/bnd.bnd b/org.argeo.core/bnd.bnd similarity index 100% rename from org.argeo.sync/bnd.bnd rename to org.argeo.core/bnd.bnd diff --git a/org.argeo.sync/build.properties b/org.argeo.core/build.properties similarity index 100% rename from org.argeo.sync/build.properties rename to org.argeo.core/build.properties diff --git a/org.argeo.sync/lib/.gitignore b/org.argeo.core/lib/.gitignore similarity index 100% rename from org.argeo.sync/lib/.gitignore rename to org.argeo.core/lib/.gitignore diff --git a/org.argeo.sync/pom.xml b/org.argeo.core/pom.xml similarity index 89% rename from org.argeo.sync/pom.xml rename to org.argeo.core/pom.xml index 4e07d4334..1b2ccc65a 100644 --- a/org.argeo.sync/pom.xml +++ b/org.argeo.core/pom.xml @@ -6,8 +6,8 @@ 2.1.77-SNAPSHOT .. - org.argeo.sync - Commons Sync Utility + org.argeo.core + Commons Third Parties Utilities org.argeo.commons diff --git a/org.argeo.sync/src/org/argeo/sync/SyncException.java b/org.argeo.core/src/org/argeo/sync/SyncException.java similarity index 100% rename from org.argeo.sync/src/org/argeo/sync/SyncException.java rename to org.argeo.core/src/org/argeo/sync/SyncException.java diff --git a/org.argeo.sync/src/org/argeo/sync/cli/Sync.java b/org.argeo.core/src/org/argeo/sync/cli/Sync.java similarity index 100% rename from org.argeo.sync/src/org/argeo/sync/cli/Sync.java rename to org.argeo.core/src/org/argeo/sync/cli/Sync.java diff --git a/org.argeo.sync/src/org/argeo/sync/fs/PathSync.java b/org.argeo.core/src/org/argeo/sync/fs/PathSync.java similarity index 100% rename from org.argeo.sync/src/org/argeo/sync/fs/PathSync.java rename to org.argeo.core/src/org/argeo/sync/fs/PathSync.java diff --git a/org.argeo.sync/src/org/argeo/sync/fs/SshSync.java b/org.argeo.core/src/org/argeo/sync/fs/SshSync.java similarity index 80% rename from org.argeo.sync/src/org/argeo/sync/fs/SshSync.java rename to org.argeo.core/src/org/argeo/sync/fs/SshSync.java index e89ba85dc..43af45036 100644 --- a/org.argeo.sync/src/org/argeo/sync/fs/SshSync.java +++ b/org.argeo.core/src/org/argeo/sync/fs/SshSync.java @@ -6,6 +6,7 @@ import java.io.OutputStream; import java.nio.file.DirectoryStream; import java.nio.file.Files; import java.nio.file.Path; +import java.security.KeyPair; import java.security.PublicKey; import java.util.HashSet; import java.util.List; @@ -17,14 +18,18 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.sshd.agent.SshAgent; +import org.apache.sshd.agent.SshAgentFactory; +import org.apache.sshd.agent.local.LocalAgentFactory; import org.apache.sshd.agent.unix.UnixAgentFactory; import org.apache.sshd.client.SshClient; import org.apache.sshd.client.channel.ClientChannel; import org.apache.sshd.client.channel.ClientChannelEvent; +import org.apache.sshd.client.config.keys.ClientIdentityLoader; import org.apache.sshd.client.future.ConnectFuture; import org.apache.sshd.client.session.ClientSession; import org.apache.sshd.client.subsystem.sftp.SftpFileSystem; import org.apache.sshd.client.subsystem.sftp.SftpFileSystemProvider; +import org.apache.sshd.common.config.keys.FilePasswordProvider; import org.apache.sshd.common.util.io.NoCloseInputStream; import org.apache.sshd.common.util.io.NoCloseOutputStream; @@ -33,27 +38,32 @@ public class SshSync { public static void main(String[] args) { - try (SshClient client = SshClient.setUpDefaultClient()) { client.start(); - - UnixAgentFactory agentFactory = new UnixAgentFactory(); + boolean osAgent = false; + SshAgentFactory agentFactory = osAgent ? new UnixAgentFactory() : new LocalAgentFactory(); + // SshAgentFactory agentFactory = new LocalAgentFactory(); client.setAgentFactory(agentFactory); -// SshAgent sshAgent = agentFactory.createClient(client); -// List> identities = sshAgent.getIdentities(); -// for (Map.Entry entry : identities) { -// System.out.println(entry.getValue() + " : " + entry.getKey()); -// } + SshAgent sshAgent = agentFactory.createClient(client); - String login = System.getProperty("user.name"); -// Scanner s = new Scanner(System.in); -// String password = s.next(); String host = "localhost"; int port = 22; -// SimpleClient simpleClient= AbstractSimpleClientSessionCreator.wrap(client, null); -// simpleClient.sessionLogin(host, login, password); + if (!osAgent) { + String keyPath = "/home/" + login + "/.ssh/id_rsa"; + System.out.print(keyPath + ": "); + Scanner s = new Scanner(System.in); + String password = s.next(); + KeyPair keyPair = ClientIdentityLoader.DEFAULT.loadClientIdentity(keyPath, + FilePasswordProvider.of(password)); + sshAgent.addIdentity(keyPair, "NO COMMENT"); + } + + List> identities = sshAgent.getIdentities(); + for (Map.Entry entry : identities) { + System.out.println(entry.getValue() + " : " + entry.getKey()); + } ConnectFuture connectFuture = client.connect(login, host, port); connectFuture.await(); diff --git a/org.argeo.sync/src/org/argeo/sync/fs/SyncFileVisitor.java b/org.argeo.core/src/org/argeo/sync/fs/SyncFileVisitor.java similarity index 100% rename from org.argeo.sync/src/org/argeo/sync/fs/SyncFileVisitor.java rename to org.argeo.core/src/org/argeo/sync/fs/SyncFileVisitor.java diff --git a/org.argeo.enterprise/build.properties b/org.argeo.enterprise/build.properties index af03ba43b..6fa156125 100644 --- a/org.argeo.enterprise/build.properties +++ b/org.argeo.enterprise/build.properties @@ -4,5 +4,4 @@ additional.bundles = org.junit,\ org.slf4j.commons.logging,\ org.slf4j.api,\ org.slf4j.log4j12,\ - org.apache.log4j,\ - bitronix.tm + org.apache.log4j diff --git a/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java b/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java index 956bb2e23..748abe835 100644 --- a/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java +++ b/org.argeo.enterprise/ext/test/org/argeo/osgi/useradmin/LdifUserAdminTest.java @@ -2,7 +2,6 @@ package org.argeo.osgi.useradmin; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URI; @@ -16,7 +15,6 @@ import java.util.Base64; import java.util.Dictionary; import java.util.Hashtable; import java.util.List; -import java.util.UUID; import javax.transaction.TransactionManager; @@ -27,9 +25,6 @@ import org.osgi.service.useradmin.Group; import org.osgi.service.useradmin.Role; import org.osgi.service.useradmin.User; -import bitronix.tm.BitronixTransactionManager; -import bitronix.tm.TransactionManagerServices; -import bitronix.tm.resource.ehcache.EhCacheXAResourceProducer; import junit.framework.TestCase; public class LdifUserAdminTest extends TestCase implements BasicTestConstants { @@ -45,7 +40,6 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { // public void testConcurrent() throws Exception { // } - @SuppressWarnings("unchecked") public void testEdition() throws Exception { User demoUser = (User) userAdmin.getRole(DEMO_USER_DN); assertNotNull(demoUser); @@ -160,13 +154,14 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { // Init transaction manager if (TM_SIMPLE == tmType) { tm = new SimpleTransactionManager(); - } else if (TM_BITRONIX == tmType) { - bitronix.tm.Configuration tmConf = TransactionManagerServices.getConfiguration(); - tmConf.setServerId(UUID.randomUUID().toString()); - tmConf.setLogPart1Filename(new File(tempDir.toFile(), "btm1.tlog").getAbsolutePath()); - tmConf.setLogPart2Filename(new File(tempDir.toFile(), "btm2.tlog").getAbsolutePath()); - tm = TransactionManagerServices.getTransactionManager(); } +// else if (TM_BITRONIX == tmType) { +// bitronix.tm.Configuration tmConf = TransactionManagerServices.getConfiguration(); +// tmConf.setServerId(UUID.randomUUID().toString()); +// tmConf.setLogPart1Filename(new File(tempDir.toFile(), "btm1.tlog").getAbsolutePath()); +// tmConf.setLogPart2Filename(new File(tempDir.toFile(), "btm2.tlog").getAbsolutePath()); +// tm = TransactionManagerServices.getTransactionManager(); +// } userAdmin = initUserAdmin(uri, tm); } @@ -184,15 +179,15 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { userAdmin = new LdifUserAdmin(props); userAdmin.init(); // JTA - if (TM_BITRONIX == tmType) - EhCacheXAResourceProducer.registerXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); +// if (TM_BITRONIX == tmType) +// EhCacheXAResourceProducer.registerXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); userAdmin.setTransactionManager(tm); return userAdmin; } private void persistAndRestart() { - if (TM_BITRONIX == tmType) - EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); +// if (TM_BITRONIX == tmType) +// EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); if (userAdmin instanceof LdifUserAdmin) ((LdifUserAdmin) userAdmin).save(); userAdmin.destroy(); @@ -201,10 +196,10 @@ public class LdifUserAdminTest extends TestCase implements BasicTestConstants { @Override protected void tearDown() throws Exception { - if (TM_BITRONIX == tmType) { - EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); - ((BitronixTransactionManager) tm).shutdown(); - } +// if (TM_BITRONIX == tmType) { +// EhCacheXAResourceProducer.unregisterXAResource(UserDirectory.class.getName(), userAdmin.getXaResource()); +// ((BitronixTransactionManager) tm).shutdown(); +// } if (userAdmin != null) userAdmin.destroy(); if (tempDir != null) diff --git a/org.argeo.jcr/ext/test/org/argeo/server/jcr/JcrResourceAdapterTest.java b/org.argeo.jcr/ext/test/org/argeo/server/jcr/JcrResourceAdapterTest.java deleted file mode 100644 index 11dc4fab0..000000000 --- a/org.argeo.jcr/ext/test/org/argeo/server/jcr/JcrResourceAdapterTest.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed 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.argeo.server.jcr; - -import java.io.InputStream; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.List; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.argeo.jackrabbit.unit.AbstractJackrabbitTestCase; -import org.argeo.jcr.JcrResourceAdapter; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; - -@Deprecated -public class JcrResourceAdapterTest extends AbstractJackrabbitTestCase { - private static SimpleDateFormat sdf = new SimpleDateFormat( - "yyyyMMdd:hhmmss.SSS"); - - private final static Log log = LogFactory - .getLog(JcrResourceAdapterTest.class); - - private JcrResourceAdapter jra; - - public void testCreate() throws Exception { - String basePath = "/test/subdir"; - jra.mkdirs(basePath); - Resource res = new ClassPathResource("org/argeo/server/jcr/dummy00.xls"); - String filePath = basePath + "/dummy.xml"; - jra.create(filePath, res.getInputStream(), "application/vnd.ms-excel"); - InputStream in = jra.retrieve(filePath); - assertTrue(IOUtils.contentEquals(res.getInputStream(), in)); - } - - public void testVersioning() throws Exception { - String basePath = "/test/versions"; - jra.mkdirs(basePath); - String filePath = basePath + "/dummy.xml"; - Resource res00 = new ClassPathResource( - "org/argeo/server/jcr/dummy00.xls"); - jra.create(filePath, res00.getInputStream(), "application/vnd.ms-excel"); - Resource res01 = new ClassPathResource( - "org/argeo/server/jcr/dummy01.xls"); - jra.update(filePath, res01.getInputStream()); - Resource res02 = new ClassPathResource( - "org/argeo/server/jcr/dummy02.xls"); - jra.update(filePath, res02.getInputStream()); - - List versions = jra.listVersions(filePath); - log.debug("Versions of " + filePath); - int count = 0; - for (Calendar version : versions) { - log.debug(" " + (count == 0 ? "base" : count - 1) + "\t" - + sdf.format(version.getTime())); - count++; - } - - assertEquals(4, versions.size()); - - InputStream in = jra.retrieve(filePath, 1); - assertTrue(IOUtils.contentEquals(res01.getInputStream(), in)); - in = jra.retrieve(filePath, 0); - assertTrue(IOUtils.contentEquals(res00.getInputStream(), in)); - in = jra.retrieve(filePath, 2); - assertTrue(IOUtils.contentEquals(res02.getInputStream(), in)); - Resource res03 = new ClassPathResource( - "org/argeo/server/jcr/dummy03.xls"); - jra.update(filePath, res03.getInputStream()); - in = jra.retrieve(filePath, 1); - assertTrue(IOUtils.contentEquals(res01.getInputStream(), in)); - } - - @Override - protected void setUp() throws Exception { - log.debug("SET UP"); - super.setUp(); - jra = new JcrResourceAdapter(); - jra.setSession(session()); - } - - @Override - protected void tearDown() throws Exception { - log.debug("TEAR DOWN"); - super.tearDown(); - } -} diff --git a/org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy00.xls b/org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy00.xls deleted file mode 100644 index e5846fef7262b74c71fa79612ddf0697d39b8a3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6656 zcmeHLUu=_A6hB|Lj&=;z{X+#EpHsHMHr&{Q7)82`;V^7017o5j+HK!lpI?8jkpvb4s@^$z|CR2=&Kv5pxI(7%KDXHW zkhG~8`o(2sj?9utyc8Az09S(PZ$vN}RDL1AxB~J zzd(?ueDAnr#XCspaL&C_wvh5WFMesB&SNi5kl2PJI+$nuBZQxevJ7WZq2c`ZB;|Su451siCH++90v|N`q?U}vfPC5~t zjE|#yF%+4yFyY5TlT)GCVN7(VH5_9#g{O&6X2H)e#gJvYw!jUptpW#q6wBatROz7) zKtJYgL&2dtOO zq3A?tvUMODn+Qc38auW$cGV%4A+jyaHW+%&G8+evX!oyc-iWDmYPz(&$yIMg{Ycxn znYMGu?HgV7lkjbREYQ&3jIK{Odq64%6+fD;%pVx;v!_%Nc8%N3SH3@)*ehlEd?HzzYaTehF?G(TfFU{L;G5W~< zP<%XWO_|-HsnM_%(>Gc!I%WCp3Id6S^_+&*SuzEIL|vrTJNY$ZJSOqf)2y?)IOSSD z$MDR3J9lF9y1?*e-)fk=vR9_C{t3KX`R#8P zUbthb6H?-M(MCbZotmBT>BI9~|7P%BcDnS+4va9ObFlOaWMT8!dJF5{g0bVy_{&ig Ny8rI)Z~yi9e*xrBiZ=iN diff --git a/org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy01.xls b/org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy01.xls deleted file mode 100644 index b5c6b55395e29c5f6d4ef850f9c808714a111c7f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6656 zcmeHLU2IfE6h3!<%H6iK+tNh^#Vgt$`hzW%h%wl0OQ9HA8o>BMqPOMNUD)pGvQ>Fd zmm+VNXn4>E5<+ZZjEO=_^uZ>UH)Av!lPdaD;EBk?q8LL2*6*8pmtIQO?vh4DJDYE2 z_RO3)GjqkD3Q~}k%GN1+s0n35A zfV+WvfEB<>;9lT9U=?sbU;qyQtAPiBhk#n34yXqjfHgoP&;&FCocmg*WW5dbbwImA zTkn)JJF-~&s~rgF&|-;SK3n<~UB2@DXJHX1eW#UOoC9sQJWt!`He*A^-<7)5988V2 zxlt>@J;MVVJ%+pjHbrW+%9pA9Bh_z0^Qb=c9Afx%&TC>3;0IrhFDx z$dudXCVL+;Hg$%+CJ((i54|xDJuoNz#(a29Q)$vT>cKfpOO|CY?Nwz}xW zrI)C(ChgBY3+vb9FwVjsVC3oF8L_NX8!3k!f1oJqNZG>6V6IR55%`2A{C<|bj0TxO zHcCl`URy(`;DC%O1Z~kdQmV|++NCVR=JsA%;*E~Mbi@<= zcZ8g)vR>U$c~1pK67f_7<%?!))WU?HG~=UY@&LAEvo)Ax6^(snaww9;(?ypF%!*-* zAsIfIj#&GRe(NP;M`FZ`H}@x!BW7%MUE8|4&JbcNeOs^gok90dL##V4MynLkY)#)xqZgUok5=HOU2|TSwmkcvh8qRP<3E-m zaEQF>;Xk&WbJ|D^+4hEcQhgzLVPokJ?~We~lb5nWwoRhld!zmQnN#75GC-AQdeH~! z&QQIS#qO2j&9tIgDL&h>C6KXK%?>lkBc+OuJTN(V!c#4usK;}7rW0;I7|*8$*U%F+ z?SF2G+-b)4+p)x%jdg3#aBC2%ELwx$xuHQN;ua0sf|ZG&x~Rbg)?lk!gYecxYY;p| zYtYtd(Yb~fi5C{YJ9bc~7ef43xoqZ}r!P8`Ozck#r;MJLhpd?K*rP4G%t0#_vk*u{ zx}w9w_QllZDLRJ{+Cq!wv>C4B%N@_(>_p?9K79O_E88Q%58l$Hss7_1=?5o(oPX>^ zo#Ai5p+!*gijW3)D2@PpH@*Wf=#B$?Kb{0A@xnFxEl7XbXQm=iYt-m6NB2anqkQ1bP{!gk4FTzCyswh7PX^U@ zsC_oEh@7uL?l6cBAFr?;SsV|Vl&1b`Htp5?nPC4=yq9}I%-QVB-Y59Kwv~Q1+ diff --git a/org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy02.xls b/org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy02.xls deleted file mode 100644 index d73bc6605c45683e4422fd90fa9f0afbbc8f5fb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6656 zcmeHLU2IfE6h3!<%5M4TwscWJ@rt$u+9IX?U`$~P6v5Ea0O|{g-j-Xtu-nCDtMZ^M zAa9tcJm3R~A@V{@6k?(e)>z(*(O^u7)hEy=A`gqf7!um``_8>fFKajKl177eHs8$b zH-Bg5oH;Xdzdv7l@#NWsm!v2>EqA&g6{XnVxPoK~IKL?l#%mZow905`b)B*E>dLRlc0PX?q z1?~eD0*iqAfd_!az=MDZJOnHO9tIu(8h}Qi30Mj&1C|5LKnu_cQ2s~Vl=)T2w*!y4 z+!Jm(xhgZcQY#P+L5o#E`C{(3bouK0FTo@ccu&+x%UPavKLn<87M@qCRx(Rw2q$CPH!N^^lv84#_UWZLn!iO|%Ibo$#G;u_Q5_r4ZEH^Wwl9 zImNU2nXaC$ZJk>#>Yh6#f8M{}Qa$~}XvXh1+0D}+*T+Js z%F$~ZI4U5Co+><9Xp8Qa(zL*}%j_IakFRjo49P(Q1B6D67~+^LzRL3j=S>Kmg>asP z{=|`ULpmUVmMubJCYNo%O3CzVcGi6xC~s~S6_IP)5ASFP82 z*)|({4{P^tY1{}=+BIBW+vLeFMgDN>*rC?3+}dTH{7Lx0FeYf|?~t?@Ek>bzAvNSV z^c|KrbfLsZSMzK~@bUb2UJB0LA>^Z`n0H-`Q6uCWjo-@An-tfhH57APPA@m^zC0Zn zoPP#x8ytiGm`2e;DzU<3@JY3{ zV;h*Ltnt;!XZq-lO;*CK3H=4Na|6|oGydn6%a!Jx;7%-ea$&t1G`$*xDl66?+T7Hj z4)He)Is>bTAUmVMY1ZIMuLj}WE7l;|RIEWqr*|A1c+L1>3A~?2LiAL)KWHo)`DW^l z_oq|)QUe*Y>-By+VLtU_>kg~WP9$tS2G_+02Aqqn)28AW#^?-MaZ9Jc1it)n9~K81 z`Nbn2{C<7wVC18BL(<&z=}+{BBS67VZbF{Ewb$hak@AX>1-LojV)fnmK2oR#_b=!D zc?Ky*ygcr_CFxhYt;}HD9yZrm!@J^kTHlzZc(&zxF$QGUB%ep3d8Q08ARA582Zz4l zT}0&c`H>Lv%oc}I^XC}83*TKhv0_o=*m2Ci<@(1Pzy*uAo#6ORX6FQDW?Rm!6p!L* z3)A`iN98ZF;i&}Wc{|Dv2?#IXeU+9y(x=~{_Bdn(F<*gPFWM3JP`OPz`9TB0ko6cj zi5Kox$gtZXD~LHh=fklX%4xa+l{UK-4UC%*yPRfI*5U2O8QF=atW-p<#Q%Di3(9sG z#{83bx$@iJX1s6*R3~IIc+sZ7lnzVX@##0qoqrqZUU9n&$_9+kuQJ&B1+p@ER^P$= WAII1kcl_x{DqVl?_qTt0{J#Jn?T}gk diff --git a/org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy03.xls b/org.argeo.jcr/ext/test/org/argeo/server/jcr/dummy03.xls deleted file mode 100644 index 0759cb92773ad3c3a420dc15f6b349bb0d005fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6656 zcmeHLU2IfE6h3#mTXxG&w?B&tidU5K(-tZ92V;V~D`|eP`}=m$e&qNuxnKH)m$< zH#7H~Ip@ronfvWGb?1&8pL1S{(vwmpH?kqAF2F6+YjW>l5g+QrZe+9B9E|Ezx`Q-u z-IJ9z^uve&5N$pU6aVumZ>)CW1NJ|a zI#mY8qHnIWs&UTn!AB1vp9P;HTCaJ7<{xXnQ<_H=c~kS1>YL~s6?+8=o>$Jm-#C62 za!WqdF+VBN2G9EfE!o%K@|MMPs~gdANMafx*P$Gdt;pNp(*->-CSY|ScE-e!_+++1 z(84dz^Usi@+?${7>h0Rt(S1(W+)?>GYeR-y8ncOW3W{GT52sEh>R$@yS10QKU&RB^ zyrnUVGi1u?x!LF;W6(UlxCGu(0$)-B4^4=V%fn-urZM}V59>57S(f2+m6mnsYAx&2 zek~i))3j_%2eL1~`z_gzwGiUL537IEkn5(}i2UZo14Wh-`GkkTT%Yy>hzZSjF3L9U z2AO^~N_B=&+rm}>Npx4?&O%@GmXww`tX-yOxO;q#vu05CSYQwwv!ckOGVe0?7wk7d zd@P9lB=`rmoNKaL&!!X(A`d4fkCPl=r;Z)T zSRAZ-oZVSmWP)-EGICSn24@0c_@+QO17Tq+CPyXJX^048)U^*Tf8W#Jx9WMt(?D`* z0o5;8WDi70OT6z=7VJAMnscm^v zM+7_Hf?IX#b6#}qroMgp`8PCgf++2pF05KuP+x@lzSgsQThC@zEiR}ZK_m=ef|fpe zrNwHoa^rKQCC}p9A$e65C04SAJ3Nw)rvS5Gm=i?MM|-jE1stnZh#9-zj4`GZ_oGh~ zV^n7`21DM2UH9&!MlSPa;T%G~d}A5G2$9!(d}G@nK(-N$7%#TPGP*~=v zVhfJj*urh53O42WJRD>^5*gE6*7DBO6B|e-b|wZ>cGoKdZrpz2@z%{wzZ;Lc8d^GI zgM;Q^YsOTZ!>tU{ibt9OH}L0=E2=orUC-@5{Oi>XL*WnK4odUF6F)MtodV?|-a6D7 zLHj&x2qljgX%O8UfmH9E@1cZ}asD#*&toXb@xpa;mt=(OaZ*Duchv55Mz_Y?q~0-0 z;T+4mViY7N|J=eN%FIhql<7#kF);Ea&mxlUK76qObyWYBO3j}v6*!RGSb<;YOPPQaUa2_%i~Q tJO4KHz2to|AZx&3KxJ_C4`gNXthkN&KMLL{kN;#8mFmCn|J%RK|1Wf@mumn3 diff --git a/org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitDataModelMigration.java b/org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitDataModelMigration.java index 8fedcf521..124795000 100644 --- a/org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitDataModelMigration.java +++ b/org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitDataModelMigration.java @@ -17,6 +17,7 @@ package org.argeo.jackrabbit; import java.io.InputStreamReader; import java.io.Reader; +import java.net.URL; import javax.jcr.Session; @@ -28,7 +29,6 @@ import org.apache.jackrabbit.core.config.RepositoryConfig; import org.argeo.jcr.ArgeoJcrException; import org.argeo.jcr.JcrCallback; import org.argeo.jcr.JcrUtils; -import org.springframework.core.io.Resource; /** Migrate the data in a Jackrabbit repository. */ @Deprecated @@ -39,7 +39,7 @@ public class JackrabbitDataModelMigration implements private String dataModelNodePath; private String targetVersion; - private Resource migrationCnd; + private URL migrationCnd; private JcrCallback dataModification; /** @@ -72,7 +72,7 @@ public class JackrabbitDataModelMigration implements // apply transitional CND if (migrationCnd != null) { - reader = new InputStreamReader(migrationCnd.getInputStream()); + reader = new InputStreamReader(migrationCnd.openStream()); CndImporter.registerNodeTypes(reader, session, true); session.save(); log.info("Registered migration node types from " + migrationCnd); @@ -163,7 +163,7 @@ public class JackrabbitDataModelMigration implements this.targetVersion = targetVersion; } - public void setMigrationCnd(Resource migrationCnd) { + public void setMigrationCnd(URL migrationCnd) { this.migrationCnd = migrationCnd; } diff --git a/org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java b/org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java deleted file mode 100644 index f7e882e7b..000000000 --- a/org.argeo.jcr/src/org/argeo/jackrabbit/JackrabbitRepositoryFactory.java +++ /dev/null @@ -1,200 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed 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.argeo.jackrabbit; - -import java.io.File; -import java.io.InputStream; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.HashMap; -import java.util.Map; -import java.util.Properties; - -import javax.jcr.Repository; -import javax.jcr.RepositoryException; -import javax.jcr.RepositoryFactory; -import javax.jcr.Session; - -import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.jackrabbit.commons.JcrUtils; -import org.apache.jackrabbit.core.RepositoryImpl; -import org.apache.jackrabbit.core.config.RepositoryConfig; -import org.apache.jackrabbit.core.config.RepositoryConfigurationParser; -import org.apache.jackrabbit.jcr2dav.Jcr2davRepositoryFactory; -import org.argeo.jcr.ArgeoJcrException; -import org.springframework.core.io.ClassPathResource; -import org.springframework.core.io.Resource; -import org.xml.sax.InputSource; - -/** - * Repository factory which can create new repositories and access remote - * Jackrabbit repositories - */ -@Deprecated -public class JackrabbitRepositoryFactory implements RepositoryFactory { - // FIXME factorize with node - /** Key for a JCR repository alias */ - public final static String JCR_REPOSITORY_ALIAS = "argeo.jcr.repository.alias"; - /** Key for a JCR repository URI */ - public final static String JCR_REPOSITORY_URI = "argeo.jcr.repository.uri"; - - private final static Log log = LogFactory - .getLog(JackrabbitRepositoryFactory.class); - - private Resource fileRepositoryConfiguration = new ClassPathResource( - "/org/argeo/jackrabbit/repository-h2.xml"); - - @SuppressWarnings({ "rawtypes" }) - public Repository getRepository(Map parameters) throws RepositoryException { - // // check if can be found by alias - // Repository repository = super.getRepository(parameters); - // if (repository != null) - // return repository; - - // check if remote - Repository repository; - String uri = null; - if (parameters.containsKey(JCR_REPOSITORY_URI)) - uri = parameters.get(JCR_REPOSITORY_URI).toString(); - else if (parameters.containsKey(JcrUtils.REPOSITORY_URI)) - uri = parameters.get(JcrUtils.REPOSITORY_URI).toString(); - - if (uri != null) { - if (uri.startsWith("http"))// http, https - repository = createRemoteRepository(uri); - else if (uri.startsWith("file"))// http, https - repository = createFileRepository(uri, parameters); - else if (uri.startsWith("vm")) { - log.warn("URI " - + uri - + " should have been managed by generic JCR repository factory"); - repository = getRepositoryByAlias(getAliasFromURI(uri)); - } else - throw new ArgeoJcrException("Unrecognized URI format " + uri); - - } - - else if (parameters.containsKey(JCR_REPOSITORY_ALIAS)) { - // Properties properties = new Properties(); - // properties.putAll(parameters); - String alias = parameters.get(JCR_REPOSITORY_ALIAS).toString(); - // publish(alias, repository, properties); - // log.info("Registered JCR repository under alias '" + alias + "' - // with properties " + properties); - repository = getRepositoryByAlias(alias); - } else - throw new ArgeoJcrException("Not enough information in " - + parameters); - - if (repository == null) - throw new ArgeoJcrException("Repository not found " + parameters); - - return repository; - } - - protected Repository getRepositoryByAlias(String alias) { - return null; - } - - protected Repository createRemoteRepository(String uri) - throws RepositoryException { - Map params = new HashMap(); - params.put(JcrUtils.REPOSITORY_URI, uri); - Repository repository = new Jcr2davRepositoryFactory() - .getRepository(params); - if (repository == null) - throw new ArgeoJcrException("Remote Davex repository " + uri - + " not found"); - log.info("Initialized remote Jackrabbit repository from uri " + uri); - return repository; - } - - @SuppressWarnings({ "rawtypes", "unchecked" }) - protected Repository createFileRepository(final String uri, Map parameters) - throws RepositoryException { - InputStream configurationIn = null; - try { - Properties vars = new Properties(); - vars.putAll(parameters); - String dirPath = uri.substring("file:".length()); - File homeDir = new File(dirPath); - if (homeDir.exists() && !homeDir.isDirectory()) - throw new ArgeoJcrException("Repository home " + dirPath - + " is not a directory"); - if (!homeDir.exists()) - homeDir.mkdirs(); - configurationIn = fileRepositoryConfiguration.getInputStream(); - vars.put(RepositoryConfigurationParser.REPOSITORY_HOME_VARIABLE, - homeDir.getCanonicalPath()); - RepositoryConfig repositoryConfig = RepositoryConfig.create( - new InputSource(configurationIn), vars); - - // TransientRepository repository = new - // TransientRepository(repositoryConfig); - final RepositoryImpl repository = RepositoryImpl - .create(repositoryConfig); - Session session = repository.login(); - // FIXME make it generic - org.argeo.jcr.JcrUtils.addPrivilege(session, "/", "ROLE_ADMIN", - "jcr:all"); - org.argeo.jcr.JcrUtils.logoutQuietly(session); - Runtime.getRuntime().addShutdownHook( - new Thread("Clean JCR repository " + uri) { - public void run() { - repository.shutdown(); - log.info("Destroyed repository " + uri); - } - }); - log.info("Initialized file Jackrabbit repository from uri " + uri); - return repository; - } catch (Exception e) { - throw new ArgeoJcrException("Cannot create repository " + uri, e); - } finally { - IOUtils.closeQuietly(configurationIn); - } - } - - protected String getAliasFromURI(String uri) { - try { - URI uriObj = new URI(uri); - String alias = uriObj.getPath(); - if (alias.charAt(0) == '/') - alias = alias.substring(1); - if (alias.charAt(alias.length() - 1) == '/') - alias = alias.substring(0, alias.length() - 1); - return alias; - } catch (URISyntaxException e) { - throw new ArgeoJcrException("Cannot interpret URI " + uri, e); - } - } - - /** - * Called after the repository has been initialised. Does nothing by - * default. - */ - @SuppressWarnings("rawtypes") - protected void postInitialization(Repository repository, Map parameters) { - - } - - public void setFileRepositoryConfiguration( - Resource fileRepositoryConfiguration) { - this.fileRepositoryConfiguration = fileRepositoryConfiguration; - } - -} diff --git a/org.argeo.jcr/src/org/argeo/jcr/JcrResourceAdapter.java b/org.argeo.jcr/src/org/argeo/jcr/JcrResourceAdapter.java deleted file mode 100644 index be7bf4959..000000000 --- a/org.argeo.jcr/src/org/argeo/jcr/JcrResourceAdapter.java +++ /dev/null @@ -1,245 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed 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.argeo.jcr; - -import java.io.InputStream; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.List; - -import javax.jcr.Binary; -import javax.jcr.Node; -import javax.jcr.Property; -import javax.jcr.RepositoryException; -import javax.jcr.Session; -import javax.jcr.nodetype.NodeType; -import javax.jcr.version.Version; -import javax.jcr.version.VersionHistory; -import javax.jcr.version.VersionIterator; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -/** - * Bridge Spring resources and JCR folder / files semantics (nt:folder / - * nt:file), supporting versioning as well. - */ -@Deprecated -public class JcrResourceAdapter { - private final static Log log = LogFactory.getLog(JcrResourceAdapter.class); - - private Session session; - - private Boolean versioning = true; - private String defaultEncoding = "UTF-8"; - - // private String restoreBase = "/.restore"; - - public JcrResourceAdapter() { - } - - public JcrResourceAdapter(Session session) { - this.session = session; - } - - public void mkdirs(String path) { - JcrUtils.mkdirs(session(), path, NodeType.NT_FOLDER, - NodeType.NT_FOLDER, versioning); - } - - public void create(String path, InputStream in, String mimeType) { - try { - if (session().itemExists(path)) { - throw new ArgeoJcrException("Node " + path + " already exists."); - } - - int index = path.lastIndexOf('/'); - String parentPath = path.substring(0, index); - if (parentPath.equals("")) - parentPath = "/"; - String fileName = path.substring(index + 1); - if (!session().itemExists(parentPath)) - throw new ArgeoJcrException("Parent folder of node " + path - + " does not exist: " + parentPath); - - Node folderNode = (Node) session().getItem(parentPath); - Node fileNode = folderNode.addNode(fileName, "nt:file"); - - Node contentNode = fileNode.addNode(Property.JCR_CONTENT, - "nt:resource"); - if (mimeType != null) - contentNode.setProperty(Property.JCR_MIMETYPE, mimeType); - contentNode.setProperty(Property.JCR_ENCODING, defaultEncoding); - Binary binary = session().getValueFactory().createBinary(in); - contentNode.setProperty(Property.JCR_DATA, binary); - JcrUtils.closeQuietly(binary); - Calendar lastModified = Calendar.getInstance(); - // lastModified.setTimeInMillis(file.lastModified()); - contentNode.setProperty(Property.JCR_LAST_MODIFIED, lastModified); - // resNode.addMixin("mix:referenceable"); - - if (versioning) - fileNode.addMixin("mix:versionable"); - - session().save(); - - if (versioning) - session().getWorkspace().getVersionManager() - .checkin(fileNode.getPath()); - - if (log.isDebugEnabled()) - log.debug("Created " + path); - } catch (Exception e) { - throw new ArgeoJcrException("Cannot create node for " + path, e); - } - - } - - public void update(String path, InputStream in) { - try { - - if (!session().itemExists(path)) { - String type = null; - // FIXME: using javax.activation leads to conflict between Java - // 1.5 and 1.6 (since javax.activation was included in Java 1.6) - // String type = new MimetypesFileTypeMap() - // .getContentType(FilenameUtils.getName(path)); - create(path, in, type); - return; - } - - Node fileNode = (Node) session().getItem(path); - Node contentNode = fileNode.getNode(Property.JCR_CONTENT); - if (versioning) - session().getWorkspace().getVersionManager() - .checkout(fileNode.getPath()); - Binary binary = session().getValueFactory().createBinary(in); - contentNode.setProperty(Property.JCR_DATA, binary); - JcrUtils.closeQuietly(binary); - Calendar lastModified = Calendar.getInstance(); - // lastModified.setTimeInMillis(file.lastModified()); - contentNode.setProperty(Property.JCR_LAST_MODIFIED, lastModified); - - session().save(); - if (versioning) - session().getWorkspace().getVersionManager() - .checkin(fileNode.getPath()); - - if (log.isDebugEnabled()) - log.debug("Updated " + path); - } catch (Exception e) { - throw new ArgeoJcrException("Cannot update node " + path, e); - } - } - - public List listVersions(String path) { - if (!versioning) - throw new ArgeoJcrException("Versioning is not activated"); - - try { - List versions = new ArrayList(); - Node fileNode = (Node) session().getItem(path); - VersionHistory history = session().getWorkspace() - .getVersionManager().getVersionHistory(fileNode.getPath()); - for (VersionIterator it = history.getAllVersions(); it.hasNext();) { - Version version = (Version) it.next(); - versions.add(version.getCreated()); - if (log.isTraceEnabled()) { - log.debug(version); - // debug(version); - } - } - return versions; - } catch (Exception e) { - throw new ArgeoJcrException("Cannot list version of node " + path, e); - } - } - - public InputStream retrieve(String path) { - try { - Node node = (Node) session().getItem( - path + "/" + Property.JCR_CONTENT); - Property property = node.getProperty(Property.JCR_DATA); - return property.getBinary().getStream(); - } catch (Exception e) { - throw new ArgeoJcrException("Cannot retrieve " + path, e); - } - } - - public synchronized InputStream retrieve(String path, Integer revision) { - if (!versioning) - throw new ArgeoJcrException("Versioning is not activated"); - - try { - Node fileNode = (Node) session().getItem(path); - VersionHistory history = session().getWorkspace() - .getVersionManager().getVersionHistory(fileNode.getPath()); - int count = 0; - Version version = null; - for (VersionIterator it = history.getAllVersions(); it.hasNext();) { - version = (Version) it.next(); - if (count == revision + 1) { - InputStream in = fromVersion(version); - if (log.isDebugEnabled()) - log.debug("Retrieved " + path + " at revision " - + revision); - return in; - } - count++; - } - } catch (Exception e) { - throw new ArgeoJcrException("Cannot retrieve version " + revision - + " of " + path, e); - } - - throw new ArgeoJcrException("Version " + revision - + " does not exist for node " + path); - } - - protected InputStream fromVersion(Version version) - throws RepositoryException { - Node frozenNode = version.getNode("jcr:frozenNode"); - InputStream in = frozenNode.getNode(Property.JCR_CONTENT) - .getProperty(Property.JCR_DATA).getBinary().getStream(); - return in; - } - - protected Session session() { - return session; - } - - public void setVersioning(Boolean versioning) { - this.versioning = versioning; - } - - public void setDefaultEncoding(String defaultEncoding) { - this.defaultEncoding = defaultEncoding; - } - - protected String fill(Integer number) { - int size = 4; - String str = number.toString(); - for (int i = str.length(); i < size; i++) { - str = "0" + str; - } - return str; - } - - public void setSession(Session session) { - this.session = session; - } - -} diff --git a/org.argeo.jcr/src/org/argeo/jcr/spring/ThreadBoundSession.java b/org.argeo.jcr/src/org/argeo/jcr/spring/ThreadBoundSession.java deleted file mode 100644 index 35f021555..000000000 --- a/org.argeo.jcr/src/org/argeo/jcr/spring/ThreadBoundSession.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2007-2012 Argeo GmbH - * - * Licensed 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.argeo.jcr.spring; - -import org.argeo.jcr.ThreadBoundJcrSessionFactory; -import org.springframework.beans.factory.DisposableBean; -import org.springframework.beans.factory.FactoryBean; -import org.springframework.beans.factory.InitializingBean; - -@SuppressWarnings("rawtypes") -@Deprecated -public class ThreadBoundSession extends ThreadBoundJcrSessionFactory implements FactoryBean, InitializingBean, DisposableBean{ - public void afterPropertiesSet() throws Exception { - init(); - } - - public void destroy() throws Exception { - dispose(); - } - -} diff --git a/pom.xml b/pom.xml index 4efd8d8fc..1c9976a63 100644 --- a/pom.xml +++ b/pom.xml @@ -22,8 +22,8 @@ org.argeo.util org.argeo.enterprise org.argeo.jcr - org.argeo.sync org.argeo.osgi.boot + org.argeo.core org.argeo.eclipse.ui org.argeo.eclipse.ui.rap -- 2.30.2