blob: 90d1c21eaf7faff0f4521ac872b995f7b484ae20 [file] [log] [blame]
Title: API 1.0 to 2.0 migration guide
Notice: 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.
# Apache LDAP API 1.0 to 2.0 migration guide
## Main differences
The *Apache LDAP API V 2.0* is not very different from the *1.0* version. However, a few classes have been renamed, removed or added.
### Value
Those classes/interface were removed :
* AbstractValue
* BinaryValue
* StringValue
They are all replaced by a single class, *Value*, that is not anymore parametered.
We now have to use the *Value* class only. That is not a really big trouble, as everywhere you were using *Value<?>*, you just have to remove the *<?>*.
Do not anymore use *new BinaryValue( byte[] )* or *new StringValue( String )*, just do *new Value( byte[] )* and *new Value( String )*.
There are a few methods that has changed, like *getValues()* that now always returns a *String* (even for a *byte[]*, which will be dumped as a hexadecimal string). If you want to get the *byte[]* from the *Value*, use *getBytes()*.
### Connection pool
We have moved to *commons-pool* 2.5, which means there is some incompatibility with the previous pool configuration.
Typically, when configuring a *LdapConnectionPool*, you have to pass a *PooledObjectFactory* instead of a *PoolableObjectFactory*.