[352062] [DB] Dawn PostgreSQL Issue: IllegalStateException: No type
mapping factory found EByteArray --> VARBINARY 
https://bugs.eclipse.org/bugs/show_bug.cgi?id=352062

- added the missing type mapping
- adjusted the db adapter 
- removed the skipConfig for BLOB-attribute-tests

the basic testcases seem to run
diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java
index c0551e6..e2ebb06 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/CoreTypeMappings.java
@@ -173,7 +173,7 @@
       {

         return null;

       }

-      

+

       int pos = str.indexOf('-');

 

       byte[] id = HexUtil.hexToBytes(str.substring(0, pos));

@@ -225,7 +225,7 @@
       {

         return null;

       }

-      

+

       int pos = str.indexOf('-');

 

       byte[] id = HexUtil.hexToBytes(str.substring(0, pos));

@@ -689,6 +689,38 @@
   /**

    * @author Eike Stepper

    */

+  public static class TMBytesVarbinary extends AbstractTypeMapping

+  {

+    public static final Factory FACTORY = new Factory(TypeMappingUtil.createDescriptor(ID_PREFIX

+        + ".ByteArrayVarbinary", EcorePackage.eINSTANCE.getEByteArray(), DBType.VARBINARY));

+

+    @Override

+    public Object getResultSetValue(ResultSet resultSet) throws SQLException

+    {

+      return resultSet.getBytes(getField().getName());

+    }

+

+    /**

+     * @author Eike Stepper

+     */

+    public static class Factory extends AbstractTypeMappingFactory

+    {

+      public Factory(Descriptor descriptor)

+      {

+        super(descriptor);

+      }

+

+      @Override

+      public ITypeMapping create(String description) throws ProductCreationException

+      {

+        return new TMBytesVarbinary();

+      }

+    }

+  }

+

+  /**

+   * @author Eike Stepper

+   */

   public static class TMBoolean extends AbstractTypeMapping

   {

     public static final Factory FACTORY = new Factory(TypeMappingUtil.createDescriptor(ID_PREFIX + ".Boolean",

@@ -857,7 +889,7 @@
       {

         return null;

       }

-      

+

       EFactory factory = getFeature().getEType().getEPackage().getEFactoryInstance();

       return factory.convertToString((EDataType)getFeature().getEType(), defaultValue);

     }

diff --git a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
index ccf5f6d..5a3f859 100644
--- a/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
+++ b/plugins/org.eclipse.emf.cdo.server.db/src/org/eclipse/emf/cdo/server/internal/db/mapping/TypeMappingRegistry.java
@@ -127,6 +127,7 @@
     container.registerFactory(CoreTypeMappings.TMByte.FACTORY);

     container.registerFactory(CoreTypeMappings.TMByte.FACTORY_OBJECT);

     container.registerFactory(CoreTypeMappings.TMBytes.FACTORY);

+    container.registerFactory(CoreTypeMappings.TMBytesVarbinary.FACTORY);

     container.registerFactory(CoreTypeMappings.TMCharacter.FACTORY);

     container.registerFactory(CoreTypeMappings.TMCharacter.FACTORY_OBJECT);

     container.registerFactory(CoreTypeMappings.TMCustom.FACTORY_VARCHAR);

diff --git a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java
index 7d57cba..802dfc7 100644
--- a/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java
+++ b/plugins/org.eclipse.emf.cdo.tests/src/org/eclipse/emf/cdo/tests/AttributeTest.java
@@ -100,7 +100,7 @@
   }

 

   // XXX disabled because of Bug 289445

-  @Skips("Postgresql")

+  // @Skips("Postgresql")

   @CleanRepositoriesBefore

   public void testByteArray() throws Exception

   {

@@ -144,7 +144,7 @@
   }

 

   // XXX disabled because of Bug 289445

-  @Skips("Postgresql")

+  // @Skips("Postgresql")

   @CleanRepositoriesBefore

   public void testByteArrayEmpty() throws Exception

   {

@@ -182,7 +182,7 @@
   }

 

   // XXX disabled because of Bug 289445

-  @Skips("Postgresql")

+  // @Skips("Postgresql")

   @CleanRepositoriesBefore

   public void testByteArrayNull() throws Exception

   {

diff --git a/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java b/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
index 8f70a4e..5246985 100644
--- a/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
+++ b/plugins/org.eclipse.net4j.db.postgresql/src/org/eclipse/net4j/db/postgresql/PostgreSQLAdapter.java
@@ -99,6 +99,7 @@
     case VARCHAR:

     case CLOB:

       return "text"; //$NON-NLS-1$

+    case VARBINARY:

     case BLOB:

       return "bytea"; //$NON-NLS-1$

     case DOUBLE: