| <?xml version="1.0"?> |
| <!-- |
| 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> |
| <properties> |
| <title>Upgrading from JCS 2.x to 3.0</title> |
| <author email="tv@apache.org">Thomas Vandahl</author> |
| </properties> |
| |
| <body> |
| <section name="Upgrading from JCS 2.x to 3.0"> |
| <p> |
| This document lists a number of things that changed in Commons JCS |
| 3.0. |
| </p> |
| <subsection name="Minimum Java Requirements"> |
| <p> |
| JCS 3.x requires Java 8 to run. It was tested successfully with JDK 14. |
| </p> |
| </subsection> |
| <subsection name="Package Names and Maven Coordinates"> |
| <p> |
| The Apache Commons project requires a change of the package names |
| and Maven coordinates on a major release. |
| So in all your code replace |
| <source><![CDATA[ |
| import org.apache.commons.jcs.*; |
| ]]></source> |
| with |
| <source><![CDATA[ |
| import org.apache.commons.jcs3.*; |
| ]]></source> |
| The Maven coordinates change from |
| <source><![CDATA[ |
| <dependency> |
| <groupId>org.apache.commons.jcs</groupId> |
| <artifactId>commons-jcs-core</artifactId> |
| <version>2.2.1</version> |
| </dependency> |
| ]]></source> |
| to |
| <source><![CDATA[ |
| <dependency> |
| <groupId>org.apache.commons</groupId> |
| <artifactId>commons-jcs3-core</artifactId> |
| <version>3.0</version> |
| </dependency> |
| ]]></source> |
| </p> |
| </subsection> |
| <subsection name="Adjusting the Configuration"> |
| <p> |
| Here again, change all package names in configuration entries |
| from e.g. |
| <source><![CDATA[ |
| jcs.default.cacheattributes=org.apache.commons.jcs.engine.CompositeCacheAttributes |
| ]]></source> |
| to |
| <source><![CDATA[ |
| jcs.default.cacheattributes=org.apache.commons.jcs3.engine.CompositeCacheAttributes |
| ]]></source> |
| </p> |
| </subsection> |
| <subsection name="Logging Abstraction"> |
| <p> |
| JCS 3.0 uses its own log abstraction layer. As newer and better |
| log systems become available, JCS is no longer limited to |
| commons-logging. As a result, JCS now uses java.util.logging as |
| default and does not depend on commons-logging anymore. |
| </p> |
| <p> |
| Optionally, JCS can use Log4j2 as a log system. You can activate |
| it by providing log4j-core as a dependency, a log configuration |
| such as log4j2.xml and a system property |
| <source><![CDATA[ |
| -Djcs.logSystem=log4j2 |
| ]]></source> |
| As log initialization occurs very early in the startup process, |
| be sure to add this property before accessing any of JCS' classes. |
| </p> |
| <p> |
| JCS uses the Java SPI mechanism to find its log systems. If you want |
| to roll your own, you will need to implement a |
| <code>org.apache.commons.jcs.log.Log</code> object and a |
| <code>org.apache.commons.jcs.log.LogFactory</code> |
| and provide the implementation class in a text file |
| <code>META-INF/services/org.apache.commons.jcs.log.LogFactory</code> |
| in your code. Choose a name for your log system and activate it via |
| the system property as described above. |
| </p> |
| </subsection> |
| </section> |
| </body> |
| </document> |