You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/10/04 15:26:07 UTC
svn commit: r1004230 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/
Author: jukka
Date: Mon Oct 4 13:26:07 2010
New Revision: 1004230
URL: http://svn.apache.org/viewvc?rev=1004230&view=rev
Log:
JCR-2762: Optimize bundle serialization
Remove unused code from BundleReader and BundleWriter.
Un-deprecate the BLOBStore class to avoid deprecation warnings from all over the place where we still need id for backwards compatibility.
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BLOBStore.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleBinding.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleReader.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleWriter.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/NodePropBundle.java
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/ResourceBasedBLOBStore.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BLOBStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BLOBStore.java?rev=1004230&r1=1004229&r2=1004230&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BLOBStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BLOBStore.java Mon Oct 4 13:26:07 2010
@@ -23,8 +23,10 @@ import java.io.InputStream;
/**
* <code>BLOBStore</code> represents an abstract store for binary property
* values (BLOBs).
- *
- * @deprecated the DataStore should be used instead
+ * <p>
+ * Note that The DataStore should nowadays be used instead of the BLOBStore.
+ * This interface and the implementing classes are kept mostly for backwards
+ * compatibility.
*
* @see ResourceBasedBLOBStore
*/
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleBinding.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleBinding.java?rev=1004230&r1=1004229&r2=1004230&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleBinding.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleBinding.java Mon Oct 4 13:26:07 2010
@@ -61,7 +61,6 @@ public class BundleBinding {
/**
* the blob store
*/
- @SuppressWarnings("deprecation")
protected final BLOBStore blobStore;
/**
@@ -88,7 +87,6 @@ public class BundleBinding {
* @param nameIndex the name index
* @param dataStore the data store
*/
- @SuppressWarnings("deprecation")
public BundleBinding(
ErrorHandling errorHandling, BLOBStore blobStore,
StringIndex nsIndex, StringIndex nameIndex, DataStore dataStore) {
@@ -123,7 +121,6 @@ public class BundleBinding {
* Returns the blob store that is assosiated with this binding.
* @return the blob store
*/
- @SuppressWarnings("deprecation")
public BLOBStore getBlobStore() {
return blobStore;
}
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleReader.java?rev=1004230&r1=1004229&r2=1004230&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleReader.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleReader.java Mon Oct 4 13:26:07 2010
@@ -20,8 +20,6 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.apache.jackrabbit.core.id.NodeId;
import org.apache.jackrabbit.core.id.PropertyId;
-import org.apache.jackrabbit.core.persistence.PersistenceManager;
-import org.apache.jackrabbit.core.state.NodeState;
import org.apache.jackrabbit.core.value.InternalValue;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.commons.name.NameFactoryImpl;
@@ -504,64 +502,6 @@ class BundleReader {
}
/**
- * Deserializes a <code>NodeState</code> from the data input stream.
- *
- * @param id the id of the nodestate to read
- * @param pMgr the persistence manager
- * @return the node state
- * @throws IOException in an I/O error occurs.
- */
- private NodeState readState(NodeId id, PersistenceManager pMgr)
- throws IOException {
- NodeState state = pMgr.createNew(id);
- // primaryType & version
- int index = in.readInt();
- int version = (index >> 24) & 0x0ff;
- String uri = binding.nsIndex.indexToString(index & 0x0ffffff);
- String local = in.readUTF();
- state.setNodeTypeName(NameFactoryImpl.getInstance().create(uri, local));
-
- // parentUUID
- state.setParentId(readNodeId());
- // definitionId
- in.readUTF();
-
- // mixin types
- int count = in.readInt(); // count
- Set<Name> set = new HashSet<Name>(count);
- for (int i = 0; i < count; i++) {
- set.add(readQName()); // name
- }
- if (set.size() > 0) {
- state.setMixinTypeNames(set);
- }
- // properties (names)
- count = in.readInt(); // count
- for (int i = 0; i < count; i++) {
- state.addPropertyName(readIndexedQName()); // name
- }
- // child nodes (list of name/uuid pairs)
- count = in.readInt(); // count
- for (int i = 0; i < count; i++) {
- Name name = readQName();
- NodeId parentId = readNodeId();
- state.addChildNodeEntry(name, parentId);
- }
-
- if (version >= BundleBinding.VERSION_1) {
- state.setModCount(readModCount());
- }
- if (version >= BundleBinding.VERSION_2) {
- // shared set (list of parent uuids)
- count = in.readInt(); // count
- for (int i = 0; i < count; i++) {
- state.addShare(readNodeId());
- }
- }
- return state;
- }
-
- /**
* Deserializes a node identifier
*
* @return the node id
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleWriter.java?rev=1004230&r1=1004229&r2=1004230&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleWriter.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/BundleWriter.java Mon Oct 4 13:26:07 2010
@@ -16,29 +16,25 @@
*/
package org.apache.jackrabbit.core.persistence.util;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.apache.commons.io.IOUtils;
-import org.apache.jackrabbit.core.id.NodeId;
-import org.apache.jackrabbit.core.state.ChildNodeEntry;
-import org.apache.jackrabbit.core.state.NodeState;
-import org.apache.jackrabbit.core.value.InternalValue;
-import org.apache.jackrabbit.core.data.DataStore;
-import org.apache.jackrabbit.spi.Name;
-import org.apache.jackrabbit.spi.commons.name.NameConstants;
-
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
-import java.util.Collection;
-import java.util.Iterator;
import javax.jcr.PropertyType;
import javax.jcr.RepositoryException;
+import org.apache.commons.io.IOUtils;
+import org.apache.jackrabbit.core.data.DataStore;
+import org.apache.jackrabbit.core.id.NodeId;
+import org.apache.jackrabbit.core.value.InternalValue;
+import org.apache.jackrabbit.spi.Name;
+import org.apache.jackrabbit.spi.commons.name.NameConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
/**
* Bundle serializater.
*
@@ -316,52 +312,6 @@ class BundleWriter {
}
/**
- * Serializes a <code>NodeState</code> to the data output stream
- *
- * @param state the state to write
- * @throws IOException in an I/O error occurs.
- */
- private void writeState(NodeState state) throws IOException {
- // primaryType & version
- out.writeInt((BundleBinding.VERSION_CURRENT << 24)
- | binding.nsIndex.stringToIndex(state.getNodeTypeName().getNamespaceURI()));
- out.writeUTF(state.getNodeTypeName().getLocalName());
- // parentUUID
- writeNodeId(state.getParentId());
- // definitionId
- out.writeUTF("");
- // mixin types
- Collection<Name> c = state.getMixinTypeNames();
- out.writeInt(c.size()); // count
- for (Iterator<Name> iter = c.iterator(); iter.hasNext();) {
- writeQName(iter.next());
- }
- // properties (names)
- c = state.getPropertyNames();
- out.writeInt(c.size()); // count
- for (Iterator<Name> iter = c.iterator(); iter.hasNext();) {
- Name pName = iter.next();
- writeIndexedQName(pName);
- }
- // child nodes (list of name/uuid pairs)
- Collection<ChildNodeEntry> collChild = state.getChildNodeEntries();
- out.writeInt(collChild.size()); // count
- for (Iterator<ChildNodeEntry> iter = collChild.iterator(); iter.hasNext();) {
- ChildNodeEntry entry = iter.next();
- writeQName(entry.getName()); // name
- writeNodeId(entry.getId()); // uuid
- }
- writeModCount(state.getModCount());
-
- // shared set (list of parent uuids)
- Collection<NodeId> collShared = state.getSharedSet();
- out.writeInt(collShared.size()); // count
- for (Iterator<NodeId> iter = collShared.iterator(); iter.hasNext();) {
- writeNodeId(iter.next());
- }
- }
-
- /**
* Serializes a node identifier
*
* @param id the node id
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java?rev=1004230&r1=1004229&r2=1004230&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/FileSystemBLOBStore.java Mon Oct 4 13:26:07 2010
@@ -28,8 +28,8 @@ import java.io.OutputStream;
/**
* <code>FileSystemBLOBStore</code> is a <code>ResourceBasedBLOBStore</code>
* implementation that stores BLOB data in a <code>FileSystem</code>.
- *
- * @deprecated the FileDataStore should be used instead
+ * <p>
+ * Note that The DataStore should nowadays be used instead of the BLOBStore.
*/
public class FileSystemBLOBStore implements ResourceBasedBLOBStore {
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/NodePropBundle.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/NodePropBundle.java?rev=1004230&r1=1004229&r2=1004230&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/NodePropBundle.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/NodePropBundle.java Mon Oct 4 13:26:07 2010
@@ -331,7 +331,6 @@ public class NodePropBundle {
* @param state the property state
* @param blobStore BLOB store from where to delete previous property value
*/
- @SuppressWarnings("deprecation")
public void addProperty(PropertyState state, BLOBStore blobStore) {
PropertyEntry old =
properties.put(state.getName(), new PropertyEntry(state));
@@ -383,7 +382,6 @@ public class NodePropBundle {
*
* @param blobStore BLOB store from where to delete property values
*/
- @SuppressWarnings("deprecation")
public void removeAllProperties(BLOBStore blobStore) {
for (Name name : new HashSet<Name>(properties.keySet())) {
removeProperty(name, blobStore);
@@ -396,7 +394,6 @@ public class NodePropBundle {
* @param name the name of the property
* @param blobStore BLOB store from where to delete the property value
*/
- @SuppressWarnings("deprecation")
public void removeProperty(Name name, BLOBStore blobStore) {
PropertyEntry pe = properties.remove(name);
if (pe != null) {
@@ -726,7 +723,6 @@ public class NodePropBundle {
* Destroys this property state and deletes temporary blob file values.
* @param blobStore the blobstore that will destroy the blobs
*/
- @SuppressWarnings("deprecation")
private void destroy(BLOBStore blobStore) {
// delete blobs if needed
for (int i = 0; blobIds != null && i < blobIds.length; i++) {
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/ResourceBasedBLOBStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/ResourceBasedBLOBStore.java?rev=1004230&r1=1004229&r2=1004230&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/ResourceBasedBLOBStore.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/persistence/util/ResourceBasedBLOBStore.java Mon Oct 4 13:26:07 2010
@@ -21,8 +21,8 @@ import org.apache.jackrabbit.core.fs.Fil
/**
* <code>ResourceBasedBLOBStore</code> extends the <code>BLOBStore</code>
* interface with the method {@link #getResource(String)}
- *
- * @deprecated the DataStore should be used instead
+ * <p>
+ * Note that The DataStore should nowadays be used instead of the BLOBStore.
*/
public interface ResourceBasedBLOBStore extends BLOBStore {
/**