From 22094368c2865dcfb6daf8366425212b721a4657 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Thu, 05 Feb 2009 17:42:14 +0000
Subject: [PATCH] Merge ASN1 branch to trunk

---
 opends/src/server/org/opends/server/backends/jeb/JebFormat.java |  239 -----------------------------------------------------------
 1 files changed, 0 insertions(+), 239 deletions(-)

diff --git a/opends/src/server/org/opends/server/backends/jeb/JebFormat.java b/opends/src/server/org/opends/server/backends/jeb/JebFormat.java
index 7a63e5d..c9f375d 100644
--- a/opends/src/server/org/opends/server/backends/jeb/JebFormat.java
+++ b/opends/src/server/org/opends/server/backends/jeb/JebFormat.java
@@ -26,23 +26,9 @@
  */
 package org.opends.server.backends.jeb;
 
-
-import org.opends.server.api.CompressedSchema;
-import org.opends.server.core.DirectoryServer;
-import org.opends.server.protocols.asn1.ASN1Element;
-import org.opends.server.protocols.asn1.ASN1Exception;
-import org.opends.server.protocols.asn1.ASN1Integer;
-import org.opends.server.protocols.asn1.ASN1OctetString;
-import org.opends.server.protocols.asn1.ASN1Sequence;
-import org.opends.server.types.*;
-
 import static org.opends.server.loggers.debug.DebugLogger.*;
 import org.opends.server.loggers.debug.DebugTracer;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.zip.DataFormatException;
-
 /**
  * Handles the disk representation of LDAP data.
  */
