You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by en...@apache.org on 2018/12/06 22:30:03 UTC
[sling-org-apache-sling-jcr-contentloader] branch master updated:
SLING-8166 Replace usage of deprecated APIs
This is an automated email from the ASF dual-hosted git repository.
enorman pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-contentloader.git
The following commit(s) were added to refs/heads/master by this push:
new 2777bd8 SLING-8166 Replace usage of deprecated APIs
2777bd8 is described below
commit 2777bd8a278d7c8e2691ec71ffa007084680b050
Author: Eric Norman <en...@apache.org>
AuthorDate: Thu Dec 6 14:29:57 2018 -0800
SLING-8166 Replace usage of deprecated APIs
---
.../sling/jcr/contentloader/ContentCreator.java | 4 +--
.../internal/BundleContentLoader.java | 5 ++--
.../internal/ContentLoaderService.java | 21 ++++++++++------
.../internal/DefaultContentCreator.java | 15 +++++++----
.../internal/DefaultContentImporter.java | 4 ++-
.../internal/ContentLoaderServiceTest.java | 15 ++++++++---
.../internal/DefaultContentCreatorTest.java | 16 +++++++-----
.../jcr/contentloader/internal/JsonReaderTest.java | 10 +++-----
.../jcr/contentloader/internal/PathEntryTest.java | 29 ++++++++++++++--------
.../internal/readers/OrderedJsonReaderTest.java | 3 ---
.../internal/readers/XmlReaderTest.java | 4 +--
11 files changed, 78 insertions(+), 48 deletions(-)
diff --git a/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java b/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java
index b33d1c8..b53e71a 100644
--- a/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java
+++ b/src/main/java/org/apache/sling/jcr/contentloader/ContentCreator.java
@@ -116,10 +116,10 @@ public interface ContentCreator {
* If the path does not exist and node type is null, false is
* returned.
* When the changes to the node are finished, {@link #finishNode()}
- * must be callsed.
+ * must be called.
*
* @param subPath The relative path
- * @param newNodeType Node typ for newly created nodes.
+ * @param newNodeType Node type for newly created nodes.
* @throws RepositoryException
*/
boolean switchCurrentNode(String subPath, String newNodeType) throws RepositoryException;
diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java
index 72d496d..2d7be2c 100644
--- a/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java
+++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/BundleContentLoader.java
@@ -40,6 +40,7 @@ import javax.jcr.NoSuchWorkspaceException;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.version.VersionManager;
import org.apache.commons.io.IOUtils;
import org.apache.sling.jcr.contentloader.ContentReader;
@@ -265,7 +266,8 @@ public class BundleContentLoader extends BaseImportLoader {
// finally check in versionable nodes
for (final Node versionable : contentCreator.getVersionables()) {
- versionable.checkin();
+ VersionManager versionManager = versionable.getSession().getWorkspace().getVersionManager();
+ versionManager.checkin(versionable.getPath());
}
} finally {
try {
@@ -307,7 +309,6 @@ public class BundleContentLoader extends BaseImportLoader {
final Map<String, Node> processedEntries = new HashMap<String, Node>();
- @SuppressWarnings("unchecked")
Enumeration<String> entries = bundle.getEntryPaths(path);
if (entries == null) {
// check for single content
diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
index 7645066..29968a1 100644
--- a/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
+++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderService.java
@@ -31,6 +31,7 @@ import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.Value;
import javax.jcr.lock.LockException;
+import javax.jcr.lock.LockManager;
import org.apache.sling.commons.mime.MimeTypeService;
import org.apache.sling.jcr.api.SlingRepository;
@@ -201,7 +202,7 @@ public class ContentLoaderService implements SynchronousBundleListener, BundleHe
final String token = st.nextToken();
if ( !node.hasNode(token) ) {
node.addNode(token, "sling:Folder");
- node.save();
+ writerSession.save();
}
node = node.getNode(token);
}
@@ -209,7 +210,7 @@ public class ContentLoaderService implements SynchronousBundleListener, BundleHe
}
if ( !node.hasNode(path) ) {
node.addNode(path, "sling:Folder");
- node.save();
+ writerSession.save();
}
}
}
@@ -337,7 +338,7 @@ public class ContentLoaderService implements SynchronousBundleListener, BundleHe
try {
final Node bcNode = parentNode.addNode(nodeName, "nt:unstructured");
bcNode.addMixin("mix:lockable");
- parentNode.save();
+ session.save();
} catch (RepositoryException re) {
// for concurrency issues (running in a cluster) we ignore exceptions
this.log.warn("Unable to create node " + nodeName, re);
@@ -349,7 +350,12 @@ public class ContentLoaderService implements SynchronousBundleListener, BundleHe
return null;
}
try {
- bcNode.lock(false, true);
+ LockManager lockManager = session.getWorkspace().getLockManager();
+ lockManager.lock(bcNode.getPath(),
+ false, // isDeep
+ true, // isSessionScoped
+ Long.MAX_VALUE, // timeoutHint
+ null); // ownerInfo
} catch (LockException le) {
return null;
}
@@ -392,9 +398,10 @@ public class ContentLoaderService implements SynchronousBundleListener, BundleHe
if ( createdNodes != null && createdNodes.size() > 0 ) {
bcNode.setProperty(PROPERTY_UNINSTALL_PATHS, createdNodes.toArray(new String[createdNodes.size()]));
}
- bcNode.save();
+ session.save();
}
- bcNode.unlock();
+ LockManager lockManager = session.getWorkspace().getLockManager();
+ lockManager.unlock(bcNode.getPath());
}
@Override
@@ -409,7 +416,7 @@ public class ContentLoaderService implements SynchronousBundleListener, BundleHe
bcNode.setProperty(PROPERTY_CONTENT_UNLOADED_AT, Calendar.getInstance());
bcNode.setProperty(PROPERTY_CONTENT_UNLOADED_BY, this.slingId);
bcNode.setProperty(PROPERTY_UNINSTALL_PATHS, (String[])null);
- bcNode.save();
+ session.save();
}
} catch (RepositoryException re) {
this.log.error("Unable to update bundle content info.", re);
diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
index 49c4a97..03650d2 100644
--- a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
+++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreator.java
@@ -35,6 +35,7 @@ import java.util.Set;
import java.util.Stack;
import java.util.StringTokenizer;
+import javax.jcr.Binary;
import javax.jcr.Item;
import javax.jcr.ItemNotFoundException;
import javax.jcr.Node;
@@ -43,6 +44,7 @@ import javax.jcr.RepositoryException;
import javax.jcr.Session;
import javax.jcr.Value;
import javax.jcr.ValueFactory;
+import javax.jcr.version.VersionManager;
import org.apache.jackrabbit.api.security.principal.PrincipalManager;
import org.apache.jackrabbit.api.security.user.Authorizable;
@@ -379,7 +381,7 @@ public class DefaultContentCreator implements ContentCreator {
}
}
- protected Value createValue(final ValueFactory factory, Object value) {
+ protected Value createValue(final ValueFactory factory, Object value) throws RepositoryException {
if (value == null) {
return null;
}
@@ -396,7 +398,8 @@ public class DefaultContentCreator implements ContentCreator {
} else if (value instanceof Boolean) {
return factory.createValue((Boolean) value);
} else if (value instanceof InputStream) {
- return factory.createValue((InputStream) value);
+ Binary binary = factory.createBinary((InputStream)value);
+ return factory.createValue(binary);
} else {
return factory.createValue(value.toString());
}
@@ -454,7 +457,7 @@ public class DefaultContentCreator implements ContentCreator {
if (item.isNode()) {
Node refNode = (Node) item;
if (refNode.isNodeType("mix:referenceable")) {
- return refNode.getUUID();
+ return refNode.getIdentifier();
}
}
} else {
@@ -483,7 +486,7 @@ public class DefaultContentCreator implements ContentCreator {
}
Session session = node.getSession();
- String uuid = node.getUUID();
+ String uuid = node.getIdentifier();
for (String property : props) {
String name = getName(property);
@@ -879,7 +882,9 @@ public class DefaultContentCreator implements ContentCreator {
Node versionableNode = findVersionableAncestor(node);
if (versionableNode != null) {
if (!versionableNode.isCheckedOut()) {
- versionableNode.checkout();
+ VersionManager versionManager = versionableNode.getSession().getWorkspace().getVersionManager();
+ versionManager.checkout(versionableNode.getPath());
+
if (this.importListener != null) {
this.importListener.onCheckout(versionableNode.getPath());
}
diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java
index 47e5b36..e11495c 100644
--- a/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java
+++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/DefaultContentImporter.java
@@ -26,6 +26,7 @@ import java.util.List;
import javax.jcr.Node;
import javax.jcr.RepositoryException;
import javax.jcr.Session;
+import javax.jcr.version.VersionManager;
import org.apache.sling.commons.mime.MimeTypeService;
import org.apache.sling.jcr.contentloader.ContentImportListener;
@@ -126,7 +127,8 @@ public class DefaultContentImporter extends BaseImportLoader implements ContentH
// finally checkin versionable nodes
for (final Node versionable : contentCreator.getVersionables()) {
- versionable.checkin();
+ VersionManager versionManager = versionable.getSession().getWorkspace().getVersionManager();
+ versionManager.checkin(versionable.getPath());
if (importListener != null) {
importListener.onCheckin(versionable.getPath());
}
diff --git a/src/test/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderServiceTest.java b/src/test/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderServiceTest.java
index 0e7d02e..031724a 100644
--- a/src/test/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderServiceTest.java
+++ b/src/test/java/org/apache/sling/jcr/contentloader/internal/ContentLoaderServiceTest.java
@@ -31,6 +31,8 @@ import org.osgi.framework.Bundle;
import org.osgi.framework.BundleEvent;
import javax.jcr.*;
+import javax.jcr.lock.LockManager;
+
import java.util.*;
import static org.junit.Assert.*;
@@ -71,8 +73,10 @@ public class ContentLoaderServiceTest {
@Test
public void testBundleResolvedBundleChanged() throws NoSuchFieldException, RepositoryException {
final Bundle bundle = createNewBundle();
- final List<Bundle> delayedBundles = (List<Bundle>) PrivateAccessor.getField(contentLoader, "delayedBundles");
- final Set<String> updatedBundles = (Set<String>) PrivateAccessor.getField(underTest, "updatedBundles");
+ @SuppressWarnings("unchecked")
+ final List<Bundle> delayedBundles = (List<Bundle>) PrivateAccessor.getField(contentLoader, "delayedBundles");
+ @SuppressWarnings("unchecked")
+ final Set<String> updatedBundles = (Set<String>) PrivateAccessor.getField(underTest, "updatedBundles");
updatedBundles.add(bundle.getSymbolicName());
int updatedBundlesCurrentAmout = updatedBundles.size();
@@ -96,7 +100,12 @@ public class ContentLoaderServiceTest {
final Node bcNode = (Node)session.getItem(ContentLoaderService.BUNDLE_CONTENT_NODE);
bcNode.addNode(bundle.getSymbolicName()).addMixin("mix:lockable");
session.save();
- bcNode.getNode(bundle.getSymbolicName()).lock(false, true);
+ LockManager lockManager = session.getWorkspace().getLockManager();
+ lockManager.lock(bcNode.getNode(bundle.getSymbolicName()).getPath(),
+ false, // isDeep
+ true, // isSessionScoped
+ Long.MAX_VALUE, // timeoutHint
+ null); // ownerInfo
assertNull(underTest.getBundleContentInfo(session, bundle, false));
}
diff --git a/src/test/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreatorTest.java b/src/test/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreatorTest.java
index 0316ce0..4f56932 100644
--- a/src/test/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreatorTest.java
+++ b/src/test/java/org/apache/sling/jcr/contentloader/internal/DefaultContentCreatorTest.java
@@ -141,7 +141,7 @@ public class DefaultContentCreatorTest {
exactly(2).of(parentNode).getPath(); will(returnValue("/" + rootNodeName));
oneOf(parentNode).isNode(); will(returnValue(true));
oneOf(parentNode).isNodeType("mix:referenceable"); will(returnValue(true));
- oneOf(parentNode).getUUID(); will(returnValue(uuid));
+ oneOf(parentNode).getIdentifier(); will(returnValue(uuid));
oneOf(parentNode).getSession(); will(returnValue(session));
oneOf(parentNode).hasProperty(with(any(String.class)));
oneOf(parentNode).setProperty(propertyName, uuid, PropertyType.REFERENCE);
@@ -261,7 +261,8 @@ public class DefaultContentCreatorTest {
@Test
public void createNodeWithoutProvidedNames() throws RepositoryException, NoSuchFieldException {
- Stack nodesStack = (Stack)PrivateAccessor.getField(contentCreator, "parentNodeStack");
+ @SuppressWarnings("unchecked")
+ Stack<Node> nodesStack = (Stack<Node>)PrivateAccessor.getField(contentCreator, "parentNodeStack");
contentCreator.init(ImportOptionsFactory.createImportOptions(true, true, true, false, false),
new HashMap<String, ContentReader>(), null, null);
@@ -303,7 +304,8 @@ public class DefaultContentCreatorTest {
public void addMixinsToExistingNode() throws RepositoryException, NoSuchFieldException {
final String newNodeName = uniqueId();
final String[] mixins = {"mix:versionable"};
- final List<Node> versionables = (List<Node>) PrivateAccessor.getField(contentCreator, "versionables");
+ @SuppressWarnings("unchecked")
+ final List<Node> versionables = (List<Node>) PrivateAccessor.getField(contentCreator, "versionables");
contentCreator.init(ImportOptionsFactory.createImportOptions(false, false, false, true, false),
new HashMap<String, ContentReader>(), null, null);
@@ -364,7 +366,8 @@ public class DefaultContentCreatorTest {
final String propName = uniqueId();
final String[] propValues = {uniqueId(), uniqueId()};
final ContentImportListener listener = mockery.mock(ContentImportListener.class);
- final Map<String, String[]> delayedMultipleReferences =
+ @SuppressWarnings("unchecked")
+ final Map<String, String[]> delayedMultipleReferences =
(Map<String, String[]>)PrivateAccessor.getField(contentCreator, "delayedMultipleReferences");
this.mockery.checking(new Expectations(){{
oneOf(listener).onCreate(with(any(String.class)));
@@ -449,7 +452,8 @@ public class DefaultContentCreatorTest {
public void finishNodeWithMultipleProperty() throws RepositoryException, NoSuchFieldException {
final String propName = uniqueId();
final String underTestNodeName = uniqueId();
- final Map<String, List<String>> delayedMultipleReferences =
+ @SuppressWarnings("unchecked")
+ final Map<String, List<String>> delayedMultipleReferences =
(Map<String, List<String>>) PrivateAccessor.getField(contentCreator, "delayedMultipleReferences");
final ContentImportListener listener = mockery.mock(ContentImportListener.class);
@@ -494,7 +498,7 @@ public class DefaultContentCreatorTest {
underTest.addMixin("mix:referenceable");
contentCreator.finishNode();
- assertEquals(underTest.getUUID(), parentNode.getProperty(propName).getString());
+ assertEquals(underTest.getIdentifier(), parentNode.getProperty(propName).getString());
mockery.assertIsSatisfied();
}
diff --git a/src/test/java/org/apache/sling/jcr/contentloader/internal/JsonReaderTest.java b/src/test/java/org/apache/sling/jcr/contentloader/internal/JsonReaderTest.java
index 6aab2ac..91ffcd0 100644
--- a/src/test/java/org/apache/sling/jcr/contentloader/internal/JsonReaderTest.java
+++ b/src/test/java/org/apache/sling/jcr/contentloader/internal/JsonReaderTest.java
@@ -31,18 +31,16 @@ import javax.json.JsonWriter;
import org.apache.sling.jcr.contentloader.ContentCreator;
import org.apache.sling.jcr.contentloader.internal.readers.JsonReader;
import org.jmock.Expectations;
-import org.jmock.Mockery;
import org.jmock.Sequence;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.junit.runner.RunWith;
+import org.jmock.integration.junit4.JUnitRuleMockery;
+import org.junit.Rule;
-@RunWith(JMock.class)
public class JsonReaderTest {
protected JsonReader jsonReader;
- protected Mockery mockery = new JUnit4Mockery();
+ @Rule
+ public final JUnitRuleMockery mockery = new JUnitRuleMockery();
protected ContentCreator creator;
diff --git a/src/test/java/org/apache/sling/jcr/contentloader/internal/PathEntryTest.java b/src/test/java/org/apache/sling/jcr/contentloader/internal/PathEntryTest.java
index 611e7cd..6f3ea61 100644
--- a/src/test/java/org/apache/sling/jcr/contentloader/internal/PathEntryTest.java
+++ b/src/test/java/org/apache/sling/jcr/contentloader/internal/PathEntryTest.java
@@ -18,28 +18,35 @@
*/
package org.apache.sling.jcr.contentloader.internal;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import java.util.Dictionary;
+import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.Map;
+
import org.apache.sling.commons.osgi.ManifestHeader;
import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JMock;
-import org.jmock.integration.junit4.JUnit4Mockery;
+import org.jmock.integration.junit4.JUnitRuleMockery;
+import org.junit.Rule;
import org.junit.Test;
-import org.junit.runner.RunWith;
import org.osgi.framework.Bundle;
-import java.util.*;
-
-import static org.junit.Assert.*;
-
-@RunWith(JMock.class)
public class PathEntryTest {
final String pathEntryPath = "/test/path";
- Mockery mockery = new JUnit4Mockery();
+
+ @Rule
+ public final JUnitRuleMockery mockery = new JUnitRuleMockery();
@Test
public void testGetContentPaths(){
final Bundle bundle = mockery.mock(Bundle.class);
- final Dictionary<String, String> dict = new Hashtable();
+ final Dictionary<String, String> dict = new Hashtable<>();
dict.put("Bnd-LastModified", "1258555936230");
dict.put(PathEntry.CONTENT_HEADER, "test1, test2");
//PathEntry#getContentPaths should return this value
diff --git a/src/test/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReaderTest.java b/src/test/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReaderTest.java
index 11dde20..878a2c3 100644
--- a/src/test/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReaderTest.java
+++ b/src/test/java/org/apache/sling/jcr/contentloader/internal/readers/OrderedJsonReaderTest.java
@@ -20,15 +20,12 @@ package org.apache.sling.jcr.contentloader.internal.readers;
import org.apache.sling.jcr.contentloader.internal.JsonReaderTest;
import org.jmock.Expectations;
-import org.jmock.integration.junit4.JMock;
-import org.junit.runner.RunWith;
/**
* testing specific ordered json import case:
* - should work with all normal json cases,
* - should work for specific ordered case
*/
-@RunWith(JMock.class)
public class OrderedJsonReaderTest extends JsonReaderTest {
@Override
diff --git a/src/test/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReaderTest.java b/src/test/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReaderTest.java
index 8d7ad20..77b1755 100644
--- a/src/test/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReaderTest.java
+++ b/src/test/java/org/apache/sling/jcr/contentloader/internal/readers/XmlReaderTest.java
@@ -32,10 +32,10 @@ import java.util.Map;
import javax.jcr.RepositoryException;
-import junit.framework.TestCase;
-
import org.apache.sling.jcr.contentloader.ContentCreator;
+import junit.framework.TestCase;
+
public class XmlReaderTest extends TestCase {
private XmlReader reader;