From 39a420d9aa3817dbe2dc9eff52464e5b464dbdde Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Thu, 06 Oct 2016 15:33:04 +0000
Subject: [PATCH] OPENDJ-2860: add support for JSON property mapping in Rest2LDAP

---
 opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapJsonConfigurator.java |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapJsonConfigurator.java b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapJsonConfigurator.java
index 2760cd3..d902445 100644
--- a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapJsonConfigurator.java
+++ b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/Rest2LdapJsonConfigurator.java
@@ -79,6 +79,7 @@
 import org.forgerock.opendj.ldap.SSLContextBuilder;
 import org.forgerock.opendj.ldap.requests.BindRequest;
 import org.forgerock.opendj.ldap.requests.Requests;
+import org.forgerock.opendj.rest2ldap.schema.JsonSchema;
 import org.forgerock.services.context.Context;
 import org.forgerock.util.Options;
 import org.forgerock.util.promise.Promise;
@@ -356,6 +357,15 @@
                     .isRequired(mapper.get("isRequired").defaultTo(false).asBoolean())
                     .isMultiValued(mapper.get("isMultiValued").defaultTo(false).asBoolean())
                     .writability(parseWritability(mapper));
+        case "json":
+            return simple(mapper.get("ldapAttribute").defaultTo(defaultLdapAttribute).required().asString())
+                    .defaultJsonValue(mapper.get("defaultJsonValue").getObject())
+                    .isRequired(mapper.get("isRequired").defaultTo(false).asBoolean())
+                    .isMultiValued(mapper.get("isMultiValued").defaultTo(false).asBoolean())
+                    .encoder(JsonSchema.jsonToByteString())
+                    .decoder(JsonSchema.byteStringToJson())
+                    .jsonSchema(mapper.isDefined("schema") ? mapper.get("schema") : null)
+                    .writability(parseWritability(mapper));
         case "reference":
             final String ldapAttribute = mapper.get("ldapAttribute")
                                                .defaultTo(defaultLdapAttribute).required().asString();

--
Gitblit v1.10.0