@@ -70,219 +56,6 @@
   public static final byte TAG_DIRECTORY_SERVER_ENTRY = 0x61;
 
   /**
-   * Decode a DatabaseEntry.  The encoded bytes may be compressed and/or
-   * encrypted.
-   *
-   * @param bytes The encoded bytes of a DatabaseEntry.
-   * @return The decoded bytes.
-   * @throws ASN1Exception If the data is not in the expected ASN.1 encoding
-   * format.
-   * @throws DataFormatException If an error occurs while trying to decompress
-   * compressed data.
-   */
-  static public byte[] decodeDatabaseEntry(byte[] bytes)
-       throws ASN1Exception,DataFormatException
-  {
-    // FIXME: This array copy could be very costly on performance. We need to
-    // FIXME: find a faster way to implement this versioning feature.
-    // Remove version number from the encoded bytes
-    byte[] encodedBytes = new byte[bytes.length - 1];
-    System.arraycopy(bytes, 1, encodedBytes, 0, encodedBytes.length);
-
-    // Decode the sequence.
-    List<ASN1Element> elements;
-    elements = ASN1Sequence.decodeAsSequence(encodedBytes).elements();
-
-    // Decode the uncompressed size.
-    int uncompressedSize;
-    uncompressedSize = elements.get(0).decodeAsInteger().intValue();
-
-    // Decode the data bytes.
-    byte[] dataBytes;
-    dataBytes = elements.get(1).decodeAsOctetString().value();
-
-    byte[] uncompressedBytes;
-    if (uncompressedSize == 0)
-    {
-      // The bytes are not compressed.
-      uncompressedBytes = dataBytes;
-    }
-    else
-    {
-      // The bytes are compressed.
-      CryptoManager cryptoManager = DirectoryServer.getCryptoManager();
-      uncompressedBytes = new byte[uncompressedSize];
-      /* int len = */ cryptoManager.uncompress(dataBytes, uncompressedBytes);
-    }
-
-    return uncompressedBytes;
-  }
-
-  /**
-   * Decodes an entry from its database representation.
-   * <p>
-   * An entry on disk is ASN1 encoded in this format:
-   *
-   * <pre>
-   * DatabaseEntry ::= [APPLICATION 0] IMPLICIT SEQUENCE {
-   *  uncompressedSize      INTEGER,      -- A zero value means not compressed.
-   *  dataBytes             OCTET STRING  -- Optionally compressed encoding of
-   *                                         the data bytes.
-   * }
-   *
-   * ID2EntryValue ::= DatabaseEntry
-   *  -- Where dataBytes contains an encoding of DirectoryServerEntry.
-   *
-   * DirectoryServerEntry ::= [APPLICATION 1] IMPLICIT SEQUENCE {
-   *  dn                      LDAPDN,
-   *  objectClasses           SET OF LDAPString,
-   *  userAttributes          AttributeList,
-   *  operationalAttributes   AttributeList
-   * }
-   * </pre>
-   *
-   * @param bytes A byte array containing the encoded database value.
-   * @param compressedSchema The compressed schema manager to use when decoding.
-   * @return The decoded entry.
-   * @throws ASN1Exception If the data is not in the expected ASN.1 encoding
-   * format.
-   * @throws LDAPException If the data is not in the expected ASN.1 encoding
-   * format.
-   * @throws DataFormatException If an error occurs while trying to decompress
-   * compressed data.
-   * @throws DirectoryException If a Directory Server error occurs.
-   */
-  static public Entry entryFromDatabase(byte[] bytes,
-                                        CompressedSchema compressedSchema)
-       throws DirectoryException,ASN1Exception,LDAPException,DataFormatException
-  {
-    byte[] uncompressedBytes = decodeDatabaseEntry(bytes);
-    return decodeDirectoryServerEntry(uncompressedBytes, compressedSchema);
-  }
-
-  /**
-   * Decode an entry from a ASN1 encoded DirectoryServerEntry.
-   *
-   * @param bytes A byte array containing the encoding of DirectoryServerEntry.
-   * @param compressedSchema The compressed schema manager to use when decoding.
-   * @return The decoded entry.
-   * @throws ASN1Exception If the data is not in the expected ASN.1 encoding
-   * format.
-   * @throws LDAPException If the data is not in the expected ASN.1 encoding
-   * format.
-   * @throws DirectoryException If a Directory Server error occurs.
-   */
-  static private Entry decodeDirectoryServerEntry(byte[] bytes,
-                            CompressedSchema compressedSchema)
-       throws DirectoryException,ASN1Exception,LDAPException
-  {
-    return Entry.decode(bytes, compressedSchema);
-  }
-
-  /**
-   * Encodes a DatabaseEntry.  The encoded bytes may be compressed and/or
-   * encrypted.
-   *
-   * @param bytes The bytes to encode.
-   * @param dataConfig Compression and cryptographic options.
-   * @return A byte array containing the encoded DatabaseEntry.
-   */
-  static public byte[] encodeDatabaseEntry(byte[] bytes, DataConfig dataConfig)
-  {
-    int uncompressedSize = 0;
-
-    // Do optional compression.
-    CryptoManager cryptoManager = DirectoryServer.getCryptoManager();
-    if (dataConfig.isCompressed() && cryptoManager != null)
-    {
-      byte[] compressedBuffer = new byte[bytes.length];
-      int compressedSize = cryptoManager.compress(bytes,
-                                                  compressedBuffer);
-      if (compressedSize != -1)
-      {
-        // Compression was successful.
-        uncompressedSize = bytes.length;
-        bytes = new byte[compressedSize];
-        System.arraycopy(compressedBuffer, 0, bytes, 0, compressedSize);
-
-        if(debugEnabled())
-        {
-          TRACER.debugInfo("Compression %d/%d%n",
-                    compressedSize, uncompressedSize);
-        }
-
-      }
-
-    }
-
-    // Encode the DatabaseEntry.
-    ArrayList<ASN1Element> elements = new ArrayList<ASN1Element>(2);
-    elements.add(new ASN1Integer(uncompressedSize));
-    elements.add(new ASN1OctetString(bytes));
-    byte[] asn1Sequence =
-        new ASN1Sequence(TAG_DATABASE_ENTRY, elements).encode();
-
-    // FIXME: This array copy could be very costly on performance. We need to
-    // FIXME: find a faster way to implement this versioning feature.
-    // Prefix version number to the encoded bytes
-    byte[] encodedBytes = new byte[asn1Sequence.length + 1];
-    encodedBytes[0] = FORMAT_VERSION;
-    System.arraycopy(asn1Sequence, 0, encodedBytes, 1, asn1Sequence.length);
-
-    return encodedBytes;
-  }
-
-  /**
-   * Encodes an entry to the raw database format, with optional compression.
-   *
-   * @param entry The entry to encode.
-   * @param dataConfig Compression and cryptographic options.
-   * @return A byte array containing the encoded database value.
-   *
-   * @throws  DirectoryException  If a problem occurs while attempting to encode
-   *                              the entry.
-   */
-  static public byte[] entryToDatabase(Entry entry, DataConfig dataConfig)
-         throws DirectoryException
-  {
-    byte[] uncompressedBytes = encodeDirectoryServerEntry(entry,
-                                             dataConfig.getEntryEncodeConfig());
-    return encodeDatabaseEntry(uncompressedBytes, dataConfig);
-  }
-
-  /**
-   * Encodes an entry to the raw database format, without compression.
-   *
-   * @param entry The entry to encode.
-   * @return A byte array containing the encoded database value.
-   *
-   * @throws  DirectoryException  If a problem occurs while attempting to encode
-   *                              the entry.
-   */
-  static public byte[] entryToDatabase(Entry entry)
-         throws DirectoryException
-  {
-    return entryToDatabase(entry, new DataConfig(false, false, null));
-  }
-
-  /**
-   * Encode a ASN1 DirectoryServerEntry.
-   *
-   * @param entry The entry to encode.
-   * @encodeConfig The configuration to use when encoding the entry.
-   * @return A byte array containing the encoded DirectoryServerEntry.
-   *
-   * @throws  DirectoryException  If a problem occurs while attempting to encode
-   *                              the entry.
-   */
-  static private byte[] encodeDirectoryServerEntry(Entry entry,
-                                                 EntryEncodeConfig encodeConfig)
-         throws DirectoryException
-  {
-    return entry.encode(encodeConfig);
-  }
-
-  /**
    * Decode an entry ID value from its database representation. Note that
    * this method will throw an ArrayIndexOutOfBoundsException if the bytes
    * array length is less than 8.
@@ -454,16 +227,4 @@
 
     return bytes;
   }
-
-   /**
-   * Get the version number of the DatabaseEntry.
-   *
-   * @param bytes The encoded bytes of a DatabaseEntry.
-   * @return The version number.
-   */
-  public static byte getEntryVersion(byte[] bytes)
-  {
-    return bytes[0];
-  }
-
 }

--
Gitblit v1.10.0