diff --git a/pom.xml b/pom.xml
index 80e1c71..2d6c495 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,155 +1,155 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-   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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
-  <parent>
-    <groupId>org.apache.turbine</groupId>
-    <artifactId>turbine-parent</artifactId>
-    <version>8</version>
-  </parent>
-
-  <modelVersion>4.0.0</modelVersion>
-  <groupId>org.apache.fulcrum</groupId>
-  <artifactId>fulcrum-cache</artifactId>
-  <version>1.1.1-SNAPSHOT</version>
-  <name>Fulcrum Cache</name>
-  <inceptionYear>2004</inceptionYear>
-  <description>Fulcrum Cache Service</description>
-  <url>http://turbine.apache.org/fulcrum/fulcrum-cache</url>
-  
-    <!-- Required for staging to work -->
-    <distributionManagement>
-        <site>
-            <id>turbine.apache.org</id>
-            <url>https://turbine.apache.org/fulcrum/fulcrum-cache/</url>
-        </site>
-    </distributionManagement>
-        
-  <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/cache/</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/cache/</developerConnection>
-    <url>http://svn.apache.org/viewvc/turbine/fulcrum/trunk/cache/</url>
-  </scm>
-
-  <developers>
-    <developer>
-      <name>Siegfried Goeschl</name>
-      <id>sgoeschl</id>
-      <email>sgoeschl@apache.org</email>
-      <organization />
-      <roles>
-        <role>Java Developer</role>
-      </roles>
-    </developer>
-    <developer>
-      <name>Thomas Vandahl</name>
-      <id>tv</id>
-      <email>tv@apache.org</email>
-      <organization />
-      <roles>
-        <role>Java Developer</role>
-      </roles>
-    </developer>    
-  </developers>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.avalon.framework</groupId>
-      <artifactId>avalon-framework-api</artifactId>
-      <version>4.3.1</version>
-    </dependency>
-    <dependency>
-        <groupId>net.sf.ehcache</groupId>
-        <artifactId>ehcache</artifactId>
-        <version>2.10.9.2</version>
-    </dependency>
-    <!-- ehcache has api slf4j incldued -->
-     <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-simple</artifactId>
-        <version>1.7.30</version>
-        <scope>test</scope>
-    </dependency>
-     <!--dependency>
-      <groupId>org.ehcache</groupId>
-      <artifactId>ehcache</artifactId>
-      <version>3.9.2</version>
-      <scope>optional</scope>
-    </dependency-->
-    <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-jcs3-core</artifactId>
-        <version>3.0</version>
-    </dependency>
-    <!-- log optional for jcs3, required log4j2.xml and system property -Djcs.logSystem=log4j2  -->
-    <dependency>
-        <groupId>org.apache.logging.log4j</groupId>
-        <artifactId>log4j-core</artifactId>
-        <version>2.14.1</version>
-        <scope>test</scope>
-    </dependency>
-    <!-- testing dependencies -->
-    <dependency>
-      <groupId>org.apache.fulcrum</groupId>
-      <artifactId>fulcrum-testcontainer</artifactId>
-      <version>1.0.9</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.fulcrum</groupId>
-      <artifactId>fulcrum-yaafi</artifactId>
-      <version>1.0.8</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <sourceDirectory>${basedir}/src/java</sourceDirectory>
-    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
-    
-    <testResources>
-        <testResource>
-            <directory>src/test</directory>
-                <includes> 
-                 <include>**/*.xml</include> 
-                 <include>**/*.ccf</include>
-                  <include>**/*.properties</include>
-               </includes>
-        </testResource>
-    </testResources>
-  
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-surefire-plugin</artifactId>
-        <configuration>
-          <excludedGroups>LongRunning</excludedGroups>
-          <additionalClasspathElements>
-            <additionalClasspathElement>${basedir}/src/test</additionalClasspathElement>
-          </additionalClasspathElements>
-        </configuration>
-      </plugin>
-    </plugins>
-  </build>
-
-  <properties>
-    <turbine.site.path>fulcrum/fulcrum-cache</turbine.site.path>
-    <turbine.scmPubCheckoutDirectory>${turbine.site.cache}/fulcrum/cache</turbine.scmPubCheckoutDirectory>
-  </properties>
-
-    
-</project>
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+   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.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <groupId>org.apache.turbine</groupId>
+    <artifactId>turbine-parent</artifactId>
+    <version>8</version>
+  </parent>
+
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.fulcrum</groupId>
+  <artifactId>fulcrum-cache</artifactId>
+  <version>1.1.1</version>
+  <name>Fulcrum Cache</name>
+  <inceptionYear>2004</inceptionYear>
+  <description>Fulcrum Cache Service</description>
+  <url>http://turbine.apache.org/fulcrum/fulcrum-cache</url>
+  
+    <!-- Required for staging to work -->
+    <distributionManagement>
+        <site>
+            <id>turbine.apache.org</id>
+            <url>https://turbine.apache.org/fulcrum/fulcrum-cache/</url>
+        </site>
+    </distributionManagement>
+        
+  <scm>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/tags/fulcrum-cache-1.1.1</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/tags/fulcrum-cache-1.1.1</developerConnection>
+    <url>http://svn.apache.org/viewvc/turbine/fulcrum/tags/fulcrum-cache-1.1.1</url>
+  </scm>
+
+  <developers>
+    <developer>
+      <name>Siegfried Goeschl</name>
+      <id>sgoeschl</id>
+      <email>sgoeschl@apache.org</email>
+      <organization />
+      <roles>
+        <role>Java Developer</role>
+      </roles>
+    </developer>
+    <developer>
+      <name>Thomas Vandahl</name>
+      <id>tv</id>
+      <email>tv@apache.org</email>
+      <organization />
+      <roles>
+        <role>Java Developer</role>
+      </roles>
+    </developer>    
+  </developers>
+
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.avalon.framework</groupId>
+      <artifactId>avalon-framework-api</artifactId>
+      <version>4.3.1</version>
+    </dependency>
+    <dependency>
+        <groupId>net.sf.ehcache</groupId>
+        <artifactId>ehcache</artifactId>
+        <version>2.10.9.2</version>
+    </dependency>
+    <!-- ehcache has api slf4j incldued -->
+     <dependency>
+        <groupId>org.slf4j</groupId>
+        <artifactId>slf4j-simple</artifactId>
+        <version>1.7.30</version>
+        <scope>test</scope>
+    </dependency>
+     <!--dependency>
+      <groupId>org.ehcache</groupId>
+      <artifactId>ehcache</artifactId>
+      <version>3.9.2</version>
+      <scope>optional</scope>
+    </dependency-->
+    <dependency>
+        <groupId>org.apache.commons</groupId>
+        <artifactId>commons-jcs3-core</artifactId>
+        <version>3.0</version>
+    </dependency>
+    <!-- log optional for jcs3, required log4j2.xml and system property -Djcs.logSystem=log4j2  -->
+    <dependency>
+        <groupId>org.apache.logging.log4j</groupId>
+        <artifactId>log4j-core</artifactId>
+        <version>2.14.1</version>
+        <scope>test</scope>
+    </dependency>
+    <!-- testing dependencies -->
+    <dependency>
+      <groupId>org.apache.fulcrum</groupId>
+      <artifactId>fulcrum-testcontainer</artifactId>
+      <version>1.0.9</version>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.fulcrum</groupId>
+      <artifactId>fulcrum-yaafi</artifactId>
+      <version>1.0.8</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
+
+  <build>
+    <sourceDirectory>${basedir}/src/java</sourceDirectory>
+    <testSourceDirectory>${basedir}/src/test</testSourceDirectory>
+    
+    <testResources>
+        <testResource>
+            <directory>src/test</directory>
+                <includes> 
+                 <include>**/*.xml</include> 
+                 <include>**/*.ccf</include>
+                  <include>**/*.properties</include>
+               </includes>
+        </testResource>
+    </testResources>
+  
+    <plugins>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-surefire-plugin</artifactId>
+        <configuration>
+          <excludedGroups>LongRunning</excludedGroups>
+          <additionalClasspathElements>
+            <additionalClasspathElement>${basedir}/src/test</additionalClasspathElement>
+          </additionalClasspathElements>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+
+  <properties>
+    <turbine.site.path>fulcrum/fulcrum-cache</turbine.site.path>
+    <turbine.scmPubCheckoutDirectory>${turbine.site.cache}/fulcrum/cache</turbine.scmPubCheckoutDirectory>
+  </properties>
+
+    
+</project>
