You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2004/12/05 20:54:57 UTC
svn commit: r109908 - in incubator/directory/eve/trunk: jndi-provider/src/java/org/apache/eve/jndi maven-eve-plugin/src/java/org/apache/eve/tools/schema protocol/src/java/org/apache/eve/protocol
Author: akarasulu
Date: Sun Dec 5 11:54:57 2004
New Revision: 109908
URL: http://svn.apache.org/viewcvs?view=rev&rev=109908
Log:
Changes ...
o Fixed situation where '' was being used when description did not exist
within plugin which require install uninstall to see effects
o Fixed search issues with KMail which was actually a major bug that would
have produced problems later on anyway.
Modified:
incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveDirContext.java
incubator/directory/eve/trunk/maven-eve-plugin/src/java/org/apache/eve/tools/schema/ObjectClasses.template
incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/SearchHandler.java
Modified: incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveDirContext.java
Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveDirContext.java?view=diff&rev=109908&p1=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveDirContext.java&r1=109907&p2=incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveDirContext.java&r2=109908
==============================================================================
--- incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveDirContext.java (original)
+++ incubator/directory/eve/trunk/jndi-provider/src/java/org/apache/eve/jndi/EveDirContext.java Sun Dec 5 11:54:57 2004
@@ -509,33 +509,40 @@
ExprNode filterNode = null;
LdapName target = buildTarget( name );
- try
+ if ( filter == null && getEnvironment().containsKey( "__filter__" ) )
{
- /*
- * TODO Added this parser initialization code to the FilterImpl
- * and have a static class parser that can be globally accessed.
- */
- FilterParser parser = new FilterParserImpl();
- filterNode = parser.parse( filter );
+ filterNode = ( ExprNode ) getEnvironment().get( "__filter__" );
}
- catch ( ParseException pe )
+ else
{
- InvalidSearchFilterException isfe =
- new InvalidSearchFilterException (
- "Encountered parse exception while parsing the filter: '"
- + filter + "'" );
- isfe.setRootCause( pe );
- throw isfe;
+ try
+ {
+ /*
+ * TODO Added this parser initialization code to the FilterImpl
+ * and have a static class parser that can be globally accessed.
+ */
+ FilterParser parser = new FilterParserImpl();
+ filterNode = parser.parse( filter );
+ }
+ catch ( ParseException pe )
+ {
+ InvalidSearchFilterException isfe =
+ new InvalidSearchFilterException (
+ "Encountered parse exception while parsing the filter: '"
+ + filter + "'" );
+ isfe.setRootCause( pe );
+ throw isfe;
+ }
+ catch ( IOException ioe )
+ {
+ NamingException ne = new NamingException(
+ "Parser failed with IO exception on filter: '"
+ + filter + "'" );
+ ne.setRootCause( ioe );
+ throw ne;
+ }
}
- catch ( IOException ioe )
- {
- NamingException ne = new NamingException(
- "Parser failed with IO exception on filter: '"
- + filter + "'" );
- ne.setRootCause( ioe );
- throw ne;
- }
-
+
return getNexusProxy().search( target , getEnvironment(), filterNode, cons );
}
Modified: incubator/directory/eve/trunk/maven-eve-plugin/src/java/org/apache/eve/tools/schema/ObjectClasses.template
Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/maven-eve-plugin/src/java/org/apache/eve/tools/schema/ObjectClasses.template?view=diff&rev=109908&p1=incubator/directory/eve/trunk/maven-eve-plugin/src/java/org/apache/eve/tools/schema/ObjectClasses.template&r1=109907&p2=incubator/directory/eve/trunk/maven-eve-plugin/src/java/org/apache/eve/tools/schema/ObjectClasses.template&r2=109908
==============================================================================
--- incubator/directory/eve/trunk/maven-eve-plugin/src/java/org/apache/eve/tools/schema/ObjectClasses.template (original)
+++ incubator/directory/eve/trunk/maven-eve-plugin/src/java/org/apache/eve/tools/schema/ObjectClasses.template Sun Dec 5 11:54:57 2004
@@ -64,7 +64,9 @@
objectClass = newObjectClass( "$objectClass.getOid()", registries );
objectClass.setObsolete( $objectClass.isObsolete() );
- objectClass.setDescription( "$!objectClass.getDescription()" );
+ #if ( $objectClass.getDescription() )
+ objectClass.setDescription( "$objectClass.getDescription()" );
+ #end
#if ( $objectClass.getObjectClassType().getName() == "ABSTRACT" )
objectClass.setType( ObjectClassTypeEnum.ABSTRACT );
#elseif ( $objectClass.getObjectClassType().getName() == "AUXILIARY" )
Modified: incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/SearchHandler.java
Url: http://svn.apache.org/viewcvs/incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/SearchHandler.java?view=diff&rev=109908&p1=incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/SearchHandler.java&r1=109907&p2=incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/SearchHandler.java&r2=109908
==============================================================================
--- incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/SearchHandler.java (original)
+++ incubator/directory/eve/trunk/protocol/src/java/org/apache/eve/protocol/SearchHandler.java Sun Dec 5 11:54:57 2004
@@ -88,7 +88,27 @@
.getInitialLdapContext( key, null, true );
ctx = ( LdapContext ) ictx.lookup( "" );
ctx.addToEnvironment( DEREFALIASES_KEY, req.getDerefAliases().getName() );
- list = ctx.search( req.getBase(), req.getFilter().toString(), controls );
+
+ /*
+ * Eve JNDI Provider Specific Hack!
+ *
+ * Hack to get around not having to generate the filter string and
+ * reparse the expression back into a tree: instead we sneak the
+ * filter into the environment so the Eve context implementation
+ * can pick it up.
+ *
+ * @todo change this so we test for the Eve provider to use the hack
+ * @todo find better way to do this
+ * @todo if provider is not Eve provider then we need to generate filter
+ *
+ * To generate we're going to need a visitor for this. Can't use the
+ * toString() method which uses scan counts and is for pretty printing
+ * the filter.
+ */
+ ctx.addToEnvironment( "__filter__", req.getFilter() );
+ list = ctx.search( req.getBase(), null, controls );
+ ctx.removeFromEnvironment( "__filter__" );
+
if ( list.hasMore() )
{
return new SearchResponseIterator( req, list );
@@ -100,7 +120,7 @@
resp.setLdapResult( new LdapResultImpl( resp ) );
resp.getLdapResult().setResultCode( ResultCodeEnum.SUCCESS );
resp.getLdapResult().setMatchedDn( req.getBase() );
- return Collections.singleton( resp ).iterator();
+ return Collections.singleton( resp ).iterator();
}
}
catch ( NamingException e )