You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2023/12/05 22:55:57 UTC

(directory-ldap-api) branch master updated (107d86e3e -> 0ecac0c58)

This is an automated email from the ASF dual-hosted git repository.

elecharny pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/directory-ldap-api.git


    from 107d86e3e Merge pull request #63 from apache/dependabot/github_actions/actions/setup-java-4.0.0
     new 8a4dc293a o Added a method SearchRequest.setFilter(SchemaManager, String) o Fixed the DSML generation of binary values
     new 0ecac0c58 o Added a check on the MR presence o Removed a useless import

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../api/dsmlv2/request/SearchRequestDsml.java      | 19 +++++++++++++++---
 .../api/ldap/model/message/SearchRequest.java      | 12 +++++++++++
 .../api/ldap/model/message/SearchRequestImpl.java  | 20 +++++++++++++++++++
 .../schema/loader/JarLdifSchemaLoaderTest.java     |  1 -
 .../ldap/schema/loader/SchemaManagerLoadTest.java  | 23 ++++++++++++++++++++++
 5 files changed, 71 insertions(+), 4 deletions(-)


(directory-ldap-api) 01/02: o Added a method SearchRequest.setFilter(SchemaManager, String) o Fixed the DSML generation of binary values

Posted by el...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-ldap-api.git

commit 8a4dc293a4387bcec86f6788678a48b92fa8c28c
Author: emmanuel lecharny <el...@apache.org>
AuthorDate: Tue Dec 5 23:46:34 2023 +0100

    o Added a method SearchRequest.setFilter(SchemaManager, String)
    o Fixed the DSML generation of binary values
---
 .../api/dsmlv2/request/SearchRequestDsml.java        | 19 ++++++++++++++++---
 .../api/ldap/model/message/SearchRequest.java        | 12 ++++++++++++
 .../api/ldap/model/message/SearchRequestImpl.java    | 20 ++++++++++++++++++++
 3 files changed, 48 insertions(+), 3 deletions(-)

diff --git a/dsml/parser/src/main/java/org/apache/directory/api/dsmlv2/request/SearchRequestDsml.java b/dsml/parser/src/main/java/org/apache/directory/api/dsmlv2/request/SearchRequestDsml.java
index f2006659c..d64420a4c 100644
--- a/dsml/parser/src/main/java/org/apache/directory/api/dsmlv2/request/SearchRequestDsml.java
+++ b/dsml/parser/src/main/java/org/apache/directory/api/dsmlv2/request/SearchRequestDsml.java
@@ -55,6 +55,7 @@ import org.apache.directory.api.ldap.model.message.SearchRequestImpl;
 import org.apache.directory.api.ldap.model.message.SearchResultDone;
 import org.apache.directory.api.ldap.model.message.SearchScope;
 import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.schema.SchemaManager;
 import org.apache.directory.api.util.Strings;
 import org.dom4j.Element;
 import org.dom4j.Namespace;
@@ -568,7 +569,7 @@ public class SearchRequestDsml
                     element.getDocument().getRootElement().add( xsiNamespace );
 
                     Element valueElement = newElement.addElement( DsmlLiterals.VALUE ).addText(
-                        ParserUtils.base64Encode( value ) );
+                        ParserUtils.base64Encode( value.getBytes() ) );
                     valueElement
                         .addAttribute( new QName( DsmlLiterals.TYPE, xsiNamespace ), ParserUtils.XSD_COLON + ParserUtils.BASE64BINARY );
                 }
@@ -592,7 +593,7 @@ public class SearchRequestDsml
             
             if ( value != null )
             {
-                if ( ParserUtils.needsBase64Encoding( value ) )
+                if ( !value.isHumanReadable() )
                 {
                     Namespace xsdNamespace = new Namespace( ParserUtils.XSD, ParserUtils.XML_SCHEMA_URI );
                     Namespace xsiNamespace = new Namespace( ParserUtils.XSI, ParserUtils.XML_SCHEMA_INSTANCE_URI );
@@ -600,7 +601,7 @@ public class SearchRequestDsml
                     element.getDocument().getRootElement().add( xsiNamespace );
 
                     Element valueElement = newElement.addElement( DsmlLiterals.VALUE ).addText(
-                        ParserUtils.base64Encode( value.getString() ) );
+                        ParserUtils.base64Encode( value.getBytes() ) );
                     valueElement.addAttribute( new QName( DsmlLiterals.TYPE, xsiNamespace ), ParserUtils.XSD_COLON + ParserUtils.BASE64BINARY );
                 }
                 else
