<?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.
-->
<document>
  <properties>
    <title>Changes</title>
    <author email="tv@apache.org">Thomas Vandahl</author>
  </properties>

  <body>
    <release version="2.0.0-SNAPSHOT" date="in Gitbox">
       <action type="update" dev="gk">
        integrate docker branch (optional profile docker)
      </action>
    </release>
	<release version="1.0.3" date="in Gitbox">
	  <action type="update" dev="jp">
         Update to from lang to lang3
      </action>
	  <action type="update" dev="jp">
         Update mysql driver required adding server time zone parameter in new app properties
      </action>
	  <action type="update" dev="jp">
         Update to Turbine 5.0
      </action>
	</release>
    <release version="1.0.2" date="in Subversion">
      <action type="update" dev="gk" due-to="Jeffery Painter">
         Added security test to show Turbine Fulcrum Torque consistency
      </action>
      <action type="fix" dev="gk" due-to="Jeffery Painter">
         Fix OM classes and schema, SQL autoincrement by default used
      </action>
      <action type="update" dev="gk">
        war plugin 3.2, mysql connector 5.1.44 Update
      </action>
      <action type="update" dev="gk">
        Integrate JSON, Localization, Model Examples
      </action>
      <action type="update" dev="gk">
        Using Torque Services, Code Cleanup, Removing Classes
      </action>
      <action type="update" dev="gk">
        Turbine 4.0, JUNit 4.12
      </action>
    </release> 
   <release version="1.0.1" date="in Subversion">
       <action dev="gk" type="add">
       Password change action, Check anonymous login
      </action>
      <action dev="gk" type="update">
       JNDI Jetty Update
      </action>
      <action dev="tv" type="add">
       Add testing in place with "integration-test"
      </action>
      <action dev="tv" type="update">
       Turbine annotations, use auto detect Torque adapter
      </action>
       <action dev="gk" type="update">
       Fulcrum Torque Security added manager, om classes
      </action>
      <action dev="painter" type="add">
       Added readme, docs, helper sql..
      </action>
       <action dev="painter" type="update">
       MySQL is now default
      </action>
      <action dev="gk" type="update">
       Update schema to torque / intake 4.0, dependencies, configurations
       Update to MemoryGroupManagerImpl, Fulcrum     
      </action>
      <action dev="gk" type="add">
        Jetty support
      </action>
      <action dev="tv" type="fix">
        TRB-95
      </action>
      <action dev="gk" type="update ">
        Update to Turbine 4-M2
      </action>
    </release>
    <release version="1.0.0" date="2012-11-06">
      <action dev="tv" type="fix">
        Fixed missing dependencies and wrong class names as reported on the mailing list
      </action>
      <action dev="tv" type="add">
        Add information required for a release to the POM
      </action>
      <action dev="tv" type="add">
        Initial version
      </action>
    </release>
  </body>
</document>
