You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2013/08/04 16:51:14 UTC
svn commit: r1510194 - in /directory/escimo/trunk/ldap/src/main:
java/org/apache/directory/scim/ java/org/apache/directory/scim/json/
java/org/apache/directory/scim/ldap/ resources/
Author: kayyagari
Date: Sun Aug 4 14:51:13 2013
New Revision: 1510194
URL: http://svn.apache.org/r1510194
Log:
serializing user resource to JSON format (and the moment of first output!)
Added:
directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/
directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/JsonSerializer.java
directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/SimpleAttributeDeSerializer.java
directory/escimo/trunk/ldap/src/main/resources/log4j.properties
Modified:
directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ComplexAttribute.java
directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/SimpleAttributeGroup.java
directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/User.java
directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapResourceProvider.java
directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapSchemaMapper.java
Modified: directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ComplexAttribute.java
URL: http://svn.apache.org/viewvc/directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ComplexAttribute.java?rev=1510194&r1=1510193&r2=1510194&view=diff
==============================================================================
--- directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ComplexAttribute.java (original)
+++ directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ComplexAttribute.java Sun Aug 4 14:51:13 2013
@@ -38,4 +38,15 @@ public class ComplexAttribute extends Ab
this.atList = atList;
}
+ public List<SimpleAttribute> getAtList()
+ {
+ return atList;
+ }
+
+ @Override
+ public String toString()
+ {
+ return "ComplexAttribute [atList=" + atList + "]";
+ }
+
}
Modified: directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/SimpleAttributeGroup.java
URL: http://svn.apache.org/viewvc/directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/SimpleAttributeGroup.java?rev=1510194&r1=1510193&r2=1510194&view=diff
==============================================================================
--- directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/SimpleAttributeGroup.java (original)
+++ directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/SimpleAttributeGroup.java Sun Aug 4 14:51:13 2013
@@ -20,6 +20,7 @@
package org.apache.directory.scim;
+import java.util.ArrayList;
import java.util.List;
@@ -48,8 +49,10 @@ public class SimpleAttributeGroup
{
if ( atList == null )
{
- atList.add( at );
+ atList = new ArrayList<SimpleAttribute>();
}
+
+ atList.add( at );
}
Modified: directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/User.java
URL: http://svn.apache.org/viewvc/directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/User.java?rev=1510194&r1=1510193&r2=1510194&view=diff
==============================================================================
--- directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/User.java (original)
+++ directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/User.java Sun Aug 4 14:51:13 2013
@@ -50,6 +50,11 @@ public class User
atList.add( at );
}
+ public Map<String,List<AbstractAttribute>> getAttributes()
+ {
+ return uriAtMap;
+ }
+
@Override
public String toString()
{
Added: directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/JsonSerializer.java
URL: http://svn.apache.org/viewvc/directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/JsonSerializer.java?rev=1510194&view=auto
==============================================================================
--- directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/JsonSerializer.java (added)
+++ directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/JsonSerializer.java Sun Aug 4 14:51:13 2013
@@ -0,0 +1,124 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.directory.scim.json;
+
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.directory.scim.AbstractAttribute;
+import org.apache.directory.scim.ComplexAttribute;
+import org.apache.directory.scim.MultiValAttribute;
+import org.apache.directory.scim.SimpleAttribute;
+import org.apache.directory.scim.SimpleAttributeGroup;
+import org.apache.directory.scim.User;
+
+import com.google.gson.Gson;
+import com.google.gson.JsonArray;
+import com.google.gson.JsonObject;
+
+
+/**
+ * TODO JsonSerializer.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class JsonSerializer
+{
+ private Gson gson = new Gson();
+
+ public static String serialize( User user )
+ {
+ JsonObject json = new JsonObject();
+
+ Map<String, List<AbstractAttribute>> attributes = user.getAttributes();
+ for ( String uri : attributes.keySet() )
+ {
+ serialize( json, attributes.get( uri ) );
+ }
+
+ return json.toString();
+ }
+
+
+ public static void serialize( JsonObject parent, List<AbstractAttribute> attributes )
+ {
+ for ( AbstractAttribute at : attributes )
+ {
+ serializeAt( parent, at );
+ }
+ }
+
+
+ public static void serializeAt( JsonObject parent, AbstractAttribute at )
+ {
+ if ( at instanceof SimpleAttribute )
+ {
+ serializeSimpleAt( parent, ( SimpleAttribute ) at );
+ }
+ else if ( at instanceof ComplexAttribute )
+ {
+ ComplexAttribute ct = ( ComplexAttribute ) at;
+ JsonObject json = new JsonObject();
+ for( SimpleAttribute t : ct.getAtList() )
+ {
+ serializeSimpleAt( json, t );
+ }
+
+ parent.add( ct.getName(), json );
+ }
+ else if ( at instanceof MultiValAttribute )
+ {
+ MultiValAttribute mv = ( MultiValAttribute ) at;
+ List<SimpleAttributeGroup> lstGrp = mv.getAtGroupList();
+
+ JsonArray array = new JsonArray();
+
+ for( SimpleAttributeGroup stg : lstGrp )
+ {
+ JsonObject json = new JsonObject();
+ for( SimpleAttribute t : stg.getAtList() )
+ {
+ serializeSimpleAt( json, t );
+ }
+
+ array.add( json );
+ }
+
+ parent.add( mv.getName(), array );
+ }
+ }
+
+
+ public static void serializeSimpleAt( JsonObject parent, SimpleAttribute at )
+ {
+ Object obj = at.getValue();
+
+ if ( obj instanceof String )
+ {
+ parent.addProperty( at.getName(), ( String ) obj );
+ }
+ else if ( obj instanceof Number )
+ {
+ parent.addProperty( at.getName(), ( Number ) obj );
+ }
+ }
+}
Added: directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/SimpleAttributeDeSerializer.java
URL: http://svn.apache.org/viewvc/directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/SimpleAttributeDeSerializer.java?rev=1510194&view=auto
==============================================================================
--- directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/SimpleAttributeDeSerializer.java (added)
+++ directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/json/SimpleAttributeDeSerializer.java Sun Aug 4 14:51:13 2013
@@ -0,0 +1,61 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 org.apache.directory.scim.json;
+
+import java.lang.reflect.Type;
+import java.util.Iterator;
+import java.util.Map.Entry;
+
+import org.apache.directory.scim.SimpleAttribute;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParseException;
+
+/**
+ * TODO SimpleAttributeDeSerializer.
+ *
+ * @author <a href="mailto:dev@directory.apache.org">Apache Directory Project</a>
+ */
+public class SimpleAttributeDeSerializer implements JsonDeserializer<SimpleAttribute>
+{
+
+ @Override
+ public SimpleAttribute deserialize( JsonElement elm, Type jsonType, JsonDeserializationContext ctx )
+ throws JsonParseException
+ {
+ JsonObject json = elm.getAsJsonObject();
+
+ Iterator<Entry<String, JsonElement>> itr = json.entrySet().iterator();
+
+ if( itr.hasNext() )
+ {
+ Entry<String, JsonElement> entry = itr.next();
+
+ SimpleAttribute at = new SimpleAttribute( entry.getKey(), entry.getValue().getAsString() );
+ }
+
+ return null;
+ }
+
+}
Modified: directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapResourceProvider.java
URL: http://svn.apache.org/viewvc/directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapResourceProvider.java?rev=1510194&r1=1510193&r2=1510194&view=diff
==============================================================================
--- directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapResourceProvider.java (original)
+++ directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapResourceProvider.java Sun Aug 4 14:51:13 2013
@@ -43,12 +43,10 @@ import org.apache.directory.api.ldap.mod
import org.apache.directory.api.ldap.model.message.SearchRequestImpl;
import org.apache.directory.api.ldap.model.message.SearchResultEntry;
import org.apache.directory.api.ldap.model.message.SearchScope;
-import org.apache.directory.api.ldap.model.message.controls.EntryChange;
-import org.apache.directory.api.ldap.model.message.controls.PersistentSearch;
-import org.apache.directory.api.ldap.model.message.controls.PersistentSearchImpl;
import org.apache.directory.api.ldap.model.name.Dn;
import org.apache.directory.api.ldap.model.schema.LdapSyntax;
import org.apache.directory.api.ldap.model.schema.SyntaxChecker;
+import org.apache.directory.api.ldap.model.schema.syntaxCheckers.GeneralizedTimeSyntaxChecker;
import org.apache.directory.api.ldap.model.schema.syntaxCheckers.IntegerSyntaxChecker;
import org.apache.directory.api.ldap.model.schema.syntaxCheckers.JavaByteSyntaxChecker;
import org.apache.directory.api.ldap.model.schema.syntaxCheckers.JavaIntegerSyntaxChecker;
@@ -65,6 +63,7 @@ import org.apache.directory.scim.Resourc
import org.apache.directory.scim.SimpleAttribute;
import org.apache.directory.scim.SimpleAttributeGroup;
import org.apache.directory.scim.User;
+import org.apache.directory.scim.json.JsonSerializer;
import org.apache.directory.scim.ldap.schema.BaseType;
import org.apache.directory.scim.ldap.schema.ComplexType;
import org.apache.directory.scim.ldap.schema.MultiValType;
@@ -72,6 +71,8 @@ import org.apache.directory.scim.ldap.sc
import org.apache.directory.scim.ldap.schema.SimpleTypeGroup;
import org.apache.directory.scim.ldap.schema.TypedType;
import org.apache.directory.scim.ldap.schema.UserSchema;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -87,7 +88,8 @@ public class LdapResourceProvider
private UserSchema userSchema;
-
+ private static final Logger LOG = LoggerFactory.getLogger( LdapResourceProvider.class );
+
public LdapResourceProvider( LdapConnection connection )
{
schema = new LdapSchemaMapper();
@@ -198,14 +200,14 @@ public class LdapResourceProvider
{
SimpleTypeGroup typeStg = tt.getAtGroup();
List<SimpleAttribute> lstAts = getValuesInto( typeStg, entry );
- lstAts.add( new SimpleAttribute( "type", tt.getName() ) );
- if ( tt.isPrimary() )
- {
- lstAts.add( new SimpleAttribute( "primary", true ) );
- }
if ( !lstAts.isEmpty() )
{
+ lstAts.add( new SimpleAttribute( "type", tt.getName() ) );
+ if ( tt.isPrimary() )
+ {
+ lstAts.add( new SimpleAttribute( "primary", true ) );
+ }
mv.addAtGroup( new SimpleAttributeGroup( lstAts ) );
}
}
@@ -228,8 +230,11 @@ public class LdapResourceProvider
atGroupList = getValuesFor( stg, entry );
}
- MultiValAttribute mv = new MultiValAttribute( mt.getName(), atGroupList );
-
+ if( atGroupList != null )
+ {
+ MultiValAttribute mv = new MultiValAttribute( mt.getName(), atGroupList );
+ user.addAttribute( bt.getUri(), mv );
+ }
}
}
}
@@ -360,7 +365,7 @@ public class LdapResourceProvider
Attribute at = entry.get( st.getMappedTo() );
if ( at != null )
{
-
+ LOG.debug( "processing attribute {}", name );
Object value = getScimValFrom( at );
return new SimpleAttribute( name, value );
}
@@ -394,12 +399,54 @@ public class LdapResourceProvider
{
return Long.parseLong( ldapValue.getString() );
}
+ else if ( sc instanceof GeneralizedTimeSyntaxChecker )
+ {
+ return formatDate( ldapValue.getString() );
+ }
}
return ldapValue.getString();
-
}
+ public String formatDate( String zTime )
+ {
+ //parse a value like 20120302164134Z to 2012-03-02T16:41:34Z
+ StringBuilder sb = new StringBuilder();
+ int start = 0;
+ int end = 4;
+ sb.append( zTime.substring( start, end ) )
+ .append("-");
+
+ start = end;
+ end += 2;
+ sb.append( zTime.substring( start, end ) )
+ .append("-");
+
+ start = end;
+ end += 2;
+ sb.append( zTime.substring( start, end ) )
+ .append("-");
+
+ sb.append( "T" );
+
+ start = end;
+ end += 2;
+ sb.append( zTime.substring( start, end ) )
+ .append(":");
+
+ start = end;
+ end += 2;
+ sb.append( zTime.substring( start, end ) )
+ .append(":");
+
+ start = end;
+ end += 2;
+ sb.append( zTime.substring( start, end ) );
+
+ sb.append( "Z" );
+
+ return sb.toString();
+ }
// public List<SimpleAttribute> getValuesInto( List<SimpleType> lstTyps, Entry entry ) throws LdapException
// {
@@ -445,9 +492,9 @@ public class LdapResourceProvider
// ps.setReturnECs( true );
SearchRequest searchRequest = new SearchRequestImpl().setBase( new Dn(
- "uid=admin,ou=system" ) ).setFilter( "(objectclass=*)" ).setScope(
+ "uid=kirana,ou=users,dc=signon,dc=mirth,dc=com" ) ).setFilter( "(objectclass=*)" ).setScope(
SearchScope.OBJECT );
- searchRequest.addAttributes( "uid" );
+ searchRequest.addAttributes( SchemaConstants.ALL_ATTRIBUTES_ARRAY );
SearchCursor cursor = c.search( searchRequest );
@@ -461,10 +508,11 @@ public class LdapResourceProvider
cursor.close();
+ System.out.println( entry );
LdapResourceProvider lr = new LdapResourceProvider( c );
User user = lr.toUser( entry );
System.out.println( user );
-
+ System.out.println( JsonSerializer.serialize( user ) );
c.close();
}
}
Modified: directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapSchemaMapper.java
URL: http://svn.apache.org/viewvc/directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapSchemaMapper.java?rev=1510194&r1=1510193&r2=1510194&view=diff
==============================================================================
--- directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapSchemaMapper.java (original)
+++ directory/escimo/trunk/ldap/src/main/java/org/apache/directory/scim/ldap/LdapSchemaMapper.java Sun Aug 4 14:51:13 2013
@@ -63,11 +63,13 @@ public class LdapSchemaMapper implements
private Map<String, BaseType> groupSchema = new HashMap<String, BaseType>();
private UserSchema userSchema;
-
+
+
public LdapSchemaMapper()
{
}
+
public LdapSchemaMapper( LdapConnection connection )
{
try
@@ -92,6 +94,7 @@ public class LdapSchemaMapper implements
return userSchema;
}
+
public void loadMappings()
{
InputStream in = this.getClass().getClassLoader().getResourceAsStream( "escimo-ldap-mapping.xml" );
@@ -127,18 +130,18 @@ public class LdapSchemaMapper implements
{
throw new IllegalStateException( "Invalid schema mapping file" );
}
-
+
Element elmUser = root.element( "userType" );
-
+
String baseDn = elmUser.attributeValue( "baseDn" );
String filter = elmUser.attributeValue( "filter" );
userSchema = new UserSchema( baseDn, filter );
-
+
List<Element> lstSchema = root.elements( "schema" );
List<Element> lstRef = elmUser.elements( "schemaRef" );
parseResourceSchema( lstRef, lstSchema, userSchema );
-
+
/*
Element elmGroup = root.element( "groupType" );
@@ -172,15 +175,16 @@ public class LdapSchemaMapper implements
}
}
+
private void parseResourceSchema( List<Element> lstRef, List<Element> lstSchema, ResourceSchema resourceSchema )
{
- for( Element ref : lstRef )
+ for ( Element ref : lstRef )
{
String refId = ref.attributeValue( "id" );
- for( Element elmSchema : lstSchema )
+ for ( Element elmSchema : lstSchema )
{
String schemaId = elmSchema.attributeValue( "id" );
- if(refId.equals( schemaId ))
+ if ( refId.equals( schemaId ) )
{
parseSchema( elmSchema, resourceSchema );
break;
@@ -189,14 +193,14 @@ public class LdapSchemaMapper implements
}
}
-
+
private void parseSchema( Element schemaRoot, ResourceSchema resourceSchema )
{
String uri = schemaRoot.attributeValue( "uri" );
-
+
resourceSchema.addUri( uri );
-
+
List<Element> simpleAtElmList = schemaRoot.elements( "attribute" );
for ( Element el : simpleAtElmList )
@@ -221,19 +225,18 @@ public class LdapSchemaMapper implements
+ elmComplex.asXML() );
}
-
List<SimpleType> stList = new ArrayList<SimpleType>();
-
+
Element atGrpElm = elmComplex.element( "at-group" );
SimpleTypeGroup stg = parseAtGroup( atGrpElm, uri );
- if( stg != null )
+ if ( stg != null )
{
ComplexType ct = new ComplexType( name, uri, stg );
resourceSchema.addAttributeType( name, ct );
}
}
-
+
// load multival-attributes
List<Element> multivalAtElmList = schemaRoot.elements( "multival-attribute" );
@@ -249,7 +252,7 @@ public class LdapSchemaMapper implements
String baseDn = elmComplex.attributeValue( "baseDn" );
String filter = elmComplex.attributeValue( "filter" );
-
+
Element elmAtGroup = elmComplex.element( "at-group" );
if ( elmAtGroup != null )
{
@@ -293,7 +296,8 @@ public class LdapSchemaMapper implements
throw new IllegalArgumentException( "name is missing in the type element " + elmType.asXML() );
}
- TypedType tt = new TypedType( typeName, stg, Boolean.parseBoolean( show ), Boolean.parseBoolean( primary ), uri );
+ TypedType tt = new TypedType( typeName, stg, Boolean.parseBoolean( show ),
+ Boolean.parseBoolean( primary ), uri );
lstTypes.add( tt );
}
@@ -359,14 +363,14 @@ public class LdapSchemaMapper implements
return null;
}
- boolean show = Boolean.parseBoolean( el.attributeValue( "show" ) );
+ boolean show = true;
+
+ String showVal = el.attributeValue( "show" );
+ if ( !Strings.isEmpty( showVal ) )
+ {
+ show = Boolean.parseBoolean( showVal );
+ }
return new SimpleType( name, mappedTo, uri, show );
}
-
- public static void main( String[] args )
- {
- LdapSchemaMapper lsm = new LdapSchemaMapper();
- lsm.loadMappings();
- }
}
Added: directory/escimo/trunk/ldap/src/main/resources/log4j.properties
URL: http://svn.apache.org/viewvc/directory/escimo/trunk/ldap/src/main/resources/log4j.properties?rev=1510194&view=auto
==============================================================================
--- directory/escimo/trunk/ldap/src/main/resources/log4j.properties (added)
+++ directory/escimo/trunk/ldap/src/main/resources/log4j.properties Sun Aug 4 14:51:13 2013
@@ -0,0 +1,43 @@
+#############################################################################
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+#############################################################################
+log4j.rootCategory=debug, stdout, file
+
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n
+
+log4j.appender.file=org.apache.log4j.RollingFileAppender
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=[%d{HH:mm:ss}] %p [%c] - %m%n
+log4j.appender.file.File=/tmp/core-integ.log
+log4j.appender.file.MaxFileSize=10000KB
+log4j.appender.file.MaxBackupIndex=100
+
+#log4j.logger.org=FATAL
+log4j.logger.jdbm.recman.BaseRecordManager=FATAL
+log4j.logger.org.apache.directory.server.OPERATION_LOG=FATAL
+log4j.logger.org.apache.directory.server.OPERATION_TIME=FATAL
+log4j.logger.org.apache.directory.api.CODEC_LOG=FATAL
+log4j.logger.org.apache.directory.server.ACI_LOG=FATAL
+log4j.logger.org.apache.directory.server.PROVIDER_LOG=FATAL
+log4j.logger.org.apache.directory.server.CONSUMER_LOG=FATAL
+log4j.logger.org.apache.directory.CURSOR_LOG=FATAL
+log4j.logger.org.apache.directory.api=FATAL
+log4j.logger.org.apache.directory.server=FATAL
+log4j.logger.net.sf.ehcache=FATAL
+log4j.logger.org.apache.mina=FATAL
+log4j.logger.org.apache.directory.ldap=WARN
\ No newline at end of file