<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  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.
-->
<document>
<body>
<section name="Apache WSS4J 2.2.0 Migration Guide">
<p>
This page is a migration guide for helping Apache WSS4J 2.1.x users to migrate
to the 2.2.x releases. 
</p>

<subsection name="JDK8 minimum requirement">
<p>
WSS4J 2.1.x required JDK7 as a minimum requirement. WSS4J 2.2.x requires at
least JDK8. 
</p>
</subsection>

<subsection name="Base64 changes">
<p>
In WSS4J 2.1.x, the Base64 implementation that ships with the JDK
(java.util.Base64) is used, instead of the Base64 implementation that ships 
with Apache Santuario. It is unlikely, but this may have an impact on users
who are parsing messages with Base64 implementations that depend on specific
CR or LF characters, as the Santuario and Java Base64 implementations differ
slightly. Both the Apache Santuario and Java Base64 implementations can 
correctly decode the messages created with Apache WSS4J 2.2.x.
</p>
</subsection>

<subsection name="Kerberos changes">
<p>
There are some changes with regards to Kerberos in WSS4J 2.1.x. The
KerberosClientAction and KerberosServiceAction classes are removed. Instead 
use KerberosClientExceptionAction and KerberosServiceExceptionAction in the
same package. The KerberosTokenDecoderImpl is removed as we can now get access
to the secret key via the JDK APIs. As a consequence, the ws-security-common
module no longer has a dependency on Apache Directory.
</p>
</subsection>

</section>
</body>
</document>