@@ -800,6 +801,18 @@ public class SearchRequestDsml
     }
 
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SearchRequest setFilter( SchemaManager schemaManager, String filter ) throws LdapException
+    {
+        getDecorated().setFilter( schemaManager, filter );
+
+        return this;
+    }
+
+
     /**
      * {@inheritDoc}
      */
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequest.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequest.java
index ed6f3716e..a95070334 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequest.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequest.java
@@ -25,6 +25,7 @@ import java.util.List;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.filter.ExprNode;
 import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.schema.SchemaManager;
 
 
 /**
@@ -207,6 +208,17 @@ public interface SearchRequest extends ManyReplyRequest, AbandonableRequest
     SearchRequest setFilter( String filter ) throws LdapException;
 
 
+    /**
+     * Sets the search filter associated with this search request.
+     * 
+     * @param schemaManager the SchemaManager instance
+     * @param filter the expression node for the root of the filter expression tree.
+     * @return The SearchRequest instance
+     * @throws LdapException If the filter can't be added
+     */
+    SearchRequest setFilter( SchemaManager schemaManager, String filter ) throws LdapException;
+
+
     /**
      * Gets a list of the attributes to be returned from each entry which
      * matches the search filter. There are two special values which may be
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequestImpl.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequestImpl.java
index d8462f228..4bcd31668 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequestImpl.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequestImpl.java
@@ -33,6 +33,7 @@ import org.apache.directory.api.ldap.model.filter.BranchNormalizedVisitor;
 import org.apache.directory.api.ldap.model.filter.ExprNode;
 import org.apache.directory.api.ldap.model.filter.FilterParser;
 import org.apache.directory.api.ldap.model.name.Dn;
+import org.apache.directory.api.ldap.model.schema.SchemaManager;
 
 
 /**
@@ -188,6 +189,25 @@ public class SearchRequestImpl extends AbstractAbandonableRequest implements Sea
     }
 
 
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public SearchRequest setFilter( SchemaManager schemaManager, String filter ) throws LdapException
+    {
+        try
+        {
+            filterNode = FilterParser.parse( schemaManager, filter );
+        }
+        catch ( ParseException pe )
+        {
+            throw new LdapInvalidSearchFilterException( I18n.err( I18n.ERR_13508_INVALID_FILTER, filter, pe.getMessage() ) );
+        }
+
+        return this;
+    }
+
+
     /**
      * {@inheritDoc}
      */


(directory-ldap-api) 02/02: o Added a check on the MR presence o Removed a useless import

Posted by el...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-ldap-api.git

commit 0ecac0c58636bbd65ab7e25257ebc9733da00ce2
Author: emmanuel lecharny <el...@apache.org>
AuthorDate: Tue Dec 5 23:50:47 2023 +0100

    o Added a check on the MR presence
    o Removed a useless import
---
 .../schema/loader/JarLdifSchemaLoaderTest.java     |  1 -
 .../ldap/schema/loader/SchemaManagerLoadTest.java  | 23 ++++++++++++++++++++++
 2 files changed, 23 insertions(+), 1 deletion(-)

diff --git a/ldap/schema/data/src/test/java/org/apache/directory/api/ldap/schema/loader/JarLdifSchemaLoaderTest.java b/ldap/schema/data/src/test/java/org/apache/directory/api/ldap/schema/loader/JarLdifSchemaLoaderTest.java
index 10199e0fd..cc0d17e13 100644
--- a/ldap/schema/data/src/test/java/org/apache/directory/api/ldap/schema/loader/JarLdifSchemaLoaderTest.java
+++ b/ldap/schema/data/src/test/java/org/apache/directory/api/ldap/schema/loader/JarLdifSchemaLoaderTest.java
@@ -24,7 +24,6 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
-import org.apache.directory.api.ldap.schema.loader.JarLdifSchemaLoader;
 import org.apache.directory.api.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.parallel.Execution;
diff --git a/ldap/schema/data/src/test/java/org/apache/directory/api/ldap/schema/loader/SchemaManagerLoadTest.java b/ldap/schema/data/src/test/java/org/apache/directory/api/ldap/schema/loader/SchemaManagerLoadTest.java
index e724ce2ea..675a3710b 100644
--- a/ldap/schema/data/src/test/java/org/apache/directory/api/ldap/schema/loader/SchemaManagerLoadTest.java
+++ b/ldap/schema/data/src/test/java/org/apache/directory/api/ldap/schema/loader/SchemaManagerLoadTest.java
@@ -37,6 +37,7 @@ import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
 import org.apache.directory.api.ldap.model.exception.LdapUnwillingToPerformException;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
+import org.apache.directory.api.ldap.model.schema.MatchingRule;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
 import org.apache.directory.api.ldap.model.schema.registries.DefaultSchema;
 import org.apache.directory.api.ldap.model.schema.registries.Schema;
@@ -798,4 +799,26 @@ public class SchemaManagerLoadTest
         // if nis schema was loaded then the at will not be null
         assertNotNull( at );
     }
+
+
+    @Test
+    public void testLoadDisabledMozilla() throws Exception
+    {
+        SchemaManager schemaManager = new DefaultSchemaManager();
+
+        assertTrue( schemaManager.loadDisabled( "mozilla" ) );
+        
+        schemaManager.getRegistries().buildReferences();
+
+        assertTrue( schemaManager.getErrors().isEmpty() );
+
+        AttributeType at = schemaManager.getAttributeType( "mozillaNickname" );
+        MatchingRule substringMR = at.getSubstring();
+        
+        // if nis schema was loaded then the at will not be null
+        assertNotNull( at );
+        
+        // if nis schema was loaded then the MR will not be null
+        assertNotNull( substringMR );
+    }
 }