/*
 * Copyright 2006-2010 Amazon Technologies, Inc. or its affiliates.
 * Amazon, Amazon.com and Carbonado are trademarks or registered trademarks
 * of Amazon Technologies, Inc. or its affiliates.  All rights reserved.
 *
 * 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 com.amazon.carbonado.repo.sleepycat;

/**
 * Set of supported BDB products.
 *
 * @author Brian S O'Neill
 */
public enum BDBProduct {
    /** BDB Native, legacy API */
    DB_Legacy,

    /** BDB Native */
    DB,

    /** BDB Native, High Availability */
    DB_HA,

    /** BDB Java Edition */
    JE;

    public static BDBProduct forString(String name) {
        name = name.toLowerCase();
	if (name.equals("db_legacy")) {
	    return DB_Legacy;
	} else if (name.equals("db")) {
	    return DB;
	} else if (name.equals("db_ha")) {
	    return DB_HA;
	} else if (name.equals("je")) {
	    return JE;
	}
        throw new IllegalArgumentException("Unsupported product: " + name);
    }
}

@@ -1028,24 +1028,254 @@
 %0A    DB,%0D%0A%0D%0A
+    /**%0D%0A     * BDB Native, with reduced concurrency to eliminate deadlocks. Exclusive%0D%0A     * lock is held when modifications are made, and at most one open%0D%0A     * transaction is allowed at any given time.%0D%0A     */%0D%0A    DBX,%0D%0A%0D%0A
     /** BDB 
@@ -1449,17 +1449,24 @@
 ase();%0D%0A
-%09
+        
 if (name
@@ -1486,25 +1486,32 @@
 egacy%22)) %7B%0D%0A
-%09
+        
     return D
@@ -1521,17 +1521,89 @@
 egacy;%0D%0A
-%09
+        %7D else if (name.equals(%22db%22)) %7B%0D%0A            return DB;%0D%0A        
 %7D else i
@@ -1620,28 +1620,36 @@
 uals(%22db
+x
 %22)) %7B%0D%0A
-%09
+       
     
+ 
 return D
@@ -1649,20 +1649,28 @@
 eturn DB
+X
 ;%0D%0A
-%09
+        
 %7D else i
@@ -1693,25 +1693,32 @@
 db_ha%22)) %7B%0D%0A
-%09
+        
     return D
@@ -1724,17 +1724,24 @@
 DB_HA;%0D%0A
-%09
+        
 %7D else i
@@ -1765,17 +1765,24 @@
 e%22)) %7B%0D%0A
-%09
+        
     retu
@@ -1793,9 +1793,16 @@
 E;%0D%0A
-%09
+        
 %7D%0D%0A 

Add support for dbx repository type.