[maven-release-plugin]  copy for tag kalumet-0.6-incubating

git-svn-id: https://svn.apache.org/repos/asf/incubator/kalumet/tags/kalumet-0.6-incubating@1520235 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/.gitignore b/.gitignore
index b426f54..6135c9f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,21 @@
+#
+# 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.
+#
 target
 .classpath
 .project
@@ -5,3 +23,4 @@
 *.i??
 .DS_Store
 .idea
+documentation/site-content/
diff --git a/0.6.x/.gitignore b/0.6.x/.gitignore
deleted file mode 100644
index f63c700..0000000
--- a/0.6.x/.gitignore
+++ /dev/null
@@ -1,8 +0,0 @@
-target
-.classpath
-.project
-.settings
-*.i??
-.DS_Store
-.idea
-documentation/site-content/
diff --git a/0.6.x/BUILDING b/0.6.x/BUILDING
deleted file mode 100644
index 48ba9c9..0000000
--- a/0.6.x/BUILDING
+++ /dev/null
@@ -1,40 +0,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.
- */
-
-Apache Kalumet Build Instructions
-=================================
-
-   Getting Source
-   --------------
-To be able to build Apache Kalumet agent, you need to checkout the source code or download the source distribution.
-
-To browse the raw SVN repository, use the following URL:
-
-  http://svn.apache.org/repos/asf/incubator/kalumet/trunk/
-
-You can checkout the source code using the following command:
-
-   svn co http://svn.apache.org/repos/asf/incubator/kalumet/trunk/
-
-   Building
-   --------
-Apache Kalumet uses Maven as its build and management tool.
-You need to download and install Maven 3.0.3 (see http://maven.apache.org for details).
-
-Go into your Apache Kalumet source local copy and run:
-
-   mvn install
diff --git a/0.6.x/DISCLAIMER b/0.6.x/DISCLAIMER
deleted file mode 100644
index 6668c4f..0000000
--- a/0.6.x/DISCLAIMER
+++ /dev/null
@@ -1,10 +0,0 @@
-Apache Kalumet is an effort undergoing incubation at the Apache Software
-Foundation (ASF), sponsored by the Apache Incubator PMC. 
-
-Incubation is required of all newly accepted projects until a further review 
-indicates that the infrastructure, communications, and decision making process 
-have stabilized in a manner consistent with other successful ASF projects. 
-
-While incubation status is not necessarily a reflection of the completeness 
-or stability of the code, it does indicate that the project has yet to be 
-fully endorsed by the ASF.
diff --git a/0.6.x/LICENSE b/0.6.x/LICENSE
deleted file mode 100644
index 2a4cd78..0000000
--- a/0.6.x/LICENSE
+++ /dev/null
@@ -1,655 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
-
-==========================================================================
-The Apache License, Version 2.0 applies to the following libraries:
-axis, quartz
-
-==========================================================================
-The following license applies to the slf4j library
---------------------------------------------------------------------------
- Copyright (c) 2004-2013 QOS.ch All rights reserved. Permission 
- is hereby granted, free of charge, to any person obtaining a copy 
- of this software and associated documentation files (the "Software"), 
- to deal in the Software without restriction, including without limitation 
- the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- and/or sell copies of the Software, and to permit persons to whom the 
- Software is furnished to do so, subject to the following conditions: 
- The above copyright notice and this permission notice shall be included 
- in all copies or substantial portions of the Software. 
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
- SOFTWARE.
-
-==========================================================================
-The following license applies to the classworlds library
---------------------------------------------------------------------------
-/*
- $Id: LICENSE.txt,v 1.1.1.1 2003/07/29 04:37:59 bob Exp $
-
- Copyright 2002 (C) The Codehaus. All Rights Reserved.
-
- Redistribution and use of this software and associated documentation
- ("Software"), with or without modification, are permitted provided
- that the following conditions are met:
-
- 1. Redistributions of source code must retain copyright
-    statements and notices.  Redistributions must also contain a
-    copy of this document.
-
- 2. Redistributions in binary form must reproduce the
-    above copyright notice, this list of conditions and the
-    following disclaimer in the documentation and/or other
-    materials provided with the distribution.
-
- 3. The name "classworlds" must not be used to endorse or promote
-    products derived from this Software without prior written
-    permission of The Codehaus.  For written permission, please
-    contact bob@codehaus.org.
-
- 4. Products derived from this Software may not be called "classworlds"
-    nor may "classworlds" appear in their names without prior written
-    permission of The Codehaus. "classworlds" is a registered
-    trademark of The Codehaus.
-
- 5. Due credit should be given to The Codehaus.
-    (http://classworlds.codehaus.org/).
-
- THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
- ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
- THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- OF THE POSSIBILITY OF SUCH DAMAGE.
-
- */
-
-==========================================================================
-The following license applies to the Echo2 library
---------------------------------------------------------------------------
-
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
-    means each individual or legal entity that creates, contributes to
-    the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
-    means the combination of the Contributions of others (if any) used
-    by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
-    means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
-    means Source Code Form to which the initial Contributor has attached
-    the notice in Exhibit A, the Executable Form of such Source Code
-    Form, and Modifications of such Source Code Form, in each case
-    including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
-    means
-
-    (a) that the initial Contributor has attached the notice described
-        in Exhibit B to the Covered Software; or
-
-    (b) that the Covered Software was made available under the terms of
-        version 1.1 or earlier of the License, but not also under the
-        terms of a Secondary License.
-
-1.6. "Executable Form"
-    means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
-    means a work that combines Covered Software with other material, in 
-    a separate file or files, that is not Covered Software.
-
-1.8. "License"
-    means this document.
-
-1.9. "Licensable"
-    means having the right to grant, to the maximum extent possible,
-    whether at the time of the initial grant or subsequently, any and
-    all of the rights conveyed by this License.
-
-1.10. "Modifications"
-    means any of the following:
-
-    (a) any file in Source Code Form that results from an addition to,
-        deletion from, or modification of the contents of Covered
-        Software; or
-
-    (b) any new file in Source Code Form that contains any Covered
-        Software.
-
-1.11. "Patent Claims" of a Contributor
-    means any patent claim(s), including without limitation, method,
-    process, and apparatus claims, in any patent Licensable by such
-    Contributor that would be infringed, but for the grant of the
-    License, by the making, using, selling, offering for sale, having
-    made, import, or transfer of either its Contributions or its
-    Contributor Version.
-
-1.12. "Secondary License"
-    means either the GNU General Public License, Version 2.0, the GNU
-    Lesser General Public License, Version 2.1, the GNU Affero General
-    Public License, Version 3.0, or any later versions of those
-    licenses.
-
-1.13. "Source Code Form"
-    means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
-    means an individual or a legal entity exercising rights under this
-    License. For legal entities, "You" includes any entity that
-    controls, is controlled by, or is under common control with You. For
-    purposes of this definition, "control" means (a) the power, direct
-    or indirect, to cause the direction or management of such entity,
-    whether by contract or otherwise, or (b) ownership of more than
-    fifty percent (50%) of the outstanding shares or beneficial
-    ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
-    Licensable by such Contributor to use, reproduce, make available,
-    modify, display, perform, distribute, and otherwise exploit its
-    Contributions, either on an unmodified basis, with Modifications, or
-    as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
-    for sale, have made, import, and otherwise transfer either its
-    Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
-    or
-
-(b) for infringements caused by: (i) Your and any other third party's
-    modifications of Covered Software, or (ii) the combination of its
-    Contributions with other software (except as part of its Contributor
-    Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
-    its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
-    Form, as described in Section 3.1, and You must inform recipients of
-    the Executable Form how they can obtain a copy of such Source Code
-    Form by reasonable means in a timely manner, at a charge no more
-    than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
-    License, or sublicense it under different terms, provided that the
-    license for the Executable Form does not attempt to limit or alter
-    the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-*                                                                      *
-*  6. Disclaimer of Warranty                                           *
-*  -------------------------                                           *
-*                                                                      *
-*  Covered Software is provided under this License on an "as is"       *
-*  basis, without warranty of any kind, either expressed, implied, or  *
-*  statutory, including, without limitation, warranties that the       *
-*  Covered Software is free of defects, merchantable, fit for a        *
-*  particular purpose or non-infringing. The entire risk as to the     *
-*  quality and performance of the Covered Software is with You.        *
-*  Should any Covered Software prove defective in any respect, You     *
-*  (not any Contributor) assume the cost of any necessary servicing,   *
-*  repair, or correction. This disclaimer of warranty constitutes an   *
-*  essential part of this License. No use of any Covered Software is   *
-*  authorized under this License except under this disclaimer.         *
-*                                                                      *
-************************************************************************
-
-************************************************************************
-*                                                                      *
-*  7. Limitation of Liability                                          *
-*  --------------------------                                          *
-*                                                                      *
-*  Under no circumstances and under no legal theory, whether tort      *
-*  (including negligence), contract, or otherwise, shall any           *
-*  Contributor, or anyone who distributes Covered Software as          *
-*  permitted above, be liable to You for any direct, indirect,         *
-*  special, incidental, or consequential damages of any character      *
-*  including, without limitation, damages for lost profits, loss of    *
-*  goodwill, work stoppage, computer failure or malfunction, or any    *
-*  and all other commercial damages or losses, even if such party      *
-*  shall have been informed of the possibility of such damages. This   *
-*  limitation of liability shall not apply to liability for death or   *
-*  personal injury resulting from such party's negligence to the       *
-*  extent applicable law prohibits such limitation. Some               *
-*  jurisdictions do not allow the exclusion or limitation of           *
-*  incidental or consequential damages, so this exclusion and          *
-*  limitation may not apply to You.                                    *
-*                                                                      *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
-  This Source Code Form is subject to the terms of the Mozilla Public
-  License, v. 2.0. If a copy of the MPL was not distributed with this
-  file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
-  This Source Code Form is "Incompatible With Secondary Licenses", as
-  defined by the Mozilla Public License, v. 2.0.
-
diff --git a/0.6.x/NOTICE b/0.6.x/NOTICE
deleted file mode 100644
index 05c3ba6..0000000
--- a/0.6.x/NOTICE
+++ /dev/null
@@ -1,14 +0,0 @@
-Apache Kalumet

-Copyright 2013 The Apache Software Foundation

-

-This product includes software developed at

-The Apache Software Foundation (http://www.apache.org/).

-Licensed under the Apache License 2.0.

-

-This product includes software developed at

-SLF4J (http://www.slf4j.org/).

-Licensed under the MIT License.

-

-This product includes software developed at

-NextApp (http://www.nextapp.com).

-Licensed under the Mozilla Public License.

diff --git a/0.6.x/README b/0.6.x/README
deleted file mode 100644
index cac90e7..0000000
--- a/0.6.x/README
+++ /dev/null
@@ -1,123 +0,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.

- */

-

-Welcome to Apache Kalumet

-=========================

-Apache Kalumet is a complete deployment platform. It's able to manage all kind of environments (JEE, OSGi,

-custom, etc).

-It's the perfect tool for softwares, middlewares, and data center administrators.

-It's also a good complement to continuous integration (managed by Maven, Continuum, or Jenkins for instance) by adding

-continuous deployment. The whole factory chain is covered and the administrators manages all environments in a secure

-and safe way.

-

-Apache Kalumet is a small OSGi based kernel which provides a

-lightweight container onto which various bundles can be deployed.

-

-Apache Kalumet provides two components:

-    * the agents are installed locally on the target platform

-    * the console controls and manages the agents, allowing the administrator to manipulate, update, install, deploy

-      the target platform and software components.

-

-Getting Started

-===============

-For an Apache Kalumet source distribution, please read

-BUILDING for instructions on building Apache Kalumet.

-

-    Apache Kalumet Agent

-    ---------------------

-        J2SE 1.6

-Apache Lalumet Agent requires at least a Java 1.6 environment to run.

-Refer to http://java.sun.com for detail on how to download and install J2SE 1.6.

-

-        Uncompress binaries

-Select the Kalumet agent file compression format compatible with your system (zip, tar.gz) by clicking directly on

-the link, download it and expand the binary to your hard drive in a new directory ;

-for example /opt/apache-kalumet-agent - from now on this directory will be referenced as <kalumet_agent_home>.

-Please remember the restrictions concerning illegal characters in Java paths, e.g. !, % etc.

-

-        Start agent

-With Apache Kalumet agent already installed, open a command line console and change directory to <kalumet_agent_home>.

-To start the agent, run the following command in Windows:

-

-   bin\apache-kalumet-agent.bat

-

-respectively in Linux/Unix:

-

-   bin/apache-kalumet-agent

-

-The agent launcher expects some arguments:

- -config <config>           The path/url to the configuration file (e.g. http://<hostname>/kalumet/ConfiugrationWrapper)

- -id <id>                   The agent id as defined in the configuration

-

-    Apache Kalumet Console

-    -----------------------

-    JSP/Servlet Engine

-Apache Kalumet console has to be deployed into a JSP/Servlet Engine (like Apache Tomcat or Jetty) or a JEE application

-server (like RedHat JBoss, Oracle Weblogic, IBM WebSphere).

-

-    Download binaries

-Select the file compression format compatible with your system (zip, tar.gz) by clicking directly on the link,

-download it and expand the binary to your hard drive in a new directory ; for example /tmp/kalumet_console -

-from now on this directory will be referenced as <kalumet_console_home>. Please remember the restrictions concerning

-illegal characters in Java paths, e.g. !, % etc.

-

-    Apache Kalumet Console Configuration

-Apache Kalumet Console creates a default configuration which allows you to directly use the console.

-

-You can update the base directory used by Kalumet console by adding the -Dkalumet.home system property.

-

-More over, for advanced users, you can override the default console configuration (location of the configuration file

-and journals) by pushing a apache-kalumet-console-config.xml file in the class loader.

-You can find this file in the Apache Kalumet console configuration in

-<kalumet_console_home>/conf/apache-kalumet-console-config.xml.

-You need to copy this file into the JSP/Servlet engine classpath. For example, using Apache Tomcat, you can

-copy the apache-kalumet-console-config.xml into the <tomcat_home>/lib directory.

-

-Configure the apache-kalumet-console-config.xml to match your environment settings.

-

-    Deploy Apache Kalumet Console

-Copy <kalumet_console_home>/webapp/apache-kalumet-console.war into the JSP/Servlet Engine or JEE application server

-deploy directory. For example, to deploy on Apache Tomcat, simply copy the war archive into the <tomcat_home>/webapps

-directory.

-

-    Using Apache Kalumet Console

-You should now be able to access to Apache Kalumet console, for example using

-http://localhost:8080/apache-kalumet-console.

-The default admin user password is admin.

-

-

-Support and Contribution

-========================

-Alternatively, you can also find out how to get started here:

-    http://incubator.apache.org/kalumet/

-

-If you need more help try talking to us on our mailing lists

-    http://incubator.apache.org/kalumet/mailinglists.html

-

-If you find any issues with Apache Kalumet, please submit reports

-with JIRA here:

-    http://issues.apache.org/jira/browse/KALUMET

-

-We welcome contributions, and encourage you to get involved in the 

-Kalumet community. If you'd like to learn more about how you can

-contribute, please see:

-    http://incubator.apache.org/kalumet/contributing.html

-

-Many thanks for using Apache Kalumet.

-

-

-The Kalumet Team
\ No newline at end of file
diff --git a/0.6.x/RELEASE-NOTES b/0.6.x/RELEASE-NOTES
deleted file mode 100644
index 1a35b9a..0000000
--- a/0.6.x/RELEASE-NOTES
+++ /dev/null
@@ -1,57 +0,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.
- */
-
-                    Apache Kalumet 0.6-incubating
-                    =============================
-
-  Overview
-  --------
-
- The Apache Kalumet 0.6-incubating is the first release since Kalumet has been accepted in the Apache incubator.
- This release brings new features, improvements and bug fixes. The changelog below contains the whole
- list of changes.
-
-  Changelog
-  ---------
-
- The following list shows the bug fixes and enhancements included in this release:
-
-** Bug
-    * [KALUMET-7] - JBoss 6 controller is not able to check the ServerHomeLocation
-    * [KALUMET-39] - NullPointerException when adding a J2EE application server in a fresh environment
-    * [KALUMET-40] - NullPointerException when adding a J2EE application server in a fresh environment
-    * [KALUMET-42] - Cant create a new applicaitons server
-    * [KALUMET-47] - Software is not saved correctly
-    * [KALUMET-48] - Journal custom event layout is not correct
-    * [KALUMET-51] - Fix content of LICENSE and NOTICE files
-
-** Improvement
-    * [KALUMET-19] - index layout inconsistent
-    * [KALUMET-22] - POM updated to Apache email for trimmer
-    * [KALUMET-38] - Console should create a default store file
-
-** New Feature
-    * [KALUMET-2] - Provide source distribution
-
-** Task
-    * [KALUMET-8] - Add started guide
-    * [KALUMET-9] - Add installation guide
-    * [KALUMET-10] - Add user guide
-    * [KALUMET-15] - Add building guide
-    * [KALUMET-17] - Add release guide
-    * [KALUMET-23] - Add a distribution for the console
-    * [KALUMET-50] - Upgrade to Apache POM 12
diff --git a/0.6.x/assembly/NOTICE b/0.6.x/assembly/NOTICE
deleted file mode 100644
index 05c3ba6..0000000
--- a/0.6.x/assembly/NOTICE
+++ /dev/null
@@ -1,14 +0,0 @@
-Apache Kalumet

-Copyright 2013 The Apache Software Foundation

-

-This product includes software developed at

-The Apache Software Foundation (http://www.apache.org/).

-Licensed under the Apache License 2.0.

-

-This product includes software developed at

-SLF4J (http://www.slf4j.org/).

-Licensed under the MIT License.

-

-This product includes software developed at

-NextApp (http://www.nextapp.com).

-Licensed under the Mozilla Public License.

diff --git a/0.6.x/assembly/pom.xml b/0.6.x/assembly/pom.xml
deleted file mode 100644
index 8347ff2..0000000
--- a/0.6.x/assembly/pom.xml
+++ /dev/null
@@ -1,228 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet</groupId>
-    <artifactId>kalumet</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>apache-kalumet</artifactId>
-  <packaging>pom</packaging>
-  <name>Apache Kalumet :: Assembly</name>
-
-  <dependencies>
-    <dependency>
-      <groupId>axis</groupId>
-      <artifactId>axis</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>axis</groupId>
-      <artifactId>axis-jaxrpc</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>axis</groupId>
-      <artifactId>axis-saaj</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>axis</groupId>
-      <artifactId>axis-wsdl4j</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>classworlds</groupId>
-      <artifactId>classworlds</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-beanutils</groupId>
-      <artifactId>commons-beanutils</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-cli</groupId>
-      <artifactId>commons-cli</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-codec</groupId>
-      <artifactId>commons-codec</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-compress</groupId>
-      <artifactId>commons-compress</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-digester</groupId>
-      <artifactId>commons-digester</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-discovery</groupId>
-      <artifactId>commons-discovery</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-lang</groupId>
-      <artifactId>commons-lang</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-net</groupId>
-      <artifactId>commons-net</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-vfs</groupId>
-      <artifactId>commons-vfs</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>concurrent</groupId>
-      <artifactId>concurrent</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>opensymphony</groupId>
-      <artifactId>quartz</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-email</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.geronimo.specs</groupId>
-      <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.agent</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet.controller</groupId>
-      <artifactId>org.apache.kalumet.controller.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.utils</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.console</artifactId>
-      <type>war</type>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>oro</groupId>
-      <artifactId>oro</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>xalan</groupId>
-      <artifactId>serializer</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>xalan</groupId>
-      <artifactId>xalan</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>xerces</groupId>
-      <artifactId>xercesImpl</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>xml-apis</groupId>
-      <artifactId>xml-apis</artifactId>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <executions>
-          <execution>
-            <id>agent-bin</id>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <descriptors>
-                <descriptor>src/main/descriptors/agent-bin.xml</descriptor>
-              </descriptors>
-              <appendAssemblyId>true</appendAssemblyId>
-              <tarLongFileMode>gnu</tarLongFileMode>
-            </configuration>
-          </execution>
-          <execution>
-            <id>console-bin</id>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <descriptors>
-                <descriptor>src/main/descriptors/console-bin.xml</descriptor>
-              </descriptors>
-              <appendAssemblyId>true</appendAssemblyId>
-              <tarLongFileMode>gnu</tarLongFileMode>
-            </configuration>
-          </execution>
-          <execution>
-            <id>src</id>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-            <configuration>
-              <descriptors>
-                <descriptor>src/main/descriptors/src.xml</descriptor>
-              </descriptors>
-              <appendAssemblyId>true</appendAssemblyId>
-              <tarLongFileMode>gnu</tarLongFileMode>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
diff --git a/0.6.x/assembly/src/main/descriptors/agent-bin.xml b/0.6.x/assembly/src/main/descriptors/agent-bin.xml
deleted file mode 100644
index 2669d51..0000000
--- a/0.6.x/assembly/src/main/descriptors/agent-bin.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?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.
--->
-<assembly>
-
-  <id>agent</id>
-
-  <baseDirectory>apache-kalumet-${project.version}-agent</baseDirectory>
-
-  <formats>
-    <format>tar.gz</format>
-    <format>zip</format>
-  </formats>
-
-  <fileSets>
-    <fileSet>
-      <directory>${basedir}/..</directory>
-      <outputDirectory>/</outputDirectory>
-      <includes>
-        <include>LICENSE</include>
-        <include>NOTICE</include>
-        <include>README</include>
-        <include>RELEASE-NOTES</include>
-      </includes>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/distribution/agent</directory>
-      <outputDirectory>/</outputDirectory>
-      <excludes>
-        <exclude>bin</exclude>
-      </excludes>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/distribution/agent/bin</directory>
-      <outputDirectory>/bin</outputDirectory>
-      <fileMode>755</fileMode>
-    </fileSet>
-  </fileSets>
-
-  <dependencySets>
-    <dependencySet>
-      <outputDirectory>lib</outputDirectory>
-      <includes>
-        <include>org.apache.kalumet:org.apache.kalumet.common</include>
-        <include>org.apache.kalumet:org.apache.kalumet.utils</include>
-        <include>org.apache.kalumet:org.apache.kalumet.agent</include>
-        <include>classworlds:classworlds</include>
-        <include>org.apache.geronimo.specs:geronimo-jta_1.0.1B_spec</include>
-        <include>org.slf4j:slf4j-api</include>
-        <include>org.slf4j:slf4j-log4j12</include>
-        <include>log4j:log4j</include>
-        <include>commons-digester:commons-digester</include>
-        <include>commons-vfs:commons-vfs</include>
-        <include>commons-io:commons-io</include>
-        <include>commons-cli:commons-cli</include>
-        <include>commons-collections:commons-collections</include>
-        <include>commons-codec:commons-codec</include>
-        <include>commons-beanutils:commons-beanutils</include>
-        <include>commons-net:commons-net</include>
-        <include>commons-httpclient:commons-httpclient</include>
-        <include>commons-compress:commons-compress</include>
-        <include>org.apache.commons:commons-email</include>
-        <include>commons-lang:commons-lang</include>
-        <include>commons-discovery:commons-discovery</include>
-        <include>concurrent:concurrent</include>
-        <include>opensymphony:quartz</include>
-        <include>oro:oro</include>
-        <include>xml-apis:xml-apis</include>
-        <include>xerces:xercesImpl</include>
-        <include>xalan:xalan</include>
-        <include>axis:axis</include>
-        <include>org.apache.axis:axis-jaxrpc</include>
-        <include>org.apache.axis:axis-saaj</include>
-        <include>axis:axis-wsdl4j</include>
-        <include>xalan:serializer</include>
-      </includes>
-    </dependencySet>
-  </dependencySets>
-</assembly>
diff --git a/0.6.x/assembly/src/main/descriptors/console-bin.xml b/0.6.x/assembly/src/main/descriptors/console-bin.xml
deleted file mode 100644
index aeaadb8..0000000
--- a/0.6.x/assembly/src/main/descriptors/console-bin.xml
+++ /dev/null
@@ -1,51 +0,0 @@
-<?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.
--->
-<assembly>
-
-  <id>console</id>
-
-  <baseDirectory>apache-kalumet-${project.version}-console</baseDirectory>
-
-  <formats>
-    <format>tar.gz</format>
-    <format>zip</format>
-  </formats>
-
-  <fileSets>
-    <fileSet>
-      <directory>${basedir}/..</directory>
-      <outputDirectory>/</outputDirectory>
-      <includes>
-        <include>LICENSE</include>
-        <include>NOTICE</include>
-        <include>README</include>
-        <include>RELEASE-NOTES</include>
-      </includes>
-    </fileSet>
-  </fileSets>
-
-  <dependencySets>
-    <dependencySet>
-      <outputDirectory>/</outputDirectory>
-      <includes>
-        <include>org.apache.kalumet:org.apache.kalumet.console</include>
-      </includes>
-    </dependencySet>
-  </dependencySets>
-
-</assembly>
diff --git a/0.6.x/assembly/src/main/descriptors/src.xml b/0.6.x/assembly/src/main/descriptors/src.xml
deleted file mode 100644
index 41a82f5..0000000
--- a/0.6.x/assembly/src/main/descriptors/src.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-<?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.
--->
-<assembly>
-
-  <id>src</id>
-
-  <baseDirectory>apache-kalumet-${project.version}-scr</baseDirectory>
-
-  <formats>
-    <format>tar.gz</format>
-    <format>zip</format>
-  </formats>
-
-  <fileSets>
-    <fileSet>
-      <directory>${basedir}/..</directory>
-      <outputDirectory>/</outputDirectory>
-      <excludes>
-        <exclude>LICENSE</exclude>
-        <exclude>NOTICE</exclude>
-        <exclude>**/target/**</exclude>
-        <exclude>**/eclipse-classes/**</exclude>
-        <exclude>**/*.i??</exclude>
-        <exclude>**/.idea/**</exclude>
-      </excludes>
-    </fileSet>
-    <fileSet>
-      <directory>src/main/distribution/src</directory>
-      <outputDirectory>/</outputDirectory>
-    </fileSet>
-  </fileSets>
-
-</assembly>
\ No newline at end of file
diff --git a/0.6.x/assembly/src/main/distribution/agent/bin/agent b/0.6.x/assembly/src/main/distribution/agent/bin/agent
deleted file mode 100755
index 3e2bd73..0000000
--- a/0.6.x/assembly/src/main/distribution/agent/bin/agent
+++ /dev/null
@@ -1,168 +0,0 @@
-#!/bin/sh
-#
-#    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.
-#
-
-# get the Kalumet agent basedir
-DIRNAME=`dirname $0`
-PROGNAME=`basename $0`
-
-# define java heap memory configuration
-if [ "x$JAVA_MIN_MEN" = "x" ]; then
-    JAVA_MIN_MEM=64m
-    export JAVA_MIN_MEM
-fi
-
-if [ "x$JAVA_MAX_MEM" = "x" ]; then
-    JAVA_MAX_MEM=128m
-    export JAVA_MAX_MEM
-fi
-
-KALUMET_AGENT_HOME=`cd $DIRNAME/..; pwd`
-cd $KALUMET_AGENT_HOME
-
-# load rc file
-if [ -f $KALUMET_AGENT_HOME/conf/agent.rc ] ; then
-    . $KALUMET_AGENT_HOME/conf/agent.rc
-fi
-
-# detect OS
-cygwin=false;
-darwin=false;
-aix=false;
-os400=false;
-case "`uname`" in
-    CYGWIN*)
-        cygwin=true
-        ;;
-    Darwin*)
-        darwin=true
-        ;;
-    AIX*)
-        aix=true
-        ;;
-    OS400)
-        os400=true
-        ;;
-esac
-# define AIX specific environment variables
-if $aix; then
-    export LDR_CNTRL=MAXDATA=0xB0000000@DSA
-    export IBM_JAVA_HEAPDUMP_TEXT=true
-fi
-
-# define the file descriptors limit
-# use the maximum available, or set MAX_FD != -1 to use that
-if [ "x$MAX_FD" = "x" ]; then
-    MAX_FD="maximum"
-fi
-# increase the maximum file descriptors if we can
-if [ "$os400" = "false" ] && [ "$cygwin" = "false" ]; then
-    MAX_FD_LIMIT=`ulimit -H -n`
-    if [ $? -eq 0 ]; then
-        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ]; then
-            # use the system max
-            MAX_FD="$MAX_FD_LIMIT"
-        fi
-        
-        ulimit -n $MAX_FD
-        if [ $? -ne 0 ]; then
-            echo "Could not set maximum file descriptor limit: $MAX_FD"
-        fi
-    else 
-        echo "Could not query system maximum file descriptor limit: $MAX_FD_LIMIT"
-    fi
-fi
-
-# support for loading native libraries
-LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:$KALUMET_AGENT_HOME/lib"
-
-# for cygwin, set PATH from LD_LIBRARY_PATH
-if $cygwin; then
-    LD_LIBRARY_PATH=`cygpath --path --windows "$LD_LIBRARY_PATH"`
-    PATH="$PATH;$LD_LIBRARY_PATH"
-    export PATH
-fi
-export LD_LIBRARY_PATH
-
-# setup the Java Virtual Machine
-if $cygwin; then
-    [ -n "$JAVA" ] && JAVA=`cygpath --unix "$JAVA"`
-    [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
-fi
-if [ "x$JAVA" = "x" ]; then
-    if [ "x$JAVA_HOME" != "x" ]; then
-        if [ ! -d "$JAVA_HOME" ]; then
-            echo "JAVA_HOME is not valid: $JAVA_HOME"
-            exit 1
-        fi
-        JAVA="$JAVA_HOME/bin/java"
-    else
-        echo "JAVA_HOME not set; results may vary"
-        JAVA="java"
-    fi
-fi
-
-# detect JVM
-echo "`$JAVA -version`"
-if $JAVA -version 2>&1 | grep "IBM" ; then
-    JVM_VENDOR="IBM"
-elif $os400; then
-    JVM_VENDOR="IBM"
-else
-    JVM_VENDOR="SUN"
-fi
-
-# setup default java options
-DEFAULT_JAVA_OPTS="-Xms$JAVA_MIN_MEM -Xmx$JAVA_MAX_MEM -Dcom.sun.management.jmxremote"
-
-# set JVM vendor specific JVM flags
-if [ "$JVM_VENDOR" = "SUN" ]; then
-    DEFAULT_JAVA_OPTS="-server $DEFAULT_JAVA_OPTS"
-elif [ "$JVM_VENDOR" = "IBM" ]; then
-    if $os400; then
-        DEFAULT_JAVA_OPTS="$DEFAULT_JAVA_OPTS"
-    elif $aix; then
-        DEFAULT_JAVA_OPTS="-Xverify:none -Xlp $DEFAULT_JAVA_OPTS"
-    else 
-        DEFAULT_JAVA_OPTS="-Xverify:none $DEFAULT_JAVA_OPTS"
-    fi
-fi
-
-# define classworlds
-CLASSPATH=$KALUMET_AGENT_HOME/lib/classworlds-1.1.jar
-CLASSWORLDS_CONF=$KALUMET_AGENT_HOME/conf/agent.conf
-
-# for cygwin, switch paths to Windows format before running java
-if $cygwin; then
-    KALUMET_AGENT_HOME=`cygpath --path --windows "$KALUMET_AGENT_HOME"`
-    CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-    CLASSWORLDS_CONF=`cygpath --path --windows "$CLASSWORLDS_CONF"`
-    CYGHOME=`cygpath --windows "$CYGHOME"`
-fi
-
-if [ "x$JAVA_OPTS" = "x" ]; then
-    JAVA_OPTS="$DEFAULT_JAVA_OPTS"
-fi
-
-# starting the JVM
-exec $JAVA \
-    $JAVA_OPTS \
-    -classpath "$CLASSPATH" \
-    -Dclassworlds.conf="$CLASSWORLDS_CONF" \
-    -Dkalumet.agent.home="$KALUMET_AGENT_HOME" \
-    org.codehaus.classworlds.Launcher \
-    "$@"
\ No newline at end of file
diff --git a/0.6.x/assembly/src/main/distribution/agent/bin/agent.bat b/0.6.x/assembly/src/main/distribution/agent/bin/agent.bat
deleted file mode 100644
index 585dbf5..0000000
--- a/0.6.x/assembly/src/main/distribution/agent/bin/agent.bat
+++ /dev/null
@@ -1,61 +0,0 @@
-@echo off
-rem
-rem
-rem    Licensed to the Apache Software Foundation (ASF) under one or more
-rem    contributor license agreements.  See the NOTICE file distributed with
-rem    this work for additional information regarding copyright ownership.
-rem    The ASF licenses this file to You under the Apache License, Version 2.0
-rem    (the "License"); you may not use this file except in compliance with
-rem    the License.  You may obtain a copy of the License at
-rem
-rem       http://www.apache.org/licenses/LICENSE-2.0
-rem
-rem    Unless required by applicable law or agreed to in writing, software
-rem    distributed under the License is distributed on an "AS IS" BASIS,
-rem    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-rem    See the License for the specific language governing permissions and
-rem    limitations under the License.
-rem
-
-if not "%ECHO%" == "" echo %ECHO%
-
-setlocal
-set DIRNAME=%~dp0%
-set PROGNAME=%~nx0%
-
-set KALUMET_AGENT_HOME=%DIRNAME%..
-cd %KALUMET_AGENT_HOME%
-
-if "%JAVA_MIN_MEM%" == "" set JAVA_MIN_MEM=64m
-
-if "%JAVA_MAX_MEM%" == "" set JAVA_MAX_MEM=128m
-
-set DEFAULT_JAVA_OPTS=-server -Xms%JAVA_MIN_MEM% -Xmx%JAVA_MAX_MEM% -Dcom.sun.management.jmxremote
-
-rem Load configuration file
-if exist "%KALUMET_AGENT_HOME%\conf\agent-rc.cmd" call %KALUMET_AGENT_HOME%\conf\agent-rc.cmd
-
-rem Support for loading native libraries
-set PATH=%PATH%;%KALUMET_AGENT_HOME\lib
-
-title Apache Kalumet Agent
-
-rem Setup the Java Virtual Machine
-if not "%JAVA%" == "" goto :Check_JAVA_END
-    set JAVA=java
-    if "%JAVA_HOME%" == "" call :warn JAVA_HOME not set; results may vary
-    if not "%JAVA_HOME%" == "" set JAVA=%JAVA_HOME%\bin\java
-    if not exist "%JAVA_HOME%" (
-        call :warn JAVA_HOME is not valid: %JAVA_HOME%
-        goto END
-    )
-:Check_JAVA_END
-
-rem Setup the classworlds
-set CLASSPATH=%KALUMET_HOME%\lib\classworlds-1.1.jar
-set CLASSWORLDS_CONF=%KALUMET_HOME%\conf\agent.conf
-
-if "%JAVA_OPTS%" == "" set JAVA_OPTS=%DEFAULT_JAVA_OPTS%
-
-rem Execute the JVM
-"%JAVA%" %JAVA_OPTS% -classpath "%CLASSPATH%" -Dclassworlds.conf="%CLASSWORLDS_CONF%" -Dkalumet.agent.home="%KALUMET_AGENT_HOME%" org.codehaus.classworlds.Launcher %*
\ No newline at end of file
diff --git a/0.6.x/assembly/src/main/distribution/agent/conf/agent.conf b/0.6.x/assembly/src/main/distribution/agent/conf/agent.conf
deleted file mode 100644
index eab0215..0000000
--- a/0.6.x/assembly/src/main/distribution/agent/conf/agent.conf
+++ /dev/null
@@ -1,23 +0,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.
-#
-
-main is org.apache.kalumet.agent.Main from app
-
-[app]
-    load ${kalumet.agent.home}/conf
-    load ${kalumet.agent.home}/lib/*.jar
-    load ${kalumet.agent.home}/lib/extras/*.jar
\ No newline at end of file
diff --git a/0.6.x/assembly/src/main/distribution/agent/conf/log4j.xml b/0.6.x/assembly/src/main/distribution/agent/conf/log4j.xml
deleted file mode 100644
index f6eebb6..0000000
--- a/0.6.x/assembly/src/main/distribution/agent/conf/log4j.xml
+++ /dev/null
@@ -1,96 +0,0 @@
-<?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.
-
--->
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
-  <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
-    <param name="threshold" value="DEBUG"/>
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="%-5p - %30c{1} - %m%n"/>
-    </layout>
-  </appender>
-
-  <appender name="FILE" class="org.apache.log4j.FileAppender">
-    <param name="threshold" value="DEBUG"/>
-    <param name="File" value="log/agent.log"/>
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="%d{ABSOLUTE} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
-    </layout>
-  </appender>
-
-  <logger name="org.apache">
-    <level value="WARN"/>
-  </logger>
-
-  <logger name="org.quartz">
-    <level value="WARN"/>
-  </logger>
-
-  <logger name="org.apache.kalumet">
-    <!-- To enable debug logging, replace the INFO by DEBUG -->
-    <level value="INFO"/>
-  </logger>
-
-  <root>
-    <level value="INFO"/>
-    <appender-ref ref="CONSOLE"/>
-    <appender-ref ref="FILE"/>
-  </root>
-
-
-</log4j:configuration>
-
-    <!--
-
-    Log4J Configuration Quick Reference:
-    ====================================
-
-    Priority order is DEBUG < INFO < WARN < ERROR < FATAL
-
-    PatternLayout conversion characters:
-
-    %c   Category of the logging event
-    %C   Fully qualified class name of the caller
-    %d   Date of the logging event  (example: %d{HH:mm:ss,SSS} )
-    %F   File name where the logging request was issued (caution: extremely slow)
-    %l   Location information of the caller (caution: extremely slow)
-    %L   Line number from where the logging request was issued (caution: extremely slow)
-    %m   Application-supplied message
-    %M   Method name from where the logging request was issued (caution: extremely slow)
-    %n   Line separator
-    %p   Priority of the logging event
-    %r   Number of milliseconds since the start of the application
-    %t   Name of the thread that generated the logging event
-    %x   Nested diagnotic context associated with the thread
-    %%   A single percent sign
-
-    Format modifiers examples:
-
-    %20c     Left pad with spaces if category is less than 20 characters long
-    %-20c    Right pad with spaces if category is less than 20 characters long
-    %.30c    Truncate from the beginning if category is more than 30 chars long
-    %20.30c  Left pad 20 chars + truncate from beginning if more than 30 chars
-    %-20.30c Right pad 20 chars + truncate from beginning if more than 30 chars
-
-    Examples:  "%r [%t] %-5p %c %x - %m\n"
-    "%-6r [%15.15t] %-5p %30.30c %x - %m\n"
-
-    -->
\ No newline at end of file
diff --git a/0.6.x/assembly/src/main/distribution/agent/conf/templates/notifier.html b/0.6.x/assembly/src/main/distribution/agent/conf/templates/notifier.html
deleted file mode 100644
index e9c387a..0000000
--- a/0.6.x/assembly/src/main/distribution/agent/conf/templates/notifier.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!DOCTYPE html>
-<!--
-
-    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.
-
--->
-<html>
-<head>
-  <title>Apache Kalumet Agent Environment {0} Update Notification</title>
-</head>
-<body style="margin: 0; padding: 0; background-color: #ffffff">
-<div id="header" style="background-color: #f0f0f0; width: 100%; font: bold 12px helvetica, sans-serif; color: black">
-  Apache Kalumet Agent Environment {0} Update Notification
-</div>
-<div id="central" style="width: 100%; font: 10px helvetica, sans-serif; align: center">
-  The update will begin in {1} minute(s).<br/>
-  Please, save your work and quit the environment.<br/>
-  Thanks.<br/>
-</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/0.6.x/assembly/src/main/distribution/agent/conf/templates/publisher.xsl b/0.6.x/assembly/src/main/distribution/agent/conf/templates/publisher.xsl
deleted file mode 100644
index 38b5f55..0000000
--- a/0.6.x/assembly/src/main/distribution/agent/conf/templates/publisher.xsl
+++ /dev/null
@@ -1,176 +0,0 @@
-<?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.
-
--->
-<!--
-   *************************************
-   * Apache Kalumet Mail Publisher XSL *
-   * Author : Jean-Baptiste ONOFRE       *
-   * E-mail : jb@nanthrax.net                *
-   *************************************
-   
-   This XSL is optionnal. It's used to send a HTML e-mail
-   when an Apache Kalumet agent publish an update result.
--->
-
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-
-  <xsl:output method="html"/>
-
-  <xsl:template match="/">
-    <html>
-      <head>
-        <title>Apache Kalumet Agent Update Report</title>
-        <xsl:call-template name="style"/>
-      </head>
-      <body>
-        <div id="header">
-          Apache Kalumet Agent Update Report
-          <xsl:value-of select="updatelog/@title"/>
-        </div>
-        <div id="central">
-          <br/>
-          <table width="90%" border="1" cellspacing="0" cellpadding="2">
-            <tr>
-              <td>
-                <b>Updated Environment</b>
-              </td>
-              <td>
-                <xsl:value-of select="updatelog/@title"/>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b>Final Status</b>
-              </td>
-              <td>
-                <xsl:value-of select="updatelog/@status"/>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b>Update Date</b>
-              </td>
-              <td>
-                <xsl:value-of select="updatelog/@time"/>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b>Errors</b>
-              </td>
-              <td>
-                <font color="red">
-                  <xsl:apply-templates select="updatelog/updatemessage[@priority = 'error']"/>
-                </font>
-                <br/>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b>Warnings</b>
-              </td>
-              <td>
-                <font color="red">
-                  <xsl:apply-templates select="updatelog/updatemessage[@priority = 'warn']"/>
-                </font>
-                <br/>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b>Applications Summary</b>
-              </td>
-              <td>
-                <xsl:apply-templates select="updatelog/updatemessage[@priority = 'summary']"/>
-              </td>
-            </tr>
-            <tr>
-              <td>
-                <b>Output Log</b>
-              </td>
-              <td>
-                <font size="1">
-                  <xsl:apply-templates select="updatelog/updatemessage"/>
-                </font>
-              </td>
-            </tr>
-          </table>
-        </div>
-        <div id="footer">
-          <hr/>
-          Copyright (c) 2011 - Apache Kalumet - All Rights Reserved
-        </div>
-      </body>
-    </html>
-  </xsl:template>
-
-  <xsl:template match="updatemessage">
-    <ul>
-      <li>
-        <xsl:value-of select="."/>
-      </li>
-    </ul>
-  </xsl:template>
-
-  <xsl:template name="style">
-    <style>
-         <xsl:text>
-body {
-  margin: 0;
-  padding: 0;
-  background-color: #ffffff;
-}
-
-#header {
-  background-color: #f0f0f0;
-  width: 100%;
-  font: bold 14px helvetica, sans-serif;
-  color: black;
-}
-
-#central {
-  width: 100%;
-  font: 10px helvetica, sans-serif;
-  align: center;
-}
-
-#central table {
-  background-color: #bfbfbf;
-  margin-left: 5%;
-}
-
-#central tr {
-  vertical-align: top;
-}
-
-#footer {
-  width: 100%;
-  clear: both;
-  margin-top: 10px;
-  padding-top: 10px;
-  position: relative;
-  font: 8px gill sans, helvetica, sans-serif;
-  text-align: center;
-}
-
-         </xsl:text>
-    </style>
-  </xsl:template>
-
-</xsl:stylesheet>
diff --git a/0.6.x/assembly/src/main/distribution/src/LICENSE b/0.6.x/assembly/src/main/distribution/src/LICENSE
deleted file mode 100644
index 2a4cd78..0000000
--- a/0.6.x/assembly/src/main/distribution/src/LICENSE
+++ /dev/null
@@ -1,655 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
-
-==========================================================================
-The Apache License, Version 2.0 applies to the following libraries:
-axis, quartz
-
-==========================================================================
-The following license applies to the slf4j library
---------------------------------------------------------------------------
- Copyright (c) 2004-2013 QOS.ch All rights reserved. Permission 
- is hereby granted, free of charge, to any person obtaining a copy 
- of this software and associated documentation files (the "Software"), 
- to deal in the Software without restriction, including without limitation 
- the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- and/or sell copies of the Software, and to permit persons to whom the 
- Software is furnished to do so, subject to the following conditions: 
- The above copyright notice and this permission notice shall be included 
- in all copies or substantial portions of the Software. 
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
- SOFTWARE.
-
-==========================================================================
-The following license applies to the classworlds library
---------------------------------------------------------------------------
-/*
- $Id: LICENSE.txt,v 1.1.1.1 2003/07/29 04:37:59 bob Exp $
-
- Copyright 2002 (C) The Codehaus. All Rights Reserved.
-
- Redistribution and use of this software and associated documentation
- ("Software"), with or without modification, are permitted provided
- that the following conditions are met:
-
- 1. Redistributions of source code must retain copyright
-    statements and notices.  Redistributions must also contain a
-    copy of this document.
-
- 2. Redistributions in binary form must reproduce the
-    above copyright notice, this list of conditions and the
-    following disclaimer in the documentation and/or other
-    materials provided with the distribution.
-
- 3. The name "classworlds" must not be used to endorse or promote
-    products derived from this Software without prior written
-    permission of The Codehaus.  For written permission, please
-    contact bob@codehaus.org.
-
- 4. Products derived from this Software may not be called "classworlds"
-    nor may "classworlds" appear in their names without prior written
-    permission of The Codehaus. "classworlds" is a registered
-    trademark of The Codehaus.
-
- 5. Due credit should be given to The Codehaus.
-    (http://classworlds.codehaus.org/).
-
- THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
- ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
- THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- OF THE POSSIBILITY OF SUCH DAMAGE.
-
- */
-
-==========================================================================
-The following license applies to the Echo2 library
---------------------------------------------------------------------------
-
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
-    means each individual or legal entity that creates, contributes to
-    the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
-    means the combination of the Contributions of others (if any) used
-    by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
-    means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
-    means Source Code Form to which the initial Contributor has attached
-    the notice in Exhibit A, the Executable Form of such Source Code
-    Form, and Modifications of such Source Code Form, in each case
-    including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
-    means
-
-    (a) that the initial Contributor has attached the notice described
-        in Exhibit B to the Covered Software; or
-
-    (b) that the Covered Software was made available under the terms of
-        version 1.1 or earlier of the License, but not also under the
-        terms of a Secondary License.
-
-1.6. "Executable Form"
-    means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
-    means a work that combines Covered Software with other material, in 
-    a separate file or files, that is not Covered Software.
-
-1.8. "License"
-    means this document.
-
-1.9. "Licensable"
-    means having the right to grant, to the maximum extent possible,
-    whether at the time of the initial grant or subsequently, any and
-    all of the rights conveyed by this License.
-
-1.10. "Modifications"
-    means any of the following:
-
-    (a) any file in Source Code Form that results from an addition to,
-        deletion from, or modification of the contents of Covered
-        Software; or
-
-    (b) any new file in Source Code Form that contains any Covered
-        Software.
-
-1.11. "Patent Claims" of a Contributor
-    means any patent claim(s), including without limitation, method,
-    process, and apparatus claims, in any patent Licensable by such
-    Contributor that would be infringed, but for the grant of the
-    License, by the making, using, selling, offering for sale, having
-    made, import, or transfer of either its Contributions or its
-    Contributor Version.
-
-1.12. "Secondary License"
-    means either the GNU General Public License, Version 2.0, the GNU
-    Lesser General Public License, Version 2.1, the GNU Affero General
-    Public License, Version 3.0, or any later versions of those
-    licenses.
-
-1.13. "Source Code Form"
-    means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
-    means an individual or a legal entity exercising rights under this
-    License. For legal entities, "You" includes any entity that
-    controls, is controlled by, or is under common control with You. For
-    purposes of this definition, "control" means (a) the power, direct
-    or indirect, to cause the direction or management of such entity,
-    whether by contract or otherwise, or (b) ownership of more than
-    fifty percent (50%) of the outstanding shares or beneficial
-    ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
-    Licensable by such Contributor to use, reproduce, make available,
-    modify, display, perform, distribute, and otherwise exploit its
-    Contributions, either on an unmodified basis, with Modifications, or
-    as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
-    for sale, have made, import, and otherwise transfer either its
-    Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
-    or
-
-(b) for infringements caused by: (i) Your and any other third party's
-    modifications of Covered Software, or (ii) the combination of its
-    Contributions with other software (except as part of its Contributor
-    Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
-    its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
-    Form, as described in Section 3.1, and You must inform recipients of
-    the Executable Form how they can obtain a copy of such Source Code
-    Form by reasonable means in a timely manner, at a charge no more
-    than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
-    License, or sublicense it under different terms, provided that the
-    license for the Executable Form does not attempt to limit or alter
-    the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-*                                                                      *
-*  6. Disclaimer of Warranty                                           *
-*  -------------------------                                           *
-*                                                                      *
-*  Covered Software is provided under this License on an "as is"       *
-*  basis, without warranty of any kind, either expressed, implied, or  *
-*  statutory, including, without limitation, warranties that the       *
-*  Covered Software is free of defects, merchantable, fit for a        *
-*  particular purpose or non-infringing. The entire risk as to the     *
-*  quality and performance of the Covered Software is with You.        *
-*  Should any Covered Software prove defective in any respect, You     *
-*  (not any Contributor) assume the cost of any necessary servicing,   *
-*  repair, or correction. This disclaimer of warranty constitutes an   *
-*  essential part of this License. No use of any Covered Software is   *
-*  authorized under this License except under this disclaimer.         *
-*                                                                      *
-************************************************************************
-
-************************************************************************
-*                                                                      *
-*  7. Limitation of Liability                                          *
-*  --------------------------                                          *
-*                                                                      *
-*  Under no circumstances and under no legal theory, whether tort      *
-*  (including negligence), contract, or otherwise, shall any           *
-*  Contributor, or anyone who distributes Covered Software as          *
-*  permitted above, be liable to You for any direct, indirect,         *
-*  special, incidental, or consequential damages of any character      *
-*  including, without limitation, damages for lost profits, loss of    *
-*  goodwill, work stoppage, computer failure or malfunction, or any    *
-*  and all other commercial damages or losses, even if such party      *
-*  shall have been informed of the possibility of such damages. This   *
-*  limitation of liability shall not apply to liability for death or   *
-*  personal injury resulting from such party's negligence to the       *
-*  extent applicable law prohibits such limitation. Some               *
-*  jurisdictions do not allow the exclusion or limitation of           *
-*  incidental or consequential damages, so this exclusion and          *
-*  limitation may not apply to You.                                    *
-*                                                                      *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
-  This Source Code Form is subject to the terms of the Mozilla Public
-  License, v. 2.0. If a copy of the MPL was not distributed with this
-  file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
-  This Source Code Form is "Incompatible With Secondary Licenses", as
-  defined by the Mozilla Public License, v. 2.0.
-
diff --git a/0.6.x/assembly/src/main/distribution/src/NOTICE b/0.6.x/assembly/src/main/distribution/src/NOTICE
deleted file mode 100644
index 05c3ba6..0000000
--- a/0.6.x/assembly/src/main/distribution/src/NOTICE
+++ /dev/null
@@ -1,14 +0,0 @@
-Apache Kalumet

-Copyright 2013 The Apache Software Foundation

-

-This product includes software developed at

-The Apache Software Foundation (http://www.apache.org/).

-Licensed under the Apache License 2.0.

-

-This product includes software developed at

-SLF4J (http://www.slf4j.org/).

-Licensed under the MIT License.

-

-This product includes software developed at

-NextApp (http://www.nextapp.com).

-Licensed under the Mozilla Public License.

diff --git a/0.6.x/documentation/pom.xml b/0.6.x/documentation/pom.xml
deleted file mode 100644
index 7c5167b..0000000
--- a/0.6.x/documentation/pom.xml
+++ /dev/null
@@ -1,201 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet</groupId>
-    <artifactId>kalumet</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.documentation</artifactId>
-  <packaging>pom</packaging>
-  <name>Apache Kalumet :: Documentation</name>
-  <url>http://incubator.apache.org/kalumet/docs/${project.version}</url>
-
-  <properties>
-    <svnUrl>https://svn.apache.org/repos/asf/incubator/kalumet/site-content/docs/${project.version}</svnUrl>
-    <scmPubCheckoutDirectory>site-content</scmPubCheckoutDirectory>
-  </properties>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-site-plugin</artifactId>
-        <version>3.2</version>
-        <configuration>
-          <skipDeploy>true</skipDeploy>
-        </configuration>
-        <executions>
-          <execution>
-            <id>site</id>
-            <phase>prepare-package</phase>
-            <goals>
-              <goal>site</goal>
-            </goals>
-          </execution>
-          <execution>
-            <id>stage-for-scm-publish</id>
-            <phase>post-site</phase>
-            <goals>
-              <goal>stage</goal>
-            </goals>
-            <configuration>
-              <skipDeploy>false</skipDeploy>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-scm-publish-plugin</artifactId>
-        <version>1.0-beta-2</version>
-        <configuration>
-          <checkoutDirectory>${scmPubCheckoutDirectory}</checkoutDirectory>
-          <tryUpdate>true</tryUpdate>
-          <skipDeletedFiles>false</skipDeletedFiles>
-          <checkinComment>Apache Kalumet Docs site deployment</checkinComment>
-        </configuration>
-        <executions>
-          <execution>
-            <id>scm-publish</id>
-            <phase>site-deploy</phase>
-            <goals>
-              <goal>publish-scm</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-assembly-plugin</artifactId>
-        <configuration>
-          <descriptors>
-            <descriptor>src/site/assembly/docs.xml</descriptor>
-          </descriptors>
-        </configuration>
-        <executions>
-          <execution>
-            <phase>package</phase>
-            <goals>
-              <goal>single</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-    <finalName>apache-kalumet-${project.version}</finalName>
-  </build>
-
-  <reporting>
-    <excludeDefaults>true</excludeDefaults>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-project-info-reports-plugin</artifactId>
-        <version>${project-info-reports-plugin.version}</version>
-        <reportSets>
-          <reportSet>
-            <reports>
-              <report>license</report>
-              <report>project-team</report>
-            </reports>
-          </reportSet>
-        </reportSets>
-      </plugin>
-    </plugins>
-  </reporting>
-
-  <distributionManagement>
-    <site>
-      <id>apache.website</id>
-      <url>scm:svn:${svnUrl}</url>
-    </site>
-  </distributionManagement>
-
-  <profiles>
-    <profile>
-      <id>release</id>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-site-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>deploy</id>
-                <phase>deploy</phase>
-                <goals>
-                  <goal>deploy</goal>
-                </goals>
-              </execution>
-            </executions>
-            <dependencies>
-              <dependency>
-                <groupId>org.codehaus.plexus</groupId>
-                <artifactId>plexus-utils</artifactId>
-                <version>3.0.9</version>
-              </dependency>
-            </dependencies>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-    <profile>
-      <id>setup-checkout</id>
-      <activation>
-        <file>
-          <missing>site-content</missing>
-        </file>
-      </activation>
-      <build>
-        <plugins>
-          <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-antrun-plugin</artifactId>
-            <version>1.7</version>
-            <executions>
-              <execution>
-                <id>prepare-checkout</id>
-                <phase>pre-site</phase>
-                <goals>
-                  <goal>run</goal>
-                </goals>
-                <configuration>
-                  <tasks>
-                    <exec executable="svn">
-                      <arg line="checkout ${svnUrl} ${scmPubCheckoutDirectory}" />
-                    </exec>
-
-                  </tasks>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-</project>
diff --git a/0.6.x/documentation/src/site/apt/adminguide/agent.apt b/0.6.x/documentation/src/site/apt/adminguide/agent.apt
deleted file mode 100644
index 5e171d7..0000000
--- a/0.6.x/documentation/src/site/apt/adminguide/agent.apt
+++ /dev/null
@@ -1,65 +0,0 @@
- -----
- Installing Apache Kalumet Agent
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Installing Apache Kalumet agent
-
-  The Kalumet agents are responsible of the environment updated and
-  interaction with the underlying system.
-
-  The agents are installed locally on the target servers. The agents
-  connect to Kalumet console to get the configuration.
-
-  In the same way, Kalumet console fires action on the agents.
-
-  * Prerequisites
-
-    ** J2SE 1.6
-
-      Kalumet agent requires a Java 6 environment to run. Refer to http://java.oracle.com for detail on how to download and install J2SE 1.6.
-
-    ** Download binaries
-
-      Download the target version of the Kalumet agent.
-
-      Select the file compression format compatible with your system (zip or tar.gz). Download the archive and expand the binary to your hard driver in a new directory ; for example /opt/apache-kalumet.
-      Please remember the restrictions concerning illegal characters in Java paths, e.g. !, % etc.
-
-    ** Kalumet console
-
-      Even if it's not a requirement, we heavily invite you to firstly install the Kalumet console. The Kalumet console allows you to easily configure the agents.
-      Take a look on the Kalumet console admin guide to install the console.
-
-  * Start Kalumet Agent
-
-    Open a command line and go in the Kalumet agent installation directory. To start the agent, run the following command in Windows:
-
-    bin\agent.bat -config <path to Kalumet console> -id <agent id>
-
-    respectively in Linux/Unix:
-
-    bin/agent -config <path to Kalumet console> -id <agent id>
-
-    The agent ID should have been firstly define in the Kalumet console.
diff --git a/0.6.x/documentation/src/site/apt/adminguide/console.apt b/0.6.x/documentation/src/site/apt/adminguide/console.apt
deleted file mode 100644
index 1187678..0000000
--- a/0.6.x/documentation/src/site/apt/adminguide/console.apt
+++ /dev/null
@@ -1,73 +0,0 @@
- -----
- Installing Apache Kalumet Console
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Installing Apache Kalumet console
-
-  The Kalumet console manages the configuration and interacts with the Kalumet agents.
-
-  It allows you to easily manage all environments, all agents, all update plans with a central, web based
-  tool.
-
-  * Prerequisites
-
-    ** JSP/Servlet Engine
-
-      Apache Kalumet console has to be deployed into a JSP/Servlet Engine (like Apache Tomcat or Jetty) or a JEE application
-      server (like RedHat JBoss, Oracle Weblogic, IBM WebSphere).
-
-    ** Download binaries
-
-      Select the file compression format compatible with your system (zip, tar.gz) by clicking directly on the link,
-      download it and expand the binary to your hard drive in a new directory ; for example /tmp/kalumet_console -
-      from now on this directory will be referenced as <kalumet_console_home>. Please remember the restrictions concerning
-      illegal characters in Java paths, e.g. !, % etc.
-
-  * Apache Kalumet Console Configuration (optional)
-
-    Apache Kalumet Console creates a default configuration which allows you to directly use the console.
-
-    You can update the base directory used by Kalumet console by adding the -Dkalumet.home system property.
-
-    More over, for advanced users, you can override the default console configuration (location of the configuration file
-    and journals) by pushing a apache-kalumet-console-config.xml file in the class loader.
-    You can find this file in the Apache Kalumet console configuration in
-    <kalumet_console_home>/conf/apache-kalumet-console-config.xml.
-    You need to copy this file into the JSP/Servlet engine classpath. For example, using Apache Tomcat, you can
-    copy the apache-kalumet-console-config.xml into the <tomcat_home>/lib directory.
-
-    Configure the apache-kalumet-console-config.xml to match your environment settings.
-
-  * Deploy Apache Kalumet Console
-
-    Copy <kalumet_console_home>/webapp/apache-kalumet-console.war into the JSP/Servlet Engine or JEE application server
-    deploy directory. For example, to deploy on Apache Tomcat, simply copy the war archive into the <tomcat_home>/webapps
-    directory.
-
-  * Using Apache Kalumet Console
-
-    You should now be able to access to Apache Kalumet console, for example using
-    http://localhost:8080/apache-kalumet-console.
-    The default admin user password is admin.
diff --git a/0.6.x/documentation/src/site/apt/adminguide/index.apt b/0.6.x/documentation/src/site/apt/adminguide/index.apt
deleted file mode 100644
index a8b2fb6..0000000
--- a/0.6.x/documentation/src/site/apt/adminguide/index.apt
+++ /dev/null
@@ -1,39 +0,0 @@
- -----
- System Administrators Guide to Apache Kalumet
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-System Administrators Guide to Apache Kalumet
-
-  Apache Kalumet is designed to be simple to install and maintain,
-  for both agents and console.
-
-  The following sections describe the process for configuring
-  Kalumet for use:
-
-    * {{{./console.html} Installing Apache Kalumet console}}
-
-    * {{{./agent.html} Installing Apache Kalumet agent}}
-
-    * {{{./webservice.html} Agent WebServices}}
diff --git a/0.6.x/documentation/src/site/apt/devguide/build.apt b/0.6.x/documentation/src/site/apt/devguide/build.apt
deleted file mode 100644
index faea158..0000000
--- a/0.6.x/documentation/src/site/apt/devguide/build.apt
+++ /dev/null
@@ -1,46 +0,0 @@
- -----
- Build
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Build
-
-  Kalumet use Maven for the build.
-
-  You need a JDK (1.5 minimum) and Maven (3.x minimum) in order to build Kalumet.
-
-  Once you have checkout the source (or downloaded the source distribution), just type:
-
-+---
- mvn clean install
-+---
-
-  to build Kalumet. You will find the archives (for both agents and console, as zip and tar.gz archives) in
-  assembly/target directory.
-
-  In order to speed up the build, you can skip the tests:
-
-+---
- mvn clean install -DskipTests
-+---
diff --git a/0.6.x/documentation/src/site/apt/devguide/release_guide.apt b/0.6.x/documentation/src/site/apt/devguide/release_guide.apt
deleted file mode 100644
index fe1c5a6..0000000
--- a/0.6.x/documentation/src/site/apt/devguide/release_guide.apt
+++ /dev/null
@@ -1,211 +0,0 @@
- -----
- Release Guide
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Release Guide
-
-  * Prepare
-
-  To prepare and perform a release, you must be at least a Apache Kalumet committer.
-
-    ** each and every release must be [SIGNED|http://www.apache.org/dev/release-signing.html]
-
-    ** your public key should also be cross-signed by other Apache committers (not required, but suggested)
-
-    ** make sure you have all Apache servers defined in your [settings.xml|http://maven.apache.org/developers/committer-settings.html]
-
-    ** use Maven 3.x
-
-  Your settings.xml should look like:
-
-+---
-<settings>
-  ...
-  <profiles>
-    <profile>
-      <id>release</id>
-       <properties>
-         <gpg.passphrase> <!-- YOUR KEY PASSPHRASE --> </gpg.passphrase>
-       </properties>
-    </profile>
-  </profiles>
-  ...
-  <servers>
-    <!-- To publish a snapshot of some part of Maven -->
-    <server>
-      <id>apache.snapshots.https</id>
-      <username> <!-- YOUR APACHE SVN USERNAME --> </username>
-      <password> <!-- YOUR APACHE SVN PASSWORD --> </password>
-    </server>
-    <!-- To stage a release of some part of Maven -->
-    <server>
-      <id>apache.releases.https</id>
-      <username> <!-- YOUR APACHE SVN USERNAME --> </username>
-      <password> <!-- YOUR APACHE SVN PASSWORD --> </password>
-    </server>
-    ...
-  </servers>
-</settings>
-+---
-
-  * Staging the Release Candidate
-
-    ** Grab the latest source
-
-+---
- svn co https://svn.apache.org/repos/asf/incubator/kalumet/trunk
-+---
-
-    ** Prepare the POM for release:
-
-      *** make sure there is not SNAPSHOTS in the dependencies or plugins definition
-
-      *** make sure everything build fine
-
-      *** validate that the release prepare works fine in dryRun: mvn release:prepare -DdryRun
-
-      *** publish a SNAPSHOT before releasing: mvn deploy
-
-    ** Prepare the release
-
-+---
- mvn release:clean
- mvn release:prepare
-+---
-
-    ** Stage the release for vote
-
-+---
- mvn release:perform
-+---
-
-    ** Close the staging repository. To do that, logon on [http://repository.apache.org|http://repository.apache.org],
-    click "Stage Repositories" on the left menu. Select your stage repository and click on the "Close" button.
-
-    ** Verify the staged artifacts.
-
-      *** if you click on your repository, a tree view will appear below. You can browse the content to ensure that
-      the artifacts are as you expect. Pay attention to the existence of signature files (*.asc). If you repository is
-      not correct, you can drop it to create a new one after cancelling the release (see later).
-
-      *** note the staging repository URL (you will need it for the vote e-mail)
-
-  * Starting the vote
-
-    Propose a vote on dev mailing list, for example:
-
-+---
-To: "Kalumet Developers List" <kalumet-dev@incubator.apache.org>
-Subject: [VOTE] Release Apache Kalumet xx.yy
-
-    Hi,
-
-    We solved N issues in this release:
-    http://issues.apache.org/jira/...
-
-    There are still some outstanding issues:
-    http://issues.apache.org/jira/...
-
-    Staging repository:
-    https://repository.apache.org/content/repositories/YOUR REPOSITORY ID/
-
-    Please vote to approve this release:
-
-    [ ] +1 Approve the release
-    [ ] -1 Do not approve the release (please provide specific comments)
-
-    This vote will be open for 72 hours.
-+---
-
-  * Wait for the result
-
-    To be approved, a release requires at least 3 binding votes (a binding vote is a vote performed by a PMC/IPMC).
-
-    At the end of the vote period, you can close the vote by sending a result e-mail:
-
-+---
-To: "Kalumet Developers List" <kalumet-dev@incubator.apache.org>
-Subject: [RESULT][VOTE] Release Apache Kalumet xx.yy
-
-    Hi,
-
-    The vote has passed with the following result :
-
-      +1 (binding): <<list of names>>
-      +1 (non binding): <<list of names>>
-
-    I will promote the artifacts on Central and update Jira versions.
-+---
-
-    If the vote is unsuccessful, you have to fix the identified issues and restart the release process (see "Cancelling the release" section).
-    If the vote is successful, you can promote the staging repository and update the Jira (see "Promoting the release" section).
-
-  * Cancelling the release
-
-    If the vote fails, or you decided to redo the release:
-
-    ** remove the release tag from Subversion (svn del ...)
-
-    ** logon http://repository.apache.org and drop the staged repository.
-
-    ** rollback the version in pom.xml and commit any fixes.
-
-  * Promoting the release
-
-    If the vote passes:
-
-    ** logon http://repository.apache.org, click on "Staged Repository" on the left menu. Select your staged repository
-    and click on "Release" button.
-
-    ** update the versions in Jira by setting the release date
-
-    ** update the download section of the website
-
-    ** announce the release (on the website and on the mailing lists):
-
-+---
-To: "Kalumet Developers List" <kalumet-dev@incubator.apache.org>
-Subject: [ANN] Apache Kalumet xx.yy released
-
-    The Kalumet team is pleased to announce the release of Kalumet xx.yy
-
-    <<insert short description of the release>>
-
-    This release is available from http://incubator.apache.org/kalumet/downloads and Maven:
-
-      <dependency>
-        <groupId>org.apache.kalumet</groupId>
-        <artifactId>org.apache.kalumet.XXX</artifactId>
-        <version>Y.Z</version>
-      </dependency>
-
-    Release Notes:
-
-    <<insert release notes in text format from JIRA>>
-
-    Enjoy!
-
-    -The Kalumet team
-+---
\ No newline at end of file
diff --git a/0.6.x/documentation/src/site/apt/index.apt b/0.6.x/documentation/src/site/apt/index.apt
deleted file mode 100644
index 654b5d4..0000000
--- a/0.6.x/documentation/src/site/apt/index.apt
+++ /dev/null
@@ -1,46 +0,0 @@
- -----
- Welcome to Apache Kalumet
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
- Apache Kalumet is an open source software deployment platform.
- It covers JEE platforms (application servers, war, ear, data
- sources, JMS resources, etc), OSGi platforms, and wide scope
- software using update plans.
-
- Using a set of plugins (JMX, custom, etc), Apache Kalumet
- currently supports IBM WebSphere, Oracle WebLogic, JBoss,
- Apache Tomcat, Apache Geronimo application servers as well as
- Apache Karaf OSGi container.
- A Kalumet environment gathers containers (application servers,
- OSGi frameworks and containers), configuration (configuration
- files), applications, etc.
-
- Apache Kalumet is composed by:
-
- * an agent installed locally to the target system
-
- * a console to manage the configuration (environments, etc) and
- interacts with agents
-
diff --git a/0.6.x/documentation/src/site/apt/quick-start.apt b/0.6.x/documentation/src/site/apt/quick-start.apt
deleted file mode 100644
index 9eabaf6..0000000
--- a/0.6.x/documentation/src/site/apt/quick-start.apt
+++ /dev/null
@@ -1,25 +0,0 @@
- -----
- Quick Start
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
diff --git a/0.6.x/documentation/src/site/apt/userguide/agents.apt b/0.6.x/documentation/src/site/apt/userguide/agents.apt
deleted file mode 100644
index c202dd9..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/agents.apt
+++ /dev/null
@@ -1,106 +0,0 @@
- -----
- Agents Configuration
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Agents Configuration
-
- By clicking on the "Agents" button in the top menu, you will have a new "Agents" window.
-
-[/images/agents_list.png]
- 
- The agent configuration are stored in the console. When an agent starts, it connects to the console with an ID to get its configuration.
- It's what you define in the console.
-
- You have to create the configuration for each agent.
-
- In this agents list, you can:
-
- * copy an agent configuration to create a new one using this information
-
- * delete an agent
-
- * test (ping) the status of the agent
-
- NB: when you modify an agent, don't forget to click on "Save" button to flush and store the configuration.
-
- To add a new agent, click on "Add Agent" button, or you can edit an existing agent by clicking on the agent ID.
-
-[/images/agent_general.png]
-
- On the agent window, using the bottom icons, you can:
-
- * reload the agent configuration from the store
-
- * delete the agent configuration
-
- * paste a configuration previously copied
-
- * check the current status of the agent
-
- * apply the configuration changes
-
- * close the agent window
-
- The "General" tab allows you to define the general information about an agent:
-
- * the ID is the agent ID that you will use at agent startup script. The agent will get the configuration corresponding to this ID.
-
- * the hostname is the IP address or the hostname where the agent runs. It's used by the console to interact with the agent.
-
- * the port is the network port number used by the agent on the machine where it runs. It's used by the console to interact with the agent.
-
-[/images/agent_scheduler.png] 
-
- The "Scheduler" tab allows you to configure the scheduler embedded in the agent. The agent scheduler fires actions (like updates) on the agent.
- The scheduler configuration is compliant with the Unix cron syntax.
- 
- For instance, you can use:
-
--------------------------------------------
-0 0 12 * * ?  	Fire at 12pm (noon) every day
-0 15 10 ? * * 	Fire at 10:15am every day
-0 15 10 * * ? 	Fire at 10:15am every day
-0 15 10 * * ? * 	Fire at 10:15am every day
-0 15 10 * * ? 2005 	Fire at 10:15am every day during the year 2005
-0 * 14 * * ? 	Fire every minute starting at 2pm and ending at 2:59pm, every day
-0 0/5 14 * * ? 	Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day
-0 0/5 14,18 * * ? 	Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day
-0 0-5 14 * * ? 	Fire every minute starting at 2pm and ending at 2:05pm, every day
-0 10,44 14 ? 3 WED 	Fire at 2:10pm and at 2:44pm every Wednesday in the month of March
-0 15 10 ? * MON-FRI 	Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday
-0 15 10 15 * ? 	Fire at 10:15am on the 15th day of every month
-0 15 10 L * ? 	Fire at 10:15am on the last day of every month
-0 15 10 ? * 6L 	Fire at 10:15am on the last Friday of every month
-0 15 10 ? * 6L 	Fire at 10:15am on the last Friday of every month
-0 15 10 ? * 6L 2002-2005 	Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005
-0 15 10 ? * 6#3 	Fire at 10:15am on the third Friday of every month
-0 0 12 1/5 * ? 	Fire at 12pm (noon) every 5 days every month, starting on the first day of the month.
-0 11 11 11 11 ? 	Fire every November 11th at 11:11am.
--------------------------------------------
-
-[/images/agent_capacity.png]
-
- The "Capacity" tab configure the maximum numbers of environments and JEE application servers that the agent is able to manage. It allows you to manage the server machine resources usage.
- For instance, you can setup 5 environments on a box, but "limit" the number of running environments running in the same time using the agent capacity.
diff --git a/0.6.x/documentation/src/site/apt/userguide/console_layout.apt b/0.6.x/documentation/src/site/apt/userguide/console_layout.apt
deleted file mode 100644
index 10df7cf..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/console_layout.apt
+++ /dev/null
@@ -1,48 +0,0 @@
- -----
- Console Layout
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Console Layout
-
-  The first screen that you see accessing the Apache Kalumet Console is
-  the login screen
-
-[/images/login.png]
-
-  The default user is "admin", password is "admin".
-
-  The "admin" user is a special user. He has access to a special console layout. Especially, he is able to create new users, groups, etc.
-
-[/images/admin_layout.png]
-
-  The Kalumet Console is composed in:
-
-  * the top menu gives buttons to adminitrate the current users and core Kalumet configuration (users, agents, environments, configuration)
-
-  * the left panel hosts the environments, sorted by environment groups
-
-  * the bottom panel is the log panel. All events (info, errors, warnings, etc) are displayed in this panel. For instance, you can see "Welcome admin" in this panel.
-
-  * the central area is the workspace. It's where the new windows will be displayed (environment windows, agent windows, etc).
diff --git a/0.6.x/documentation/src/site/apt/userguide/core_configuration.apt b/0.6.x/documentation/src/site/apt/userguide/core_configuration.apt
deleted file mode 100644
index 46b554d..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/core_configuration.apt
+++ /dev/null
@@ -1,56 +0,0 @@
- -----
- Core Configuration
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Core Configuration
-
-  By clicking on the "Configuration" button in the top menu, you will have a new "Configuration" window.
-
-[/images/core_configuration.png]
-
-  In this window, you can define the Kalumet Console core configuration.
-
-  The "Journal Appender Location" is the URL of a servlet exposed by Apache Kalumet Console. This URL allows the agents (or other custom clients) to post events that are hosted by the console.
-  The servlet URI is "/JournalEventAppender". It means that the "Journal Appender Location" property looks like "http://console_host:console_port/apache-kalumet-console/JournalEventAppender".
-
-  By default, the Apache Kalumet Console stores users and passwords in its configuration. As you can see in the {{{/users_groups.html}Users And Groups}} section, as admin, you can create new users.
-  It's also possible to use an external LDAP directory which store the users and passwords.
-  To do so, set "Use LDAP users authentication" property to "yes".
-  The other LDAP properties define the access to the LDAP directory:
-
-  * "LDAP server hostname" is the hostname or IP address of the LDAP server (for instance, "192.168.134.1:389")
-
-  * "LDAP base DN" is the DN where to look for users (for instance, "ou=people,dc=domain,dc=com")
-
-  * "LDAP user id attribute" is the LDAP attribute name which contains the user id name (for instance, "uid")
-
-  * "LDAP e-mail attribute" is the LDAP attribute name which contains the user e-mail (for instance, "email")
-
-  * "LDAP user name attribute" is the LDAP attribute name which contains the user common name (for instance, "cn")
-
-  When LDAP authentication is enable, the first time that an user will log on Kalumet Console, the console will automatically create the user record. It means that you will be able to see the identified user as explained in the {{{/users_groups.html}Users and Groups}} section.
-  The console will always performs the LDAP authentication first, and will only continue to the console if the LDAP authentication worked.
-
-  With LDAP authentication disabled, the Kalumet Console will log on users with the internal data (see "Users and Groups" section). 
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/dashboard.apt b/0.6.x/documentation/src/site/apt/userguide/environment/dashboard.apt
deleted file mode 100644
index 6e10a94..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/dashboard.apt
+++ /dev/null
@@ -1,54 +0,0 @@
- -----
- Dashboard
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Dashboard
-
-  The dashboard allows you to execute actions on the environment.
-
-[/images/dashboard.png]
-
-  In the "Update Actions" tab you can:
-
-  * to launch an environment update
-
-  * to release the environment application: it allows you to create (and eventually update) an archive containing the
-  applications (JavaEE and software) defined in the environment. For instance, once you have updated an environment and
-  your QA team validated that the environment is correct, you can prepare a delivery to a customer directly in Kallumet.
-
-  * to create a HTML page resuming the environment: applications, notes and links.
-
-  The "Environment Check" verifies if the current environment status is the same as defined in Kalumet. It allows you to
-  see if the environment is up to date (regarding the Kalumet configuration).
-
-  The "Remote Shell" provides a complete command line environment (to execute system command) to the system (where the
-  agent is running).
-
-  The "File Browser" allows you to browse directories and view files on the system (where the agent is running).
-
-  The "Logs Viewer" gives you a direct access and view to some log files (defined in the environment "General" tab).
-
-  "Stats" provides information about the updates: the number of update performed on this environment, the date of the
-  last configuration change, the date of the last environment update.
\ No newline at end of file
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/general.apt b/0.6.x/documentation/src/site/apt/userguide/environment/general.apt
deleted file mode 100644
index 24a3ed8..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/general.apt
+++ /dev/null
@@ -1,99 +0,0 @@
- -----
- Environment General
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Environment General
-
-  To add a new environment, you can click on "Add Environment" button in the top menu.
-
-  You can also edit an existing environment by clicking directly on the environment name in the left panel.
-
-  Both actions open an environment window.
-
-Information
-
-[/images/env_general_info.png]
-	
-  The general tab allows you to provide basic information for the environment:
-
-  * the environment "name" is mandatory and is an unique identification
-
-  * the "group" is optional. It's used to sort and group environments in the left panel. You can use it to group the environment by type (testing, development, etc), by customers, or whatever
-
-  * the "tag" allows you to type an environment, depending of its role and criticity (production, staging, testing, etc). It's not really used internally to Kalumet, it's informative for you
-
-  * the "agent" defines the "master" agent which manages the environment. As you will see later, you will be able to define agent locally to a resource (for a software or an application server for instance). When not define, Kalumet will use this agent by default.
-
-  * the "automatically updated" flag defines if the agent scheduler will automatically the environment when fired, or not
-
-  * the "notes" are informative for you and others users. You can leave some information about the environment for the other users. The notes are used by Kalumet when you generate a "HTML page" about the environment (see "Dashboard section"). HTML code is supported here.
-
-  * the "web notes" are quite the same as "notes" but the purpose is to leave some links about the environment (home page, documentation, test URL, etc). As for "notes", Kalumet will use it when you generate a "HTML page" about the environment (see "Dashboard" section). HTML code is supported here.
-
-Free Fields
-
-[/images/env_general_freefields.png]
-
-  The free fields are custom fields that you can define on an environment. It's not used internally in Kalumet. The purpose is to be used by "external" tools to get some information about the environment.
-
-  A free field is composed by a "name" and a "content".
-
-  The number of free fields is not limited. You can create a new one by clicking on the "+" icon (or paste a copy with the "paste" icon).
-
-  On each free field, you can:
-
-  * copy the free field to create a new one with the same information
-
-  * move the free field up or down if you want to change the order
-
-  * validate a change on the free field "name" or "content"
-
-  * delete a free field
-
-Variables
-
-[/images/env_general_variables.png]
-
-  Instead of copy/paste a lot of information between a lot of resource in the environment, you can use variables.
-
-  A variable is composed by a "name" and a "value".
-
-  The number of variables is not limited. You can create a new one by clicking on the "+" icon (or paste a copy with the "paste" icon).
-
-  NB: it's not currently possible to use a variable in the value of another variable.
-
-  On each variable, you can:
-
-  * copy the variable to create a new one with the same information
-
-  * move the variable up or down if you want to change the order
-
-  * validate a change on the variable "name" and "value"
-
-  * delete a variable
-
-  You can use any variable in any fields of Kalumet Console with the $\{VARIABLE\} notation.
-
-  For instance, you can define a variable ENVIRONMENT_HOME with a filesystem location (file:/opt/environment/name) and use it in any field with $\{ENVIRONMENT_HOME\}, e.g. $\{ENVIRONMENT_HOME\}/logs.
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/jdbc_connection_pools.apt b/0.6.x/documentation/src/site/apt/userguide/environment/jdbc_connection_pools.apt
deleted file mode 100644
index 98d85b2..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/jdbc_connection_pools.apt
+++ /dev/null
@@ -1,95 +0,0 @@
- -----
- JDBC Connection Pools
- -----
- -----
- -----
- 
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-JDBC Connection Pools
-
-  In the environment JEE resources tab, you have a "JDBC Connection Pools" tab.
-
-  This tab allows you to configure the JDBC connection pools that will be deployed into the JEE application server given in the "scope" checkbox.
-
-[/images/env_jdbc_connection_pools.png]
-
-  On each JDBC connection pool, you can:
-
-  * copy the JDBC connection pool to be pasted into another connection pool 
-
-  * enable (light on) or disable (light off) the JDBC connection pool. If disabled, the JDBC connection pool won't be part of the update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece)
-
-  * check the current status of the JDBC connection pool (if deployed and up to date in the JEE application server)
-
-  * launch the JDBC connection pool update
-
-  * delete the JDBC connection pool
-
-  To add a new JDBC connection pool, you have to choose the scope and click on "Add JDBC Connection Pool". In the same way, you can edit a JDBC connection pool by clicking on the connection pool name. 
-
-  The scope is the target JEE application server.
-
-  You will have a new "JDBC Connection Pool" window.
-
-[/images/env_connection_pool_general.png]
-
-  The "General" tab defines general information about the JDBC connection pool:
-
-  * Name: it's the name of the JDBC connection pool.
-
-  * Active: this flag defines if the JDBC connection pool is part of an update or not.
-
-  * Update blocker: if true, if the update of this JDBC connection pool fails, the whole update process will failed and stopped, else, the whole update process will just log a warning and the process will continue.
-
-[/images/env_connection_pool_driver.png]
-
-  The "Driver" tab allows you to define the JDBC driver information for the connection pool:
-
-  * JDBC driver: it's the JDBC driver used by this connection pool.
-
-  * JDBC helper classname: this configuration is specific to WebSphere application server. If you are not using WebSphere application server, you can let this box empty. Else choose the helper classname corresponding to your database.
-
-  * Classpath: it's a path containing the JDBC driver, for instance /usr/lib/jdbc/ojdbc.jar.
-
-[/images/env_connection_pool_database.png]
-
-  The "Database" tab allows you to define the database connection information:
-
-  * JDBC URL: it's the JDBC URL to connect to the database, for instance jdbc:oracle:thin:@hostname:1521:database for an Oracle database.
-
-  * User: the user name used to connect to the database.
-
-  * Password: the password used to connect to the database.
-
-  * Confirm password: repeat the previous password to confirm.
-
-[/images/env_connection_pool_capacity.png]
-
-  The "Capacity" tab allows you to define the capacity of the JDBC connection pool:
-
-  * Initial: it's the number of connection pre-establish when creating the connection pool.
-
-  * Maximal: it's the maximum number of connection that the pool will contain.
-
-  * Increment: it's the number of connection to pre-establish when increasing the pool capacity.
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/jdbc_datasources.apt b/0.6.x/documentation/src/site/apt/userguide/environment/jdbc_datasources.apt
deleted file mode 100644
index dba3f36..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/jdbc_datasources.apt
+++ /dev/null
@@ -1,51 +0,0 @@
- -----
- JDBC Data Sources
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-JDBC Data Sources
-
-  In the environment JEE resources tab, you have a "JDBC Data Sources" tab. 
-
-  This tab allows you to configure the JDBC data sources that will be deployed into the JEE application server given in the "scope" checkbox.
-
-[/images/env_datasources.png]
-
-  On each data source, you can:
-
-  * copy the JDBC data source to be pasted into another data source
-
-  * enable (light on) or disable (light off) the JDBC data source. If disabled, the JDBC data source won't be part of the update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece)
-
-  * check the current status of the JDBC data source (if deployed and up to date in the JEE application server)
-
-  * launch the JDBC data source update
-
-  * validate a change on the JDBC data source configuration
-
-  * delete the JDBC data source
-
-  To add a new JDBC data source, you have to choose the scope, give a name to the data source, and choose the JDBC connection pool that the data source will use (the JDBC connection pool has to be created in the "JDBC Connection Pool" tab).
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/jee_application_server.apt b/0.6.x/documentation/src/site/apt/userguide/environment/jee_application_server.apt
deleted file mode 100644
index 6faa113..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/jee_application_server.apt
+++ /dev/null
@@ -1,111 +0,0 @@
- -----
- JavaEE Application Servers
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-JavaEE Application Servers
-
-  Kalumet provides a specific configuration for JEE application servers.
-
-[/images/env_app_servers.png]
-
-  On each JEE application server, you can:
-
-  * copy the JEE application server to be pasted into another application server
-
-  * enable (light on) or disable (light off) the JEE application server. If disabled, the JEE application server won't be part of the update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece)
-
-  * check the current status of the JEE application server
-
-  * stop the JEE application server
-
-  * start the JEE application server
-
-  * launch the JEE application server update
-
-  * delete the JEE application server
-
-  To add a new JEE application server, you have to choose the topology and click on "Add JEE Application Server". In the same way, you can edit a JEE application server by clicking on the application server name.
-
-  If you create a new JEE application server, it will use the topology that you defined in the top combobox:
-
-  * standalone: it's a standalone application server, not part of a cluster.
-
-  * cluster: the application server is the manager of a cluster
-
-  You will have a new "JEE Application Server" window.
-
-[/images/env_app_server_general.png]
-
-  The "General" tab defines general information about the JEE application server:
-
-  * Name: it's the name of the JEE application server. NB: for some application servers like IBM WebSphere, the name should match the internal application server name (like server1 for instance).
-
-  * Active: this flag defines if the JEE application server is part of an update or not.
-
-  * Update blocker: if true, if the update of this JEE application server fails, the whole update process will failed and stopped, else, the whole update process will just log a warning and the process will continue.
-
-  * Type: it's the JEE application server type. Currently, Kalumet supports the following application servers:
-
-    ** JBoss 4.x
-
-    ** JBoss 6.x
-
-    ** WebLogic 8.x/9.x/10.x
-
-    ** WebSphere 5.x/6.x
-
-  * JMX URL: it's the JMX URL used to connect to the JEE application server. For instance:
-
-    ** JBoss application servers use JNP protocol. The JMX URL looks like jnp://hostname:1099 where 1099 is the default port as defined in conf/jboss-service.xml
-
-    ** Weblogic application servers use T3 protocol. The JMX URL looks like t3://hostname:7001 where 7001 is the default port used by WebLogic.
-
-    ** WebSphere application servers use IIOP protocol. The JMX URL looks like iiop://hostname:2809 where 2809 is the default port used by WebShere.
-
-  * User: the user name used to connect to the JMX layer.
-
-  * Password: the password used to connect to the JMX layer.
-
-  * Confirm password: repeat the previous password to confirm.
-
-  * Agent: if you let empty, the update will use the "master" agent define at the environment level. However, if the application server is on a different machine, you can pick up a dedicated agent for this application server.
-
-  * Update performs JEE application server restart: if true, after a JEE application server has been updated, the application server is restarted.
-
-  * Update performs JEE application server caches cleanup: if true, after a JEE application server has been updated, the application server caches are cleanup.
-
-  * JEE application server is stopped using JMX layer: define if you use the JMX layer or the system shutdown command to stop the application server.
-
-  * Startup command: it's a system script or command used to start the application server.
-
-  * Shutdown command: it's a system script or command used to stop the application server.
-
-[/images/env_app_server_caches.png]
-
-  The "Caches" tab allows you to define the list of cache files or folders used by the application server. Most of JEE application servers use directories to cache some temporary data. For instance, by default, JBoss application server use work and temp directories as cache.
-
-  You can define these cache directories or files in the "Caches" tab. The caches will be deleted during an update (just between a stop and start) if you set the "Update performs JEE application server caches cleanup" flag to true.
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/jee_applications.apt b/0.6.x/documentation/src/site/apt/userguide/environment/jee_applications.apt
deleted file mode 100644
index e22c73f..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/jee_applications.apt
+++ /dev/null
@@ -1,222 +0,0 @@
- -----
- JavaEE Applications
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-JavaEE Applications
-
-  The JEE applications tab allows you to manage the applications deployed in the JEE application server given by the "scope" checkbox.
-
-[/images/env_apps.png]
-
-  On each JEE application, you can:
-
-  * copy the JEE application to be pasted into another application
-
-  * enable (light on) or disable (light off) the JEE application. If disabled, the JEE application won't be part of the update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece)
-
-  * change the JEE application order (using up arrow and down arrow icons)
-
-  * launch the JEE application update
-
-  * validate a change on the JEE application URI
-
-  * delete the JEE application
-
-  At the right of the URI, the "world icon" allows you to check if the URI is valid.
-
-  Clicking on the JEE application name, or on "Add JEE Application" button, you will have a JEE application window.
-
-General
-
-[/images/env_app_general.png]
-
-  The "General" tab allows you to define the general information about the JEE application:
-
-  * Name: it's the JEE application name.
-
-  * Active: if "true", the JEE application is active and will be part of the update process. If "false", the JEE application is disabled and the application won't be updated by the whole update process.
-
-  * Update blocker: if "true", the JEE application is an update blocker. It means that if the JEE application update fails, the whole update process will fail and stop. If "false", the JEE application is not an update blocker. So, if the JEE application updated fails, the whole update process will just log a warning and the process will continue.
-
-  * URI: it's an optional URI. It's a base URI. All relative URIs inside JEE application (like in archive, configuration file, etc) will be based on this master one.
-
-  * Agent: if empty, the agent used will be the environment one. However, you can delegate the JEE application update to a specific agent.
-
-Archives
-
-[/images/env_app_archives.png]
-
-  A JEE application hosts a set of archive. An archive is a jar, an ear, a war, or any kind of archive supported by the application server.
-
-  On each application, you can:
-
-  * copy an archive to be pasted into another archive
-
-  * enable (light on) or disable (light off) the archive. If disabled, the archive won't be part of the update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece).
-
-  * change the archive order (using up arrow and dow arrow icons).
-
-  * check the current status of the archive.
-
-  * launch the archive update.
-
-  * delete the archive.
-
-  By clicking on the archive name or "Add Archive" icon, you will have a new Archive window.
-
-[/images/env_app_archive_general.png]
-
-  The "General" tab allows you to define global information about an archive:
-
-  * Name: it's the name of the archive. It's an identifier.
-
-  * Active: if "true", the archive will be in the whole update process. If "false", the archive won't be in the update process.
-
-  * Update blocker: if "true", the archive is update blocker. It means that if the archive update fails, the whole update process will fail and stop. If "false", the archive is not update blocker. It means that if the archive update fails, the whole update process will log a warning but the update will continue.
-
-  * URI: it's the URI where to find the archive. This URI could be absolute (for instance http://, file://, etc) or relative to the application URI. It's also possible to use "composed" URI, for instance tgz:http://path/to/app.tar.gz!/path/inside/tgz/to/archive.war.
-
-  * Path: it's the path, locally to the agent, where the archive will be copied.
-
-  * Agent: by default, the archive will use the application agent. But it's also possible to dedicated the archive update to a specific agent.
-
-[/images/env_app_archive_deploy.png] 
-
-  The "Deploy" tab allows you to define deployment information required by some application server:
-
-  * Classloader Order: this property is used by WebSphere and WebLogic application servers. You can choose the classloader order to the archive relative to the parent one (Parent Last or Parent First).
-
-  * Classloader Policy: this property is used by WebSphere and WebLogic application servers. You can choose if one classloader will be created global to the archive (single) or if you will have multiple classloader (multiple) in the archive (especially when the archive is an EAR).
-
-  * Context Root: this property allow you to define the context root of the archive (when the archive is a war or an ear). It's optional, but it allows you to specify one.
-
-  * Virtual Host: this property is optional and specific to WebSphere application server. It allows you to specify the target virtual host where to deploy the archive.
-
-Configuration Files
-
-[/images/env_app_configs.png]
-
-  You can also define a set of configuration files (text, XML, properties, or whatever format) for the application.
-
-  On each configuration file, you can:
-
-  * copy a configuration file to be pasted into another configuration file.
-
-  * enable (light on) or disable (light off) the configuration file. If disabled, the configuration file won't be part of the whole update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece). If the configuration file is update blocker, it means that if the configuration file update fails, the whole update process will fail and stop. If the configuration file is not update blocker, it means that if the configuration file update fails, the whole update process will log a warning but the update will continue.
-
-  * define the configuration file processing order (using the up and down arrows icons).
-
-  * check the current status of the configuration file (if present and up to date).
-
-  * launch the configuration file update.
-
-  * delete the configuration file.
-
-  Clicking on the configuration file name or "Add Configuration File" icon, you will have a new "Configuration File" window.
-
-[/images/env_app_config_general.png]
-
-  The "General" tab allows you to define general information about the configuration file:
-
-  * Name: it's a configuration file identifier.
-
-  * Active: if "true", the configuration file is active. It means that the configuration file will be part of the whole update process.
-
-  * Update blocker: if "true", the configuration file is an update blocker. It means that if the configuration file update fails, the whole update process will fail and stop.
-
-  * URI: it's the URI where to find the configuration file. This URI could be absolute (for instance http://, file://, etc) or relative to the application URI. It's also possible to use "composed" URI, for instance tgz:http://path/to/app.tar.gz!/path/inside/tgz/to/configuration.properties.
-
-  * Path: it's the path, locally to the agent, where the configuration file will be copied.
-
-  * Agent: by default, the configuration file update will use the application agent. But it's also possible to dedicated the configuration file update to a specific agent.
-
-[/images/env_app_config_mappings.png]
-
-  Using the "Mappings" tab, you can also search and replace text in the configuration file. The "key" will be searched in the configuration file, and it will be replaced by the "value".
-
-Databases
-
-[/images/env_app_databases.png]
-
-  You can also define a set of database used by the JEE application. Kalumet can update a database by executing SQL scripts on it.
-
-  On each database, you can:
-
-  * copy the database (and all SQL scripts definition) to be pasted into another database.
-
-  * enable (light on) or disable (light off) the database. If disabled, the database won't be updated.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece).
-
-  * execute the update (the wheel icon)
-
-  * delete the database
-
-  By clicking on a database name or on the "Add Database" button, you will open the database details window.
-
-[/images/env_app_database.png]
-
-  In the database window, you define the database configuration. For this, you have two ways:
-
-  * you define a system command that will be used to execute the SQL scripts (for instance, sqlplus for Oracle database,
-  or mysql for MySQL). You can use variables here, a the %s special character is the location of the SQL script file in
-  the command.
-
-  * you define a JDBC connection to access the database, and execute SQL scripts.
-
-  The system command is the preferred way, it means that if you define a system command, the JDBC parameters are ignored.
-
-  You can also delegate the database update to a specific agent (most of the time the database is on a dedicated server).
-
-  The "SQL scripts" tab allows you to define the SQL scripts to execute on the database.
-
-[/images/env_app_database_script_general.png]
-
-  A SQL script is identified by a file name. This file name can be absolute (directly used by Kalumet from the local
-  filesystem, or from a remote HTTP URL).
-
-  The script is copied locally on the server, on the given URI.
-
-  You can also define some mappings: it's pattern (regex) that you want to replace in the SQL script before execution.
-
-[/images/env_app_database_script_mapping.png]
-
-Content Managers/Plugins
-
-  You can also use any kind of Java classes that you want to use to perform actions during the application upgrade.
-
-  For instance, you can use this to upgrade a content manager.
-
-[/images/env_app_plugin_general.png]
-
-  You can define properties that Kalumet will use setter values of your class.
-
-[/images/env_app_plugin_properties.png]
\ No newline at end of file
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/jms_connectionfactories.apt b/0.6.x/documentation/src/site/apt/userguide/environment/jms_connectionfactories.apt
deleted file mode 100644
index 78edd3d..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/jms_connectionfactories.apt
+++ /dev/null
@@ -1,51 +0,0 @@
- -----
- JMS Connection Factories
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-JMS Connection Factories
-
-  In the environment JEE resources tab, you have a "JMS Connection Factories" tab.
-
-  This tab allows you to configure the JMS connection factories that will be deployed into the JEE application server given in the "scope" checkbox.
-
-[/images/env_connectionfactories.png]
-
-  On each JMS connection factory, you can:
-
-  * copy the JMS connection factory to be pasted into another connection factory
-
-  * enable (light on) or disable (light off) the JMS connection factory. If disabled, the JMS connection factory won't be part of the update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece)
-
-  * check the current status of the JMS connection factory (if deployed and up to date in the JEE application server)
-
-  * launch the JMS connection factory update
-
-  * validate a change on the JMS connection factory configuration
-
-  * delete the JMS connection factory
-
-  To add a new JMS connection factory, you have to choose the scope, and just give a name to the JMS connection factory.
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/jms_servers.apt b/0.6.x/documentation/src/site/apt/userguide/environment/jms_servers.apt
deleted file mode 100644
index 908f00c..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/jms_servers.apt
+++ /dev/null
@@ -1,71 +0,0 @@
- -----
- JMS Servers
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-JMS Servers
-
-  In the environment JEE resources tab, you have a "JMS Servers" tab.
-
-  This tab allows you to configure the JMS servers that will be deployed into the JEE application server given in the "scope" checkbox.
-
-[/images/env_jmsservers.png]
-
-  On each JMS server, you can:
-
-  * copy the JMS server to be pasted into another server
-
-  * enable (light on) or disable (light off) the JMS server. If disabled, the JMS server won't be part of the update process. 
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece)
-
-  * check the current status of the JMS server (if deployed and up to date in the JEE application server)
-
-  * launch the JMS server update
-
-  * delete the JMS server
-
-  By clicking on the JMS server name, you will see a new "JMS Server" window. The same window will be displayed if you click on "Add JMS Server" button.
-
-[/images/env_jmsserver_general.png]
-
-  The "General" tab allows you to define the general information about the JMS server:
-
-  * Name: the name of the JMS server. NB: for some JEE application server (like WebSphere), the JMS server is embedded into the JEE application server and the name should match the application server one (server1 for instance).
-
-  * Active: if "yes", the JMS server is active and will be part of the update process.
-
-  * Update Blocker: if "yes", the JMS server is update blocker. It means that if the JMS server update, the whole update process will fail and stop. If not, the whole update process will just log a warning and the update will continue.
-
-[/images/env_jmserver_queues.png]
-
-  The "JMS Queues" tab allows you to define the JMS queues in the JMS server.
-
-  On each queue, you can validate a change on the queue name and delete a queue. To create a new JMS queue, you just have to enter the queue name and click on the "+" icon.
-
-[/images/env_jmsserver_topics.png]
-
-  The "JMS Topics" tab allows you to define the JMS topics in the JMS server.
-
-  On each topic, you can validate a change on the topic name and delete a topic. To create a new JMS topic, you just have to enter the topic name and click on the "+" icon.
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/jndi_bindings.apt b/0.6.x/documentation/src/site/apt/userguide/environment/jndi_bindings.apt
deleted file mode 100644
index ffea752..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/jndi_bindings.apt
+++ /dev/null
@@ -1,59 +0,0 @@
- -----
- JNDI Bindings
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-JNDI Bindings
-
-  In the environment JEE resources tab, you have a "NameSpace Bindings" tab.
-
-  This tab allows you to configure the JNDI aliases that will be deployed in the JEE application server given in the "scope" checkbox.
-
-[/images/env_bindings.png]
-
-  On each binding, you can:
-
-  * copy the JNDI binding to be pasted into another binding
-
-  * enable (light on) or disable (light off) the JNDI binding. If disabled, the JNDI binding won't be part of the update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece)
-
-  * check the current status of the JNDI binding (if deployed and up to date in the JEE application server)
-
-  * launch the JNDI binding update
-
-  * validate a change on the JNDI binding configuration
-
-  * delete the JNDI binding
-
-  To add a new JNDI binding, you have to provide:
-
-  * a name, which is just an identifier for the JNDI binding
-
-  * the "original" JNDI name
-
-  * the JNDI alias name
-
-  * a provider URL (if required), it allows you to bind two different JNDI providers (on different JEE application servers for instance)
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/journal.apt b/0.6.x/documentation/src/site/apt/userguide/environment/journal.apt
deleted file mode 100644
index 01426cc..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/journal.apt
+++ /dev/null
@@ -1,41 +0,0 @@
- -----
- Journal
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Journal
-
-  All actions performed on the Kalumet console are stored in the journal, including the event detail, the author
-  of the event (an user on the console, or an agent), and the timestamp of the event.
-
-  The event also contains a severity level.
-
-[/images/journal.png]
-
-  You can filter the journal to look for some special events (for instance, events with a given severity, or performed
-  by a given author).
-
-  You can purge the journal (careful, it will completely erase the journal).
-
-  You can create custom event (for instance, if you want to store a note for the other users, etc).
\ No newline at end of file
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/notifier_publisher.apt b/0.6.x/documentation/src/site/apt/userguide/environment/notifier_publisher.apt
deleted file mode 100644
index 8a87646..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/notifier_publisher.apt
+++ /dev/null
@@ -1,50 +0,0 @@
- -----
- Notifier and Publisher
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Notifier and Publisher
-
- The notifier and publisher are e-mail sender.
-
-[/images/notifier.png]
-
- The notifier is executed before an update to notify (e-mail destinations) that an update will be performed.
- For instance, it can invite users to logout from an application and save their current work.
-
-[/images/publisher.png]
-
- The publisher is executed after an update. It sends a complete update report, describing all actions performed by
- Kalumet and notifying if the update has been performed successfully or not.
-
- Both notifier and publisher are configured in the same way. You define:
-
- * a SMTP server (for instance mail.host.com)
-
- * a sender address (for instance kalumet@host.com)
-
- * and a set of e-mail destinations (for instance me@example.com)
-
- * in the case of the notifier, you can define a countdown which is a "wait" between the notification e-mail and the
- beginning of the update.
\ No newline at end of file
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/security.apt b/0.6.x/documentation/src/site/apt/userguide/environment/security.apt
deleted file mode 100644
index e66b535..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/security.apt
+++ /dev/null
@@ -1,69 +0,0 @@
- -----
- Security, Users and Groups
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Security, Users and Groups
-
-  By clicking on the environment "Security" tab, you can control the permissions given to the users groups.
-
-[/images/env_security.png]
-
-  You can add a users group to the environment security.
-
-  As soon as an user group appears in the environment security access lists, all users in this group can access to the environment (at least in read only mode).
-
-  You can grant more permissions for each group by clicking on the "role icons". In the table displayed, each icon represents a role ("red" icon means that the permission is not allowed, "green" icon mean that the permission is allowed).
-
-  The following roles are available:
-
-  * A (admin): the users in the group have all permissions on the environment, they can do what they want (change, update, etc)
-
-  * U (updates): the users in the group can launch updates (on both JEE resources or softwares)
-
-  * JS (JEE application servers change): the users in the group can change the JEE application servers configuration
-
-  * JSU (JEE application servers update): the users in the group can launch an update on the JEE application servers
-
-  * JSC (JEE application servers control): the users in the group can start/stop/restart the JEE application servers
-
-  * JR (JEE resources change): the users in the group can change the JEE resources (data sources, connection pools, etc) configuration
-
-  * JRU (JEE resources update): the users in the group can launch updates on the JEE resources (data sources, connection pools, etc)
-
-  * JA (JEE applications change): the users in the group can change the JEE applications (ear, war, etc) configuration
-
-  * JAU (JEE applications update): the users in the group can launch updates on the JEE applications (ear, war, etc)
-
-  * S (softwares change): the users in the group can change the softwares configuration (in the software tab)
-
-  * SU (softwares update): the users in the group can launch updates on the softwares (in the software tab)
-
-  * Re (release publication): the users in the group are allowed to package applications and softwares, publish the artifact as an environment release
-
-  * Sh (remote shell): the users in the group are allowed to use the remote shell (executing system commands) on the environment server
-
-  * Br (remote browser): the uers in the group are allowed to use the remote browser (browsing and viewing files) on the environment server
-
-  * Ho (homepage generation): the users in the group are allowed to create a HTML page with an environment summary and publish it
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/shared_libraries.apt b/0.6.x/documentation/src/site/apt/userguide/environment/shared_libraries.apt
deleted file mode 100644
index 51dc1f6..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/shared_libraries.apt
+++ /dev/null
@@ -1,55 +0,0 @@
- -----
- Shared Libraries
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Shared Libraries
-
-  In the environment JEE resources tab, you have a "Shared Libraries" tab.
-
-  This tab allows you to configure the shared libraries that will extend the class path of the JEE application server given in the "scope" checkbox.
-
-[/images/env_sharedlibraries.png]
-
-  On each binding, you can:
-
-  * copy the shared library to be pasted into another shared library
-
-  * enable (light on) or disable (light off) the shared library. If disabled, the shared library won't be part of the update process.
-
-  * set update blocker (green puzzle piece) or not update blocker (grey puzzle piece)
-
-  * check the current status of the shared library (if deployed and up to date in the JEE application server)
-
-  * launch the shared library update
-
-  * validate a change on the shared library configuration
-
-  * delete a shared library
-
-  To add a new shared library, you have to provide:
-
-  * a name, which is just an identifier for the shared library
-
-  * a path to a directory or jar file that will be used to extend the JEE application server classpath
diff --git a/0.6.x/documentation/src/site/apt/userguide/environment/software.apt b/0.6.x/documentation/src/site/apt/userguide/environment/software.apt
deleted file mode 100644
index b1f3473..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/environment/software.apt
+++ /dev/null
@@ -1,79 +0,0 @@
- -----
- Software
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Software
-
-  Software allows you to define a generic update plan that will be used to update any kind of application.
-  It's a very flexible way to update applications, whatever kind of application it is.
-
-[/images/software.png]
-
-  A software is identified by a name (for instance "My Custom Application").
-
-[/images/software_general.png]
-
-  As for other resources, a software could be active (it's part of the whole environment update) or passive (it won't be
-  updated during an environment update).
-
-  It could be an update blocker (if the software update fails, the whole environment update process is stopped in error),
-  or not update blocker (if the software update fails, just a warning is raised and the whole environment update continue).
-
-  You can chose to update a software before or after the JavaEE resources update.
-
-  Optionally, you can define an "base" software URI. This URI is used as base in the software resources that use relative
-  URI.
-
-[/images/software_update_plan.png]
-
-  A software update is defined by an "update plan". An update plan is a set of steps, each steps update a given resource
-  (an "update unit").
-
-  On each "update unit", as for other resources, you can define:
-
-  * if the unit is active or not
-
-  * if the unit is update blocker
-
-  * if the update of the unit should be delegated to specific agent
-
-  You have 4 "update units" available:
-
-  * "location" allows you to download, uncompress, copy files and directories on the system (where the agent is running).
-  You define a "source" URI (for instance tgz:http://host:port/myapp/archive.tar.gz!/inside/archive/file) and a "target"
-  URI (for instance /path/to/file). If you use relative URI, Kalumet will use the software URI as base.
-
-  * "command" allows you to execute local command on the system (where the agent is running). For instance, it allows you
-  to stop or start an application, execute specific system scripts, etc.
-
-  * "configuration file" allows you to download, copy files and apply regex substitution on the file content (using mappings).
-  The source and target URI are the same as in "location". The mappings are defined using key (regex pattern)/value.
-
-  * "database" allows you to use JDBC or system command to execute SQL scripts on a database (in order to update a database structure
-  or "refresh" the database content). You can use mappings on the SQL scripts (for instance to change some tablespace name, or table name, etc).
-  Take a look on the JavaEE application database documentation for details.
-
-
-
diff --git a/0.6.x/documentation/src/site/apt/userguide/statistics.apt b/0.6.x/documentation/src/site/apt/userguide/statistics.apt
deleted file mode 100644
index b1a3a8e..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/statistics.apt
+++ /dev/null
@@ -1,43 +0,0 @@
- -----
- Statistics
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Statistics
-
- By clicking on the "Statistics" button in the top menu, you will a new "Statistics" window.
-
-[/images/statistics.png]
-
- This window gives some information about the data center resources managed by Kalumet:
-
- * number of agents
-
- * number of environments
-
- * number of groups
-
- * number of users
-
- In the next release, the map (physical, agents, etc) will give you some graphical representation of your data center.
diff --git a/0.6.x/documentation/src/site/apt/userguide/users_groups.apt b/0.6.x/documentation/src/site/apt/userguide/users_groups.apt
deleted file mode 100644
index ac9335f..0000000
--- a/0.6.x/documentation/src/site/apt/userguide/users_groups.apt
+++ /dev/null
@@ -1,73 +0,0 @@
- -----
- Users and Groups Configuration
- -----
- -----
- -----
-
-~~ 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.
-
-~~ NOTE: For help with the syntax of this file, see:
-~~ http://maven.apache.org/doxia/references/apt-format.html
-
-Users and Groups Configuration
-
- By clicking on the "Users" button in the top menu, you will have a new "Users" window.
-
-[/images/users_list.png]
-
- You can delete an user directly in this window.
-
- You can also add a new user by clicking on the "Add User" button. You can also edit an existing user by clicking directly on the user ID.
-
- NB: if you use LDAP for user authentication, the valid (identified) users are automatically created.
-
-[/images/user.png]
-
- You can define for an user:
-
- * the user ID used for the logon process
-
- * an user name
-
- * an user e-mail
-
- * a password with its confirmed form
- 
- The "admin" user is a special admin that you can't remove. However, we advice to change the "admin" password.
-
- The users are grouped by "groups". A group is the element that define the permission on the environment (see the "Environments Security" section).
-
- By default, there is one group: "admin". It's a special group that you can't remove. However, you can assign new users in this group.
-
- By clicking on the "Groups" button in the top menu, you will have a new "Groups" window.
-
-[/images/groups_list.png]
-
- You can delete a grou directly in this window.
-
- You can also add a new group by clicking on the "Add Group" button. You can also edit an existing group by clicking directly on the group ID.
-
-[/images/group.png]
-
- For a group, you define:
-
- * a group ID
-
- * a group name
-
- * a set of user in this group (members) using the "two-sides" panel and the "join/leave" buttons
diff --git a/0.6.x/documentation/src/site/assembly/docs.xml b/0.6.x/documentation/src/site/assembly/docs.xml
deleted file mode 100644
index 052057b..0000000
--- a/0.6.x/documentation/src/site/assembly/docs.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?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.
--->
-<assembly>
-  <id>docs</id>
-  <formats>
-    <format>zip</format>
-  </formats>
-  <includeBaseDirectory>false</includeBaseDirectory>
-  <fileSets>
-    <fileSet>
-      <directory>target/site</directory>
-      <outputDirectory>/docs/</outputDirectory>
-    </fileSet>
-  </fileSets>
-</assembly>
diff --git a/0.6.x/documentation/src/site/resources/images/admin_layout.png b/0.6.x/documentation/src/site/resources/images/admin_layout.png
deleted file mode 100644
index a196534..0000000
--- a/0.6.x/documentation/src/site/resources/images/admin_layout.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/agent_capacity.png b/0.6.x/documentation/src/site/resources/images/agent_capacity.png
deleted file mode 100644
index cb759c8..0000000
--- a/0.6.x/documentation/src/site/resources/images/agent_capacity.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/agent_general.png b/0.6.x/documentation/src/site/resources/images/agent_general.png
deleted file mode 100644
index 70805c0..0000000
--- a/0.6.x/documentation/src/site/resources/images/agent_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/agent_scheduler.png b/0.6.x/documentation/src/site/resources/images/agent_scheduler.png
deleted file mode 100644
index b794f6e..0000000
--- a/0.6.x/documentation/src/site/resources/images/agent_scheduler.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/agents_list.png b/0.6.x/documentation/src/site/resources/images/agents_list.png
deleted file mode 100644
index 0103d87..0000000
--- a/0.6.x/documentation/src/site/resources/images/agents_list.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/core_configuration.png b/0.6.x/documentation/src/site/resources/images/core_configuration.png
deleted file mode 100644
index 53528df..0000000
--- a/0.6.x/documentation/src/site/resources/images/core_configuration.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/dashboard.png b/0.6.x/documentation/src/site/resources/images/dashboard.png
deleted file mode 100644
index 421b0a1..0000000
--- a/0.6.x/documentation/src/site/resources/images/dashboard.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_archive_deploy.png b/0.6.x/documentation/src/site/resources/images/env_app_archive_deploy.png
deleted file mode 100644
index 609161b..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_archive_deploy.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_archive_general.png b/0.6.x/documentation/src/site/resources/images/env_app_archive_general.png
deleted file mode 100644
index 3b2677f..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_archive_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_archives.png b/0.6.x/documentation/src/site/resources/images/env_app_archives.png
deleted file mode 100644
index 7f2cf86..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_archives.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_config_general.png b/0.6.x/documentation/src/site/resources/images/env_app_config_general.png
deleted file mode 100644
index 666a7a5..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_config_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_config_mappings.png b/0.6.x/documentation/src/site/resources/images/env_app_config_mappings.png
deleted file mode 100644
index 00435af..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_config_mappings.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_configs.png b/0.6.x/documentation/src/site/resources/images/env_app_configs.png
deleted file mode 100644
index 76f109d..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_configs.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_database.png b/0.6.x/documentation/src/site/resources/images/env_app_database.png
deleted file mode 100644
index a3a2d96..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_database.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_database_general.png b/0.6.x/documentation/src/site/resources/images/env_app_database_general.png
deleted file mode 100644
index 9abef68..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_database_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_database_script_general.png b/0.6.x/documentation/src/site/resources/images/env_app_database_script_general.png
deleted file mode 100644
index 5767334..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_database_script_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_database_script_mapping.png b/0.6.x/documentation/src/site/resources/images/env_app_database_script_mapping.png
deleted file mode 100644
index 2c32a3e..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_database_script_mapping.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_database_scripts.png b/0.6.x/documentation/src/site/resources/images/env_app_database_scripts.png
deleted file mode 100644
index aa035d8..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_database_scripts.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_databases.png b/0.6.x/documentation/src/site/resources/images/env_app_databases.png
deleted file mode 100644
index dbbc32c..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_databases.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_general.png b/0.6.x/documentation/src/site/resources/images/env_app_general.png
deleted file mode 100644
index ebe808c..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_plugin_general.png b/0.6.x/documentation/src/site/resources/images/env_app_plugin_general.png
deleted file mode 100644
index 7c43c17..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_plugin_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_plugin_properties.png b/0.6.x/documentation/src/site/resources/images/env_app_plugin_properties.png
deleted file mode 100644
index 6ac4127..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_plugin_properties.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_server_caches.png b/0.6.x/documentation/src/site/resources/images/env_app_server_caches.png
deleted file mode 100644
index 690712c..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_server_caches.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_server_general.png b/0.6.x/documentation/src/site/resources/images/env_app_server_general.png
deleted file mode 100644
index 9ac936e..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_server_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_app_servers.png b/0.6.x/documentation/src/site/resources/images/env_app_servers.png
deleted file mode 100644
index b4e8b7e..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_app_servers.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_apps.png b/0.6.x/documentation/src/site/resources/images/env_apps.png
deleted file mode 100644
index f8ab71c..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_apps.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_bindings.png b/0.6.x/documentation/src/site/resources/images/env_bindings.png
deleted file mode 100644
index 6782aab..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_bindings.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_connection_pool_capacity.png b/0.6.x/documentation/src/site/resources/images/env_connection_pool_capacity.png
deleted file mode 100644
index 4559125..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_connection_pool_capacity.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_connection_pool_database.png b/0.6.x/documentation/src/site/resources/images/env_connection_pool_database.png
deleted file mode 100644
index 98a3dd9..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_connection_pool_database.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_connection_pool_driver.png b/0.6.x/documentation/src/site/resources/images/env_connection_pool_driver.png
deleted file mode 100644
index 7e62d9e..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_connection_pool_driver.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_connection_pool_general.png b/0.6.x/documentation/src/site/resources/images/env_connection_pool_general.png
deleted file mode 100644
index 80f4123..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_connection_pool_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_connection_pools.png b/0.6.x/documentation/src/site/resources/images/env_connection_pools.png
deleted file mode 100644
index f59cb51..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_connection_pools.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_connectionfactories.png b/0.6.x/documentation/src/site/resources/images/env_connectionfactories.png
deleted file mode 100644
index e3de0f0..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_connectionfactories.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_datasources.png b/0.6.x/documentation/src/site/resources/images/env_datasources.png
deleted file mode 100644
index 40aca89..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_datasources.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_general_freefields.png b/0.6.x/documentation/src/site/resources/images/env_general_freefields.png
deleted file mode 100644
index f0c9e4b..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_general_freefields.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_general_info.png b/0.6.x/documentation/src/site/resources/images/env_general_info.png
deleted file mode 100644
index 17e08e0..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_general_info.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_general_logs.png b/0.6.x/documentation/src/site/resources/images/env_general_logs.png
deleted file mode 100644
index 8a993d0..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_general_logs.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_general_variables.png b/0.6.x/documentation/src/site/resources/images/env_general_variables.png
deleted file mode 100644
index bbc9ac8..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_general_variables.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_jmsserver_general.png b/0.6.x/documentation/src/site/resources/images/env_jmsserver_general.png
deleted file mode 100644
index a595fa7..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_jmsserver_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_jmsserver_queues.png b/0.6.x/documentation/src/site/resources/images/env_jmsserver_queues.png
deleted file mode 100644
index 8fde313..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_jmsserver_queues.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_jmsserver_topics.png b/0.6.x/documentation/src/site/resources/images/env_jmsserver_topics.png
deleted file mode 100644
index e4915a5..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_jmsserver_topics.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_jmsservers.png b/0.6.x/documentation/src/site/resources/images/env_jmsservers.png
deleted file mode 100644
index 8492105..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_jmsservers.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_security.png b/0.6.x/documentation/src/site/resources/images/env_security.png
deleted file mode 100644
index 276b76f..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_security.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/env_sharedlibraries.png b/0.6.x/documentation/src/site/resources/images/env_sharedlibraries.png
deleted file mode 100644
index 084af69..0000000
--- a/0.6.x/documentation/src/site/resources/images/env_sharedlibraries.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/group.png b/0.6.x/documentation/src/site/resources/images/group.png
deleted file mode 100644
index 491adf8..0000000
--- a/0.6.x/documentation/src/site/resources/images/group.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/groups_list.png b/0.6.x/documentation/src/site/resources/images/groups_list.png
deleted file mode 100644
index 2b620eb..0000000
--- a/0.6.x/documentation/src/site/resources/images/groups_list.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/journal.png b/0.6.x/documentation/src/site/resources/images/journal.png
deleted file mode 100644
index a09b08f..0000000
--- a/0.6.x/documentation/src/site/resources/images/journal.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/login.png b/0.6.x/documentation/src/site/resources/images/login.png
deleted file mode 100644
index 5787dc9..0000000
--- a/0.6.x/documentation/src/site/resources/images/login.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/notifier.png b/0.6.x/documentation/src/site/resources/images/notifier.png
deleted file mode 100644
index 2f099d0..0000000
--- a/0.6.x/documentation/src/site/resources/images/notifier.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/publisher.png b/0.6.x/documentation/src/site/resources/images/publisher.png
deleted file mode 100644
index a1eab43..0000000
--- a/0.6.x/documentation/src/site/resources/images/publisher.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/software.png b/0.6.x/documentation/src/site/resources/images/software.png
deleted file mode 100644
index dcffd10..0000000
--- a/0.6.x/documentation/src/site/resources/images/software.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/software_general.png b/0.6.x/documentation/src/site/resources/images/software_general.png
deleted file mode 100644
index 5fc5764..0000000
--- a/0.6.x/documentation/src/site/resources/images/software_general.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/software_update_plan.png b/0.6.x/documentation/src/site/resources/images/software_update_plan.png
deleted file mode 100644
index ca14d04..0000000
--- a/0.6.x/documentation/src/site/resources/images/software_update_plan.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/statistics.png b/0.6.x/documentation/src/site/resources/images/statistics.png
deleted file mode 100644
index 8a80b44..0000000
--- a/0.6.x/documentation/src/site/resources/images/statistics.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/user.png b/0.6.x/documentation/src/site/resources/images/user.png
deleted file mode 100644
index 45fe812..0000000
--- a/0.6.x/documentation/src/site/resources/images/user.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/resources/images/users_list.png b/0.6.x/documentation/src/site/resources/images/users_list.png
deleted file mode 100644
index b66d4f5..0000000
--- a/0.6.x/documentation/src/site/resources/images/users_list.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/documentation/src/site/site.xml b/0.6.x/documentation/src/site/site.xml
deleted file mode 100644
index 31db37d..0000000
--- a/0.6.x/documentation/src/site/site.xml
+++ /dev/null
@@ -1,100 +0,0 @@
-<?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>
-
-  <bannerLeft>
-    <name>Apache Kalumet</name>
-    <src>http://incubator.apache.org/kalumet/images/logo.png</src>
-    <href>http://incubator.apache.org/kalumet</href>
-  </bannerLeft>
-
-  <skin>
-    <groupId>org.apache.maven.skins</groupId>
-    <artifactId>maven-fluido-skin</artifactId>
-    <version>1.3.0</version>
-  </skin>
-
-  <publishDate format="yyyy-MM-dd" position="right"/>
-  <version position="right"/>
-
-  <custom>
-    <fluidoSkin>
-      <topBarEnabled>true</topBarEnabled>
-      <sideBarEnabled>false</sideBarEnabled>
-      <googleSearch></googleSearch>
-      <ohloh>
-        <projectId>587563</projectId>
-        <widget>stats</widget>
-      </ohloh>
-    </fluidoSkin>
-  </custom>
-
-  <body>
-
-    <breadcrumbs>
-      <item name="${project.version}" href="/index.html"/>
-    </breadcrumbs>
-
-    <menu name="Introduction">
-      <item name="Quick Start" href="/quick-start.html"/>
-      <item name="Feature Tour" href="/tour/quick.html"/>
-      <item name="Release Notes" href="/release-notes.html"/>
-      <item name="Downloads" href="http://incubator.apache.org/kalumet/download.html"/>
-    </menu>
-
-    <menu name="Administrator Guide">
-      <item name="Installation" href="">
-        <item name="Agent installation" href="/adminguide/agent.html"/>
-        <item name="Console installation" href="/adminguide/console.html"/>
-      </item>
-    </menu>
-
-    <menu name="User Guide">
-      <item name="Console layout" href="/userguide/console_layout.html"/>
-      <item name="Core configuration" href="/userguide/core_configuration.html"/>
-      <item name="Agents" href="/userguide/agents.html"/>
-      <item name="Users and Groups" href="/userguide/users_groups.html"/>
-      <item name="Statistics" href="/userguide/statistics.html"/>
-      <item name="Environment" href="">
-        <item name="General" href="/userguide/environment/general.html"/>
-        <item name="Security Access Lists" href="/userguide/environment/security.html"/>
-        <item name="JEE Application Servers" href="/userguide/environment/jee_application_server.html"/>
-        <item name="JEE Resources" href="">
-          <item name="JDBC Connection Pools" href="/userguide/environment/jdbc_connection_pools.html"/>
-          <item name="JDBC Data Sources" href="/userguide/environment/jdbc_datasources.html"/>
-          <item name="JMS Connection Factories" href="/userguide/environment/jms_connectionfactories.html"/>
-          <item name="JMS Servers" href="/userguide/environment/jms_servers.html"/>
-          <item name="JNDI NameSpace Bindings" href="/userguide/environment/jndi_bindings.html"/>
-          <item name="Shared Libraries" href="/userguide/environment/shared_libraries.html"/>
-        </item>
-        <item name="JEE Applications" href="/userguide/environment/jee_applications.html"/>
-        <item name="Software" href="/userguide/environment/software.html"/>
-        <item name="Journal" href="/userguide/environment/journal.html"/>
-        <item name="Notifier and Publisher" href="/userguide/environment/notifier_publisher.html"/>
-        <item name="Dashboard" href="/userguide/environment/dashboard.html"/>
-      </item>
-    </menu>
-
-    <menu name="Developer Guide">
-      <item name="Build instructions" href="/devguide/build.html"/>
-      <item name="Release guide" href="/devguide/release_guide.html"/>
-    </menu>
-  </body>
-
-</project>
diff --git a/0.6.x/kalumet-modules/agent/pom.xml b/0.6.x/kalumet-modules/agent/pom.xml
deleted file mode 100644
index 8e06748..0000000
--- a/0.6.x/kalumet-modules/agent/pom.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet</groupId>
-    <artifactId>kalumet-modules</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.agent</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Kalumet :: Agent</name>
-
-  <dependencies>
-    <dependency>
-      <groupId>axis</groupId>
-      <artifactId>axis</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-cli</groupId>
-      <artifactId>commons-cli</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>opensymphony</groupId>
-      <artifactId>quartz</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet.controller</groupId>
-      <artifactId>org.apache.kalumet.controller.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.utils</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/Configuration.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/Configuration.java
deleted file mode 100644
index be0bc87..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/Configuration.java
+++ /dev/null
@@ -1,35 +0,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.
- */
-package org.apache.kalumet.agent;
-
-import org.apache.kalumet.model.Kalumet;
-
-/**
- * Static class to store Kalumet agent configuration.
- */
-public class Configuration
-{
-
-  public static String CONFIG_LOCATION;
-
-  public static String AGENT_ID;
-
-  public static Kalumet CONFIG_CACHE = null;
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/Main.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/Main.java
deleted file mode 100644
index bb6d125..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/Main.java
+++ /dev/null
@@ -1,155 +0,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.
- */
-package org.apache.kalumet.agent;
-
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.GnuParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Option;
-import org.apache.commons.cli.OptionBuilder;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.utils.AgentUtils;
-import org.quartz.CronTrigger;
-import org.quartz.JobDetail;
-import org.quartz.Scheduler;
-import org.quartz.SchedulerFactory;
-import org.quartz.impl.StdSchedulerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Main class for Kalumet agent launch.
- */
-public final class Main
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( Main.class );
-
-  /**
-   * Main agent launcher.
-   *
-   * @param args
-   */
-  public final static void main( String[] args )
-  {
-    System.out.println( "Starting Apache Kalumet agent " + AgentUtils.getVersion() );
-    System.out.println();
-
-    Options options = new Options();
-    Option config = OptionBuilder.withArgName( "config" ).hasArg().withDescription(
-      "The location URL (local: or http:) to the Kalumet configuration (e.g. http://hostname/kalumet/ConfigurationWrapper)" ).isRequired().create(
-      "config" );
-    options.addOption( config );
-    Option agentid = OptionBuilder.withArgName( "id" ).hasArg().withDescription(
-      "The Kalumet agent identification as defined in the configuration" ).isRequired().create( "id" );
-    options.addOption( agentid );
-    CommandLineParser parser = new GnuParser();
-    CommandLine cmd = null;
-
-    try
-    {
-      // parse the command line
-      cmd = parser.parse( options, args );
-    }
-    catch ( ParseException parseException )
-    {
-      HelpFormatter formatter = new HelpFormatter();
-      formatter.printHelp( "Apache Kalumet", options );
-      System.exit( 1 );
-    }
-
-    String configLocation = cmd.getOptionValue( "config" );
-    LOGGER.info( "Loading configuration from {}", configLocation );
-    String agentId = cmd.getOptionValue( "id" );
-    LOGGER.info( "Agent ID is {}", agentId );
-
-    // parse the Kalumet configuration to get the the agent cron
-    Kalumet kalumet = null;
-    String cronString = null;
-    try
-    {
-      kalumet = Kalumet.digeste( configLocation );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't load Apache Kalumet configuration", e );
-      System.err.println( "Can't load Apache Kalumet configuration" );
-      e.printStackTrace();
-      System.exit( 1 );
-    }
-
-    if ( kalumet.getAgent( agentId ) == null )
-    {
-      LOGGER.error( "Agent ID {} is not found in the Kalumet configuration", agentId );
-      System.err.println( "Agent ID " + agentId + " is not found in the Kalumet configuration" );
-      System.exit( 1 );
-    }
-
-    // init the agent configuration store
-    Configuration.CONFIG_LOCATION = configLocation;
-    Configuration.AGENT_ID = agentId;
-
-    cronString = kalumet.getAgent( agentId ).getCron();
-    LOGGER.debug( "Cron definition: " + cronString );
-
-    // start the WS server
-    try
-    {
-      int port = kalumet.getAgent( agentId ).getPort();
-      WsServer wsServer = new WsServer( port, "/apache-kalumet.wsdd" );
-      wsServer.start();
-      LOGGER.info( "WS server started on {}", port );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't start WS server", e );
-      System.err.println( "Can't start WS server" );
-      e.printStackTrace();
-      System.exit( 2 );
-    }
-
-    // start the scheduler
-    try
-    {
-      SchedulerFactory schedulerFactory = new StdSchedulerFactory();
-      Scheduler scheduler = schedulerFactory.getScheduler();
-      scheduler.addGlobalJobListener( new SchedulerJobListener() );
-      LOGGER.debug( "Scheduler job listener plugged" );
-      scheduler.start();
-      JobDetail job = new JobDetail( "Apache Kalumet agent job", Scheduler.DEFAULT_GROUP, SchedulerJob.class );
-      CronTrigger cron = new CronTrigger( "Apache Kalumet agent trigger", Scheduler.DEFAULT_GROUP, cronString );
-      LOGGER.debug( "{} cron created", cronString );
-      scheduler.scheduleJob( job, cron );
-      LOGGER.info( "Scheduler started with {} trigger", cronString );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't start scheduler", e );
-      System.err.println( "Can't start scheduler" );
-      e.printStackTrace();
-      System.exit( 3 );
-    }
-
-    LOGGER.info( "Apache Kalumet agent started" );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/SchedulerJob.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/SchedulerJob.java
deleted file mode 100644
index 5428ecc..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/SchedulerJob.java
+++ /dev/null
@@ -1,88 +0,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.
- */
-package org.apache.kalumet.agent;
-
-import org.apache.kalumet.agent.updater.EnvironmentUpdater;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.Kalumet;
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.quartz.StatefulJob;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-
-/**
- * Kalumet job in the quartz scheduler.
- */
-public class SchedulerJob
-  implements StatefulJob
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( SchedulerJob.class );
-
-  public SchedulerJob()
-  {
-  }
-
-  /**
-   * Launch the main agent job.
-   *
-   * @param path    the Kalumet configuration file location.
-   * @param agentId the Kalumet agent ID.
-   */
-  public static void perform( String path, String agentId )
-  {
-    Kalumet kalumet = null;
-    try
-    {
-      LOGGER.debug( "Loading Kalumet configuration" );
-      kalumet = Kalumet.digeste( path );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't load Apache Kalumet configuration from {}", path, e );
-      throw new RuntimeException( "Can't load Apache Kalumet configuration from " + path, e );
-    }
-    // loop to update all environments managed by the agent
-    for ( Iterator environmentIterator = kalumet.getEnvironmentsByAgent( agentId ).iterator();
-          environmentIterator.hasNext(); )
-    {
-      try
-      {
-        EnvironmentUpdater.update( (Environment) environmentIterator.next() );
-      }
-      catch ( Exception e )
-      {
-        // ignore
-      }
-    }
-  }
-
-  /**
-   * @see org.quartz.StatefulJob#execute(org.quartz.JobExecutionContext)
-   */
-  public void execute( JobExecutionContext context )
-    throws JobExecutionException
-  {
-    SchedulerJob.perform( Configuration.CONFIG_LOCATION, Configuration.AGENT_ID );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/SchedulerJobListener.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/SchedulerJobListener.java
deleted file mode 100644
index ad2e39a..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/SchedulerJobListener.java
+++ /dev/null
@@ -1,80 +0,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.
- */
-package org.apache.kalumet.agent;
-
-import org.quartz.JobExecutionContext;
-import org.quartz.JobExecutionException;
-import org.quartz.JobListener;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * A global job listener.
- */
-public class SchedulerJobListener
-  implements JobListener
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( SchedulerJobListener.class );
-
-  public SchedulerJobListener()
-  {
-  }
-
-  /**
-   * Get the listener name.
-   *
-   * @return the listener name.
-   */
-  public String getName()
-  {
-    return "AgentJobListener";
-  }
-
-  /**
-   * @see org.quartz.JobListener#jobToBeExecuted(org.quartz.JobExecutionContext)
-   */
-  public void jobToBeExecuted( JobExecutionContext jobExecutionContext )
-  {
-    LOGGER.info( "Executing scheduler job ..." );
-  }
-
-  /**
-   * @see org.quartz.JobListener#jobExecutionVetoed(org.quartz.JobExecutionContext)
-   */
-  public void jobExecutionVetoed( JobExecutionContext jobExecutionContext )
-  {
-  }
-
-  /**
-   * @see org.quartz.JobListener#jobWasExecuted(org.quartz.JobExecutionContext, org.quartz.JobExecutionException)
-   */
-  public void jobWasExecuted( JobExecutionContext jobExecutionContext, JobExecutionException jobExecutionException )
-  {
-    if ( jobExecutionException != null )
-    {
-      LOGGER.warn( "Scheduler job executed with error", jobExecutionException );
-    }
-    else
-    {
-      LOGGER.info( "Scheduler job executed" );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/WsServer.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/WsServer.java
deleted file mode 100644
index a2d4b8e..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/WsServer.java
+++ /dev/null
@@ -1,105 +0,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.
- */
-package org.apache.kalumet.agent;
-
-import org.apache.axis.EngineConfiguration;
-import org.apache.axis.configuration.FileProvider;
-import org.apache.axis.transport.http.SimpleAxisServer;
-import org.apache.kalumet.KalumetException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.net.ServerSocket;
-
-/**
- * Kalumet agent embedded HTTP WS server.
- * This embedded server listens for incoming SOAP messages. These messages come from Kalumet console or other WS clients.
- */
-public class WsServer
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( WsServer.class );
-
-  private final static int MAX_POOL_SIZE = 500;
-
-  private final static int MAX_SESSIONS_NUMBER = 500;
-
-  private SimpleAxisServer simpleAxisServer;
-
-  /**
-   * Create an embedded WS server.
-   *
-   * @param port     the WS server listen port.
-   * @param wsddFile the WebService Deployment Descriptor.
-   * @throws KalumetException in case of WS server creation failure.
-   */
-  public WsServer( int port, String wsddFile )
-    throws KalumetException
-  {
-    simpleAxisServer = new SimpleAxisServer( MAX_POOL_SIZE, MAX_SESSIONS_NUMBER );
-    LOGGER.debug( "Creating WS server" );
-    LOGGER.debug( " Max pool size: " + MAX_POOL_SIZE );
-    LOGGER.debug( " Max sessions number: " + MAX_SESSIONS_NUMBER );
-    try
-    {
-      simpleAxisServer.setServerSocket( new ServerSocket( port ) );
-      LOGGER.debug( "WS server started on port {}", port );
-    }
-    catch ( IOException e )
-    {
-      LOGGER.error( "Can't create WS server on port {}", port, e );
-      throw new KalumetException( "Can't create WS server on port " + port, e );
-    }
-  }
-
-  /**
-   * Start the WS server.
-   *
-   * @throws KalumetException in case of WS server startup failure.
-   */
-  public void start()
-    throws KalumetException
-  {
-    try
-    {
-      LOGGER.debug( "Starting WS server in daemon mode" );
-      simpleAxisServer.start( true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't start WS server", e );
-      throw new KalumetException( "Can't start WS server", e );
-    }
-  }
-
-  /**
-   * Define the WS server configuration.
-   *
-   * @param wsddFile the WebService Deployment Descriptor file.
-   * @return the engine configuration of the WS server.
-   * @throws KalumetException in case of configuration failure.
-   */
-  private EngineConfiguration getEngineConfiguration( String wsddFile )
-    throws KalumetException
-  {
-    return new FileProvider( getClass().getResourceAsStream( wsddFile ) );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ArchiveUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ArchiveUpdater.java
deleted file mode 100644
index b374a81..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ArchiveUpdater.java
+++ /dev/null
@@ -1,476 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.FileManipulatorException;
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.controller.core.JEEApplicationServerController;
-import org.apache.kalumet.controller.core.JEEApplicationServerControllerFactory;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.apache.kalumet.ws.client.ArchiveClient;
-import org.apache.kalumet.ws.client.ClientException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * JEE application archive updater.
- */
-public class ArchiveUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( ArchiveUpdater.class );
-
-  /**
-   * Wrapper method to update JEE application archive.
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param applicationName the target JEE application name.
-   * @param archiveName     the target archive name.
-   * @param delegation      flag indicating if the update is a delegation from another agent (true), or a client call (false).
-   * @throws UpdateException in case of update failure.
-   */
-  public static void update( String environmentName, String serverName, String applicationName, String archiveName,
-                             boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Archive {} update requested by WS", archiveName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer server = environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( server == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environmentName );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environmentName );
-    }
-    JEEApplication application = server.getJEEApplication(applicationName);
-    if ( application == null )
-    {
-      LOGGER.error( "JEE application {} is not found in JEE application server {}", applicationName, serverName );
-      throw new KalumetException(
-        "JEE application " + applicationName + " is not found in JEE application server " + serverName );
-    }
-    Archive archive = application.getArchive( archiveName );
-    if ( archive == null )
-    {
-      LOGGER.error( "Archive {} is not found in JEE application {}", archiveName, applicationName );
-      throw new KalumetException( "Archive " + archiveName + " is not found in JEE application " + applicationName );
-    }
-
-    // update configuration cache
-    LOGGER.debug( "Updating configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    // post journal event
-    EventUtils.post( environment, "UPDATE", "Archive " + archiveName + " update requested by WS" );
-    // create an update logger
-    UpdateLog updateLog =
-      new UpdateLog( "Archive " + archiveName + " update in progress ...", environment.getName(), environment );
-
-    if ( !delegation )
-    {
-      // the update is a client call
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-
-    try
-    {
-      // call the updater method
-      ArchiveUpdater.update( environment, server, application, archive, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Archive {} update failed", archiveName, e );
-      EventUtils.post( environment, "ERROR", "Archive " + archiveName + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "Archive " + archiveName + " update failed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "error", "Archive " + archiveName + " update failed: " + e.getMessage() ) );
-        LOGGER.info( "Publishing update report" );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "Archive " + archiveName + " update failed", e );
-    }
-
-    // update completed
-    LOGGER.info( "Archive {} updated", archive.getName() );
-    EventUtils.post( environment, "UPDATE", "Archive " + archive.getName() + " updated" );
-
-    if ( !delegation )
-    {
-      if ( updateLog.isUpdated() )
-      {
-        updateLog.setStatus( "Archive " + archive.getName() + " updated" );
-      }
-      else
-      {
-        updateLog.setStatus( "Archive " + archive.getName() + " already up to date" );
-      }
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Archive " + archive.getName() + " updated" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-  /**
-   * Updates a archive.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param server      the target <code>JEEApplicationServer</code>.
-   * @param application the target JZEE <code>Application</code>.
-   * @param archive     the target <code>Archive</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JEEApplication application,
-                             Archive archive, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating archive {}", archive.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating archive " + archive.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating archive " + archive.getName() );
-
-    if ( !archive.isActive() )
-    {
-      LOGGER.info( "Archive {} is inactive, so not updated", archive.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Archive " + archive.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE", "Archive " + archive.getName() + " is inactive, so not updated" );
-      return;
-    }
-
-    // check to delegate the update
-    if ( archive.getAgent() != null && archive.getAgent().trim().length() > 0 && !archive.getAgent().equals(
-      Configuration.AGENT_ID ) )
-    {
-      LOGGER.info( "Delegating archive {} update to agent {}", archive.getName(), archive.getAgent() );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating archive " + archive.getName() + " update to agent " + archive.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Delegating archive " + archive.getName() + " update to agent "
-                                                       + archive.getAgent() ) );
-      Agent delegationAgent = Configuration.CONFIG_CACHE.getAgent( archive.getAgent() );
-      if ( delegationAgent == null )
-      {
-        LOGGER.error( "Agent {} is not found in the configuration", archive.getAgent() );
-        throw new UpdateException( "Agent " + archive.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        LOGGER.debug( "Call archive WS" );
-        ArchiveClient client = new ArchiveClient( delegationAgent.getHostname(), delegationAgent.getPort() );
-        client.update( environment.getName(), server.getName(), application.getName(), archive.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "Archive " + archive.getName() + " update failed", clientException );
-        throw new UpdateException( "Archive " + archive.getName() + " update failed", clientException );
-      }
-      return;
-    }
-
-    // construct the archiveUri
-    String archiveUri = VariableUtils.replace( archive.getUri(), environment.getVariables() );
-    if ( !FileManipulator.protocolExists( archiveUri ) )
-    {
-      // the archive URI is relative (no prefix protocol), use the
-      // application URI to construct the VFS URI
-      LOGGER.debug( "Archive URI is relative (no protocol prefix) to JEE application URI" );
-      archiveUri =
-        FileManipulator.format( VariableUtils.replace( application.getUri(), environment.getVariables() ) ) + "!/"
-          + archiveUri;
-    }
-    // get the application cache directory
-    String applicationCacheDir = null;
-    // initialize the file manipulator instance
-    FileManipulator fileManipulator = null;
-    try
-    {
-      applicationCacheDir = FileManipulator.createJEEApplicationCacheDir(environment, application);
-      fileManipulator = new FileManipulator();
-    }
-    catch ( FileManipulatorException e )
-    {
-      LOGGER.error( "Can't create JEE application {} cache directory", application.getName(), e );
-      throw new UpdateException( "Can't create JEE application " + application.getName() + " cache directory", e );
-    }
-    finally
-    {
-      if ( fileManipulator != null )
-      {
-        fileManipulator.close();
-      }
-    }
-    // define the archive cache location
-    String archiveCache = applicationCacheDir + "/" + archive.getName();
-    // define the archive installation URI
-    String archiveInstallation = null;
-    if ( archive.getPath() == null || archive.getPath().trim().length() < 1 )
-    {
-      LOGGER.error( "Archive {} path is not defined", archive.getName() );
-      throw new UpdateException( "Archive " + archive.getName() + " path is not defined" );
-    }
-    // the archive path is defined, use it
-    archiveInstallation = VariableUtils.replace( archive.getPath(), environment.getVariables() );
-    // get the JEE application server controller
-    LOGGER.debug( "Getting the JEE application server controller" );
-    JEEApplicationServerController controller = null;
-    try
-    {
-      controller = JEEApplicationServerControllerFactory.getController(environment, server);
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "Can't get the JEE application server {} controller", server.getName(), e );
-      throw new UpdateException( "Can't get the JEE application server " + server.getName() + " controller", e );
-    }
-    // check if the archive is already deployed
-    try
-    {
-      if ( controller.isJEEApplicationDeployed(archiveInstallation, archive.getName()) )
-      {
-        // the archive is already deployed, check for update
-        LOGGER.info( "Archive {} is already deployed, check for update", archive.getName() );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "Archive " + archive.getName() + " is already deployed, check for update" ) );
-        EventUtils.post( environment, "UPDATE",
-                         "Archive " + archive.getName() + " is already deployed, check for update" );
-        if ( !fileManipulator.checksumEquals( archiveUri, archiveCache ) )
-        {
-          // the archive file is different from the copy in the
-          // application directory, perform an update
-          // update the cache
-          fileManipulator.copy( archiveUri, archiveCache );
-          LOGGER.info( "Archive {} (located {}) is different from the cache, performing update", archive.getName(),
-                       archiveUri );
-          updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                         "Archive " + archive.getName() + " (located " + archiveUri
-                                                           + ") is different from the cache, performing update" ) );
-          EventUtils.post( environment, "UPDATE", "Archive " + archive.getName() + " (located " + archiveUri
-            + ") is different from the cache, performing update" );
-          updateLog.addUpdateMessage(
-            new UpdateMessage( "info", "Copy " + archiveUri + " to " + archiveInstallation ) );
-          EventUtils.post( environment, "UPDATE", "Copy " + archiveUri + " to " + archiveInstallation );
-          // update the archive path
-          fileManipulator.copy( archiveUri, archiveInstallation );
-          // undeploy the archive
-          LOGGER.info( "Undeploying archive {}", archive.getName() );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "Undeploying archive " + archive.getName() ) );
-          EventUtils.post( environment, "UPDATE", "Undeploying archive " + archive.getName() );
-          controller.undeployJEEApplication(archiveInstallation, archive.getName());
-          // deploy the archive
-          LOGGER.info( "Deploying archive {}", archive.getName() );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "Deploying archive " + archive.getName() ) );
-          EventUtils.post( environment, "UPDATE", "Deploying archive " + archive.getName() );
-          controller.deployJEEApplication(archiveInstallation, archive.getName(), archive.getClassloaderorder(),
-                  archive.getClassloaderpolicy(),
-                  VariableUtils.replace(archive.getVhost(), environment.getVariables()));
-          LOGGER.info( "Archive {} updated", archive.getName() );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "Archive " + archive.getName() + " updated" ) );
-          EventUtils.post( environment, "UPDATE", "Archive " + archive.getName() + " updated" );
-          updateLog.setUpdated( true );
-        }
-      }
-      else
-      {
-        // the archive is not deployed
-        LOGGER.info( "Archive {} is not deployed, deploying it", archive.getName() );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "Archive " + archive.getName() + " is not deployed, deploying it" ) );
-        EventUtils.post( environment, "UPDATE", "Archive " + archive.getName() + " is not deployed, deploying it" );
-        // copy the archive agent locally
-        fileManipulator.copy( archiveUri, archiveCache );
-        // copy the archive to the destination path
-        fileManipulator.copy( archiveUri, archiveInstallation );
-        // deploy the archive
-        LOGGER.info( "Deploying archive {}", archive.getName() );
-        updateLog.addUpdateMessage( new UpdateMessage( "info", "Deploying archive " + archive.getName() ) );
-        EventUtils.post( environment, "UPDATE", "Deploying archive " + archive.getName() );
-        controller.deployJEEApplication(archiveInstallation, archive.getName(), archive.getClassloaderorder(),
-                archive.getClassloaderpolicy(),
-                VariableUtils.replace(archive.getVhost(), environment.getVariables()));
-        updateLog.setUpdated( true );
-      }
-      // as some JEE application server (like IBM WebSphere) change the archive file during deployment, update
-      // the local archive with a original copy (for next update)
-      LOGGER.debug( "Restoring the original archive (before deployment) from {}", archiveUri );
-      fileManipulator.copy( archiveUri, archiveCache );
-      // check if the JEE application is deployed (it should be)
-      if ( !controller.isJEEApplicationDeployed(archiveInstallation, archive.getName()) )
-      {
-        LOGGER.error( "Archive {} is not deployed whereas it should be. Please check the JEE application server logs",
-                      archive.getName() );
-        throw new UpdateException( "Archive " + archive.getName()
-                                     + " is not deployed whereas it should be. Please check the JEE application server logs" );
-      }
-    }
-    catch ( Exception e )
-    {
-      // the archive update has failed
-      LOGGER.error( "Archive {} update failed", archive.getName(), e );
-      try
-      {
-        fileManipulator.delete( archiveCache );
-      }
-      catch ( FileManipulatorException fileManipulatorException )
-      {
-        LOGGER.warn( "Can't delete " + archiveCache, fileManipulatorException );
-      }
-      throw new UpdateException( "Archive " + archive.getName() + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check if a archive is up to date or not via WS.
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param applicationName the target JEE application name.
-   * @param archiveName     the target archive name.
-   * @return true if the archive is up to date, false else.
-   * @throws KalumetException in case of status check failure
-   */
-  public static boolean check( String environmentName, String serverName, String applicationName, String archiveName )
-    throws KalumetException
-  {
-    LOGGER.info( "Checking status of archive {} via WS", archiveName );
-    // load configuration
-    LOGGER.debug( "Load configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environmentName );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environmentName );
-    }
-    JEEApplication application = applicationServer.getJEEApplication(applicationName);
-    if ( application == null )
-    {
-      LOGGER.error( "JEE application {} is not found in JEE application server {}", applicationName, serverName );
-      throw new KalumetException(
-        "JEE application " + applicationName + " is not found in JEE application server " + serverName );
-    }
-    Archive archive = application.getArchive( archiveName );
-    if ( archive == null )
-    {
-      LOGGER.error( "Archive {} is not found in JEE application {}", archiveName, applicationName );
-      throw new KalumetException( "Archive " + archiveName + " is not found in JEE application " + applicationName );
-    }
-
-    // check if the check should be delegated to another agent
-    if ( archive.getAgent() != null && archive.getAgent().trim().length() > 0 && !archive.getAgent().equals(
-      Configuration.AGENT_ID ) )
-    {
-      // the check needs to be delegated to another agent
-      LOGGER.info( "Delegating archive {} status check to agent {}", archive.getName(), archive.getAgent() );
-      Agent agentDelegation = kalumet.getAgent( archive.getAgent() );
-      if ( agentDelegation == null )
-      {
-        LOGGER.error( "Agent {} is not found in the configuration", archive.getName() );
-        throw new KalumetException( "Agent " + archive.getAgent() + " is not found in the configuration" );
-      }
-      // call the service
-      ArchiveClient client = new ArchiveClient( agentDelegation.getHostname(), agentDelegation.getPort() );
-      return client.check( environmentName, serverName, applicationName, archiveName );
-    }
-
-    // get JEE application server controller
-    LOGGER.debug( "Getting JEE application server controller" );
-    JEEApplicationServerController controller =
-      JEEApplicationServerControllerFactory.getController(environment, applicationServer);
-
-    FileManipulator fileManipulator = null;
-    try
-    {
-      fileManipulator = new FileManipulator();
-
-      // get application cache directory
-      LOGGER.debug( "Getting application cache directory" );
-      String applicationCacheDirectory = FileManipulator.createJEEApplicationCacheDir(environment, application);
-
-      // construct the archive URI
-      String archiveUri = VariableUtils.replace( archive.getUri(), environment.getVariables() );
-      if ( !FileManipulator.protocolExists( archiveUri ) )
-      {
-        // the archive URI is relative (doesn't contain the protocol prefix), construct the URI using the application URI
-        archiveUri = VariableUtils.replace( application.getUri(), environment.getVariables() ) + "!/" + archiveUri;
-      }
-
-      // get the archive cache
-      String archiveCache = applicationCacheDirectory + "/" + archive.getName();
-
-      // get the archive installation path
-      if ( archive.getPath() == null || archive.getPath().trim().length() < 1 )
-      {
-        LOGGER.error( "Archive {} path is not defined", archive.getName() );
-        throw new KalumetException( "Archive " + archive.getName() + " path is not defined" );
-      }
-      String archiveInstallation = VariableUtils.replace( archive.getPath(), environment.getVariables() );
-
-      if ( controller.isJEEApplicationDeployed(archiveInstallation, archive.getName()) )
-      {
-        // check if the archive is deployed or not
-        if ( fileManipulator.checksumEquals( archiveUri, archiveCache ) )
-        {
-          // archive URI and cache are the same
-          LOGGER.debug( "Archive URI and agent cache are the same" );
-          return true;
-        }
-      }
-    }
-    finally
-    {
-      if ( fileManipulator != null )
-      {
-        fileManipulator.close();
-      }
-    }
-
-    return false;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ConfigurationFileUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ConfigurationFileUpdater.java
deleted file mode 100644
index 367aab0..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ConfigurationFileUpdater.java
+++ /dev/null
@@ -1,433 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.FileManipulatorException;
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.apache.kalumet.ws.client.ClientException;
-import org.apache.kalumet.ws.client.ConfigurationFileClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-
-/**
- * JEE application configuration file updater.
- */
-public class ConfigurationFileUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( ConfigurationFileUpdater.class );
-
-  /**
-   * Updates a <code>ConfigurationFile</code>.
-   *
-   * @param environment       the target <code>Environment</code>.
-   * @param server            the target <code>JEEApplicationServer</code>.
-   * @param application       the target <code>JEEApplication</code>.
-   * @param configurationFile the target <code>ConfigurationFile</code>.
-   * @param updateLog         the <code>UpdateLog</code> to use.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JEEApplication application,
-                             ConfigurationFile configurationFile, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating configuration file {}", configurationFile.getName() );
-    updateLog.addUpdateMessage(
-      new UpdateMessage( "info", "Updating configuration file " + configurationFile.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating configuration file " + configurationFile.getName() );
-
-    if ( !configurationFile.isActive() )
-    {
-      LOGGER.info( "Configuration file {} is inactive, so not updated", configurationFile.getName() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Configuration file " + configurationFile.getName()
-        + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Configuration file " + configurationFile.getName() + " is inactive, so not updated" );
-      return;
-    }
-
-    // check for update delegation
-    if ( configurationFile.getAgent() != null && configurationFile.getAgent().trim().length() > 0
-      && !configurationFile.getAgent().equals( Configuration.AGENT_ID ) )
-    {
-      LOGGER.info( "Delegating the configuration file {} update to agent {}", configurationFile.getName(),
-                   configurationFile.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Delegating the configuration file " + configurationFile.getName()
-                                                       + " update to agent " + configurationFile.getAgent() ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating the configuration file " + configurationFile.getName() + " update to agent "
-                         + configurationFile.getAgent() );
-      Agent delegationAgent = Configuration.CONFIG_CACHE.getAgent( configurationFile.getAgent() );
-      if ( delegationAgent == null )
-      {
-        // the delegation agent is not found
-        LOGGER.error( "Agent {} is not found in the configuration", configurationFile.getAgent() );
-        throw new UpdateException( "Agent " + configurationFile.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        LOGGER.debug( "Call the configuration file WS" );
-        ConfigurationFileClient client =
-          new ConfigurationFileClient( delegationAgent.getHostname(), delegationAgent.getPort() );
-        client.update( environment.getName(), server.getName(), application.getName(), configurationFile.getName(),
-                       true );
-      }
-      catch ( ClientException clientException )
-      {
-        // delegation update has failed
-        LOGGER.error( "Configuration file {} update failed", configurationFile.getName(), clientException );
-        throw new UpdateException( "Configuration file " + configurationFile.getName() + " update failed",
-                                   clientException );
-      }
-      return;
-    }
-
-    String configurationFileUri = VariableUtils.replace( configurationFile.getUri(), environment.getVariables() );
-    if ( !FileManipulator.protocolExists( configurationFileUri ) )
-    {
-      // the configuration file URI is relative, construct the URI using the JEE application URI
-      LOGGER.debug( "The configuration file URI is relative to the JEE application URI" );
-      configurationFileUri =
-        FileManipulator.format( VariableUtils.replace( application.getUri(), environment.getVariables() ) ) + "!/"
-          + configurationFileUri;
-    }
-
-    // get a file manipulator
-    FileManipulator fileManipulator = null;
-    try
-    {
-      LOGGER.debug( "Initializing file manipulator" );
-      fileManipulator = new FileManipulator();
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't initialize file manipulator", fileManipulatorException );
-      throw new UpdateException( "Can't initialize file manipulator", fileManipulatorException );
-    }
-
-    // get the application working directory
-    String applicationCacheDir = null;
-    try
-    {
-      LOGGER.debug( "Initializing application cache directory" );
-      applicationCacheDir = FileManipulator.createJEEApplicationCacheDir( environment, application );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't create JEE application {} cache directory", application.getName(),
-                    fileManipulatorException );
-      throw new UpdateException( "Can't create JEE application " + application.getName() + " cache directory",
-                                 fileManipulatorException );
-    }
-
-    String configurationFileCache = applicationCacheDir + "/config/" + configurationFile.getName();
-    try
-    {
-      // copy the configuration file in the application cache directory
-      LOGGER.debug( "Copying the configuration file {} to the application cache directory",
-                    configurationFile.getName() );
-      fileManipulator.copy( configurationFileUri, configurationFileCache );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't copy {} to {}", new Object[]{ configurationFileUri, configurationFileCache },
-                    fileManipulatorException );
-      throw new UpdateException( "Can't copy " + configurationFileUri + " to " + configurationFileCache,
-                                 fileManipulatorException );
-    }
-
-    // change mappings in the configuration file
-    LOGGER.debug( "Replacing mappings key/value" );
-    for ( Iterator mappingIterator = configurationFile.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      FileManipulator.searchAndReplace( mapping.getKey(),
-                                        VariableUtils.replace( mapping.getValue(), environment.getVariables() ),
-                                        configurationFileCache );
-    }
-
-    // compare the configuration file with the target one
-    try
-    {
-      if ( !fileManipulator.contentEquals( configurationFileCache, VariableUtils.replace( configurationFile.getPath(),
-                                                                                          environment.getVariables() ) ) )
-      {
-        // the configuration file has changed
-        LOGGER.debug( "Configuration file {} has changed", configurationFile.getName() );
-        fileManipulator.copy( configurationFileCache,
-                              VariableUtils.replace( configurationFile.getPath(), environment.getVariables() ) );
-        updateLog.setStatus( "Update performed" );
-        updateLog.setUpdated( true );
-        LOGGER.info( "Configuration file {} updated", configurationFile.getName() );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "Configuration file " + configurationFile.getName() + " updated" ) );
-        EventUtils.post( environment, "UPDATE", "Configuration file " + configurationFile.getName() + " updated" );
-      }
-    }
-    catch ( Exception e )
-    {
-      // the configuration file update failed, delete from the cache
-      try
-      {
-        fileManipulator.delete( configurationFileCache );
-      }
-      catch ( FileManipulatorException fileManipulatorException )
-      {
-        LOGGER.warn( "Can't delete {}", configurationFile.getName(), fileManipulatorException );
-      }
-      LOGGER.error( "Configuration file {} update failed", configurationFile.getName(), e );
-      throw new UpdateException( "Configuration file " + configurationFile.getName() + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a configuration file via WS.
-   *
-   * @param environmentName       the target environment name.
-   * @param serverName            the target JEE application server name.
-   * @param applicationName       the target JEE application name.
-   * @param configurationFileName the target configuration file name.
-   * @param delegation            flag indicating if the call is made by another agent (true), or by a client (false).
-   * @throws KalumetException in case of update error.
-   */
-  public static void update( String environmentName, String serverName, String applicationName,
-                             String configurationFileName, boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Configuration file {} update requested by WS", configurationFileName );
-
-    // load configuration
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environmentName );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environmentName );
-    }
-    JEEApplication application = applicationServer.getJEEApplication( applicationName );
-    if ( application == null )
-    {
-      LOGGER.error( "JEE application {} is not found in JEE application server {}", applicationName, serverName );
-      throw new KalumetException(
-        "JEE application " + applicationName + " is not found in JEE application server " + serverName );
-    }
-    ConfigurationFile configurationFile = application.getConfigurationFile( configurationFileName );
-    if ( configurationFile == null )
-    {
-      LOGGER.error( "Configuration file {} is not found in JEE application {}", configurationFileName,
-                    applicationName );
-      throw new KalumetException(
-        "Configuration file " + configurationFileName + " is not found in JEE application " + applicationName );
-    }
-
-    // update cache
-    LOGGER.debug( "Updating configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    // post event and create update logger
-    EventUtils.post( environment, "UPDATE",
-                     "Configuration file " + configurationFile.getName() + " update requested by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "Configuration file " + configurationFile.getName() + " update in progress ...",
-                     environment.getName(), environment );
-
-    // send and wait a notification if it's not a delegation
-    if ( !delegation )
-    {
-      // it's a client call
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-
-    try
-    {
-      // call the updater method
-      LOGGER.debug( "Call configuration file updater" );
-      ConfigurationFileUpdater.update( environment, applicationServer, application, configurationFile, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Configuration file {} update failed", configurationFile.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "Configuration file " + configurationFile.getName() + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        // it's a client call, send a publisher
-        updateLog.setStatus( "Configuration file " + configurationFile.getName() + " update failed" );
-        updateLog.addUpdateMessage( new UpdateMessage( "error", "Configuration file " + configurationFile.getName()
-          + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException(
-        "Configuration file " + configurationFile.getName() + " update FAILED: " + e.getMessage(), e );
-    }
-
-    LOGGER.info( "Configuration file {} updated", configurationFile.getName() );
-    EventUtils.post( environment, "UPDATE", "Configuration file " + configurationFile.getName() + " updated" );
-    if ( !delegation )
-    {
-      if ( updateLog.isUpdated() )
-      {
-        updateLog.setStatus( "Configuration file " + configurationFile.getName() + " updated" );
-      }
-      else
-      {
-        updateLog.setStatus( "Configuration file " + configurationFile.getName() + " already up to date" );
-      }
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Configuration file " + configurationFile.getName() + " updated" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-  /**
-   * Wrapper method to check if a configuration file is update to date or not via WS.
-   *
-   * @param environmentName       the target environment name.
-   * @param serverName            the target JEE application server name.
-   * @param applicationName       the target JEE application name.
-   * @param configurationFileName the target configuration file name.
-   * @return true if the configuration file is up to date, false else.
-   * @throws KalumetException in case of error during configuration file check.
-   */
-  public static boolean check( String environmentName, String serverName, String applicationName,
-                               String configurationFileName )
-    throws KalumetException
-  {
-    LOGGER.info( "Configuration file {} status check requested by WS", configurationFileName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environmentName );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environmentName );
-    }
-    JEEApplication application = applicationServer.getJEEApplication( applicationName );
-    if ( application == null )
-    {
-      LOGGER.error( "JEE application {} is not found in JEE application server {}", applicationName, serverName );
-      throw new KalumetException(
-        "JEE application " + applicationName + " is not found in JEE application server " + serverName );
-    }
-    ConfigurationFile configurationFile = application.getConfigurationFile( configurationFileName );
-    if ( configurationFile == null )
-    {
-      LOGGER.error( "Configuration file {} is not found in JEE application {}", configurationFileName,
-                    applicationName );
-      throw new KalumetException(
-        "Configuration file " + configurationFileName + " is not found in JEE application " + applicationName );
-    }
-
-    if ( configurationFile.getAgent() != null && configurationFile.getAgent().trim().length() > 0
-      && !configurationFile.getAgent().equals( Configuration.AGENT_ID ) )
-    {
-      // the check needs to be delegate to another agent
-      LOGGER.info( "Delegating configuration file {} check to agent {}", configurationFile.getName(),
-                   configurationFile.getAgent() );
-      Agent agentDelegation = Configuration.CONFIG_CACHE.getAgent( configurationFile.getAgent() );
-      if ( agentDelegation == null )
-      {
-        LOGGER.error( "Agent {} is not found in the configuration", configurationFile.getAgent() );
-        throw new KalumetException( "Agent " + configurationFile.getAgent() + " is not found in the configuration" );
-      }
-      // call the service
-      ConfigurationFileClient client =
-        new ConfigurationFileClient( agentDelegation.getHostname(), agentDelegation.getPort() );
-      return client.check( environmentName, serverName, applicationName, configurationFileName );
-    }
-
-    // initialize the file manipulator.
-    LOGGER.debug( "Initializing file manipulator" );
-    FileManipulator fileManipulator = new FileManipulator();
-
-    // constructs the configuration file URI.
-    String configurationFileUri = VariableUtils.replace( configurationFile.getUri(), environment.getVariables() );
-    if ( !FileManipulator.protocolExists( configurationFileUri ) )
-    {
-      // the configuration file URI doesn't contain protocol prefix,
-      // constructs the configuration file URI using the application URI
-      LOGGER.debug( "Configuration file {} URI is relative to the JEE application one", configurationFile.getName() );
-      configurationFileUri =
-        FileManipulator.format( VariableUtils.replace( application.getUri(), environment.getVariables() ) ) + "!/"
-          + configurationFileUri;
-    }
-
-    // get the application cache directory.
-    LOGGER.debug( "Creating the application cache directory" );
-    String applicationCacheDir = FileManipulator.createJEEApplicationCacheDir( environment, application );
-
-    // get the configuration file cache.
-    LOGGER.debug( "Creating the configuration file cache location" );
-    String configurationFileCache = applicationCacheDir + "/config/" + configurationFile.getName();
-
-    // copy the configuration file in the application cache directory
-    LOGGER.debug( "Copying the configuration file {} to the application cache directory", configurationFile.getName() );
-    fileManipulator.copy( configurationFileUri, configurationFileCache );
-
-    // change mappings into the configuration file.
-    LOGGER.debug( "Replacing mappings key/value" );
-    for ( Iterator mappingIterator = configurationFile.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      FileManipulator.searchAndReplace( mapping.getKey(),
-                                        VariableUtils.replace( mapping.getValue(), environment.getVariables() ),
-                                        configurationFileCache );
-    }
-
-    // compare the configuration file with the target one.
-    return fileManipulator.contentEquals( configurationFileCache, VariableUtils.replace( configurationFile.getPath(),
-                                                                                         environment.getVariables() ) );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ContentManagerUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ContentManagerUpdater.java
deleted file mode 100644
index 9073b82..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/ContentManagerUpdater.java
+++ /dev/null
@@ -1,256 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.apache.kalumet.ws.client.ClientException;
-import org.apache.kalumet.ws.client.ContentManagerClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.lang.reflect.Method;
-import java.util.Iterator;
-
-/**
- * Content manager updater.
- */
-public class ContentManagerUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( ContentManagerUpdater.class );
-
-  /**
-   * Update a content manager.
-   *
-   * @param environment    the target <code>Environment</code>.
-   * @param server         the target <code>JEEApplicationServer</code>.
-   * @param application    the target <code>JEEApplication</code>.
-   * @param contentManager the target <code>ContentManager</code>.
-   * @param updateLog      the <code>UpdateLog</code> to use.
-   * @throws UpdateException in case of update failure.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JEEApplication application,
-                             ContentManager contentManager, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating content manager {}", contentManager.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating content manager " + contentManager.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating content manager " + contentManager.getName() );
-
-    if ( !contentManager.isActive() )
-    {
-      // the content manager is not active
-      LOGGER.info( "Content manager {} is inactive, so not updated", contentManager.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Content manager " + contentManager.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Content manager " + contentManager.getName() + " is inactive, so not updated" );
-      return;
-    }
-
-    if ( contentManager.getAgent() != null && contentManager.getAgent().trim().length() > 0
-      && !contentManager.getAgent().equals( Configuration.AGENT_ID ) )
-    {
-      // the content manager update is delegated to another agent
-      LOGGER.info( "Delegating content manager {} update to agent {}", contentManager.getName(),
-                   contentManager.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Delegating content manager " + contentManager.getName()
-        + " update to agent " + contentManager.getAgent() ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating content manager " + contentManager.getName() + " update to agent "
-                         + contentManager.getAgent() );
-      Agent delegationAgent = Configuration.CONFIG_CACHE.getAgent( contentManager.getAgent() );
-      if ( delegationAgent == null )
-      {
-        // the content manager agent is not found in the configuration
-        LOGGER.error( "Agent {} is not found in the configuration", contentManager.getAgent() );
-        throw new UpdateException( "Agent " + contentManager.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        // call agent WebService
-        LOGGER.debug( "Calling content manager WebService WS" );
-        ContentManagerClient client =
-          new ContentManagerClient( delegationAgent.getHostname(), delegationAgent.getPort() );
-        client.update( environment.getName(), server.getName(), application.getName(), contentManager.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "Content manager {} update failed", contentManager.getName(), clientException );
-        throw new UpdateException( "Content manager " + contentManager.getName() + " update failed", clientException );
-      }
-      return;
-    }
-
-    try
-    {
-      LOGGER.debug( "Loading content manager class name" );
-      Class contentManagerClass =
-        Class.forName( VariableUtils.replace( contentManager.getClassname(), environment.getVariables() ) );
-      Object contentManagerObject = contentManagerClass.newInstance();
-      // call method properties
-      for ( Iterator propertyIterator = contentManager.getProperties().iterator(); propertyIterator.hasNext(); )
-      {
-        Property property = (Property) propertyIterator.next();
-        Method method = contentManagerClass.getMethod(
-          "set" + VariableUtils.replace( property.getName(), environment.getVariables() ),
-          new Class[]{ String.class } );
-        method.invoke( contentManagerObject,
-                       new Object[]{ VariableUtils.replace( property.getValue(), environment.getVariables() ) } );
-      }
-      // call main method
-      Method mainMethod = contentManagerClass.getMethod( "main", new Class[]{ } );
-      mainMethod.invoke( contentManagerObject, new Object[]{ } );
-      LOGGER.info( "Content manager {} updated", contentManager.getName() );
-      updateLog.setStatus( "update performed" );
-      updateLog.setUpdated( true );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Content manager " + contentManager.getName() + " updated" ) );
-      EventUtils.post( environment, "UPDATE", "Content manager " + contentManager.getName() + " updated" );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Content manager {} update failed", contentManager.getName(), e );
-      throw new UpdateException( "Content manager " + contentManager.getName() + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a content manager via WS.
-   *
-   * @param environmentName    the target environment name.
-   * @param serverName         the target JEE application server name.
-   * @param applicationName    the target JEE application name.
-   * @param contentManagerName the target content manager name.
-   * @param delegation         flag indicating if the update is called by another agent (true) or by a client (false).
-   * @throws KalumetException in case of update failure.
-   */
-  public static void update( String environmentName, String serverName, String applicationName,
-                             String contentManagerName, boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Content manager {} update requested by WS", contentManagerName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects.
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JEEApplication application = applicationServer.getJEEApplication( applicationName );
-    if ( application == null )
-    {
-      LOGGER.error( "JEE application {} is not found in JEE application server {}", applicationName,
-                    applicationServer.getName() );
-      throw new KalumetException( "JEE application " + applicationName + " is not found in JEE application server "
-                                    + applicationServer.getName() );
-    }
-    ContentManager contentManager = application.getContentManager( contentManagerName );
-    if ( contentManager == null )
-    {
-      LOGGER.error( "Content manager {} is not found in JEE application {}", contentManagerName,
-                    application.getName() );
-      throw new KalumetException(
-        "Content manager " + contentManagerName + " is not found in JEE application " + application.getName() );
-    }
-
-    // update configuration cache.
-    LOGGER.debug( "Updating configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    // post event and create an update log
-    EventUtils.post( environment, "UPDATE", "Content manager " + contentManager.getName() + " update requested by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "Content manager " + contentManager.getName() + " update in progress ...", environment.getName(),
-                     environment );
-
-    if ( !delegation )
-    {
-      // the update is a client call,
-      // send a notification and waiting for the count down
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-
-    try
-    {
-      // call the content manager updater
-      LOGGER.debug( "Call content manager updater" );
-      ContentManagerUpdater.update( environment, applicationServer, application, contentManager, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Content manager " + contentManager.getName() + " update failed", e );
-      EventUtils.post( environment, "ERROR",
-                       "Content manager " + contentManager.getName() + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "Content manager " + contentManager.getName() + " update failed" );
-        updateLog.addUpdateMessage( new UpdateMessage( "error", "Content manager " + contentManager.getName()
-          + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "Content manager " + contentManager.getName() + " update failed", e );
-    }
-
-    // update completed
-    LOGGER.info( "Content manager {} updated", contentManager.getName() );
-    EventUtils.post( environment, "UPDATE", "Content manager " + contentManager.getName() + " updated" );
-    if ( !delegation )
-    {
-      if ( updateLog.isUpdated() )
-      {
-        updateLog.setStatus( "Content manager " + contentManager.getName() + " updated" );
-      }
-      else
-      {
-        updateLog.setStatus( "Content manager " + contentManager.getName() + " already up to date" );
-      }
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Content manager " + contentManager.getName() + " updated" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/DatabaseUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/DatabaseUpdater.java
deleted file mode 100644
index 0ba5249..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/DatabaseUpdater.java
+++ /dev/null
@@ -1,254 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.ws.client.ClientException;
-import org.apache.kalumet.ws.client.DatabaseClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-
-/**
- * Database updater.
- */
-public class DatabaseUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( DatabaseUpdater.class );
-
-  /**
-   * Updates a database.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param server      the target <code>JEEApplicationServer</code>.
-   * @param application the target <code>JEEApplication</code>.
-   * @param database    the target <code>Database</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JEEApplication application,
-                             Database database, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating database {}", database.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating database " + database.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating database " + database.getName() );
-
-    if ( !database.isActive() )
-    {
-      // database is not active
-      LOGGER.info( "Database {} is inactive, so not updated", database.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Database " + database.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE", "Database " + database.getName() + " is inactive, so not updated" );
-      return;
-    }
-
-    if ( database.getAgent() != null && database.getAgent().trim().length() > 0 && !database.getAgent().equals(
-      Configuration.AGENT_ID ) )
-    {
-      // database update delegated to another agent
-      LOGGER.info( "Delegating database {} update to agent {}", database.getName(), database.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Delegating database " + database.getName() + " update to agent "
-                                                       + database.getAgent() ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating database " + database.getName() + " update to agent " + database.getAgent() );
-      Agent delegationAgent = Configuration.CONFIG_CACHE.getAgent( database.getAgent() );
-      if ( delegationAgent == null )
-      {
-        // database agent is not found in configuration
-        LOGGER.error( "Agent {} is not found in the configuration", database.getAgent() );
-        throw new UpdateException( "Agent " + database.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        // call WS
-        LOGGER.debug( "Calling database WS" );
-        DatabaseClient client = new DatabaseClient( delegationAgent.getHostname(), delegationAgent.getPort() );
-        client.update( environment.getName(), server.getName(), application.getName(), database.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "Database {} update failed", database.getName(), clientException );
-        throw new UpdateException( "Database " + database.getName() + " update failed", clientException );
-      }
-      return;
-    }
-
-    // launch SQL scripts on the database
-    LOGGER.debug( "Executing SQL scripts" );
-    for ( Iterator sqlScriptIterator = database.getSqlScripts().iterator(); sqlScriptIterator.hasNext(); )
-    {
-      SqlScript sqlScript = (SqlScript) sqlScriptIterator.next();
-      try
-      {
-        SqlScriptUpdater.execute( environment, server, application, database, sqlScript, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the SQL script execution failed
-        if ( sqlScript.isBlocker() )
-        {
-          // the SQL script is update blocker
-          LOGGER.error( "SQL script {} execution failed", sqlScript.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                         "SQL script " + sqlScript.getName() + " execution failed: "
-                                                           + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR",
-                           "SQL script " + sqlScript.getName() + " execution failed: " + updateException.getMessage() );
-          throw new UpdateException( "SQL script " + sqlScript.getName() + " execution failed", updateException );
-        }
-        else
-        {
-          // the SQL script is not update blocker
-          LOGGER.warn( "SQL script " + sqlScript.getName() + " execution failed", updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn",
-                                                         "SQL script " + sqlScript.getName() + " execution failed: "
-                                                           + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "SQL script " + sqlScript.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN",
-                           "SQL script " + sqlScript.getName() + " execution failed: " + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "SQL script " + sqlScript.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update completed
-    LOGGER.info( "Database {} updated", database.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Database " + database.getName() + " updated" ) );
-    EventUtils.post( environment, "UPDATE", "Database " + database.getName() + " updated" );
-  }
-
-  /**
-   * Wrapper method to update a database via WS.
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param applicationName the target JEE application name.
-   * @param databaseName    the target database name.
-   * @param delegation      true if the call is made by another agent, false if the call is made by a client.
-   * @throws KalumetException in case of update failure.
-   */
-  public static void update( String environmentName, String serverName, String applicationName, String databaseName,
-                             boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Database {} update requested by WS", databaseName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environmentName );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environmentName );
-    }
-    JEEApplication application = applicationServer.getJEEApplication( applicationName );
-    if ( application == null )
-    {
-      LOGGER.error( "JEE application {} is not found in JEE application server {}", applicationName, serverName );
-      throw new KalumetException(
-        "JEE application " + applicationName + " is not found in JEE application server " + serverName );
-    }
-    Database database = application.getDatabase( databaseName );
-    if ( database == null )
-    {
-      LOGGER.error( "Database {} is not found in JEE application {}", databaseName, applicationName );
-      throw new KalumetException( "Database " + databaseName + " is not found in JEE application " + applicationName );
-    }
-
-    // update configuration cache.
-    LOGGER.debug( "Updating configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    // post journal event
-    EventUtils.post( environment, "UPDATE", "Database " + databaseName + " update requested by WS" );
-    // create an update logger
-    UpdateLog updateLog =
-      new UpdateLog( "Database " + databaseName + " update in progress ...", environment.getName(), environment );
-
-    if ( !delegation )
-    {
-      // the update is requested by a client
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-
-    try
-    {
-      // call the updater
-      LOGGER.debug( "Call database updater" );
-      DatabaseUpdater.update( environment, applicationServer, application, database, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Database {} update failed", database.getName(), e );
-      EventUtils.post( environment, "ERROR", "Database " + database.getName() + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "Database " + database.getName() + " update failed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "error", "Database " + database.getName() + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "Database " + database.getName() + " update failed", e );
-    }
-
-    // update completed
-    LOGGER.info( "Database {} updated", database.getName() );
-    EventUtils.post( environment, "UPDATE", "Database " + database.getName() + " updated" );
-    if ( !delegation )
-    {
-      if ( updateLog.isUpdated() )
-      {
-        updateLog.setStatus( "Database " + database.getName() + " updated" );
-      }
-      else
-      {
-        updateLog.setStatus( "Database " + database.getName() + " already up to date" );
-      }
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Database " + database.getName() + " updated" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/EnvironmentUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/EnvironmentUpdater.java
deleted file mode 100644
index 917c7e2..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/EnvironmentUpdater.java
+++ /dev/null
@@ -1,299 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Software;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-
-/**
- * Environment updater.
- */
-public class EnvironmentUpdater
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( EnvironmentUpdater.class );
-
-  /**
-   * Updates an environment identified by a given name.
-   * The update is forced even if the auto update flag is set to false.
-   *
-   * @param name the environment name.
-   * @throws KalumetException
-   */
-  public static void update( String name )
-    throws KalumetException
-  {
-    // load the Kalumet configuration
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    // get the environment
-    Environment environment = kalumet.getEnvironment( name );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", name );
-      throw new KalumetException( "Environment " + name + " is not found in the configuration" );
-    }
-    try
-    {
-      EnvironmentUpdater.update( environment, true );
-    }
-    catch ( Exception e )
-    {
-      throw new KalumetException( e );
-    }
-  }
-
-  /**
-   * Updates an environment.
-   *
-   * @param environment the environment to update.
-   * @throws UpdateException in case of update failure.
-   */
-  public static void update( Environment environment )
-    throws UpdateException
-  {
-    EnvironmentUpdater.update( environment, false );
-  }
-
-  /**
-   * Updates an environment.
-   *
-   * @param environment the environment to update.
-   * @param force       true force the update (even if the autoupdate flag is false), false else
-   * @throws UpdateException in case of update failure.
-   */
-  public static void update( Environment environment, boolean force )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating environment {}", environment.getName() );
-
-    LOGGER.debug( "Loading configuration and updating the cache" );
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-      Configuration.CONFIG_CACHE = kalumet;
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't load configuration", e );
-      EventUtils.post( environment, "ERROR", "Can't load configuration: " + e.getMessage() );
-      throw new UpdateException( "Can't load configuration", e );
-    }
-
-    if ( !force && !environment.isAutoupdate() )
-    {
-      LOGGER.info( "Update is not forced and environment {} is not auto update", environment.getName() );
-      LOGGER.info( "Update is not performed" );
-      return;
-    }
-
-    LOGGER.debug( "Creating a update logger" );
-    UpdateLog updateLog = null;
-    try
-    {
-      updateLog =
-        new UpdateLog( "Environment " + environment.getName() + " update in progress ...", environment.getName(),
-                       environment );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't create the update logger", e );
-      EventUtils.post( environment, "ERROR", "Can't create the update logger: " + e.getMessage() );
-      throw new UpdateException( "Can't create the update logger", e );
-    }
-
-    // posting start update event
-    EventUtils.post( environment, "UPDATE", "Starting to update ..." );
-
-    LOGGER.info( "Sending a notification and waiting for the update count down" );
-    EventUtils.post( environment, "UPDATE", "Sending a notification and waiting for the update count donw" );
-    NotifierUtils.waitAndNotify( environment );
-
-    try
-    {
-      // update softwares flagged "before JEE"
-      LOGGER.info( "Updating softwares flagged before JEE" );
-      for ( Iterator softwareIterator = environment.getSoftwares().iterator(); softwareIterator.hasNext(); )
-      {
-        Software software = (Software) softwareIterator.next();
-        try
-        {
-          if ( software.isBeforejee() )
-          {
-            SoftwareUpdater.update( environment, software, updateLog );
-          }
-        }
-        catch ( Exception e )
-        {
-          if ( software.isBlocker() )
-          {
-            LOGGER.error( "Software {} update failed", software.getName() );
-            EventUtils.post( environment, "ERROR",
-                             "Software " + software.getName() + " update failed: " + e.getMessage() );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "error", "Software " + software.getName() + " update failed: " + e.getMessage() ) );
-            updateLog.setStatus( "Environment " + environment.getName() + " update failed" );
-            PublisherUtils.publish( environment );
-            throw new UpdateException( "Software " + software.getName() + " update failed", e );
-          }
-          else
-          {
-            LOGGER.warn( "Software {} update failed", software.getName() );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "warn", "Software " + software.getName() + " update failed: " + e.getMessage() ) );
-            updateLog.addUpdateMessage( new UpdateMessage( "info", "Software " + software.getName()
-              + " is not an update blocker, update continues" ) );
-            EventUtils.post( environment, "WARN",
-                             "Software " + software.getName() + " update failed: " + e.getMessage() );
-            EventUtils.post( environment, "INFO",
-                             "Software " + software.getName() + " is not an update blocker, update continues" );
-          }
-        }
-      }
-
-      // update JEE application servers
-      LOGGER.info( "Updating JEE application servers" );
-      for ( Iterator jeeApplicationServersIterator =
-              environment.getJEEApplicationServers().getJEEApplicationServers().iterator();
-            jeeApplicationServersIterator.hasNext(); )
-      {
-        JEEApplicationServer jeeApplicationServer = (JEEApplicationServer) jeeApplicationServersIterator.next();
-        try
-        {
-          JEEApplicationServerUpdater.update(kalumet, environment, jeeApplicationServer, updateLog);
-        }
-        catch ( Exception e )
-        {
-          if ( jeeApplicationServer.isBlocker() )
-          {
-            LOGGER.error( "JEE application server {} update failed", e );
-            EventUtils.post( environment, "ERROR",
-                             "JEE application server " + jeeApplicationServer.getName() + " update failed: "
-                               + e.getMessage() );
-            updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                           "JEE application server " + jeeApplicationServer.getName()
-                                                             + " update failed: " + e.getMessage() ) );
-            updateLog.setStatus( "Environment " + environment.getName() + " update failed" );
-            PublisherUtils.publish( environment );
-            throw new UpdateException( "JEE application server " + jeeApplicationServer.getName() + " update failed",
-                                       e );
-          }
-          else
-          {
-            LOGGER.warn( "JEE application server {} update failed", e );
-            updateLog.addUpdateMessage( new UpdateMessage( "warn",
-                                                           "JEE application server " + jeeApplicationServer.getName()
-                                                             + " update failed: " + e.getMessage() ) );
-            updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                           "JEE application server " + jeeApplicationServer.getName()
-                                                             + " is not an update blocker, update continues" ) );
-            EventUtils.post( environment, "WARN",
-                             "JEE application server " + jeeApplicationServer.getName() + " update failed: "
-                               + e.getMessage() );
-            EventUtils.post( environment, "INFO", "JEE application server " + jeeApplicationServer.getName()
-              + " is not an update blocker, update continues" );
-          }
-        }
-      }
-
-      // update softwares
-      LOGGER.info( "Updating softwares" );
-      for ( Iterator softwaresIterator = environment.getSoftwares().iterator(); softwaresIterator.hasNext(); )
-      {
-        Software software = (Software) softwaresIterator.next();
-        try
-        {
-          if ( !software.isBeforejee() )
-          {
-            SoftwareUpdater.update( environment, software, updateLog );
-          }
-        }
-        catch ( Exception e )
-        {
-          if ( software.isBlocker() )
-          {
-            LOGGER.error( "Software {} update failed", software.getName() );
-            EventUtils.post( environment, "ERROR",
-                             "Software " + software.getName() + " update failed: " + e.getMessage() );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "error", "Software " + software.getName() + " update failed: " + e.getMessage() ) );
-            updateLog.setStatus( "Environment " + environment.getName() + " update failed" );
-            PublisherUtils.publish( environment );
-            throw new UpdateException( "Software " + software.getName() + " update failed", e );
-          }
-          else
-          {
-            LOGGER.warn( "Software {} update failed", software.getName() );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "warn", "Software " + software.getName() + " update failed: " + e.getMessage() ) );
-            updateLog.addUpdateMessage( new UpdateMessage( "info", "Software " + software.getName()
-              + " is not an update blocker, update continues" ) );
-            EventUtils.post( environment, "WARN",
-                             "Software " + software.getName() + " update failed: " + e.getMessage() );
-            EventUtils.post( environment, "INFO",
-                             "Software " + software.getName() + " is not an update blocker, update continues" );
-          }
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Update failed", e );
-      EventUtils.post( environment, "ERROR", "Update failed: " + e.getMessage() );
-      updateLog.setStatus( "Environment " + environment.getName() + " update failed" );
-      updateLog.addUpdateMessage( new UpdateMessage( "error", "Update failed: " + e.getMessage() ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-      throw new UpdateException( "Update failed", e );
-    }
-
-    // publish update result
-    LOGGER.info( "Publishing update report" );
-    if ( updateLog.isUpdated() )
-    {
-      updateLog.setStatus( "Environment " + environment.getName() + " updated" );
-    }
-    else
-    {
-      updateLog.setStatus( "Environment " + environment.getName() + " already up to date" );
-    }
-    updateLog.addUpdateMessage(
-      new UpdateMessage( "info", "Environment " + environment.getName() + " update completed" ) );
-    EventUtils.post( environment, "UPDATE", "Environment " + environment.getName() + " update completed" );
-    LOGGER.info( "Publishing update report" );
-    PublisherUtils.publish( environment );
-
-    LOGGER.info( "Update completed" );
-  }
-
-}
-
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JDBCConnectionPoolUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JDBCConnectionPoolUpdater.java
deleted file mode 100644
index 9b260ff..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JDBCConnectionPoolUpdater.java
+++ /dev/null
@@ -1,296 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.controller.core.JEEApplicationServerController;
-import org.apache.kalumet.controller.core.JEEApplicationServerControllerFactory;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.JDBCConnectionPool;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * JDBC connection pool updater.
- */
-public class JDBCConnectionPoolUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( JDBCConnectionPoolUpdater.class );
-
-  /**
-   * Update a JDBC connection pool.
-   *
-   * @param environment    the target <code>Environment</code>.
-   * @param server         the target <code>JEEApplicationServer</code>.
-   * @param connectionPool the target <code>JDBCConnectionPool</code>.
-   * @param updateLog      the target <code>UpdateLog</code> to use.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JDBCConnectionPool connectionPool,
-                             UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating JDBC connection pool {}", connectionPool.getName() );
-    updateLog.addUpdateMessage(
-      new UpdateMessage( "info", "Updating JDBC connection pool " + connectionPool.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating JDBC connection pool " + connectionPool.getName() );
-
-    if ( !connectionPool.isActive() )
-    {
-      LOGGER.info( "JDBC connection pool {} is inactive, so not updated", connectionPool.getName() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "JDBC connection pool " + connectionPool.getName()
-        + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "JDBC connection pool " + connectionPool.getName() + " is inactive, so not updated" );
-      return;
-    }
-
-    // replace variables in connection pool data
-    LOGGER.debug( "Replacing variables in connection pool data" );
-    String jdbcDriver = VariableUtils.replace( connectionPool.getDriver(), environment.getVariables() );
-    String jdbcUser = VariableUtils.replace( connectionPool.getUser(), environment.getVariables() );
-    String jdbcPassword = VariableUtils.replace( connectionPool.getPassword(), environment.getVariables() );
-    String jdbcUrl = VariableUtils.replace( connectionPool.getUrl(), environment.getVariables() );
-    String jdbcClasspath = VariableUtils.replace( connectionPool.getClasspath(), environment.getVariables() );
-
-    try
-    {
-      // connect to JEE application server controller
-      JEEApplicationServerController controller =
-        JEEApplicationServerControllerFactory.getController(environment, server);
-      // test if the JDBC connection pool is already present in the JEE server
-      if ( controller.isJDBCConnectionPoolDeployed( connectionPool.getName() ) )
-      {
-        LOGGER.info( "JDBC connection pool {} already deployed, checking for update" );
-        if ( controller.updateJDBCConnectionPool( connectionPool.getName(), jdbcDriver, connectionPool.getIncrement(),
-                                                  connectionPool.getInitial(), connectionPool.getMaximal(), jdbcUser,
-                                                  jdbcPassword, jdbcUrl, jdbcClasspath ) )
-        {
-          updateLog.setStatus( "Update performed" );
-          updateLog.setUpdated( true );
-          updateLog.addUpdateMessage(
-            new UpdateMessage( "info", "JDBC connection pool " + connectionPool.getName() + " updated" ) );
-          EventUtils.post( environment, "UPDATE", "JDBC connection pool " + connectionPool.getName() + " updated" );
-          LOGGER.info( "JDBC connection pool {} updated", connectionPool.getName() );
-        }
-        else
-        {
-          updateLog.addUpdateMessage(
-            new UpdateMessage( "info", "JDBC connection pool " + connectionPool.getName() + " already up to date" ) );
-          EventUtils.post( environment, "UPDATE",
-                           "JDBC connection pool " + connectionPool.getName() + " already up to date" );
-          LOGGER.info( "JDBC connection pool {} already up to date", connectionPool.getName() );
-        }
-      }
-      else
-      {
-        // deploy the JDBC connection pool
-        controller.deployJDBCConnectionPool( connectionPool.getName(), jdbcDriver, connectionPool.getIncrement(),
-                                             connectionPool.getInitial(), connectionPool.getMaximal(), jdbcUser,
-                                             jdbcPassword, jdbcUrl, jdbcClasspath );
-        updateLog.setStatus( "Update performed" );
-        updateLog.setUpdated( true );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "JDBC connection pool " + connectionPool.getName() + " deployed" ) );
-        EventUtils.post( environment, "UPDATE", "JDBC connection pool " + connectionPool.getName() + " deployed" );
-        LOGGER.info( "JDBC connection pool {} deployed", connectionPool.getName() );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JDBC connection pool {} update failed", connectionPool.getName(), e );
-      throw new UpdateException( "JDBC connection pool " + connectionPool.getName() + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a JDBC connection pool via WS.
-   *
-   * @param environmentName    the target environment name.
-   * @param serverName         the target JEE application server name.
-   * @param connectionPoolName the target JDBC connection pool name.
-   * @throws KalumetException in case of update failure.
-   */
-  public static void update( String environmentName, String serverName, String connectionPoolName )
-    throws KalumetException
-  {
-    LOGGER.info( "JDBC connection pool {} update requested by WS", connectionPoolName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects.
-    LOGGER.debug( "Looking for component objects" );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JDBCConnectionPool connectionPool = applicationServer.getJDBCConnectionPool( connectionPoolName );
-    if ( connectionPool == null )
-    {
-      LOGGER.error( "JDBC connection pool {} is not found in JEE application server {}", connectionPoolName,
-                    applicationServer.getName() );
-      throw new KalumetException(
-        "JDBC connection pool " + connectionPoolName + " is not found in JEE application server "
-          + applicationServer.getName() );
-    }
-
-    // post event and create update log
-    EventUtils.post( environment, "UPDATE",
-                     "JDBC connection pool " + connectionPool.getName() + " update request by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "JDBC connection pool " + connectionPool.getName() + " update in progress", environment.getName(),
-                     environment );
-
-    // send a notification and waiting for the count down.
-    LOGGER.info( "Send a notification and waiting for the count down" );
-    EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-    NotifierUtils.waitAndNotify( environment );
-
-    try
-    {
-      // call the JDBC connection pool updater.
-      LOGGER.debug( "Call connection pool updater" );
-      JDBCConnectionPoolUpdater.update( environment, applicationServer, connectionPool, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JDBC connection pool {} update failed", connectionPool.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "JDBC connection pool " + connectionPool.getName() + " update failed: " + e.getMessage() );
-      updateLog.setStatus( "JDBC connection pool " + connectionPool.getName() + " update failed" );
-      updateLog.addUpdateMessage( new UpdateMessage( "error", "JDBC connection pool " + connectionPool.getName()
-        + " update failed: " + e.getMessage() ) );
-      PublisherUtils.publish( environment );
-      throw new UpdateException( "JDBC connection pool " + connectionPool.getName() + " update failed", e );
-    }
-
-    // update completed.
-    LOGGER.info( "JDBC connection pool {} updated", connectionPool.getName() );
-    EventUtils.post( environment, "UPDATE", "JDBC connection pool " + connectionPool.getName() + " updated" );
-    if ( updateLog.isUpdated() )
-    {
-      updateLog.setStatus( "JDBC connection pool " + connectionPool.getName() + " updated" );
-    }
-    else
-    {
-      updateLog.setStatus( "JDBC connection pool " + connectionPool.getName() + " is already up to date" );
-    }
-    updateLog.addUpdateMessage(
-      new UpdateMessage( "info", "JDBC connection pool " + connectionPool.getName() + " updated" ) );
-    LOGGER.info( "Publishing update report" );
-    PublisherUtils.publish( environment );
-  }
-
-  /**
-   * Wrapper method to check if a JDBC connection pool is up to date via WS.
-   *
-   * @param environmentName    the target environment name.
-   * @param serverName         the target JEE application server name.
-   * @param connectionPoolName the target JDBC connection pool name.
-   * @return true if the JDBC connection pool is up to date, false else.
-   * @throws KalumetException in case of check failure.
-   */
-  public static boolean check( String environmentName, String serverName, String connectionPoolName )
-    throws KalumetException
-  {
-    LOGGER.info( "JDBC connection pool {} status check requested by WS", connectionPoolName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    LOGGER.debug( "Looking for component objects." );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JDBCConnectionPool connectionPool = applicationServer.getJDBCConnectionPool( connectionPoolName );
-    if ( connectionPool == null )
-    {
-      LOGGER.error( "JDBC connection pool {} is not found in JEE server {}", connectionPoolName,
-                    applicationServer.getName() );
-      throw new KalumetException(
-        "JDBC connection pool " + connectionPoolName + " is not found in JEE application server "
-          + applicationServer.getName() );
-    }
-
-    // post an event
-    EventUtils.post( environment, "INFO",
-                     "JDBC connection pool " + connectionPool.getName() + " status check requested by WS" );
-
-    try
-    {
-      // get the JEE server JMX controller.
-      LOGGER.debug( "Getting the JEE application server controller" );
-      JEEApplicationServerController controller =
-        JEEApplicationServerControllerFactory.getController(environment, applicationServer);
-      // replace values with environment variables
-      LOGGER.debug( "Replacing variables in connection pool data" );
-      String jdbcDriver = VariableUtils.replace( connectionPool.getDriver(), environment.getVariables() );
-      String jdbcUser = VariableUtils.replace( connectionPool.getUser(), environment.getVariables() );
-      String jdbcPassword = VariableUtils.replace( connectionPool.getPassword(), environment.getVariables() );
-      String jdbcUrl = VariableUtils.replace( connectionPool.getUrl(), environment.getVariables() );
-      String jdbcClasspath = VariableUtils.replace( connectionPool.getClasspath(), environment.getVariables() );
-      // check JDBC connection pool using JMX controller
-      LOGGER.debug( "Checking JDBC connection pool using JMX controller." );
-      return controller.isJDBCConnectionPoolUpToDate( connectionPool.getName(), jdbcDriver,
-                                                      connectionPool.getIncrement(), connectionPool.getInitial(),
-                                                      connectionPool.getMaximal(), jdbcUser, jdbcPassword, jdbcUrl,
-                                                      jdbcClasspath );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JDBC connection pool {} check failed", connectionPool.getName(), e );
-      throw new KalumetException( "JDBC connection pool " + connectionPool.getName() + " check failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JDBCDataSourceUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JDBCDataSourceUpdater.java
deleted file mode 100644
index 9eb2816..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JDBCDataSourceUpdater.java
+++ /dev/null
@@ -1,295 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.controller.core.JEEApplicationServerController;
-import org.apache.kalumet.controller.core.JEEApplicationServerControllerFactory;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * JDBC data source updater.
- */
-public class JDBCDataSourceUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( JDBCDataSourceUpdater.class );
-
-  /**
-   * Update a JDBC dataSource.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param server      the target <code>JEEApplicationServer</code>.
-   * @param dataSource  the target <code>JDBCDataSource</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JDBCDataSource dataSource,
-                             UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating JDBC data source {}", dataSource.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating JDBC data source " + dataSource.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating JDBC data source " + dataSource.getName() );
-
-    if ( !dataSource.isActive() )
-    {
-      // the data source is not active
-      LOGGER.info( "JDBC data source {} is inactive, so not updated", dataSource.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JDBC data source " + dataSource.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "JDBC Data Source " + dataSource.getName() + " is inactive, so not updated" );
-      return;
-    }
-
-    LOGGER.debug( "Getting the JDBC connection pool {}", dataSource.getPool() );
-    JDBCConnectionPool connectionPool = server.getJDBCConnectionPool( dataSource.getPool() );
-    if ( connectionPool == null )
-    {
-      LOGGER.error( "JDBC connection pool {} is not found in the configuration", dataSource.getPool() );
-      throw new UpdateException(
-        "JDBC connection pool " + dataSource.getPool() + " is not found in the configuration" );
-    }
-    JEEApplicationServerController controller = null;
-    try
-    {
-      LOGGER.debug( "Connecting to JEE application server controller" );
-      controller = JEEApplicationServerControllerFactory.getController(environment, server);
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "Can't connect to JEE application server {} controller", server.getName(), e );
-      throw new UpdateException( "Can't connect to JEE application server " + server.getName() + " controller", e );
-    }
-    // replace variables in the JDBC URL and helper class name
-    LOGGER.debug( "Replacing variables in JDBC URL and helper class" );
-    String jdbcUrl = VariableUtils.replace( connectionPool.getUrl(), environment.getVariables() );
-    String helperClass = VariableUtils.replace( connectionPool.getHelperclass(), environment.getVariables() );
-    try
-    {
-      if ( controller.isJDBCDataSourceDeployed( dataSource.getName() ) )
-      {
-        // JDBC data source already deployed in the JEE application server
-        LOGGER.info( "JDBC data source " + dataSource.getName() + " already deployed, checking for update" );
-        if ( controller.updateJDBCDataSource( dataSource.getName(), connectionPool.getName(), jdbcUrl, helperClass ) )
-        {
-          // JDBC data source has been updated
-          LOGGER.info( "JDBC data source {} updated", dataSource.getName() );
-          updateLog.setStatus( "Update performed" );
-          updateLog.setUpdated( true );
-          updateLog.addUpdateMessage(
-            new UpdateMessage( "info", "JDBC data source " + dataSource.getName() + " updated" ) );
-          EventUtils.post( environment, "UPDATE", "JDBC data source " + dataSource.getName() + " updated" );
-        }
-      }
-      else
-      {
-        // JDBC data source is not deployed, deploy it
-        LOGGER.debug( "JDBC data source {} is not deployed, deploying it", dataSource.getName() );
-        controller.deployJDBCDataSource( dataSource.getName(), connectionPool.getName(), jdbcUrl, helperClass );
-        updateLog.setStatus( "Update performed" );
-        updateLog.setUpdated( true );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "JDBC data source " + dataSource.getName() + " deployed" ) );
-        EventUtils.post( environment, "UPDATE", "JDBC data source " + dataSource.getName() + " deployed" );
-        LOGGER.info( "JDBC data source {} deployed", dataSource.getName() );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JDBC data source {} update failed", dataSource.getName(), e );
-      throw new UpdateException( "JDBC data source " + dataSource.getName() + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a JDBC data source via WS.
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param dataSourceName  the target JDBC data source name.
-   * @throws KalumetException in case of update failure.
-   */
-  public static void update( String environmentName, String serverName, String dataSourceName )
-    throws KalumetException
-  {
-    LOGGER.info( "JDBC data source {} update requested by WS", dataSourceName );
-
-    // load configuration
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JDBCDataSource dataSource = applicationServer.getJDBCDataSource( dataSourceName );
-    if ( dataSource == null )
-    {
-      LOGGER.error( "JDBC data source {} is not found in JEE application server {}", dataSourceName,
-                    applicationServer.getName() );
-      throw new KalumetException( "JDBC data source " + dataSourceName + " is not found in JEE application server "
-                                    + applicationServer.getName() );
-    }
-
-    // post event and create update log
-    EventUtils.post( environment, "UPDATE", "JDBC data source " + dataSource.getName() + " update requested by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "JDBC data source " + dataSource.getName() + " update in progress ...", environment.getName(),
-                     environment );
-
-    // send a notification and waiting for the count down
-    EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-    NotifierUtils.waitAndNotify( environment );
-
-    try
-    {
-      // call the updater
-      LOGGER.debug( "Call JDBC data source updater" );
-      JDBCDataSourceUpdater.update( environment, applicationServer, dataSource, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JDBC data source {} update failed", dataSource.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "JDBC data source " + dataSource.getName() + " update failed: " + e.getMessage() );
-      updateLog.setStatus( "JDBC data source " + dataSource.getName() + " update failed" );
-      updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                     "JDBC data source " + dataSource.getName() + " update failed: "
-                                                       + e.getMessage() ) );
-      PublisherUtils.publish( environment );
-      throw new KalumetException( "JDBC data source " + dataSource.getName() + " update failed", e );
-    }
-
-    // update completed
-    LOGGER.info( "JDBC data source {} updated", dataSource.getName() );
-    EventUtils.post( environment, "UPDATE", "JDBC data source " + dataSource.getName() + " updated" );
-    if ( updateLog.isUpdated() )
-    {
-      updateLog.setStatus( "JDBC data source " + dataSource.getName() + " updated" );
-    }
-    else
-    {
-      updateLog.setStatus( "JDBC data source " + dataSource.getName() + " already up to date" );
-    }
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "JMS data source " + dataSource.getName() + " updated" ) );
-    LOGGER.info( "Publishing update report" );
-    PublisherUtils.publish( environment );
-  }
-
-  /**
-   * Wrapper method to check JDBC data source via WS.
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param dataSourceName  the target JDBC data source name.
-   * @return true if the JDBC data source is up to date, false else.
-   * @throws KalumetException in case of check failure.
-   */
-  public static boolean check( String environmentName, String serverName, String dataSourceName )
-    throws KalumetException
-  {
-    LOGGER.info( "JDBC data source {} status check requested by WS", dataSourceName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JDBCDataSource dataSource = applicationServer.getJDBCDataSource( dataSourceName );
-    if ( dataSource == null )
-    {
-      LOGGER.error( "JDBC data source {} is not found in JEE application server {}", dataSourceName,
-                    applicationServer.getName() );
-      throw new KalumetException( "JDBC data source " + dataSourceName + " is not found in JEE application server "
-                                    + applicationServer.getName() );
-    }
-
-    // post an event
-    EventUtils.post( environment, "INFO",
-                     "JDBC data source " + dataSource.getName() + " status check requested by WS" );
-
-    // Get JDBC data source connection pool.
-    LOGGER.debug( "Getting JDBC data source connection pool" );
-    JDBCConnectionPool connectionPool = applicationServer.getJDBCConnectionPool( dataSource.getPool() );
-    if ( connectionPool == null )
-    {
-      LOGGER.error( "JDBC connection pool {} is not found in JEE application server {}", dataSource.getPool(),
-                    applicationServer.getName() );
-      throw new KalumetException(
-        "JDBC connection pool " + dataSource.getPool() + " is not found in JEE application server "
-          + applicationServer.getName() );
-    }
-
-    try
-    {
-      // connecting to JEE application server controller
-      LOGGER.debug( "Connecting to JEE application server controller" );
-      JEEApplicationServerController controller =
-        JEEApplicationServerControllerFactory.getController(environment, applicationServer);
-      // replace variables in the JDBC URL and helper class name
-      LOGGER.debug( "Replacing variables in JDBC URL and helper class" );
-      String jdbcUrl = VariableUtils.replace( connectionPool.getUrl(), environment.getVariables() );
-      String helperClass = VariableUtils.replace( connectionPool.getHelperclass(), environment.getVariables() );
-      // check the data source
-      return controller.isJDBCDataSourceUpToDate( dataSource.getName(), dataSource.getPool(), jdbcUrl, helperClass );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JDBC data source {} check failed", dataSource.getName(), e );
-      throw new KalumetException( "JDBC data source " + dataSource.getName() + " check failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JEEApplicationServerUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JEEApplicationServerUpdater.java
deleted file mode 100644
index aa14bde..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JEEApplicationServerUpdater.java
+++ /dev/null
@@ -1,992 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.controller.core.JEEApplicationServerController;
-import org.apache.kalumet.controller.core.JEEApplicationServerControllerFactory;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.CommandUtils;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.apache.kalumet.ws.client.ClientException;
-import org.apache.kalumet.ws.client.JEEApplicationServerClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Update a JEE application server.
- */
-public class JEEApplicationServerUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( JEEApplicationServerUpdater.class );
-
-  /**
-   * Wrapper class to update a JEE application server (via WS).
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param delegation      flag indicates if the update is a atomic call or part of an update launched by another agent.
-   * @throws KalumetException if the JEE application server update fails.
-   */
-  public static void update( String environmentName, String serverName, boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "JEE application server {} update requested by WS", serverName );
-    // load configuration
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environmentName );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environmentName );
-    }
-    // update configuration cache
-    LOGGER.debug( "Updating configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    EventUtils.post( environment, "UPDATE", "JEE application server " + serverName + " update requested by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "JEE application server " + serverName + " update in progress ...", environment.getName(),
-                     environment );
-
-    if ( !delegation )
-    {
-      // it's not a delegation from another agent, send a notification and waiting for the count down
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-
-    try
-    {
-      // launch the update
-      LOGGER.debug( "Call JEE application server updater" );
-      JEEApplicationServerUpdater.update(kalumet, environment, applicationServer, updateLog);
-    }
-    catch ( Exception e )
-    {
-      // an error occurs
-      LOGGER.error( "JEE application server {} update failed", serverName, e );
-      EventUtils.post( environment, "ERROR",
-                       "JEE application server " + serverName + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        // it's not a delegation from another agent, publish update result
-        updateLog.setStatus( "JEE application server " + serverName + " update failed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "error", "JEE application server " + serverName + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "JEE application server " + serverName + " update failed", e );
-    }
-
-    // update is completed
-    LOGGER.info( "JEE application server {} updated", applicationServer.getName() );
-    EventUtils.post( environment, "UPDATE", "JEE application server " + serverName + " updated" );
-
-    if ( !delegation )
-    {
-      // it's not a delegation from another agent, publish update result
-      if ( updateLog.isUpdated() )
-      {
-        updateLog.setStatus( "JEE application server " + serverName + " updated" );
-      }
-      else
-      {
-        updateLog.setStatus( "JEE application server " + serverName + " already up to date" );
-      }
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Update completed" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-  /**
-   * Update a JEE application server.
-   *
-   * @param kalumet     the main configuration.
-   * @param environment the target <code>Environment</code>.
-   * @param server      the target <code>ApplicationServer</code> to update.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   */
-  public static void update( Kalumet kalumet, Environment environment, JEEApplicationServer server,
-                             UpdateLog updateLog )
-    throws UpdateException
-  {
-    String applicationServerJmxUrl = VariableUtils.replace( server.getJmxurl(), environment.getVariables() );
-    LOGGER.info( "Updating JEE application server {}", server.getName() );
-
-    if ( !server.isActive() )
-    {
-      LOGGER.info( "JEE application server {} is inactive, so not updated", server.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JEE application server " + server.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "JEE application server " + server.getName() + " is inactive, so not updated" );
-      return;
-    }
-
-    if ( server.getAgent() != null && server.getAgent().trim().length() > 0 &&
-      !server.getAgent().equals( Configuration.AGENT_ID ) )
-    {
-      // delegates the update to another agent
-      LOGGER.info( "Delegating JEE application server {} update to agent {}", server.getName(), server.getAgent() );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating JEE application server " + server.getName() + " update to agent "
-                         + server.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Delegating JEE application server " + server.getName()
-        + " update to agent " + server.getAgent() ) );
-      Agent delegationAgent = Configuration.CONFIG_CACHE.getAgent( server.getAgent() );
-      if ( delegationAgent == null )
-      {
-        // the target agent is not found in the configuration
-        LOGGER.error( "Agent {} not found in the configuration", server.getAgent() );
-        throw new UpdateException( "Agent " + server.getAgent() + " not found in the configuration" );
-      }
-      try
-      {
-        // request the update via WebService call
-        LOGGER.debug( "Call JEE application server WS" );
-        JEEApplicationServerClient client =
-          new JEEApplicationServerClient( delegationAgent.getHostname(), delegationAgent.getPort() );
-        client.update( environment.getName(), server.getName(), true );
-      }
-      catch ( ClientException e )
-      {
-        // an error occurs during the update on the remote agent
-        LOGGER.error( "JEE application server {} update failed", server.getName(), e );
-        throw new UpdateException( "JEE application server " + server.getName() + " update failed", e );
-      }
-      return;
-    }
-
-    EventUtils.post( environment, "UPDATE", "Updating JEE application server " + server.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "JEE application server " + server.getName() + " located "
-      + applicationServerJmxUrl ) );
-
-    // update JDBC connection pools
-    LOGGER.info( "Updating JDBC connection pools" );
-    for ( Iterator connectionPoolIterator = server.getJDBCConnectionPools().iterator();
-          connectionPoolIterator.hasNext(); )
-    {
-      JDBCConnectionPool connectionPool = (JDBCConnectionPool) connectionPoolIterator.next();
-      try
-      {
-        JDBCConnectionPoolUpdater.update( environment, server, connectionPool, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the JDBC connection pool update has failed
-        if ( connectionPool.isBlocker() )
-        {
-          // connection pool is update blocker
-          LOGGER.error( "JDBC connection pool {} update failed", connectionPool.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error", "JDBC connection pool " + connectionPool.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR", "JDBC connection pool " + connectionPool.getName() + " update failed: "
-            + updateException.getMessage() );
-          throw new UpdateException( "JDBC connection ool " + connectionPool.getName() + " update failed",
-                                     updateException );
-        }
-        else
-        {
-          // connection pool is not update blocker
-          LOGGER.warn( "JDBC connection pool {} update failed", connectionPool.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn", "JDBC connection pool " + connectionPool.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "JDBC connection pool " + connectionPool.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN", "JDBC connection pool " + connectionPool.getName() + " update failed: "
-            + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE", "JDBC connection pool " + connectionPool.getName()
-            + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update JDBC data sources
-    LOGGER.info( "Updating JDBC data sources" );
-    for ( Iterator dataSourceIterator = server.getJDBCDataSources().iterator(); dataSourceIterator.hasNext(); )
-    {
-      JDBCDataSource dataSource = (JDBCDataSource) dataSourceIterator.next();
-      try
-      {
-        JDBCDataSourceUpdater.update( environment, server, dataSource, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the JDBC data source update has failed
-        if ( dataSource.isBlocker() )
-        {
-          // data source is update blocker
-          LOGGER.error( "JDBC data source {} udpate failed", dataSource.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                         "JDBC data source " + dataSource.getName() + " update failed: "
-                                                           + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR", "JDBC data source " + dataSource.getName() + " update failed: "
-            + updateException.getMessage() );
-          throw new UpdateException( "JDBC data source " + dataSource.getName() + " update failed", updateException );
-        }
-        else
-        {
-          // data source is not update blocker
-          LOGGER.warn( "JDBC data source {} update failed", dataSource.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn",
-                                                         "JDBC data source " + dataSource.getName() + " update failed: "
-                                                           + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "JDBC data source " + dataSource.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN", "JDBC data source " + dataSource.getName() + " update failed: "
-            + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "JDBC data source " + dataSource.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update JMS connection factories
-    LOGGER.info( "Updating JMS connection factories" );
-    for ( Iterator jmsConnectionFactoryIterator = server.getJMSConnectionFactories().iterator();
-          jmsConnectionFactoryIterator.hasNext(); )
-    {
-      JMSConnectionFactory jmsConnectionFactory = (JMSConnectionFactory) jmsConnectionFactoryIterator.next();
-      try
-      {
-        JMSConnectionFactoryUpdater.update( environment, server, jmsConnectionFactory, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the JMS connection factory update has failed
-        if ( jmsConnectionFactory.isBlocker() )
-        {
-          // JMS connection factory is update blocker
-          LOGGER.error( "JMS connection factory {} update failed", jmsConnectionFactory.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                         "JMS connection factory " + jmsConnectionFactory.getName()
-                                                           + " update failed: " + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR",
-                           "JMS connection factory " + jmsConnectionFactory.getName() + " update failed: "
-                             + updateException.getMessage() );
-          throw new UpdateException( "JMS connection factory " + jmsConnectionFactory.getName() + " update failed: "
-                                       + updateException.getMessage(), updateException );
-        }
-        else
-        {
-          // JMS connection factory is not update blocker
-          LOGGER.warn( "JMS connection factory {} update failed", jmsConnectionFactory.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn",
-                                                         "JMS connection factory " + jmsConnectionFactory.getName()
-                                                           + " update failed: " + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                         "JMS connection factory " + jmsConnectionFactory.getName()
-                                                           + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN",
-                           "JMS connection factory " + jmsConnectionFactory.getName() + " update failed: "
-                             + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE", "JMS connection factory " + jmsConnectionFactory.getName()
-            + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update JMS servers
-    LOGGER.info( "Updating JMS servers" );
-    for ( Iterator jmsServerIterator = server.getJMSServers().iterator(); jmsServerIterator.hasNext(); )
-    {
-      JMSServer jmsServer = (JMSServer) jmsServerIterator.next();
-      try
-      {
-        JMSServerUpdater.update( environment, server, jmsServer, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the JMS server update has failed
-        if ( jmsServer.isBlocker() )
-        {
-          // JMS server is update blocker
-          LOGGER.error( "JMS server {} update failed", jmsServer.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                         "JMS server " + jmsServer.getName() + " update failed: "
-                                                           + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR",
-                           "JMS server " + jmsServer.getName() + " update failed: " + updateException.getMessage() );
-          throw new UpdateException( "JMS server " + jmsServer.getName() + " update failed", updateException );
-        }
-        else
-        {
-          // JMS server is not update blocker
-          LOGGER.warn( "JMS server {} update failed", jmsServer.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn",
-                                                         "JMS server " + jmsServer.getName() + " update failed: "
-                                                           + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "JMS server " + jmsServer.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN",
-                           "JMS server " + jmsServer.getName() + " update failed: " + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "JMS server " + jmsServer.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update JNDI name space bindings
-    LOGGER.info( "Updating JNDIbindings" );
-    for ( Iterator jndiBindingsIterator = server.getJNDIBindings().iterator(); jndiBindingsIterator.hasNext(); )
-    {
-      JNDIBinding jndiBinding = (JNDIBinding) jndiBindingsIterator.next();
-      try
-      {
-        JNDIBindingUpdater.update( environment, server, jndiBinding, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the JNDI binding update has failed
-        if ( jndiBinding.isBlocker() )
-        {
-          // JNDIbinding is update blocker
-          LOGGER.error( "JNDI binding {} update failed", jndiBinding.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                         "JNDI binding " + jndiBinding.getName() + " update failed: "
-                                                           + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR", "JNDI binding " + jndiBinding.getName() + " update failed: "
-            + updateException.getMessage() );
-          throw new UpdateException( "JNDI binding " + jndiBinding.getName() + " update failed", updateException );
-        }
-        else
-        {
-          // JNDI binding is not update blocker
-          LOGGER.warn( "JNDI binding {} update failed", jndiBinding.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn",
-                                                         "JNDI binding " + jndiBinding.getName() + " update failed: "
-                                                           + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "JNDI binding " + jndiBinding.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN", "JNDI binding " + jndiBinding.getName() + " update failed: "
-            + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "JNDI binding " + jndiBinding.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update shared libraries
-    LOGGER.info( "Updating shared libraries" );
-    for ( Iterator sharedLibraryIterator = server.getSharedLibraries().iterator(); sharedLibraryIterator.hasNext(); )
-    {
-      SharedLibrary sharedLibrary = (SharedLibrary) sharedLibraryIterator.next();
-      try
-      {
-        SharedLibraryUpdater.update( environment, server, sharedLibrary, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the shared library update has failed
-        if ( sharedLibrary.isBlocker() )
-        {
-          // shared library is update blocker
-          LOGGER.error( "Shared library {} update failed", sharedLibrary.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error", "Shared library " + sharedLibrary.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR", "Shared library " + sharedLibrary.getName() + " update failed: "
-            + updateException.getMessage() );
-          throw new UpdateException( "Shared library " + sharedLibrary.getName() + " update failed", updateException );
-        }
-        else
-        {
-          // shared library is not update blocker
-          LOGGER.warn( "Shared library {} update failed", sharedLibrary.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn", "Shared library " + sharedLibrary.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "Shared library " + sharedLibrary.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN", "Shared library " + sharedLibrary.getName() + " update failed: "
-            + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "Shared library " + sharedLibrary.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update JEE applications
-    LOGGER.info( "Updating JEE applications" );
-    for ( Iterator applicationIterator = server.getJEEApplications().iterator(); applicationIterator.hasNext(); )
-    {
-      JEEApplication application = (JEEApplication) applicationIterator.next();
-      try
-      {
-        JEEApplicationUpdater.update(environment, server, application, updateLog);
-      }
-      catch ( UpdateException updateException )
-      {
-        // the JEE application update has failed
-        if ( application.isBlocker() )
-        {
-          // JEE application is update blocker
-          LOGGER.error( "JEE application {} update failed", application.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error", "JEE application " + application.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR", "JEE application " + application.getName() + " update failed: "
-            + updateException.getMessage() );
-          throw new UpdateException( "JEE application " + application.getName() + " update failed", updateException );
-        }
-        else
-        {
-          // JEE application is not update blocker
-          LOGGER.warn( "JEE application {} update failed", application.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn", "JEE application " + application.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "JEE application " + application.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN", "JEE application " + application.getName() + " update failed: "
-            + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "JEE application " + application.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // stop JEE server
-    LOGGER.info( "Shutting down JEE application server" );
-    try
-    {
-      JEEApplicationServerUpdater.stop(environment, server, updateLog);
-    }
-    catch ( UpdateException updateException )
-    {
-      // the JEE application server stop has failed
-      if ( server.isBlocker() )
-      {
-        // JEE application server is update blocker
-        LOGGER.error( "JEE application server {} shutdown failed", server.getName(), updateException );
-        updateLog.addUpdateMessage( new UpdateMessage( "error", "JEE application server " + server.getName()
-          + " shutdown failed: " + updateException.getMessage() ) );
-        EventUtils.post( environment, "ERROR", "JEE application server " + server.getName() + " shutdown failed: "
-          + updateException.getMessage() );
-        throw new UpdateException(
-          "JEE application server " + server.getName() + " shutdown failed: " + updateException.getMessage(),
-          updateException );
-      }
-      else
-      {
-        // JEE application server is not update blocker
-        LOGGER.warn( "JEE application server {} shutdown failed", server.getName(), updateException );
-        updateLog.addUpdateMessage( new UpdateMessage( "warn", "JEE application server " + server.getName()
-          + " shutdown failed: " + updateException.getMessage() ) );
-        updateLog.addUpdateMessage( new UpdateMessage( "info", "JEE application server " + server.getName()
-          + " is not update blocker, update continues" ) );
-        EventUtils.post( environment, "WARN", "JEE application server " + server.getName() + " shutdown failed: "
-          + updateException.getMessage() );
-        EventUtils.post( environment, "UPDATE",
-                         "JEE application server " + server.getName() + " is not update blocker, update continues" );
-      }
-    }
-
-    // clean the JEE application server cache
-    LOGGER.info( "Clean JEE application server cache directories" );
-    try
-    {
-      JEEApplicationServerUpdater.cleanCaches(environment, server, updateLog);
-    }
-    catch ( UpdateException updateException )
-    {
-      // the JEE application server cache directories cleaning has failed
-      if ( server.isBlocker() )
-      {
-        // JEE application server is update blocker
-        LOGGER.error( "JEE application server {} cache directories cleanup failed", server.getName(),
-                      updateException );
-        updateLog.addUpdateMessage( new UpdateMessage( "error", "JEE application server " + server.getName()
-          + " cache directories cleanup failed: " + updateException.getMessage() ) );
-        EventUtils.post( environment, "ERROR",
-                         "JEE application server " + server.getName() + " cache directories cleanup failed: "
-                           + updateException.getMessage() );
-        throw new UpdateException( "JEE application server " + server.getName() + " cache directories cleanup failed",
-                                   updateException );
-      }
-      else
-      {
-        // JEE application server is not update blocker
-        LOGGER.warn( "JEE application server {} cache directories cleanup failed", server.getName(), updateException );
-        updateLog.addUpdateMessage( new UpdateMessage( "warn", "JEE application server " + server.getName()
-          + " cache directories cleanup failed: " + updateException.getMessage() ) );
-        updateLog.addUpdateMessage( new UpdateMessage( "info", "JEE application server " + server.getName()
-          + " is not update blocker, update continues" ) );
-        EventUtils.post( environment, "WARN",
-                         "JEE application server " + server.getName() + " cache directories cleanup failed: "
-                           + updateException.getMessage() );
-        EventUtils.post( environment, "UPDATE",
-                         "JEE application server " + server.getName() + " is not update blocker, update continues" );
-      }
-    }
-
-    // start JEE application server
-    LOGGER.info( "Starting JEE application server" );
-    try
-    {
-      JEEApplicationServerUpdater.start(kalumet, environment, server, updateLog);
-    }
-    catch ( UpdateException updateException )
-    {
-      // the JEE application server start has failed
-      if ( server.isBlocker() )
-      {
-        // JEE application server is update blocker
-        LOGGER.error( "JEE application server {} start failed", server.getName(), updateException );
-        updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                       "JEE application server " + server.getName() + " start failed: "
-                                                         + updateException.getMessage() ) );
-        EventUtils.post( environment, "ERROR", "JEE application server " + server.getName() + " start failed: "
-          + updateException.getMessage() );
-        throw new UpdateException( "JEE application server " + server.getName() + " start failed", updateException );
-      }
-      else
-      {
-        // JEE application server is not update blocker
-        LOGGER.warn( "JEE application server " + server.getName() + " start failed", updateException );
-        updateLog.addUpdateMessage( new UpdateMessage( "warn",
-                                                       "JEE application server " + server.getName() + " start failed: "
-                                                         + updateException.getMessage() ) );
-        updateLog.addUpdateMessage( new UpdateMessage( "info", "JEE application server " + server.getName()
-          + " is not update blocker, update continues" ) );
-        EventUtils.post( environment, "WARN", "JEE application server " + server.getName() + " start failed: "
-          + updateException.getMessage() );
-        EventUtils.post( environment, "UPDATE",
-                         "JEE application server " + server.getName() + " is not update blocker, update continues" );
-      }
-    }
-
-    // update completed
-    EventUtils.post( environment, "UPDATE", "JEE application server updated" );
-  }
-
-  /**
-   * Shutdown a JEE server.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param server      the <code>JEEApplicationServer</code> to stop.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   */
-  protected static void stop( Environment environment, JEEApplicationServer server, UpdateLog updateLog )
-    throws UpdateException
-  {
-    // TODO delegate the JEE server stop to another agent is required
-    try
-    {
-      if ( !server.isUpdateRequireRestart() || !updateLog.isUpdated() )
-      {
-        LOGGER.info( "JEE application server {} shutdown is not required", server.getName() );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "JEE application server " + server.getName() + " shutdown is not required" ) );
-        EventUtils.post( environment, "UPDATE",
-                         "JEE application server " + server.getName() + " shutdown is not required" );
-        return;
-      }
-      // the server restart is required
-      LOGGER.info( "JEE application server {} shutdown is required", server.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JEE application server " + server.getName() + " shutdown is required" ) );
-      EventUtils.post( environment, "UPDATE", "JEE application server " + server.getName() + " shutdown is required" );
-      if ( server.isUsejmxstop() )
-      {
-        LOGGER.debug( "JEE application server shutdown is performed using JMX controller" );
-        LOGGER.debug( "Getting JEE application server JMX controller" );
-        JEEApplicationServerController controller =
-          JEEApplicationServerControllerFactory.getController(environment, server);
-        controller.shutdown();
-        LOGGER.info( "JEE application server {} shutdown completed", server.getName() );
-        EventUtils.post( environment, "UPDATE", "JEE server " + server.getName() + " shutdown completed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "JEE server " + server.getName() + " shutdown completed" ) );
-        return;
-      }
-      LOGGER.debug( "JEE application server shutdown is performed using system command" );
-      String output =
-        CommandUtils.execute( VariableUtils.replace( server.getShutdowncommand(), environment.getVariables() ) );
-      LOGGER.info( "JEE application server " + server.getName() + " shutdown completed: " + output );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JEE application server " + server.getName() + " shutdown completed: " + output ) );
-      EventUtils.post( environment, "UPDATE", "JEE server " + server.getName() + " shutdown completed: " + output );
-    }
-    catch ( Exception exception )
-    {
-      LOGGER.error( "JEE application server " + server.getName() + " shutdown failed", exception );
-      updateLog.addUpdateMessage( new UpdateMessage( "error", "JEE server " + server.getName() + " shutdown failed: "
-        + exception.getMessage() ) );
-      EventUtils.post( environment, "ERROR",
-                       "JEE application server " + server.getName() + " shutdown failed: " + exception.getMessage() );
-      throw new UpdateException( "JEE application server " + server.getName() + " shutdown failed", exception );
-    }
-  }
-
-  /**
-   * Start a JEE application server.
-   *
-   * @param kalumet     the configuration.
-   * @param environment the target <code>Environment</code>.
-   * @param server      the <code>JEEApplicationServer</code> to start.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   */
-  protected static void start( Kalumet kalumet, Environment environment, JEEApplicationServer server,
-                               UpdateLog updateLog )
-    throws UpdateException
-  {
-    // TODO delegate the JEE server start to another agent is required
-    try
-    {
-      if ( !server.isUpdateRequireRestart() || !updateLog.isUpdated() )
-      {
-        LOGGER.info( "JEE application server {} start is not required", server.getName() );
-        EventUtils.post( environment, "UPDATE",
-                         "JEE application server " + server.getName() + " start is not required" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "JEE application server " + server.getName() + " start is required" ) );
-        return;
-      }
-
-      LOGGER.info( "JEE application server {} start is required", server.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JEE application server " + server.getName() + " start is required" ) );
-      EventUtils.post( environment, "UPDATE", "JEE application server " + server.getName() + " start is required" );
-
-      // get the agent configuration
-      Agent agent = kalumet.getAgent( Configuration.AGENT_ID );
-
-      // check the agent max environment active
-      if ( agent.getMaxjeeapplicationserversstarted() > 0 )
-      {
-        // get the environments managed by the agent
-        List agentEnvironments = kalumet.getEnvironmentsByAgent( Configuration.AGENT_ID );
-        int applicationServersStarted = 0;
-        for ( Iterator agentEnvironmentsIterator = agentEnvironments.iterator(); agentEnvironmentsIterator.hasNext(); )
-        {
-          Environment agentEnvironment = (Environment) agentEnvironmentsIterator.next();
-          // check if the application server started into the environment
-          for ( Iterator agentEnvironmentApplicationServersIterator =
-                  agentEnvironment.getJEEApplicationServers().getJEEApplicationServers().iterator();
-                agentEnvironmentApplicationServersIterator.hasNext(); )
-          {
-            JEEApplicationServer agentEnvironmentApplicationServer =
-              (JEEApplicationServer) agentEnvironmentApplicationServersIterator.next();
-            // get the controller
-            JEEApplicationServerController controller =
-              JEEApplicationServerControllerFactory.getController(environment, server);
-            if ( !controller.isStopped() )
-            {
-              applicationServersStarted++;
-              if ( applicationServersStarted >= agent.getMaxjeeapplicationserversstarted() )
-              {
-                // the max number of application servers started is raised
-                throw new UpdateException(
-                  "The maximum number of started JEE application servers has been raised for the agent" );
-              }
-            }
-          }
-        }
-      }
-
-      // the start is performed using system command
-      String output =
-        CommandUtils.execute( VariableUtils.replace( server.getStartupcommand(), environment.getVariables() ) );
-      // application server start has been performed
-      LOGGER.info( "JEE application server {} start completed: {}", server.getName(), output );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JEE application server " + server.getName() + " start completed: " + output ) );
-      EventUtils.post( environment, "UPDATE",
-                       "JEE application server " + server.getName() + " start completed: " + output );
-    }
-    catch ( Exception exception )
-    {
-      LOGGER.error( "JEE application server {} start failed", server.getName(), exception );
-      updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                     "JEE application server " + server.getName() + " start failed: "
-                                                       + exception.getMessage() ) );
-      EventUtils.post( environment, "ERROR",
-                       "JEE application server " + server.getName() + " start failed: " + exception.getMessage() );
-      throw new UpdateException( "JEE application server " + server.getName() + " start failed", exception );
-    }
-  }
-
-  /**
-   * Cleanup JEE application server caches.
-   *
-   * @param environment the <code>Environment</code>.
-   * @param server      the target <code>JEEApplicationServer</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   */
-  protected static void cleanCaches( Environment environment, JEEApplicationServer server, UpdateLog updateLog )
-    throws UpdateException
-  {
-    try
-    {
-      if ( !server.isUpdateRequireCacheCleaning() || !updateLog.isUpdated() )
-      {
-        LOGGER.info( "JEE application server {} caches cleaning is not required", server.getName() );
-        updateLog.addUpdateMessage( new UpdateMessage( "info", "JEE application server " + server.getName()
-          + " caches cleaning is not required" ) );
-        EventUtils.post( environment, "UPDATE",
-                         "JEE application server " + server.getName() + " caches cleaning is not required" );
-        return;
-      }
-      // the application server caches cleaning is required
-      LOGGER.info( "JEE application server {} caches cleaning is required", server.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JEE application server " + server.getName() + " caches cleaning is required" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "JEE application server " + server.getName() + " caches cleaning is required" );
-      // initializes the file manipulator instance
-      FileManipulator fileManipulator = new FileManipulator();
-      for ( Iterator cacheIterator = server.getCaches().iterator(); cacheIterator.hasNext(); )
-      {
-        Cache cache = (Cache) cacheIterator.next();
-        String path = VariableUtils.replace( cache.getPath(), environment.getVariables() );
-        fileManipulator.delete( path );
-      }
-    }
-    catch ( Exception exception )
-    {
-      LOGGER.error( "JEE application server {} cache directories cleanup failed", server.getName(), exception );
-      updateLog.addUpdateMessage( new UpdateMessage( "error", "JEE application server" + server.getName()
-        + " cache directories cleanup failed: " + exception.getMessage() ) );
-      EventUtils.post( environment, "ERROR",
-                       "JEE application server " + server.getName() + " cache directories cleanup failed: "
-                         + exception.getMessage() );
-      throw new UpdateException( "JEE application server " + server.getName() + " caches cleanup failed", exception );
-    }
-  }
-
-  /**
-   * Wrapper method to start JEE application server (via WS).
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   */
-  public static void start( String environmentName, String serverName )
-    throws KalumetException
-  {
-    LOGGER.info( "JEE application server {} start requested by WS", serverName );
-
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new UpdateException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer server = environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( server == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environmentName );
-      throw new UpdateException(
-        "JEE application server " + serverName + " is not found in environment " + environmentName );
-    }
-
-    // get the agent configuration
-    Agent agent = kalumet.getAgent( Configuration.AGENT_ID );
-
-    // check the agent max environment active
-    if ( agent.getMaxjeeapplicationserversstarted() > 0 )
-    {
-      // get the environments managed by the agent
-      List agentEnvironments = kalumet.getEnvironmentsByAgent( Configuration.AGENT_ID );
-      int applicationServersStarted = 0;
-      for ( Iterator agentEnvironmentsIterator = agentEnvironments.iterator(); agentEnvironmentsIterator.hasNext(); )
-      {
-        Environment agentEnvironment = (Environment) agentEnvironmentsIterator.next();
-        // check if the application server started into the environment
-        for ( Iterator agentEnvironmentApplicationServersIterator =
-                agentEnvironment.getJEEApplicationServers().getJEEApplicationServers().iterator();
-              agentEnvironmentApplicationServersIterator.hasNext(); )
-        {
-          JEEApplicationServer agentEnvironmentApplicationServer =
-            (JEEApplicationServer) agentEnvironmentApplicationServersIterator.next();
-          // get the controller
-          JEEApplicationServerController controller =
-            JEEApplicationServerControllerFactory.getController(environment, server);
-          if ( !controller.isStopped() )
-          {
-            applicationServersStarted++;
-            if ( applicationServersStarted >= agent.getMaxjeeapplicationserversstarted() )
-            {
-              // the max number of application servers started is raised
-              throw new KalumetException(
-                "The maximum number of started JEE application servers has been raised for the agent" );
-            }
-          }
-        }
-      }
-    }
-
-    EventUtils.post( environment, "INFO", "JEE application server " + serverName + " start requested by WS" );
-    // the start is performed using system command
-    String output =
-      CommandUtils.execute( VariableUtils.replace( server.getStartupcommand(), environment.getVariables() ) );
-    // application server start has been performed
-    LOGGER.info( "JEE application server {} STARTED: {}", serverName, output );
-    EventUtils.post( environment, "INFO", "JEE application server " + serverName + " started: " + output );
-  }
-
-  /**
-   * Wrapper method to stop JEE application server (via WS).
-   *
-   * @param environmentName the environment name.
-   * @param serverName      the JEE application server name.
-   */
-  public static void stop( String environmentName, String serverName )
-    throws UpdateException
-  {
-    LOGGER.info( "JEE application server {} shutdown requested by WS", serverName );
-    Kalumet kalumet;
-    try
-    {
-      kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "Can't load configuration", e );
-      throw new UpdateException( "Can't load configuration", e );
-    }
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new UpdateException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer server = environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( server == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environmentName );
-      throw new UpdateException(
-        "JEE application server " + serverName + " is not found in environment " + environmentName );
-    }
-    EventUtils.post( environment, "INFO", "JEE application server " + serverName + " shutdown requested by WS" );
-    // check if the stop is made using JMX
-    try
-    {
-      if ( server.isUsejmxstop() )
-      {
-        JEEApplicationServerController controller =
-          JEEApplicationServerControllerFactory.getController(environment, server);
-        controller.shutdown();
-        LOGGER.info( "JEE application server {} shutdown using the controller", serverName );
-        EventUtils.post( environment, "INFO",
-                         "JEE application server " + serverName + " shutdown using the controller" );
-        return;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JEE application server {} shutdown failed", serverName, e );
-      throw new UpdateException( "JEE application server " + serverName + " shutdown failed", e );
-    }
-    // no JMX stop, use system command call
-    String shutdownCommand = VariableUtils.replace( server.getShutdowncommand(), environment.getVariables() );
-    String output = null;
-    try
-    {
-      output = CommandUtils.execute( shutdownCommand );
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "JEE application server {} shutdown FAILED.", serverName, e );
-      throw new UpdateException( "JEE application server " + serverName + " shutdown failed", e );
-    }
-    LOGGER.info( "JEE application server {} shutdown using system command: {}", serverName, output );
-    EventUtils.post( environment, "INFO",
-                     "JEE application server " + serverName + " shutdown using system command: " + output );
-  }
-
-  /**
-   * Wrapper method to get JEE application server status (via WS).
-   *
-   * @param environmentName       the environment name.
-   * @param applicationServerName the JEE application server name.
-   * @return the JEE application server current status.
-   */
-  public static String status( String environmentName, String applicationServerName )
-    throws UpdateException
-  {
-    // TODO delegate the JEE server status to another agent if required
-    LOGGER.info( "JEE application server {} status check requested by WS", applicationServerName );
-
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet;
-    try
-    {
-      kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "Can't load configuration", e );
-      throw new UpdateException( "Can't load configuration", e );
-    }
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new UpdateException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer server =
-      environment.getJEEApplicationServers().getJEEApplicationServer(applicationServerName);
-    if ( server == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", applicationServerName,
-                    environmentName );
-      throw new UpdateException(
-        "JEE application server " + applicationServerName + " is not found in environment " + environmentName );
-    }
-    EventUtils.post( environment, "INFO",
-                     "JEE application server " + applicationServerName + " status requested by WS" );
-    try
-    {
-      // get the controller
-      JEEApplicationServerController controller =
-        JEEApplicationServerControllerFactory.getController(environment, server);
-      // get the application server status
-      return controller.status();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JEE application server {} status check failed", applicationServerName, e );
-      throw new UpdateException( "JEE application server " + applicationServerName + " status check failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JEEApplicationUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JEEApplicationUpdater.java
deleted file mode 100644
index 3577d56..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JEEApplicationUpdater.java
+++ /dev/null
@@ -1,390 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.FileManipulatorException;
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Archive;
-import org.apache.kalumet.model.ConfigurationFile;
-import org.apache.kalumet.model.ContentManager;
-import org.apache.kalumet.model.Database;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.apache.kalumet.ws.client.ClientException;
-import org.apache.kalumet.ws.client.JEEApplicationClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-
-/**
- * JEE application updater.
- */
-public class JEEApplicationUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( JEEApplicationUpdater.class );
-
-  /**
-   * Update a JEE application.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param server      the target <code>JEEApplicationServer</code>.
-   * @param application the target <code>JEEApplication</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   * @throws UpdateException if the update failed.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JEEApplication application,
-                             UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating JEE application {}", application.getName() );
-
-    String applicationUri = VariableUtils.replace( application.getUri(), environment.getVariables() );
-
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating JEE application " + application.getName() ) );
-    updateLog.addUpdateMessage(
-      new UpdateMessage( "summary", "JEE application " + application.getName() + " located " + applicationUri ) );
-    EventUtils.post( environment, "UPDATE", "Updating JEE application " + application.getName() );
-
-    if ( !application.isActive() )
-    {
-      // the application is inactive, not updated
-      LOGGER.info( "JEE application {} is inactive, so not updated", application.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JEE application " + application.getName() + " is inactive, not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "JEE application " + application.getName() + " is inactive, not updated" );
-      return;
-    }
-
-    if ( application.getAgent() != null && application.getAgent().trim().length() > 0 && !application.getAgent().equals(
-      Configuration.AGENT_ID ) )
-    {
-      // delegates the application update to another agent
-      LOGGER.info( "Delegating JEE application {} update to agent {}", application.getName(), application.getAgent() );
-      Agent delegationAgent = Configuration.CONFIG_CACHE.getAgent( application.getAgent() );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating JEE application " + application.getName() + " update to agent "
-                         + application.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Delegating JEE application " + application.getName()
-        + " update to agent " + application.getAgent() ) );
-      if ( delegationAgent == null )
-      {
-        LOGGER.error( "Agent " + application.getAgent() + " is not found in the configuration" );
-        throw new UpdateException( "Agent " + application.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        LOGGER.debug( "Call JEE application WS" );
-        JEEApplicationClient webServiceClient =
-          new JEEApplicationClient( delegationAgent.getHostname(), delegationAgent.getPort() );
-        webServiceClient.update( environment.getName(), server.getName(), application.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "JEE application {} update failed", application.getName(), clientException );
-        throw new UpdateException( "JEE application " + application.getName() + " update failed", clientException );
-      }
-      return;
-    }
-
-    try
-    {
-      // create the application directory in the environment working directory
-      // (if needed)
-      LOGGER.debug( "Creating the JEE application directory" );
-      String applicationCacheDir = FileManipulator.createJEEApplicationCacheDir( environment, application );
-    }
-    catch ( FileManipulatorException e )
-    {
-      LOGGER.error( "Can't create JEE application cache directory", e );
-      throw new UpdateException( "Can't create JEE application cache directory", e );
-    }
-
-    // update configuration files
-    LOGGER.info( "Updating JEE application configuration files" );
-    for ( Iterator configurationFileIterator = application.getConfigurationFiles().iterator();
-          configurationFileIterator.hasNext(); )
-    {
-      ConfigurationFile configurationFile = (ConfigurationFile) configurationFileIterator.next();
-      try
-      {
-        ConfigurationFileUpdater.update( environment, server, application, configurationFile, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the configuration file update has failed
-        if ( configurationFile.isBlocker() )
-        {
-          // the configuration file is update blocker
-          LOGGER.error( "Configuration file {} update failed", configurationFile.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error", "Configuration file " + configurationFile.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR",
-                           "Configuration file " + configurationFile.getName() + " update failed: "
-                             + updateException.getMessage() );
-          throw new UpdateException( "Configuration file " + configurationFile.getName() + " update failed",
-                                     updateException );
-        }
-        else
-        {
-          // the configuration file is not update blocker
-          LOGGER.warn( "Configuration file {} update failed", configurationFile.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn", "Configuration file " + configurationFile.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "Configuration file " + configurationFile.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN", "Configuration file " + configurationFile.getName() + " update failed: "
-            + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE", "Configuration file " + configurationFile.getName()
-            + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update database
-    LOGGER.info( "Updating JEE application databases" );
-    for ( Iterator databaseIterator = application.getDatabases().iterator(); databaseIterator.hasNext(); )
-    {
-      Database database = (Database) databaseIterator.next();
-      try
-      {
-        DatabaseUpdater.update( environment, server, application, database, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the database update has failed
-        if ( database.isBlocker() )
-        {
-          // the database is update blocker
-          LOGGER.error( "Database {} update failed", database.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error", "Database " + database.getName() + " update failed: "
-            + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR",
-                           "Database " + database.getName() + " update failed: " + updateException.getMessage() );
-          throw new UpdateException( "Database " + database.getName() + " update failed", updateException );
-        }
-        else
-        {
-          // the database is not update blocker
-          LOGGER.warn( "Database {} update failed", database.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn", "Database " + database.getName() + " update failed: "
-            + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "Database " + database.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN",
-                           "Database " + database.getName() + " update failed: " + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "Database " + database.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update content managers
-    LOGGER.info( "Updating JEE application content managers" );
-    for ( Iterator contentManagerIterator = application.getContentManagers().iterator();
-          contentManagerIterator.hasNext(); )
-    {
-      ContentManager contentManager = (ContentManager) contentManagerIterator.next();
-      try
-      {
-        ContentManagerUpdater.update( environment, server, application, contentManager, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the content manager update has failed
-        if ( contentManager.isBlocker() )
-        {
-          // the content manager is update blocker
-          LOGGER.error( "Content manager {} update failed", contentManager.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error", "Content manager " + contentManager.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR", "Content manager " + contentManager.getName() + " update failed: "
-            + updateException.getMessage() );
-          throw new UpdateException( "Content manager " + contentManager.getName() + " update failed",
-                                     updateException );
-        }
-        else
-        {
-          // the content manager is not update blocker
-          LOGGER.warn( "Content manager {} update failed", contentManager.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn", "Content manager " + contentManager.getName()
-            + " update failed: " + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "Content manager " + contentManager.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN", "Content manager " + contentManager.getName() + " update failed: "
-            + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "Content manager " + contentManager.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // update archives
-    LOGGER.info( "Updating JEE application archives" );
-    for ( Iterator archiveIterator = application.getArchives().iterator(); archiveIterator.hasNext(); )
-    {
-      Archive archive = (Archive) archiveIterator.next();
-      try
-      {
-        ArchiveUpdater.update( environment, server, application, archive, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // the archive update has failed
-        if ( archive.isBlocker() )
-        {
-          // the archive is update blocker
-          LOGGER.error( "Archive {} update failed", archive.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "error", "Archive " + archive.getName() + " update failed: "
-            + updateException.getMessage() ) );
-          EventUtils.post( environment, "ERROR",
-                           "Archive " + archive.getName() + " update failed: " + updateException.getMessage() );
-          throw new UpdateException( "Archive " + archive.getName() + " update failed", updateException );
-        }
-        else
-        {
-          // the archive is not update blocker
-          LOGGER.warn( "Archive {} update failed", archive.getName(), updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn", "Archive " + archive.getName() + " update failed: "
-            + updateException.getMessage() ) );
-          updateLog.addUpdateMessage(
-            new UpdateMessage( "info", "Archive " + archive.getName() + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN",
-                           "Archive " + archive.getName() + " update failed: " + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "Archive " + archive.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-
-    // JEE application update is completed
-    LOGGER.info( "JEE application {} updated", application.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "JEE application " + application.getName() + " updated" ) );
-    EventUtils.post( environment, "UPDATE", "JEE application " + application.getName() + " updated" );
-  }
-
-  /**
-   * Wrapper method to update a JEE application (via WS).
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param applicationName the target JEE application name.
-   * @param delegation      flag indicating if the update is a delegation from another agent (true), or a client call (false).
-   * @throws KalumetException in case of update error.
-   */
-  public static void update( String environmentName, String serverName, String applicationName, boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "JEE application {} update requested by WS", applicationName );
-
-    LOGGER.debug( "Loading the configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "The environment {} is not found in the the configuration", environmentName );
-      throw new KalumetException( "The environment " + environmentName + " is not found in the the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "The JEE application server {} is not found in the environment {}", serverName, environmentName );
-      throw new KalumetException(
-        "The JEE application server " + serverName + " is not found in the environment " + environmentName );
-    }
-    JEEApplication application = applicationServer.getJEEApplication( applicationName );
-    if ( application == null )
-    {
-      LOGGER.error( "The JEE application {} is not found in the JEE application server {}", applicationName,
-                    serverName );
-      throw new KalumetException(
-        "The JEE application " + applicationName + " is not found in the JEE application server " + serverName );
-    }
-
-    // update the agent cache
-    LOGGER.debug( "Updating configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    EventUtils.post( environment, "UPDATE", "JEE application {} update requested by WS", applicationName );
-    UpdateLog updateLog =
-      new UpdateLog( "JEE application " + applicationName + " update in progress ...", environment.getName(),
-                     environment );
-
-    if ( !delegation )
-    {
-      // it's a client call
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-    try
-    {
-      LOGGER.debug( "Call JEE application updater" );
-      JEEApplicationUpdater.update(environment, applicationServer, application, updateLog);
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JEE application {} update failed", applicationName, e );
-      EventUtils.post( environment, "ERROR",
-                       "JEE application " + applicationName + " udpate failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "JEE application " + applicationName + " update failed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "error", "JEE application " + applicationName + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "JEE application " + applicationName + " update failed", e );
-    }
-
-    // update completed
-    LOGGER.info( "JEE application {} updated", application.getName() );
-    EventUtils.post( environment, "UPDATE", "JEE application " + application.getName() + " updated" );
-    if ( !delegation )
-    {
-      if ( updateLog.isUpdated() )
-      {
-        updateLog.setStatus( "JEE application " + application.getName() + " updated" );
-      }
-      else
-      {
-        updateLog.setStatus( "JEE application " + application.getName() + " already up to date" );
-      }
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JEE application " + application.getName() + " updated" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JMSConnectionFactoryUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JMSConnectionFactoryUpdater.java
deleted file mode 100644
index 19381f1..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JMSConnectionFactoryUpdater.java
+++ /dev/null
@@ -1,272 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.controller.core.ControllerException;
-import org.apache.kalumet.controller.core.JEEApplicationServerController;
-import org.apache.kalumet.controller.core.JEEApplicationServerControllerFactory;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.JMSConnectionFactory;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * JMS connection factory updater.
- */
-public class JMSConnectionFactoryUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( JMSConnectionFactoryUpdater.class );
-
-  /**
-   * Updates a JMS connection factory.
-   *
-   * @param environment          the target <code>Environment</code>.
-   * @param server               the target <code>JEEApplicationServer</code>.
-   * @param jmsConnectionFactory the target <code>JMSConnectionFactory</code>.
-   * @param updateLog            the <code>UpdateLog</code> to use.
-   */
-  public static void update( Environment environment, JEEApplicationServer server,
-                             JMSConnectionFactory jmsConnectionFactory, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating JMS connection factory {}", jmsConnectionFactory.getName() );
-    updateLog.addUpdateMessage(
-      new UpdateMessage( "info", "Updating JMS connection factory " + jmsConnectionFactory.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating JMS connection factory " + jmsConnectionFactory.getName() );
-    if ( !jmsConnectionFactory.isActive() )
-    {
-      // the JMS connection factory is not active
-      LOGGER.info( "JMS connection factory {} is inactive, so not updated", jmsConnectionFactory.getName() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "JMS connection factory " + jmsConnectionFactory.getName()
-        + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "JMS Connection Factory " + jmsConnectionFactory.getName() + " is inactive, so not updated" );
-      return;
-    }
-    JEEApplicationServerController controller = null;
-    try
-    {
-      // connect controller to JEE application server
-      LOGGER.debug( "Connecting to JEE application server controller" );
-      controller = JEEApplicationServerControllerFactory.getController(environment, server);
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "Can't connect to JEE application server {} controller", server.getName(), e );
-      throw new UpdateException( "Can't connect to JEE application server " + server.getName() + " controller", e );
-    }
-    try
-    {
-      if ( controller.isJMSConnectionFactoryDeployed( jmsConnectionFactory.getName() ) )
-      {
-        // JMS connection factory already deployed in the JEE application server
-        LOGGER.info( "JMS connection factory {} already deployed", jmsConnectionFactory.getName() );
-        updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                       "JMS connection factory " + jmsConnectionFactory.getName()
-                                                         + " already deployed" ) );
-        EventUtils.post( environment, "UPDATE",
-                         "JMS connection factory " + jmsConnectionFactory.getName() + " already deployed" );
-      }
-      else
-      {
-        // deploy the JMS connection factory
-        controller.deployJMSConnectionFactory( jmsConnectionFactory.getName() );
-        updateLog.setStatus( "Update performed" );
-        updateLog.setUpdated( true );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "JMS connection factory " + jmsConnectionFactory.getName() + " deployed" ) );
-        EventUtils.post( environment, "UPDATE",
-                         "JMS connection factory " + jmsConnectionFactory.getName() + " deployed" );
-        LOGGER.info( "JMS connection factory {} deployed", jmsConnectionFactory.getName() );
-      }
-    }
-    catch ( ControllerException e )
-    {
-      LOGGER.error( "JMS connection factory {} update failed", jmsConnectionFactory.getName(), e );
-      throw new UpdateException( "JMS connection factory " + jmsConnectionFactory.getName() + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a JMS connection factory via WS.
-   *
-   * @param environmentName          the target environment name.
-   * @param serverName               the target JEE application server name.
-   * @param jmsConnectionFactoryName the target JMS connection factory name.
-   * @throws KalumetException in case of update failure.
-   */
-  public static void update( String environmentName, String serverName, String jmsConnectionFactoryName )
-    throws KalumetException
-  {
-    LOGGER.info( "JMS connection factory {} update requested by WS", jmsConnectionFactoryName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer server = environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( server == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JMSConnectionFactory jmsConnectionFactory = server.getJMSConnectionFactory( jmsConnectionFactoryName );
-    if ( jmsConnectionFactory == null )
-    {
-      LOGGER.error( "JMS connection factory {} is not found in JEE application server {}", jmsConnectionFactoryName,
-                    server.getName() );
-      throw new KalumetException(
-        "JMS connection factory " + jmsConnectionFactoryName + " is not found in JEE application server "
-          + server.getName() );
-    }
-
-    // post event and create update log
-    LOGGER.debug( "Posting event and creating update log" );
-    EventUtils.post( environment, "UPDATE",
-                     "JMS connection factory " + jmsConnectionFactory.getName() + " update requested by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "JMS connection factory " + jmsConnectionFactory.getName() + " update in progress ...",
-                     environment.getName(), environment );
-
-    // send a notification and waiting for the count down
-    LOGGER.debug( "Send a notification and waiting for the count down" );
-    EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-    NotifierUtils.waitAndNotify( environment );
-
-    try
-    {
-      // call update
-      LOGGER.debug( "Call JMS connection factory updater" );
-      JMSConnectionFactoryUpdater.update( environment, server, jmsConnectionFactory, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JMS connection factory {} update failed", jmsConnectionFactory.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "JMS connection factory " + jmsConnectionFactory.getName() + " update failed: "
-                         + e.getMessage() );
-      updateLog.setStatus( "JMS connection factory " + jmsConnectionFactory.getName() + " update failed" );
-      updateLog.addUpdateMessage( new UpdateMessage( "error", "JMS connection factory " + jmsConnectionFactory.getName()
-        + " update failed: " + e.getMessage() ) );
-      PublisherUtils.publish( environment );
-      throw new UpdateException( "JMS connection factory " + jmsConnectionFactory.getName() + " update failed", e );
-    }
-
-    // update completed.
-    LOGGER.info( "JMS connection factory {} updated", jmsConnectionFactory.getName() );
-    EventUtils.post( environment, "UPDATE", "JMS connection factory " + jmsConnectionFactory.getName() + " updated" );
-    if ( updateLog.isUpdated() )
-    {
-      updateLog.setStatus( "JMS connection factory " + jmsConnectionFactory.getName() + " updated" );
-    }
-    else
-    {
-      updateLog.setStatus( "JMS connection factory " + jmsConnectionFactory.getName() + " is already up to date" );
-    }
-    updateLog.addUpdateMessage(
-      new UpdateMessage( "info", "JMS connection factory " + jmsConnectionFactory.getName() + " updated" ) );
-    LOGGER.info( "Publishing update report" );
-    PublisherUtils.publish( environment );
-  }
-
-  /**
-   * Check a JMS connection factory via WS.
-   *
-   * @param environmentName          the target environment name.
-   * @param applicationServerName    the target JEE application server name.
-   * @param jmsConnectionFactoryName the target JMS connection factory name.
-   * @return true if the JMS connection factory is up to date, false else.
-   * @throws KalumetException in case of check failure.
-   */
-  public static boolean check( String environmentName, String applicationServerName, String jmsConnectionFactoryName )
-    throws KalumetException
-  {
-    LOGGER.info( "JMS connection factory {} status check requested by WS", jmsConnectionFactoryName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer server =
-      environment.getJEEApplicationServers().getJEEApplicationServer(applicationServerName);
-    if ( server == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", applicationServerName,
-                    environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + applicationServerName + " is not found in environment " + environment.getName() );
-    }
-    JMSConnectionFactory jmsConnectionFactory = server.getJMSConnectionFactory( jmsConnectionFactoryName );
-    if ( jmsConnectionFactory == null )
-    {
-      LOGGER.error( "JMS connection factory {} is not found in the JEE application server {}",
-                    jmsConnectionFactoryName, server.getName() );
-      throw new KalumetException(
-        "JMS connection factory " + jmsConnectionFactoryName + " is not found in the JEE application server "
-          + server.getName() );
-    }
-
-    // post an event
-    EventUtils.post( environment, "INFO",
-                     "JMS connection factory " + jmsConnectionFactory.getName() + " status check requested by WS" );
-
-    try
-    {
-      // get JEE application server controller.
-      LOGGER.debug( "Getting JEE application server controller" );
-      JEEApplicationServerController controller =
-        JEEApplicationServerControllerFactory.getController(environment, server);
-      // check if the JMS connection factory is deployed
-      LOGGER.debug( "Check the status of the JMS connection factory " + jmsConnectionFactory.getName() );
-      return controller.isJMSConnectionFactoryDeployed( jmsConnectionFactory.getName() );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JMS connection factory {} status check failed", jmsConnectionFactory.getName(), e );
-      throw new KalumetException( "JMS connection factory " + jmsConnectionFactory.getName() + " status check failed",
-                                  e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JMSServerUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JMSServerUpdater.java
deleted file mode 100644
index 4b95a1d..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JMSServerUpdater.java
+++ /dev/null
@@ -1,302 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.controller.core.ControllerException;
-import org.apache.kalumet.controller.core.JEEApplicationServerController;
-import org.apache.kalumet.controller.core.JEEApplicationServerControllerFactory;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-
-/**
- * JMS server updater.
- */
-public class JMSServerUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( JMSServerUpdater.class );
-
-  /**
-   * Update a JMS server.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param server      the target <code>JEEApplicationServer</code>.
-   * @param jmsServer   the target <code>JMSServer</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   * @thorws UpdateException in case of update failure.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JMSServer jmsServer,
-                             UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating JMS server {}", jmsServer.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating JMS server " + jmsServer.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating JMS server " + jmsServer.getName() );
-    if ( !jmsServer.isActive() )
-    {
-      // JMS server is not active
-      LOGGER.info( "JMS server {} is inactive, so not updated", jmsServer.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JMS server " + jmsServer.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE", "JMS server " + jmsServer.getName() + " is inactive, so not updated" );
-      return;
-    }
-    // construct the queues and topics list
-    LinkedList queues = new LinkedList();
-    LinkedList topics = new LinkedList();
-    // construct the queues
-    for ( Iterator queueIterator = jmsServer.getJMSQueues().iterator(); queueIterator.hasNext(); )
-    {
-      JMSQueue jmsQueue = (JMSQueue) queueIterator.next();
-      queues.add( VariableUtils.replace( jmsQueue.getName(), environment.getVariables() ) );
-    }
-    // construct the topics
-    for ( Iterator topicIterator = jmsServer.getJMSTopics().iterator(); topicIterator.hasNext(); )
-    {
-      JMSTopic jmsTopic = (JMSTopic) topicIterator.next();
-      topics.add( VariableUtils.replace( jmsTopic.getName(), environment.getVariables() ) );
-    }
-    JEEApplicationServerController controller = null;
-    try
-    {
-      // connect JMX controller to JEE application server
-      LOGGER.debug( "Connecting to JEE application server {} controller", server.getName() );
-      controller = JEEApplicationServerControllerFactory.getController(environment, server);
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "Can't connect to JEE application server {} controller", server.getName(), e );
-      throw new UpdateException( "Can't connect to JEE application server " + server.getName() + " controller", e );
-    }
-    try
-    {
-      if ( controller.isJMSServerDeployed( jmsServer.getName() ) )
-      {
-        // JMS server already deployed, check for update
-        LOGGER.info( "JMS server {} already deployed, checking for update", jmsServer.getName() );
-        if ( controller.updateJMSServer( jmsServer.getName(), queues, topics ) )
-        {
-          updateLog.setStatus( "Update performed" );
-          updateLog.setUpdated( true );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "JMS server " + jmsServer.getName() + " updated" ) );
-          EventUtils.post( environment, "UPDATE", "JMS server " + jmsServer.getName() + " updated" );
-          LOGGER.info( "JMS server {} updated", jmsServer.getName() );
-        }
-      }
-      else
-      {
-        // JMS server is not deployed, deploy it
-        controller.deployJMSServer( jmsServer.getName(), queues, topics );
-        updateLog.setStatus( "Update performed" );
-        updateLog.setUpdated( true );
-        updateLog.addUpdateMessage( new UpdateMessage( "info", "JMS server " + jmsServer.getName() + " deployed" ) );
-        EventUtils.post( environment, "UPDATE", "JMS server " + jmsServer.getName() + " deployed" );
-        LOGGER.info( "JMS server {} deployed" );
-      }
-    }
-    catch ( ControllerException e )
-    {
-      LOGGER.error( "JMS server {} update failed", jmsServer.getName(), e );
-      throw new UpdateException( "JMS server " + jmsServer.getName() + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a JMS server via WS.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param jmsServerName         the target JMS server name.
-   * @throws KalumetException if case of update failure.
-   */
-  public static void update( String environmentName, String applicationServerName, String jmsServerName )
-    throws KalumetException
-  {
-    LOGGER.info( "JMS server {} update requested by WS", jmsServerName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    LOGGER.debug( "Looking for component objects" );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer(applicationServerName);
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", applicationServerName,
-                    environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + applicationServerName + " is not found in environment " + environment.getName() );
-    }
-    JMSServer jmsServer = applicationServer.getJMSServer( jmsServerName );
-    if ( jmsServer == null )
-    {
-      LOGGER.error( "JMS server {} is not found in JEE application server {}", jmsServerName,
-                    applicationServer.getName() );
-      throw new KalumetException(
-        "JMS server " + jmsServerName + " is not found in JEE application server " + applicationServer.getName() );
-    }
-
-    // post an event and create update log.
-    LOGGER.debug( "Posting an event and creating update log" );
-    EventUtils.post( environment, "UPDATE", "JMS server " + jmsServer.getName() + " update requested by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "JMS server " + jmsServer.getName() + " update in progress ...", environment.getName(),
-                     environment );
-
-    // send a notification and waiting for the count down.
-    LOGGER.info( "Send a notification and waiting for the count down" );
-    EventUtils.post( environment, "UPDATE", "Post an event and waiting for the count down" );
-    NotifierUtils.waitAndNotify( environment );
-
-    try
-    {
-      // call update
-      LOGGER.debug( "Call JMS server updater" );
-      JMSServerUpdater.update( environment, applicationServer, jmsServer, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JMS server {} update failed", jmsServer.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "JMS server " + jmsServer.getName() + " update failed: " + e.getMessage() );
-      updateLog.setStatus( "JMS server " + jmsServer.getName() + " update failed" );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "error", "JMS server " + jmsServer.getName() + " update failed: " + e.getMessage() ) );
-      PublisherUtils.publish( environment );
-      throw new KalumetException( "JMS server " + jmsServer.getName() + " update failed", e );
-    }
-
-    // update completed
-    LOGGER.info( "JMS server {} updated", jmsServer.getName() );
-    EventUtils.post( environment, "UPDATE", "JMS server " + jmsServer.getName() + " updated" );
-    if ( updateLog.isUpdated() )
-    {
-      updateLog.setStatus( "JMS server " + jmsServer.getName() + " updated" );
-    }
-    else
-    {
-      updateLog.setStatus( "JMS server " + jmsServer.getName() + " already up to date" );
-    }
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "JMS server " + jmsServer.getName() + " updated" ) );
-    LOGGER.info( "Publishing update report" );
-    PublisherUtils.publish( environment );
-  }
-
-  /**
-   * Check a JMS server via WS.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param jmsServerName         the target JMS server name.
-   * @return true if the JMS server is up to date, false else.
-   * @throws KalumetException in case of check failure.
-   */
-  public static boolean check( String environmentName, String applicationServerName, String jmsServerName )
-    throws KalumetException
-  {
-    LOGGER.info( "JMS server {} status check requested by WS", jmsServerName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // load component objects
-    LOGGER.debug( "Loading component objects" );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer(applicationServerName);
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", applicationServerName,
-                    environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + applicationServerName + " is not found in environment " + environment.getName() );
-    }
-    JMSServer jmsServer = applicationServer.getJMSServer( jmsServerName );
-    if ( jmsServer == null )
-    {
-      LOGGER.error( "JMS server {} is not found in JEE application server {}", jmsServerName,
-                    applicationServer.getName() );
-      throw new KalumetException(
-        "JMS server " + jmsServerName + " is not found in JEE application server " + applicationServer.getName() );
-    }
-
-    // post an event.
-    EventUtils.post( environment, "INFO", "JMS server " + jmsServer.getName() + " status check requested by WS" );
-
-    try
-    {
-      // get JEE application server controller.
-      LOGGER.debug( "Getting JEE application server controller" );
-      JEEApplicationServerController controller =
-        JEEApplicationServerControllerFactory.getController(environment, applicationServer);
-      // construct the queue list.
-      LOGGER.debug( "Constructing the queue list" );
-      LinkedList queues = new LinkedList();
-      for ( Iterator queueIterator = jmsServer.getJMSQueues().iterator(); queueIterator.hasNext(); )
-      {
-        JMSQueue queue = (JMSQueue) queueIterator.next();
-        queues.add( queue );
-      }
-      // construct the topic list.
-      LOGGER.debug( "Constructing the topic list" );
-      LinkedList topics = new LinkedList();
-      for ( Iterator topicIterator = jmsServer.getJMSTopics().iterator(); topicIterator.hasNext(); )
-      {
-        JMSTopic topic = (JMSTopic) topicIterator.next();
-        topics.add( topic );
-      }
-      // check if the JMS server is up to date.
-      LOGGER.debug( "Checking if JMS server {} is up to date", jmsServer.getName() );
-      return controller.isJMSServerUpToDate( jmsServer.getName(), queues, topics );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JMS server {} check failed", jmsServer.getName(), e );
-      throw new KalumetException( "JMS server " + jmsServer.getName() + " check failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JNDIBindingUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JNDIBindingUpdater.java
deleted file mode 100644
index 017c0ca..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/JNDIBindingUpdater.java
+++ /dev/null
@@ -1,279 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.controller.core.ControllerException;
-import org.apache.kalumet.controller.core.JEEApplicationServerController;
-import org.apache.kalumet.controller.core.JEEApplicationServerControllerFactory;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.JNDIBinding;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * JNDI binding (JNDI alias) updater.
- */
-public class JNDIBindingUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( JNDIBindingUpdater.class );
-
-  /**
-   * Update a JNDI binding..
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param server      the target <code>JEEApplicationServer</code>.
-   * @param jndiBinding the target <code>JNDIBinding</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   * @throws UpdateException in case of update failure.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, JNDIBinding jndiBinding,
-                             UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating JNDI binding {}", jndiBinding.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating JNDI binding " + jndiBinding.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating JNDI binding " + jndiBinding.getName() );
-    if ( !jndiBinding.isActive() )
-    {
-      // the JNDI binding is not active
-      LOGGER.info( "JNDI binding {} is inactive, so not updated", jndiBinding.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "JNDI binding " + jndiBinding.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "JNDI binding " + jndiBinding.getName() + " is inactive, so not updated" );
-      return;
-    }
-    JEEApplicationServerController controller = null;
-    try
-    {
-      // connect controller to JEE application server
-      LOGGER.debug( "Connecting to JEE application server {} controller", server.getName() );
-      controller = JEEApplicationServerControllerFactory.getController(environment, server);
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "Can't connect to JEE application server {} controller", server.getName(), e );
-      throw new UpdateException( "Can't connect to JEE application server " + server.getName() + " controller", e );
-    }
-    // replaces variables in name space binding data
-    LOGGER.debug( "Replacing variables in name space binding data" );
-    String mapJndiName = VariableUtils.replace( jndiBinding.getJndiname(), environment.getVariables() );
-    String mapJndiAlias = VariableUtils.replace( jndiBinding.getJndialias(), environment.getVariables() );
-    String mapJndiProviderUrl = VariableUtils.replace( jndiBinding.getProviderurl(), environment.getVariables() );
-    try
-    {
-      if ( controller.isJNDIBindingDeployed( jndiBinding.getName() ) )
-      {
-        // the JNDI binding is already deployed, check for update
-        LOGGER.info( "JNDI binding {} already deployed, checking for update", jndiBinding.getName() );
-        if ( controller.updateJNDIBinding( jndiBinding.getName(), mapJndiName, mapJndiAlias, mapJndiProviderUrl ) )
-        {
-          // the JNDI binding has been updated
-          updateLog.setStatus( "Update performed" );
-          updateLog.setUpdated( true );
-          updateLog.addUpdateMessage(
-            new UpdateMessage( "info", "JNDI binding " + jndiBinding.getName() + " updated" ) );
-          EventUtils.post( environment, "UPDATE", "JNDI binding " + jndiBinding.getName() + " updated" );
-          LOGGER.info( "JNDI binding {} updated", jndiBinding.getName() );
-        }
-      }
-      else
-      {
-        // JNDI binding is not deployed, deploy it
-        controller.deployJNDIBinding( jndiBinding.getName(), mapJndiName, mapJndiAlias, mapJndiProviderUrl );
-        updateLog.setStatus( "Update performed" );
-        updateLog.setUpdated( true );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "JNDI binding " + jndiBinding.getName() + " deployed" ) );
-        EventUtils.post( environment, "UPDATE", "JNDI binding " + jndiBinding.getName() + " deployed" );
-        LOGGER.info( "JNDI binding {} deployed", jndiBinding.getName() );
-      }
-    }
-    catch ( ControllerException e )
-    {
-      LOGGER.error( "JNDI binding {} update failed", jndiBinding.getName(), e );
-      throw new UpdateException( "JNDI binding " + jndiBinding.getName() + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to JNDI binding update via WS.
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param bindingName     the target JNDI binding name.
-   * @throws KalumetException in case of update failure.
-   */
-  public static void update( String environmentName, String serverName, String bindingName )
-    throws KalumetException
-  {
-    LOGGER.info( "JNDI binding {} update requested by WS", bindingName );
-
-    // load configuration
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects.
-    LOGGER.debug( "Looking for component objects" );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer server = environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( server == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JNDIBinding jndiBinding = server.getJNDIBinding( bindingName );
-    if ( jndiBinding == null )
-    {
-      LOGGER.error( "JNDI binding {} is not found in JEE application server {}", bindingName, server.getName() );
-      throw new KalumetException(
-        "JNDI binding " + bindingName + " is not found in JEE application server " + server.getName() );
-    }
-
-    // post an event and create the update log.
-    LOGGER.debug( "Posting an event and creating the update log" );
-    EventUtils.post( environment, "UPDATE", "JNDI binding " + jndiBinding.getName() + " update requested by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "JNDI binding " + jndiBinding.getName() + " update in progress ...", jndiBinding.getName(),
-                     environment );
-
-    // send a notification and waiting for the count down.
-    LOGGER.info( "Send a notification and waiting for the count down" );
-    EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-    NotifierUtils.waitAndNotify( environment );
-
-    try
-    {
-      // call update.
-      LOGGER.debug( "Call JNDI binding updater" );
-      JNDIBindingUpdater.update( environment, server, jndiBinding, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JNDI binding {} update failed", jndiBinding.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "JNDI binding " + jndiBinding.getName() + " update failed: " + e.getMessage() );
-      updateLog.setStatus( "JNDI binding " + jndiBinding.getName() + " update failed" );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "error", "JNDI binding " + jndiBinding.getName() + " update failed: " + e.getMessage() ) );
-      PublisherUtils.publish( environment );
-      throw new UpdateException( "JNDI binding " + jndiBinding.getName() + " update failed", e );
-    }
-
-    // update completed
-    LOGGER.info( "JNDI binding {} updated", jndiBinding.getName() );
-    EventUtils.post( environment, "UPDATE", "JNDI binding " + jndiBinding.getName() + " updated" );
-    if ( updateLog.isUpdated() )
-    {
-      updateLog.setStatus( "JNDI binding " + jndiBinding.getName() + " updated" );
-    }
-    else
-    {
-      updateLog.setStatus( "JNDI binding " + jndiBinding.getName() + " already up to date" );
-    }
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "JNDI binding " + jndiBinding.getName() + " updated" ) );
-    LOGGER.info( "Publishing update report" );
-    PublisherUtils.publish( environment );
-  }
-
-  /**
-   * Check if a JNDI name space binding is up to date or not via WS.
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param jndiBindingName the target JNDI binding name.
-   * @return true if the JNDI name space binding is up to date, false else.
-   * @throws KalumetException in case of JNDI name space binding check failure.
-   */
-  public static boolean check( String environmentName, String serverName, String jndiBindingName )
-    throws KalumetException
-  {
-    LOGGER.info( "JNDI binding {} status check requested by WS", jndiBindingName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    LOGGER.debug( "Looking for component objects" );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JNDIBinding jndiBinding = applicationServer.getJNDIBinding( jndiBindingName );
-    if ( jndiBinding == null )
-    {
-      LOGGER.error( "JNDI binding {} is not found in JEE application server {}", jndiBindingName,
-                    applicationServer.getName() );
-      throw new KalumetException(
-        "JNDI binding " + jndiBindingName + " is not found in JEE application server " + applicationServer.getName() );
-    }
-
-    // post an event
-    EventUtils.post( environment, "INFO", "JNDI binding " + jndiBinding.getName() + " status check requested by WS" );
-
-    try
-    {
-      // get JEE application server controller
-      LOGGER.debug( "Getting JEE aplication server controller" );
-      JEEApplicationServerController controller =
-        JEEApplicationServerControllerFactory.getController(environment, applicationServer);
-      // replace JNDI binding data with environment variables.
-      LOGGER.debug( "Replaces variables in JNDI binding data" );
-      String jndiName = VariableUtils.replace( jndiBinding.getJndiname(), environment.getVariables() );
-      String jndiAlias = VariableUtils.replace( jndiBinding.getJndialias(), environment.getVariables() );
-      String jndiProviderUrl = VariableUtils.replace( jndiBinding.getProviderurl(), environment.getVariables() );
-      // check if the JNDI binding is up to date.
-      return controller.isJNDIBindingUpToDate( jndiBinding.getName(), jndiName, jndiAlias, jndiProviderUrl );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "JNDI binding {} status check failed", jndiBinding.getName(), e );
-      throw new KalumetException( "JNDI binding " + jndiBinding.getName() + " status check failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SharedLibraryUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SharedLibraryUpdater.java
deleted file mode 100644
index 85f5d4e..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SharedLibraryUpdater.java
+++ /dev/null
@@ -1,276 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.controller.core.ControllerException;
-import org.apache.kalumet.controller.core.JEEApplicationServerController;
-import org.apache.kalumet.controller.core.JEEApplicationServerControllerFactory;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.SharedLibrary;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Shared library updater.
- */
-public class SharedLibraryUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( SharedLibraryUpdater.class );
-
-  /**
-   * Updates a shared library.
-   *
-   * @param environment   the target <code>Environment</code>.
-   * @param server        the target <code>JEEApplicationServer</code>.
-   * @param sharedLibrary the target <code>SharedLibrary</code>.
-   * @param updateLog     the <code>UpdateLog</code> to use.
-   * @throws UpdateException in case of update failure.
-   */
-  public static void update( Environment environment, JEEApplicationServer server, SharedLibrary sharedLibrary,
-                             UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating shared library {}", sharedLibrary.getName() );
-
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating shared library " + sharedLibrary.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Updating shared library " + sharedLibrary.getName() );
-    if ( !sharedLibrary.isActive() )
-    {
-      // the shared library is not active
-      LOGGER.info( "Shared library {} is inactive, so not updated", sharedLibrary.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Shared library " + sharedLibrary.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Shared library " + sharedLibrary.getName() + " is inactive, so not updated" );
-      return;
-    }
-    JEEApplicationServerController controller = null;
-    try
-    {
-      // connect JMX controller to JEE application server
-      LOGGER.debug( "Connecting to JEE application server {} controller", server.getName() );
-      controller = JEEApplicationServerControllerFactory.getController(environment, server);
-    }
-    catch ( KalumetException e )
-    {
-      LOGGER.error( "Can't connect to JEE application server {} controller", server.getName(), e );
-      throw new UpdateException( "Can't connect to JEE application server " + server.getName() + " controller", e );
-    }
-    // replaces variables in shared library class path.
-    LOGGER.debug( "Replacing variables into the shared library classpath" );
-    String mapClasspath = VariableUtils.replace( sharedLibrary.getClasspath(), environment.getVariables() );
-    try
-    {
-      if ( controller.isSharedLibraryDeployed( sharedLibrary.getName() ) )
-      {
-        // the shared library is already deployed, check for update
-        LOGGER.info( "Shared library {} already deployed, checking for update", sharedLibrary.getName() );
-        if ( controller.updateSharedLibrary( sharedLibrary.getName(), mapClasspath ) )
-        {
-          // the shared library has been updated
-          updateLog.setStatus( "Update performed" );
-          updateLog.setUpdated( true );
-          updateLog.addUpdateMessage(
-            new UpdateMessage( "info", "Shared library " + sharedLibrary.getName() + " updated" ) );
-          EventUtils.post( environment, "UPDATE", "Shared library " + sharedLibrary.getName() + " updated" );
-          LOGGER.info( "Shared library " + sharedLibrary.getName() + " udpated" );
-        }
-      }
-      else
-      {
-        // the shared library is not deployed, deploy it
-        controller.deploySharedLibrary( sharedLibrary.getName(), mapClasspath );
-        updateLog.setStatus( "Update performed" );
-        updateLog.setUpdated( true );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "Shared library " + sharedLibrary.getName() + " deployed" ) );
-        EventUtils.post( environment, "UPDATE", "Shared library " + sharedLibrary.getName() + " deployed" );
-        LOGGER.info( "Shared library " + sharedLibrary.getName() + " deployed" );
-      }
-    }
-    catch ( ControllerException exception )
-    {
-      LOGGER.error( "Shared library {} update failed", sharedLibrary.getName(), exception );
-      throw new UpdateException( "Shared library " + sharedLibrary.getName() + " update failed", exception );
-    }
-  }
-
-  /**
-   * Wrapper method to update shared library via WS.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param sharedLibraryName     the target shared library name.
-   * @throws KalumetException in case of update failure.
-   */
-  public static void update( String environmentName, String applicationServerName, String sharedLibraryName )
-    throws KalumetException
-  {
-    LOGGER.info( "Shared library {} update requested by WS", sharedLibraryName );
-
-    // load configuration.
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects.
-    LOGGER.debug( "Looking for component objects" );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer(applicationServerName);
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", applicationServerName,
-                    environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + applicationServerName + " is not found in environment " + environment.getName() );
-    }
-    SharedLibrary sharedLibrary = applicationServer.getSharedLibrary( sharedLibraryName );
-    if ( sharedLibrary == null )
-    {
-      LOGGER.error( "Shared library {} is not found in JEE application server {}", sharedLibraryName,
-                    applicationServer.getName() );
-      throw new KalumetException( "Shared library " + sharedLibraryName + " is not found in JEE application server "
-                                    + applicationServer.getName() );
-    }
-
-    // post an event and create update log
-    LOGGER.debug( "Posting an event and creating update log" );
-    EventUtils.post( environment, "UPDATE", "Shared library " + sharedLibrary.getName() + " update requested by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "Shared library " + sharedLibrary.getName() + " update in progress ...", environment.getName(),
-                     environment );
-
-    // send a notification and waiting for the count down
-    LOGGER.info( "Send a notification and waiting for the count down" );
-    NotifierUtils.waitAndNotify( environment );
-
-    try
-    {
-      // call updater
-      LOGGER.debug( "Call shared library updater" );
-      SharedLibraryUpdater.update( environment, applicationServer, sharedLibrary, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Shared library {} update failed", sharedLibrary.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "Shared library " + sharedLibrary.getName() + " update failed: " + e.getMessage() );
-      updateLog.setStatus( "Shared library " + sharedLibrary.getName() + " update failed" );
-      updateLog.addUpdateMessage( new UpdateMessage( "error",
-                                                     "Shared library " + sharedLibrary.getName() + " update failed: "
-                                                       + e.getMessage() ) );
-      PublisherUtils.publish( environment );
-      throw new UpdateException( "Shared library " + sharedLibrary.getName() + " update failed", e );
-    }
-
-    // update completed.
-    LOGGER.info( "Shared library {} updated", sharedLibrary.getName() );
-    if ( updateLog.isUpdated() )
-    {
-      updateLog.setStatus( "Shared library " + sharedLibrary.getName() + " updated" );
-    }
-    else
-    {
-      updateLog.setStatus( "Shared library " + sharedLibrary.getName() + " already up to date" );
-    }
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Shared library " + sharedLibrary.getName() + " updated" ) );
-    LOGGER.info( "Publishing update report" );
-    PublisherUtils.publish( environment );
-  }
-
-  /**
-   * Check if a shared library is up to date or not via WS.
-   *
-   * @param environmentName   the target environment name.
-   * @param serverName        the target JEE application server name.
-   * @param sharedLibraryName the target shared library name.
-   * @return true if the shared library is up to date, false else.
-   * @throws KalumetException in case of check failure.
-   */
-  public static boolean check( String environmentName, String serverName, String sharedLibraryName )
-    throws KalumetException
-  {
-    LOGGER.info( "Shared library {} status check requested by WS", sharedLibraryName );
-
-    // load configuration
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    LOGGER.debug( "Looking for component objects" );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer(serverName);
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    SharedLibrary sharedLibrary = applicationServer.getSharedLibrary( sharedLibraryName );
-    if ( sharedLibrary == null )
-    {
-      LOGGER.error( "Shared library {} is not found in JEE application server {}", sharedLibraryName,
-                    applicationServer.getName() );
-      throw new KalumetException( "Shared library " + sharedLibraryName + " is not found in JEE application server "
-                                    + applicationServer.getName() );
-    }
-
-    try
-    {
-      // get JEE application server controller
-      LOGGER.debug( "Getting JEE application server controller" );
-      JEEApplicationServerController controller =
-        JEEApplicationServerControllerFactory.getController(environment, applicationServer);
-      // replaces variables in shared library class path.
-      LOGGER.debug( "Replacing variables into the shared library classpath" );
-      String classpath = VariableUtils.replace( sharedLibrary.getClasspath(), environment.getVariables() );
-      // check shared library using controller.
-      LOGGER.debug( "Checking status of the shared library using controller" );
-      return controller.isSharedLibraryUpToDate( sharedLibrary.getName(), classpath );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Shared library {} status check failed", sharedLibrary.getName(), e );
-      throw new KalumetException( "Shared library " + sharedLibrary.getName() + " status check failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SoftwareUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SoftwareUpdater.java
deleted file mode 100644
index 9d8ebd1..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SoftwareUpdater.java
+++ /dev/null
@@ -1,1407 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.commons.vfs.FileObject;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.FileManipulatorException;
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.CommandUtils;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.SqlScriptUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.apache.kalumet.ws.client.ClientException;
-import org.apache.kalumet.ws.client.SoftwareClient;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-
-/**
- * Software software updater.
- */
-public class SoftwareUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( SoftwareUpdater.class );
-
-  /**
-   * Updates a software.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param software    the target <code>Software</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   */
-  public static void update( Environment environment, Software software, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating software {}", software.getName() );
-
-    if ( !software.isActive() )
-    {
-      LOGGER.info( "Software {} is inactive, so not updated", software.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Software " + software.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE", "Software " + software.getName() + " is inactive, so not updated" );
-      return;
-    }
-
-    if ( software.getAgent() != null && software.getAgent().trim().length() > 0 && !software.getAgent().equals(
-      Configuration.AGENT_ID ) )
-    {
-      LOGGER.info( "Delegating software {} update to agent {}", software.getName(), software.getAgent() );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating software " + software.getName() + " update to agent " + software.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Delegating software " + software.getName() + " update to agent "
-                                                       + software.getAgent() ) );
-      Agent delegationAgent = Configuration.CONFIG_CACHE.getAgent( software.getAgent() );
-      if ( delegationAgent == null )
-      {
-        LOGGER.error( "Agent {} is not found in the configuration", software.getAgent() );
-        throw new UpdateException( "Agent " + software.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        LOGGER.debug( "Call software WS" );
-        SoftwareClient client = new SoftwareClient( delegationAgent.getHostname(), delegationAgent.getPort() );
-        client.update( environment.getName(), software.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "Software {} update failed", software.getName(), clientException );
-        throw new UpdateException( "Software " + software.getName() + " update failed", clientException );
-      }
-      return;
-    }
-
-    // add an update message
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Updating software " + software.getName() ) );
-    // post an event
-    EventUtils.post( environment, "UPDATE", "Updating software " + software.getName() );
-
-    // iterate in the software update plan
-    for ( Iterator updatePlanIterator = software.getUpdatePlan().iterator(); updatePlanIterator.hasNext(); )
-    {
-      Object item = updatePlanIterator.next();
-
-      // command update
-      if ( item instanceof Command )
-      {
-        Command command = (Command) item;
-        try
-        {
-          SoftwareUpdater.executeCommand( environment, software, command, updateLog );
-        }
-        catch ( Exception e )
-        {
-          if ( command.isBlocker() )
-          {
-            LOGGER.error( "Command {} execution failed", command.getName(), e );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "error", "Command " + command.getName() + " execution failed: " + e.getMessage() ) );
-            EventUtils.post( environment, "ERROR",
-                             "Command " + command.getName() + " execution failed: " + e.getMessage() );
-            throw new UpdateException( "Command " + command.getName() + " execution failed", e );
-          }
-          else
-          {
-            LOGGER.warn( "Command {} execution failed", command.getName(), e );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "warn", "Command " + command.getName() + " execution failed: " + e.getMessage() ) );
-            updateLog.addUpdateMessage( new UpdateMessage( "info", "Command " + command.getName()
-              + " is not an update blocker, update continues" ) );
-            EventUtils.post( environment, "WARN",
-                             "Command " + command.getName() + " execution failed: " + e.getMessage() );
-            EventUtils.post( environment, "UPDATE",
-                             "Command " + command.getName() + " is not an update blocker, update continues" );
-          }
-        }
-      }
-
-      // location update
-      if ( item instanceof Location )
-      {
-        Location location = (Location) item;
-        try
-        {
-          SoftwareUpdater.updateLocation( environment, software, location, updateLog );
-        }
-        catch ( Exception e )
-        {
-          if ( location.isBlocker() )
-          {
-            LOGGER.error( "Location {} update failed", location.getName(), e );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "error", "Location " + location.getName() + " update failed: " + e.getMessage() ) );
-            EventUtils.post( environment, "ERROR",
-                             "Location " + location.getName() + " update failed: " + e.getMessage() );
-            throw new UpdateException( "Location " + location.getName() + " update failed", e );
-          }
-          else
-          {
-            LOGGER.warn( "Location " + location.getName() + " update failed", e );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "warn", "Location " + location.getName() + " update failed: " + e.getMessage() ) );
-            updateLog.addUpdateMessage( new UpdateMessage( "info", "Location " + location.getName()
-              + " is not an update blocker, update continues" ) );
-            EventUtils.post( environment, "WARN",
-                             "Location " + location.getName() + " execution failed: " + e.getMessage() );
-            EventUtils.post( environment, "UPDATE",
-                             "Location " + location.getName() + " is not an update blocker, update continues" );
-          }
-        }
-      }
-
-      // configuration update
-      if ( item instanceof ConfigurationFile )
-      {
-        ConfigurationFile configurationFile = (ConfigurationFile) item;
-        try
-        {
-          SoftwareUpdater.updateConfigurationFile( environment, software, configurationFile, updateLog );
-        }
-        catch ( Exception e )
-        {
-          if ( configurationFile.isBlocker() )
-          {
-            LOGGER.error( "Configuration file {} update failed", configurationFile.getName(), e );
-            updateLog.addUpdateMessage( new UpdateMessage( "error", "Configuration file " + configurationFile.getName()
-              + " update failed: " + e.getMessage() ) );
-            EventUtils.post( environment, "ERROR",
-                             "Configuration file " + configurationFile.getName() + " update failed: "
-                               + e.getMessage() );
-            throw new UpdateException( "Configuration file " + configurationFile.getName() + " update failed", e );
-          }
-          else
-          {
-            LOGGER.warn( "Configuration file {} update failed", configurationFile.getName(), e );
-            updateLog.addUpdateMessage( new UpdateMessage( "warn", "Configuration file " + configurationFile.getName()
-              + " update failed: " + e.getMessage() ) );
-            updateLog.addUpdateMessage( new UpdateMessage( "info", "Configuration file " + configurationFile.getName()
-              + " is not an update blocker, update continues" ) );
-            EventUtils.post( environment, "WARN",
-                             "Configuration file " + configurationFile.getName() + " update failed: "
-                               + e.getMessage() );
-            EventUtils.post( environment, "UPDATE", "Configuration file " + configurationFile.getName()
-              + " is not an update blocker, update continues" );
-          }
-        }
-      }
-
-      // database update
-      if ( item instanceof Database )
-      {
-        Database database = (Database) item;
-        try
-        {
-          SoftwareUpdater.updateDatabase( environment, software, database, updateLog );
-        }
-        catch ( Exception e )
-        {
-          if ( database.isBlocker() )
-          {
-            LOGGER.error( "Database {} update failed", database.getName(), e );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "error", "Database " + database.getName() + " update failed: " + e.getMessage() ) );
-            EventUtils.post( environment, "ERROR",
-                             "Database " + database.getName() + " update failed: " + e.getMessage() );
-            throw new UpdateException( "Database " + database.getName() + " update failed", e );
-          }
-          else
-          {
-            LOGGER.warn( "Database {} update failed", database.getName(), e );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "warn", "Database " + database.getName() + " update failed: " + e.getMessage() ) );
-            updateLog.addUpdateMessage( new UpdateMessage( "info", "Database " + database.getName()
-              + " is not an update blocker, update continues" ) );
-            EventUtils.post( environment, "WARN",
-                             "Database " + database.getName() + " update failed: " + e.getMessage() );
-            EventUtils.post( environment, "UPDATE",
-                             "Database " + database.getName() + " is not an update blocker, update continues" );
-          }
-        }
-      }
-    }
-  }
-
-  /**
-   * Wrapper method to update a software (via WebService).
-   *
-   * @param environmentName the target environment name.
-   * @param softwareName    the target software name.
-   * @param delegation      flag indicating if the update is a delegation from another agent (true), or a client call (false).
-   */
-  public static void update( String environmentName, String softwareName, boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Software {} update requested by WS", softwareName );
-
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    Software software = environment.getSoftware( softwareName );
-    if ( software == null )
-    {
-      LOGGER.error( "Software {} is not found in environment {}", softwareName, environment.getName() );
-      throw new KalumetException(
-        "Software " + softwareName + " is not found in environment " + environment.getName() );
-    }
-
-    LOGGER.debug( "Creating an update log" );
-    UpdateLog updateLog =
-      new UpdateLog( "Software " + software.getName() + " update in progress ...", environment.getName(), environment );
-    EventUtils.post( environment, "UPDATE", "Software " + software.getName() + " update requested by WS" );
-
-    if ( !delegation )
-    {
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Send a notification and waiting for the count down" ) );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-    try
-    {
-      LOGGER.debug( "Call the software updater" );
-      SoftwareUpdater.update( environment, software, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Software {} update failed", software.getName(), e );
-      EventUtils.post( environment, "ERROR", "Software " + software.getName() + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "Software " + software.getName() + " update failed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "error", "Software " + software.getName() + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new KalumetException( "Software " + software.getName() + " update failed", e );
-    }
-
-    LOGGER.info( "Software {} updated", software.getName() );
-    EventUtils.post( environment, "UPDATE", "Software " + software.getName() + " updated" );
-    if ( !delegation )
-    {
-      LOGGER.debug( "The update is a client call, publish result" );
-      EventUtils.post( environment, "UPDATE", "Update completed" );
-      if ( updateLog.isUpdated() )
-      {
-        updateLog.setStatus( "Software " + software.getName() + " updated" );
-      }
-      else
-      {
-        updateLog.setStatus( "Software " + software.getName() + " already up to date" );
-      }
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Update completed" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-  /**
-   * Execute a software command.
-   *
-   * @param environment the target environment.
-   * @param software    the target software.
-   * @param command     the target command.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   * @throws UpdateException in case of error during the command execution.
-   */
-  public static void executeCommand( Environment environment, Software software, Command command, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Executing software {} command {}", software.getName(), command.getName() );
-
-    if ( !command.isActive() )
-    {
-      LOGGER.info( "Software {} command {} is inactive, so not executed", software.getName(), command.getName() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Software " + software.getName() + " command " + command.getName()
-                                                       + " is inactive, so not executed" ) );
-      EventUtils.post( environment, "UPDATE", "Software " + software.getName() + " command " + command.getName()
-        + " is inactive, so not executed" );
-      return;
-    }
-
-    if ( command.getAgent() != null && command.getAgent().trim().length() > 0 && !command.getAgent().equals(
-      Configuration.AGENT_ID ) )
-    {
-      // delegates the command execution to another agent
-      LOGGER.info( "Delegating command {} execution to agent {}", command.getName(), command.getAgent() );
-      Agent agentDelegation = Configuration.CONFIG_CACHE.getAgent( command.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Delegating command " + command.getName() + " execution to agent "
-                                                       + command.getAgent() ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating command " + command.getName() + " execution to agent " + command );
-      if ( agentDelegation == null )
-      {
-        LOGGER.error( "Agent {} is not found in the configuration", command.getAgent() );
-        throw new UpdateException( "Agent " + command.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        LOGGER.debug( "Call software WS" );
-        SoftwareClient client = new SoftwareClient( agentDelegation.getHostname(), agentDelegation.getPort() );
-        client.executeCommand( environment.getName(), software.getName(), command.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "Command {} execution failed", command.getName(), clientException );
-        throw new UpdateException(
-          "Command " + command.getName() + " execution failed: " + clientException.getMessage(), clientException );
-      }
-      return;
-    }
-
-    String commandExec = VariableUtils.replace( command.getCommand(), environment.getVariables() );
-    String output = null;
-    try
-    {
-      output = CommandUtils.execute( commandExec );
-    }
-    catch ( KalumetException kalumetException )
-    {
-      LOGGER.error( "Command {} execution failed", command.getName(), kalumetException );
-      throw new UpdateException( "Command " + command.getName() + " execution failed", kalumetException );
-    }
-
-    LOGGER.info( "Software {} command {} executed: {}", new Object[]{ software.getName(), command.getName(), output } );
-    // add an update message
-    updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                   "Software " + software.getName() + " command " + command.getName()
-                                                     + " executed: " + output ) );
-    // post an event
-    EventUtils.post( environment, "UPDATE",
-                     "Software " + software.getName() + " command " + command.getName() + " executed: " + output );
-  }
-
-  /**
-   * Wrapper method to execute a software command (via WS).
-   *
-   * @param environmentName the target environment name.
-   * @param softwareName    the target software name.
-   * @param commandName     the target command name.
-   * @param delegation      flag indicating if the execution is a delegation from another agent (true), or a client call (false).
-   */
-  public static void executeCommand( String environmentName, String softwareName, String commandName,
-                                     boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Software {} command {} execution requested by WS", softwareName, commandName );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    Software software = environment.getSoftware( softwareName );
-    if ( software == null )
-    {
-      LOGGER.error( "Software {} is not found in environment {}", softwareName, environmentName );
-      throw new KalumetException( "Software " + softwareName + " is not found in environment " + environmentName );
-    }
-    Command command = software.getCommand( commandName );
-    if ( command == null )
-    {
-      LOGGER.error( "Command {} is not found in software {}", commandName, softwareName );
-      throw new KalumetException( "Command " + commandName + " is not found in software " + softwareName );
-    }
-    // update the agent configuration cache
-    LOGGER.debug( "Updating agent configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-    // post a journal event
-    EventUtils.post( environment, "UPDATE",
-                     "Software " + softwareName + " command " + commandName + " execution requested by WS" );
-    // create an update logger
-    UpdateLog updateLog =
-      new UpdateLog( "Software " + softwareName + " command " + commandName + " execution in progress ...",
-                     environment.getName(), environment );
-    if ( !delegation )
-    {
-      // the call is not a delegation from another agent
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-    try
-    {
-      // call the updater
-      LOGGER.debug( "Call the software updater" );
-      SoftwareUpdater.executeCommand( environment, software, command, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Command {} execution failed", command.getName(), e );
-      EventUtils.post( environment, "ERROR", "Command " + command.getName() + " execution failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "Command " + command.getName() + " execution failed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "error", "Command " + command.getName() + " execution failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "Command " + command.getName() + " execution failed", e );
-    }
-
-    // command execution is completed
-    LOGGER.info( "Command {} has been executed successfully", command.getName() );
-    EventUtils.post( environment, "UPDATE", "Command " + command.getName() + " has been executed successfully" );
-    if ( !delegation )
-    {
-      updateLog.setStatus( "Command " + command.getName() + " has been executed successfully" );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Command " + command.getName() + " has been executed successfully" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-  /**
-   * Wrapper method to update a location (via WS).
-   *
-   * @param environmentName the target environment name.
-   * @param softwareName    the target software name.
-   * @param locationName    the target location name.
-   * @param delegation      true if the call is performed by another agent, false else.
-   * @throws UpdateException in case of location update failure.
-   */
-  public static void updateLocation( String environmentName, String softwareName, String locationName,
-                                     boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Software {} location {} update requested by WS", softwareName, locationName );
-
-    // loading configuration
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    Software software = environment.getSoftware( softwareName );
-    if ( software == null )
-    {
-      LOGGER.error( "Software {} is not found in environment {}", softwareName, environmentName );
-      throw new KalumetException( "Software " + softwareName + " is not found in environment " + environmentName );
-    }
-    Location location = software.getLocation( locationName );
-    if ( location == null )
-    {
-      LOGGER.error( "Location {} is not found in software {}", locationName, softwareName );
-      throw new KalumetException( "Location " + locationName + " is not found in software " + softwareName );
-    }
-
-    // update configuration cache
-    LOGGER.debug( "Updating configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    // post journal event
-    EventUtils.post( environment, "UPDATE",
-                     "Software " + software.getName() + " location " + location.getName() + " update requested by WS" );
-    // create an update logger
-    UpdateLog updateLog =
-      new UpdateLog( "Software " + software.getName() + " location " + location.getName() + " update in progress ....",
-                     environment.getName(), environment );
-
-    if ( !delegation )
-    {
-      // the call is not a delegation from another agent, it's an atomic update
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-    try
-    {
-      // call software updater
-      LOGGER.debug( "Call software updater" );
-      SoftwareUpdater.updateLocation( environment, software, location, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Location {} update failed", location.getName(), e );
-      EventUtils.post( environment, "ERROR", "Location " + location.getName() + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "Location " + locationName + " update failed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "error", "Location " + locationName + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "Location " + location.getName() + " update failed", e );
-    }
-
-    // location updated
-    LOGGER.info( "Location {} updated", location.getName() );
-    EventUtils.post( environment, "UPDATE", "Location " + location.getName() + " updated" );
-    if ( !delegation )
-    {
-      updateLog.setStatus( "Location " + location.getName() + " updated" );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Location " + location.getName() + " updated" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-  /**
-   * Updates an <code>Software</code> <code>Location</code>.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param software    the target <code>Software</code>.
-   * @param location    the target <code>Location</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   * @throws UpdateException in case of error during the location update.
-   */
-  public static void updateLocation( Environment environment, Software software, Location location,
-                                     UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating software {} location {}", software.getName(), location.getName() );
-
-    if ( !location.isActive() )
-    {
-      LOGGER.info( "Software {} location {} is inactive, so not updated", software.getName(), location.getName() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Software " + software.getName() + " location "
-        + location.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE", "Software " + software.getName() + " location " + location.getName()
-        + "is inactive, so not updated" );
-      return;
-    }
-
-    if ( location.getAgent() != null && location.getAgent().trim().length() > 0 && !location.getAgent().equals(
-      Configuration.AGENT_ID ) )
-    {
-      // delegates the location update to another agent
-      LOGGER.info( "Delegating location {} update to agent {}", location.getName(), location.getAgent() );
-      Agent agentDelegation = Configuration.CONFIG_CACHE.getAgent( location.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Delegating location " + location.getName() + " update to agent "
-                                                       + location.getAgent() ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating location " + location.getName() + " update to agent " + location.getAgent() );
-      if ( agentDelegation == null )
-      {
-        LOGGER.error( "Agent {} is not found in the configuration", location.getAgent() );
-        throw new UpdateException( "Agent " + location.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        // call the WebService
-        LOGGER.debug( "Call software WS" );
-        SoftwareClient client = new SoftwareClient( agentDelegation.getHostname(), agentDelegation.getPort() );
-        client.updateLocation( environment.getName(), software.getName(), location.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "Location {} update failed", location.getName(), clientException );
-        throw new UpdateException( "Location " + location.getName() + " update failed: " + clientException.getMessage(),
-                                   clientException );
-      }
-      return;
-    }
-
-    // constructs the location URI
-    String locationUri = VariableUtils.replace( location.getUri(), environment.getVariables() );
-    if ( !FileManipulator.protocolExists( locationUri ) )
-    {
-      LOGGER.debug( "The location URI is relative to the software URI" );
-      locationUri =
-        FileManipulator.format( VariableUtils.replace( software.getUri(), environment.getVariables() ) ) + "!/"
-          + locationUri;
-    }
-    // constructs the location destination path
-    String locationPath = VariableUtils.replace( location.getPath(), environment.getVariables() );
-    // get a file manipulator
-    FileManipulator fileManipulator = null;
-    try
-    {
-      fileManipulator = new FileManipulator();
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't initialize file manipulator", fileManipulatorException );
-      throw new UpdateException( "Can't initialize file manipulator", fileManipulatorException );
-    }
-    try
-    {
-      LOGGER.debug( "Copying {} to {}", locationUri, locationPath );
-      fileManipulator.copy( locationUri, locationPath );
-      updateLog.setUpdated( true );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Location {} update failed", location.getName(), fileManipulatorException );
-      throw new UpdateException( "Location " + location.getName() + " update failed", fileManipulatorException );
-    }
-    LOGGER.info( "Software {} location {} updated", software.getName(), location.getName() );
-    updateLog.addUpdateMessage(
-      new UpdateMessage( "info", "Software " + software.getName() + " location " + location.getName() + " updated" ) );
-    EventUtils.post( environment, "UPDATE",
-                     "Software " + software.getName() + " location " + location.getName() + " updated" );
-  }
-
-  /**
-   * Wrapper method to update a configuration file (via WS).
-   *
-   * @param environmentName       the target environment name.
-   * @param softwareName          the target software name.
-   * @param configurationFileName the target configuration file name.
-   * @param delegation            true if the call is made by another agent (delegation), false if the call is made by a client.
-   * @throws KalumetException in case of update failure.
-   */
-  public static void updateConfigurationFile( String environmentName, String softwareName, String configurationFileName,
-                                              boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Software {} configuration file {} update requested by WS", softwareName, configurationFileName );
-
-    // loading configuration
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    Software software = environment.getSoftware( softwareName );
-    if ( software == null )
-    {
-      LOGGER.error( "Software {} is not found in environment {}", softwareName, environmentName );
-      throw new KalumetException( "Software " + softwareName + " is not found in environment " + environmentName );
-    }
-    ConfigurationFile configurationFile = software.getConfigurationFile( configurationFileName );
-    if ( configurationFile == null )
-    {
-      LOGGER.error( "Configuration file {} is not found in software {}", configurationFileName, softwareName );
-      throw new KalumetException(
-        "Configuration file " + configurationFileName + " is not found in software " + softwareName );
-    }
-
-    // update agent configuration cache
-    LOGGER.debug( "Updating agent configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    // post journal event
-    EventUtils.post( environment, "UPDATE",
-                     "Software " + software.getName() + " configuration file " + configurationFile.getName()
-                       + " update requested by WS" );
-    // create update log
-    UpdateLog updateLog = new UpdateLog(
-      "Software " + software.getName() + " configuration file " + configurationFile.getName()
-        + " update in progress ...", environment.getName(), environment );
-
-    if ( !delegation )
-    {
-      // the update is not call by another agent, it's an atomic update
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-
-    try
-    {
-      // call software updater
-      LOGGER.debug( "Call software updater" );
-      SoftwareUpdater.updateConfigurationFile( environment, software, configurationFile, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Configuration file {} update failed", configurationFile.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "Configuration file " + configurationFile.getName() + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "Configuration file " + configurationFile.getName() + " update failed" );
-        updateLog.addUpdateMessage( new UpdateMessage( "error", "Configuration file " + configurationFile.getName()
-          + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "Configuration file " + configurationFile.getName() + " update failed", e );
-    }
-
-    // configuration file updated
-    LOGGER.info( "Configuration file {} updated", configurationFile.getName() );
-    EventUtils.post( environment, "UPDATE", "Configuration file " + configurationFile.getName() + " updated" );
-    if ( !delegation )
-    {
-      updateLog.setStatus( "Configuration file " + configurationFile.getName() + " updated" );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "Configuration file " + configurationFile.getName() + " updated" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-  /**
-   * Update an <code>Software</code> <code>ConfigurationFile</code>.
-   *
-   * @param environment       the target <code>Environment</code>.
-   * @param software          the target <code>Software</code>.
-   * @param configurationFile the target <code>ConfigurationFile</code>.
-   * @param updateLog         the <code>UpdateLog</code> to use.
-   * @throws UpdateException in case of error during the configuration file update.
-   */
-  public static void updateConfigurationFile( Environment environment, Software software,
-                                              ConfigurationFile configurationFile, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Updating software {} configuration file {}", software.getName(), configurationFile.getName() );
-
-    if ( !configurationFile.isActive() )
-    {
-      LOGGER.info( "Software {} configuration file {} is inactive, so not updated", software.getName(),
-                   configurationFile.getName() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Software " + software.getName() + " configuration file "
-        + configurationFile.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Software " + software.getName() + " configuration file " + configurationFile.getName()
-                         + " is inactive, so not updated" );
-      return;
-    }
-
-    if ( configurationFile.getAgent() != null && configurationFile.getAgent().trim().length() > 0
-      && !configurationFile.getAgent().equals( Configuration.AGENT_ID ) )
-    {
-      // delegates configuration file update to another agent
-      LOGGER.info( "Delegating configuration file {} update to agent {}", configurationFile.getName(),
-                   configurationFile.getAgent() );
-      Agent agentDelegation = Configuration.CONFIG_CACHE.getAgent( configurationFile.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Delegating configuration file " + configurationFile.getName()
-                                                       + " update to agent " + configurationFile.getAgent() ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating configuration file " + configurationFile.getName() + " update to agent "
-                         + configurationFile.getAgent() );
-      if ( agentDelegation == null )
-      {
-        LOGGER.error( "Agent {} is not found in the configuration", configurationFile.getAgent() );
-        throw new UpdateException( "Agent " + configurationFile.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        // call WS
-        LOGGER.debug( "Call software WS" );
-        SoftwareClient client = new SoftwareClient( agentDelegation.getHostname(), agentDelegation.getPort() );
-        client.updateConfigurationFile( environment.getName(), software.getName(), configurationFile.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "Configuration file {} update failed", configurationFile.getName(), clientException );
-        throw new UpdateException( "Configuration file " + configurationFile.getName() + " update failed",
-                                   clientException );
-      }
-      return;
-    }
-
-    // defines the configuration file URI
-    LOGGER.debug( "Getting configuration file URI" );
-    String configurationFileUri = VariableUtils.replace( configurationFile.getUri(), environment.getVariables() );
-    if ( !FileManipulator.protocolExists( configurationFileUri ) )
-    {
-      LOGGER.debug( "The configuration file URI is relative to the software URI" );
-      configurationFileUri =
-        FileManipulator.format( VariableUtils.replace( software.getUri(), environment.getVariables() ) ) + "!/"
-          + configurationFileUri;
-    }
-
-    // defines the software cache directory
-    LOGGER.debug( "Getting software cache directory" );
-    String softwareCacheDir = null;
-    try
-    {
-      softwareCacheDir = FileManipulator.createSoftwareCacheDir( environment, software );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't initialize software cache directory", fileManipulatorException );
-      throw new UpdateException( "Can't initialize software cache directory", fileManipulatorException );
-    }
-
-    // initializes file manipulator
-    LOGGER.debug( "Initializing file manipulator" );
-    FileManipulator fileManipulator = null;
-    try
-    {
-      fileManipulator = new FileManipulator();
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't initialize file manipulator", fileManipulatorException );
-      throw new UpdateException( "Can't initialize file manipulator", fileManipulatorException );
-    }
-
-    // copy configuration file into cache
-    String configurationFileCacheLocation = softwareCacheDir + "/config/" + configurationFile.getName();
-    LOGGER.debug( "Copying configuration file {} into cache", configurationFile.getName() );
-    try
-    {
-      fileManipulator.copy( configurationFileUri, configurationFileCacheLocation );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't copy configuration file {} into cache", configurationFile.getName(),
-                    fileManipulatorException );
-      throw new UpdateException( "Can't copy configuration file " + configurationFile.getName() + " into cache",
-                                 fileManipulatorException );
-    }
-
-    // change mappings into the configuration file cache
-    LOGGER.debug( "Replacing mappings key/value" );
-    for ( Iterator mappingIterator = configurationFile.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      FileManipulator.searchAndReplace( mapping.getKey(),
-                                        VariableUtils.replace( mapping.getValue(), environment.getVariables() ),
-                                        configurationFileCacheLocation );
-    }
-
-    // compare configuration file cache with target
-    LOGGER.debug( "Comparing the configuration file cache with the target location" );
-    String configurationFileDestinationPath =
-      VariableUtils.replace( configurationFile.getPath(), environment.getVariables() );
-    try
-    {
-      if ( !fileManipulator.contentEquals( configurationFileCacheLocation, configurationFileDestinationPath ) )
-      {
-        // the configuration file needs to be updated
-        LOGGER.debug( "Configuration file {} needs to be updated", configurationFile.getName() );
-        fileManipulator.copy( configurationFileCacheLocation, configurationFileDestinationPath );
-        updateLog.setStatus( "UPDATE PERFORMED" );
-        updateLog.setUpdated( true );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "info", "Configuration file " + configurationFile.getName() + " updated" ) );
-        EventUtils.post( environment, "UPDATE", "Configuration file " + configurationFile.getName() + " updated" );
-        LOGGER.info( "Configuration file {} updated", configurationFile.getName() );
-      }
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Configuration file {} update failed", configurationFile.getName(), fileManipulatorException );
-      throw new UpdateException( "Configuration file " + configurationFile.getName() + " update failed: "
-                                   + fileManipulatorException.getMessage(), fileManipulatorException );
-    }
-  }
-
-  /**
-   * Wrapper method to update a software database (via WS).
-   *
-   * @param environmentName the target environment name.
-   * @param softwareName    the target software name.
-   * @param databaseName    the target database name.
-   * @param delegation      true if the call is made by another agent (delegation), false if the call is made by a client.
-   * @throws KalumetException in case of update failure.
-   */
-  public static void updateDatabase( String environmentName, String softwareName, String databaseName,
-                                     boolean delegation )
-    throws KalumetException
-  {
-    LOGGER.info( "Software {} database {} update requested by WS", softwareName, databaseName );
-
-    // load configuration
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    Software software = environment.getSoftware( softwareName );
-    if ( software == null )
-    {
-      LOGGER.error( "Software {} is not found in environment {}", softwareName, environmentName );
-      throw new KalumetException( "Software " + softwareName + " is not found in environment " + environmentName );
-    }
-    Database database = software.getDatabase( databaseName );
-    if ( database == null )
-    {
-      LOGGER.error( "Database {} is not found in software {}", databaseName, softwareName );
-      throw new KalumetException( "Database " + databaseName + " is not found in software " + softwareName );
-    }
-
-    // updating configuration cache
-    LOGGER.debug( "Updating configuration cache" );
-    Configuration.CONFIG_CACHE = kalumet;
-
-    // post journal event
-    EventUtils.post( environment, "UPDATE",
-                     "Software " + software.getName() + " database " + database.getName() + " update requested by WS" );
-    // create update log
-    UpdateLog updateLog =
-      new UpdateLog( "Software " + software.getName() + " database " + database.getName() + " update in progress ...",
-                     environment.getName(), environment );
-
-    if ( !delegation )
-    {
-      // the call is not a delegation from another agent, it's an atomic update
-      LOGGER.info( "Send a notification and waiting for the count down" );
-      EventUtils.post( environment, "UPDATE", "Send a notification and waiting for the count down" );
-      NotifierUtils.waitAndNotify( environment );
-    }
-
-    try
-    {
-      // call software updater
-      LOGGER.debug( "Call software updater" );
-      SoftwareUpdater.updateDatabase( environment, software, database, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Database {} update failed", database.getName(), e );
-      EventUtils.post( environment, "ERROR", "Database " + database.getName() + " update failed: " + e.getMessage() );
-      if ( !delegation )
-      {
-        updateLog.setStatus( "Database " + database.getName() + " update failed" );
-        updateLog.addUpdateMessage(
-          new UpdateMessage( "error", "Database " + database.getName() + " update failed: " + e.getMessage() ) );
-        PublisherUtils.publish( environment );
-      }
-      throw new UpdateException( "Database " + database.getName() + " update failed", e );
-    }
-
-    // database updated
-    LOGGER.info( "Database {} updated", database.getName() );
-    EventUtils.post( environment, "UPDATE", "Database " + database.getName() + " updated" );
-    if ( !delegation )
-    {
-      updateLog.setStatus( "Database " + database.getName() + " updated" );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Database " + database.getName() + " updated" ) );
-      LOGGER.info( "Publishing update report" );
-      PublisherUtils.publish( environment );
-    }
-  }
-
-  /**
-   * Update a software database.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param software    the target <code>Software</code>.
-   * @param database    the target <code>Database</code>.
-   * @param updateLog   the update logger to use.
-   */
-  public static void updateDatabase( Environment environment, Software software, Database database,
-                                     UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Update software {} database {}", software.getName(), database.getName() );
-
-    if ( !database.isActive() )
-    {
-      LOGGER.info( "Software {} database {} (environment {}) is inactive, so not updated",
-                   new Object[]{ software.getName(), database.getName(), environment.getName() } );
-      updateLog.addUpdateMessage( new UpdateMessage( "info", "Software " + software.getName() + " database "
-        + database.getName() + " is inactive, so not updated" ) );
-      EventUtils.post( environment, "UPDATE", "Software " + software.getName() + " database " + database.getName()
-        + " is inactive, so not updated" );
-      return;
-    }
-
-    if ( database.getAgent() != null && database.getAgent().trim().length() > 0 && !database.getAgent().equals(
-      Configuration.AGENT_ID ) )
-    {
-      // the database update is delegated to another agent
-      LOGGER.info( "Delegating software {} database {} update to agent {}",
-                   new Object[]{ software.getName(), database.getName(), database.getAgent() } );
-      Agent delegationAgent = Configuration.CONFIG_CACHE.getAgent( database.getAgent() );
-      updateLog.addUpdateMessage( new UpdateMessage( "info",
-                                                     "Delegating database " + database.getName() + " update to agent "
-                                                       + database.getAgent() ) );
-      EventUtils.post( environment, "UPDATE",
-                       "Delegating database " + database.getName() + " update to agent " + database.getAgent() );
-      if ( delegationAgent == null )
-      {
-        // the database agent is not found in the configuration
-        LOGGER.error( "Agent {} is not found in the configuration", database.getAgent() );
-        throw new UpdateException( "Agent " + database.getAgent() + " is not found in the configuration" );
-      }
-      try
-      {
-        // call the WebService
-        LOGGER.debug( "Call software WS" );
-        SoftwareClient client = new SoftwareClient( delegationAgent.getHostname(), delegationAgent.getPort() );
-        client.updateDatabase( environment.getName(), software.getName(), database.getName(), true );
-      }
-      catch ( ClientException clientException )
-      {
-        LOGGER.error( "Database {} update failed", database.getName(), clientException );
-        throw new UpdateException( "Database " + database.getName() + " update failed", clientException );
-      }
-      return;
-    }
-
-    // launch SQL scripts of the database
-    LOGGER.debug( "Executing SQL scripts" );
-    for ( Iterator sqlScriptIterator = database.getSqlScripts().iterator(); sqlScriptIterator.hasNext(); )
-    {
-      SqlScript sqlScript = (SqlScript) sqlScriptIterator.next();
-      try
-      {
-        SoftwareUpdater.executeSqlScript( environment, software, database, sqlScript, updateLog );
-      }
-      catch ( UpdateException updateException )
-      {
-        // SQL script execution has failed
-        if ( sqlScript.isBlocker() )
-        {
-          // the SQL script is update blocker
-          LOGGER.error( "SQL script {} execution failed", updateException );
-          throw new UpdateException( "SQL script " + sqlScript.getName() + " execution failed", updateException );
-        }
-        else
-        {
-          // the SQL script is not update blocker
-          LOGGER.warn( "SQL script {} execution failed", updateException );
-          updateLog.addUpdateMessage( new UpdateMessage( "warn",
-                                                         "SQL script " + sqlScript.getName() + " execution failed: "
-                                                           + updateException.getMessage() ) );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "SQL script " + sqlScript.getName()
-            + " is not update blocker, update continues" ) );
-          EventUtils.post( environment, "WARN",
-                           "SQL script " + sqlScript.getName() + " execution failed: " + updateException.getMessage() );
-          EventUtils.post( environment, "UPDATE",
-                           "SQL script " + sqlScript.getName() + " is not update blocker, update continues" );
-        }
-      }
-    }
-  }
-
-  /**
-   * Executes SQL script.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param software    the target <code>Software</code>.
-   * @param database    the target <code>Database</code>.
-   * @param sqlScript   the target <code>SqlScript</code>.
-   * @param updateLog   the update log to use.
-   * @throws UpdateException in case of error during the SQL script execution.
-   */
-  public static void executeSqlScript( Environment environment, Software software, Database database,
-                                       SqlScript sqlScript, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Executing SQL script {}", sqlScript.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Executing SQL script " + sqlScript.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Executing SQL script " + sqlScript.getName() );
-
-    if ( !sqlScript.isActive() )
-    {
-      // the SQL script is not active
-      LOGGER.info( "SQL script {} is inactive, so not executed", sqlScript.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "SQL script " + sqlScript.getName() + " is inactive, so not executed" ) );
-      EventUtils.post( environment, "UPDATE", "SQL script " + sqlScript.getName() + " is inactive, so not executed" );
-      return;
-    }
-
-    // construct the SQL script URI
-    String sqlScriptUri = VariableUtils.replace( sqlScript.getUri(), environment.getVariables() );
-    if ( !FileManipulator.protocolExists( sqlScriptUri ) )
-    {
-      // the SQL script URI is relative, constructs using the software URI
-      LOGGER.debug( "The SQL script URI is relative to the software URI" );
-      sqlScriptUri =
-        FileManipulator.format( VariableUtils.replace( software.getUri(), environment.getVariables() ) ) + "!/"
-          + sqlScriptUri;
-    }
-
-    // get the cache directory
-    LOGGER.debug( "Getting software cache directory" );
-    String softwareCacheDir = null;
-    try
-    {
-      softwareCacheDir = FileManipulator.createSoftwareCacheDir( environment, software );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't initialize software cache directory", fileManipulatorException );
-      throw new UpdateException( "Can't initialize software cache directory", fileManipulatorException );
-    }
-
-    // get file manipulator instance
-    LOGGER.debug( "Initializing file manipulator" );
-    FileManipulator fileManipulator = null;
-    try
-    {
-      fileManipulator = new FileManipulator();
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't initialize file manipulator", fileManipulatorException );
-      throw new UpdateException( "Can't initialize file manipulator", fileManipulatorException );
-    }
-
-    // copy the SQL script into the software cache directory
-    LOGGER.debug( "Copying the SQL script into the software cache directory" );
-    String sqlScriptCache = softwareCacheDir + "/sql/" + sqlScript.getName() + ".cache";
-    String sqlScriptRuntime = softwareCacheDir + "/sql/" + sqlScript.getName();
-    try
-    {
-      fileManipulator.copy( sqlScriptUri, sqlScriptCache );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't copy SQL script from {} to {}", new Object[]{ sqlScriptUri, sqlScriptCache },
-                    fileManipulatorException );
-      throw new UpdateException( "Can't copy SQL script " + sqlScriptUri + " to " + sqlScriptCache,
-                                 fileManipulatorException );
-    }
-
-    if ( fileManipulator.isFolder( sqlScriptCache ) )
-    {
-      // TODO add a generic method to reuse in the case of directory
-
-      // the user provided a directory
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", sqlScript.getName() + "is a folder, iterate in the SQL scripts" ) );
-      EventUtils.post( environment, "UPDATE", sqlScript.getName() + " is a folder, iterate in the SQL scripts" );
-      LOGGER.info( "{} is a folder, iterate in the SQL scripts", sqlScript.getName() );
-      FileObject[] children = fileManipulator.browse( sqlScriptCache );
-      for ( int i = 0; i < children.length; i++ )
-      {
-        FileObject current = children[i];
-        String name = current.getName().getBaseName();
-        String singleSqlScriptCache = sqlScriptCache + "/" + name;
-        String singleSqlScriptRuntime = sqlScriptRuntime + "/" + name;
-        // change mappings in the current SQL script
-        for ( Iterator mappingIterator = sqlScript.getMappings().iterator(); mappingIterator.hasNext(); )
-        {
-          Mapping mapping = (Mapping) mappingIterator.next();
-          FileManipulator.searchAndReplace( mapping.getKey(),
-                                            VariableUtils.replace( mapping.getValue(), environment.getVariables() ),
-                                            singleSqlScriptCache );
-        }
-        try
-        {
-          if ( sqlScript.isForce() || ( !fileManipulator.contentEquals( singleSqlScriptCache,
-                                                                        singleSqlScriptRuntime ) ) )
-          {
-            fileManipulator.copy( singleSqlScriptCache, singleSqlScriptRuntime );
-
-            if ( database.getSqlCommand() != null && database.getSqlCommand().trim().length() > 0 )
-            {
-              // execute SQL script using system command
-              String command = VariableUtils.replace( database.getSqlCommand(), environment.getVariables() );
-              String output = SqlScriptUtils.executeUsingCommand( singleSqlScriptRuntime, command );
-              updateLog.addUpdateMessage( new UpdateMessage( "info", "SQL script " + name + " executed: " + output ) );
-              EventUtils.post( environment, "UPDATE", "SQL script " + name + " executed: " + output );
-              LOGGER.info( "SQL script {} executed succesfully", name );
-            }
-            else
-            {
-              // execute SQL script using JDBC
-              String user = null;
-              String password = null;
-              String driver = null;
-              String url = null;
-              if ( database.getConnectionPool() != null && database.getConnectionPool().trim().length() > 0 )
-              {
-                // the database is linked to a connection pool
-                // looking for the connection pool (from the cache)
-                LOGGER.debug( "Database has a reference to a connection pool" );
-                // looking for the connection pool definition
-                String connectionPoolName =
-                  VariableUtils.replace( database.getConnectionPool(), environment.getVariables() );
-                JDBCConnectionPool connectionPool = null;
-                for ( Iterator applicationServerIterator =
-                        environment.getJEEApplicationServers().getJEEApplicationServers().iterator();
-                      applicationServerIterator.hasNext(); )
-                {
-                  JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-                  connectionPool = applicationServer.getJDBCConnectionPool( connectionPoolName );
-                  if ( connectionPool != null )
-                  {
-                    break;
-                  }
-                }
-                if ( connectionPool == null )
-                {
-                  LOGGER.error( "JDBC connection pool {} is not found in any JEE application servers",
-                                connectionPoolName );
-                  throw new UpdateException(
-                    "JDBC connection pool " + connectionPoolName + " is not found in any JEE application servers" );
-                }
-                user = VariableUtils.replace( connectionPool.getUser(), environment.getVariables() );
-                password = VariableUtils.replace( connectionPool.getPassword(), environment.getVariables() );
-                driver = VariableUtils.replace( connectionPool.getDriver(), environment.getVariables() );
-                url = VariableUtils.replace( connectionPool.getUrl(), environment.getVariables() );
-              }
-              else
-              {
-                // use the database connection data
-                user = VariableUtils.replace( database.getUser(), environment.getVariables() );
-                password = VariableUtils.replace( database.getPassword(), environment.getVariables() );
-                driver = VariableUtils.replace( database.getDriver(), environment.getVariables() );
-                url = VariableUtils.replace( database.getJdbcurl(), environment.getVariables() );
-              }
-              // execute SQL script using JDBC
-              SqlScriptUtils.executeUsingJdbc( singleSqlScriptRuntime, driver, user, password, url );
-            }
-            // add message
-            updateLog.setStatus( "Update performed" );
-            updateLog.setUpdated( true );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "info", "SQL script " + sqlScript.getName() + " executed" ) );
-            EventUtils.post( environment, "UPDATE", "SQL script " + sqlScript.getName() + " executed" );
-            LOGGER.info( "SQL script " + sqlScript.getName() + " executed" );
-          }
-        }
-        catch ( Exception e )
-        {
-          // SQL script execution failed, delete the SQL script from the cache
-          try
-          {
-            fileManipulator.delete( sqlScriptRuntime );
-          }
-          catch ( FileManipulatorException fileManipulatorException )
-          {
-            LOGGER.warn( "Can't delete SQL script cache", fileManipulatorException );
-          }
-          LOGGER.error( "SQL script {} execution failed", sqlScript.getName(), e );
-          throw new UpdateException( "SQL script " + sqlScript.getName() + " execution failed", e );
-        }
-      }
-    }
-    else
-    {
-      // the user provided a single SQL script
-
-      // change mappings into the SQL script
-      LOGGER.debug( "Replacing mappings into the SQL script {}", sqlScript.getName() );
-      for ( Iterator mappingIterator = sqlScript.getMappings().iterator(); mappingIterator.hasNext(); )
-      {
-        Mapping mapping = (Mapping) mappingIterator.next();
-        FileManipulator.searchAndReplace( mapping.getKey(), mapping.getValue(), sqlScriptCache );
-      }
-
-      // compare the SQL script origin with the runtime one
-      try
-      {
-        if ( !fileManipulator.contentEquals( sqlScriptCache, sqlScriptRuntime ) )
-        {
-          // the SQL script needs to be executed
-          LOGGER.debug( "The SQL script {} needs to be executed", sqlScript.getName() );
-          // copy the SQL script cache to the runtime
-          LOGGER.debug( "Copy the SQL script cache to the runtime" );
-          fileManipulator.copy( sqlScriptCache, sqlScriptRuntime );
-          if ( database.getSqlCommand() != null && database.getSqlCommand().trim().length() > 0 )
-          {
-            // execute the SQL script using a command
-            LOGGER.info( "Executing the SQL script using a system command" );
-            String command = VariableUtils.replace( database.getSqlCommand(), environment.getVariables() );
-            String output = SqlScriptUtils.executeUsingCommand( sqlScriptRuntime, command );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "info", "SQL script " + sqlScript.getName() + " executed: " + output ) );
-            EventUtils.post( environment, "UPDATE", "SQL script " + sqlScript.getName() + " executed: " + output );
-            LOGGER.info( "SQL script {} executed successfully", sqlScript.getName() );
-          }
-          else
-          {
-            // execute SQL script using JDBC
-            LOGGER.info( "Executing SQL script using JDBC" );
-            String user = null;
-            String password = null;
-            String driver = null;
-            String url = null;
-            if ( database.getConnectionPool() != null && database.getConnectionPool().trim().length() > 0 )
-            {
-              // the database has a reference to an existing connection pool
-              LOGGER.debug( "Database has a reference to a connection pool" );
-              // looking for the connection pool definition
-              String connectionPoolName =
-                VariableUtils.replace( database.getConnectionPool(), environment.getVariables() );
-              JDBCConnectionPool connectionPool = null;
-              for ( Iterator applicationServerIterator =
-                      environment.getJEEApplicationServers().getJEEApplicationServers().iterator();
-                    applicationServerIterator.hasNext(); )
-              {
-                JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-                connectionPool = applicationServer.getJDBCConnectionPool( connectionPoolName );
-                if ( connectionPool != null )
-                {
-                  break;
-                }
-              }
-              if ( connectionPool == null )
-              {
-                LOGGER.error( "JDBC connection pool {} is not found in any JEE application servers",
-                              connectionPoolName );
-                throw new UpdateException(
-                  "JDBC connection pool " + connectionPoolName + " is not found in any JEE application servers" );
-              }
-              user = VariableUtils.replace( connectionPool.getUser(), environment.getVariables() );
-              password = VariableUtils.replace( connectionPool.getPassword(), environment.getVariables() );
-              driver = VariableUtils.replace( connectionPool.getDriver(), environment.getVariables() );
-              url = VariableUtils.replace( connectionPool.getUrl(), environment.getVariables() );
-            }
-            else
-            {
-              // use the database data
-              LOGGER.debug( "Use database data definition" );
-              user = VariableUtils.replace( database.getUser(), environment.getVariables() );
-              password = VariableUtils.replace( database.getPassword(), environment.getVariables() );
-              driver = VariableUtils.replace( database.getDriver(), environment.getVariables() );
-              url = VariableUtils.replace( database.getJdbcurl(), environment.getVariables() );
-            }
-            // execute SQL script
-            SqlScriptUtils.executeUsingJdbc( sqlScriptRuntime, driver, user, password, url );
-          }
-          // add log messages
-          updateLog.setStatus( "Update performed" );
-          updateLog.setUpdated( true );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "SQL script " + sqlScript.getName() + " executed" ) );
-          EventUtils.post( environment, "UPDATE", "SQL script " + sqlScript.getName() + " executed" );
-          LOGGER.info( "SQL script {} executed sucessfully", sqlScript.getName() );
-        }
-      }
-      catch ( Exception e )
-      {
-        // SQL script execution failed, delete SQL script from the cache
-        try
-        {
-          fileManipulator.delete( sqlScriptRuntime );
-        }
-        catch ( FileManipulatorException fileManipulatorException )
-        {
-          LOGGER.warn( "Can't delete SQL script cache", fileManipulatorException );
-        }
-        LOGGER.error( "SQL script {} execution failed", sqlScript.getName(), e );
-        throw new UpdateException( "SQL script " + sqlScript.getName() + " execution failed", e );
-      }
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SqlScriptUpdater.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SqlScriptUpdater.java
deleted file mode 100644
index 060d3f5..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/SqlScriptUpdater.java
+++ /dev/null
@@ -1,429 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.commons.vfs.FileObject;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.FileManipulatorException;
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.agent.utils.EventUtils;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.apache.kalumet.model.update.UpdateMessage;
-import org.apache.kalumet.utils.NotifierUtils;
-import org.apache.kalumet.utils.PublisherUtils;
-import org.apache.kalumet.utils.SqlScriptUtils;
-import org.apache.kalumet.utils.VariableUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.util.Iterator;
-
-/**
- * SQL script updater.
- */
-public class SqlScriptUpdater
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( SqlScriptUpdater.class );
-
-  /**
-   * Executes SQL script.
-   *
-   * @param environment the target <code>Environment</code>.
-   * @param server      the target <code>JEEApplicationServer</code>.
-   * @param application the target <code>JEEApplication</code>.
-   * @param database    the target <code>Database</code>.
-   * @param sqlScript   the target <code>SqlScript</code>.
-   * @param updateLog   the <code>UpdateLog</code> to use.
-   * @throws UpdateException in case of update failure.
-   */
-  public static void execute( Environment environment, JEEApplicationServer server, JEEApplication application,
-                              Database database, SqlScript sqlScript, UpdateLog updateLog )
-    throws UpdateException
-  {
-    LOGGER.info( "Executing SQL script {}", sqlScript.getName() );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "Executing SQL script " + sqlScript.getName() ) );
-    EventUtils.post( environment, "UPDATE", "Executing SQL script " + sqlScript.getName() );
-
-    if ( !sqlScript.isActive() )
-    {
-      // SQL script is not active
-      LOGGER.info( "SQL Script {} is inactive, so not executed", sqlScript.getName() );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", "SQL Script " + sqlScript.getName() + " is inactive, so not executed" ) );
-      EventUtils.post( environment, "UPDATE", "SQL Script " + sqlScript.getName() + " is inactive, so not executed" );
-      return;
-    }
-
-    // construct the SQL script URI
-    String sqlScriptUri = VariableUtils.replace( sqlScript.getUri(), environment.getVariables() );
-    if ( !FileManipulator.protocolExists( sqlScriptUri ) )
-    {
-      // the SQL script URI is relative , construct the SQL Script URI using
-      // the JEE Application URI
-      LOGGER.debug( "SQL Script URI is relative to JEE application URI" );
-      sqlScriptUri =
-        FileManipulator.format( VariableUtils.replace( application.getUri(), environment.getVariables() ) ) + "!/"
-          + sqlScriptUri;
-    }
-    // get the application cache directory
-    String applicationCacheDir = null;
-    try
-    {
-      applicationCacheDir = FileManipulator.createJEEApplicationCacheDir( environment, application );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't initialize JEE application cache directory", fileManipulatorException );
-      throw new UpdateException( "Can't initialize JEE application cache directory", fileManipulatorException );
-    }
-
-    // get file manipulator instance
-    FileManipulator fileManipulator = null;
-    try
-    {
-      fileManipulator = new FileManipulator();
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't initialize the file manipulator", fileManipulatorException );
-      throw new UpdateException( "Can't initialize the file manipulator", fileManipulatorException );
-    }
-
-    // copy the SQL script in the application working directory
-    String sqlScriptCache = applicationCacheDir + "/sql/" + sqlScript.getName() + ".cache";
-    String sqlScriptRuntime = applicationCacheDir + "/sql/" + sqlScript.getName();
-    try
-    {
-      fileManipulator.copy( sqlScriptUri, sqlScriptCache );
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't copy the SQL script from {} to {}", new Object[]{ sqlScriptUri, sqlScriptCache },
-                    fileManipulatorException );
-      throw new UpdateException( "Can't copy the SQL script from " + sqlScriptUri + " to " + sqlScriptCache,
-                                 fileManipulatorException );
-    }
-
-    if ( fileManipulator.isFolder( sqlScriptCache ) )
-    {
-      // TODO add a generic method to reuse in the case of directory
-
-      // the user provided a directory
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "info", sqlScript.getName() + " is a folder, iterate in the SQL scripts" ) );
-      EventUtils.post( environment, "UPDATE", sqlScript.getName() + " is a folder, iterate in the SQL scripts" );
-      LOGGER.info( sqlScript.getName() + " is a folder, iterate in the SQL scripts" );
-      FileObject[] children = fileManipulator.browse( sqlScriptCache );
-      for ( int i = 0; i < children.length; i++ )
-      {
-        FileObject current = children[i];
-        String name = current.getName().getBaseName();
-        String singleSqlScriptCache = sqlScriptCache + "/" + name;
-        String singleSqlScriptRuntime = sqlScriptRuntime + "/" + name;
-        // change mappings in the current SQL script
-        for ( Iterator mappingIterator = sqlScript.getMappings().iterator(); mappingIterator.hasNext(); )
-        {
-          Mapping mapping = (Mapping) mappingIterator.next();
-          FileManipulator.searchAndReplace( mapping.getKey(),
-                                            VariableUtils.replace( mapping.getValue(), environment.getVariables() ),
-                                            singleSqlScriptCache );
-        }
-        try
-        {
-          if ( sqlScript.isForce() || ( !fileManipulator.contentEquals( singleSqlScriptCache,
-                                                                        singleSqlScriptRuntime ) ) )
-          {
-            fileManipulator.copy( singleSqlScriptCache, singleSqlScriptRuntime );
-            if ( database.getSqlCommand() != null && database.getSqlCommand().trim().length() > 0 )
-            {
-              // execute SQL script using system command
-              String command = VariableUtils.replace( database.getSqlCommand(), environment.getVariables() );
-              String output = SqlScriptUtils.executeUsingCommand( singleSqlScriptRuntime, command );
-              updateLog.addUpdateMessage( new UpdateMessage( "info", "SQL script " + name + " executed: " + output ) );
-              EventUtils.post( environment, "UPDATE", "SQL script " + name + " executed:" + output );
-              LOGGER.info( "SQL script " + name + " executed successfully" );
-            }
-            else
-            {
-              // execute SQL script using JDBC
-              String user = null;
-              String password = null;
-              String driver = null;
-              String url = null;
-              if ( database.getConnectionPool() != null && database.getConnectionPool().trim().length() > 0 )
-              {
-                // the database is linked to a connection pool
-                // looking for the connection pool (from the cache)
-                String connectionPoolName =
-                  VariableUtils.replace( database.getConnectionPool(), environment.getVariables() );
-                JDBCConnectionPool connectionPool = server.getJDBCConnectionPool( connectionPoolName );
-                if ( connectionPool == null )
-                {
-                  LOGGER.error( "JDBC connection pool {} is not found in JEE application server {}",
-                                database.getConnectionPool(), server.getName() );
-                  throw new UpdateException(
-                    "JDBC connection pool " + database.getConnectionPool() + " is not found in JEE application server "
-                      + server.getName() );
-                }
-                user = VariableUtils.replace( connectionPool.getUser(), environment.getVariables() );
-                password = VariableUtils.replace( connectionPool.getPassword(), environment.getVariables() );
-                driver = VariableUtils.replace( connectionPool.getDriver(), environment.getVariables() );
-                url = VariableUtils.replace( connectionPool.getUrl(), environment.getVariables() );
-              }
-              else
-              {
-                // use the database connection data
-                user = VariableUtils.replace( database.getUser(), environment.getVariables() );
-                password = VariableUtils.replace( database.getPassword(), environment.getVariables() );
-                driver = VariableUtils.replace( database.getDriver(), environment.getVariables() );
-                url = VariableUtils.replace( database.getJdbcurl(), environment.getVariables() );
-              }
-              // execute SQL script using JDBC
-              SqlScriptUtils.executeUsingJdbc( singleSqlScriptRuntime, driver, user, password, url );
-            }
-            // add message
-            updateLog.setStatus( "Update performed" );
-            updateLog.setUpdated( true );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "info", "SQL script " + sqlScript.getName() + " executed" ) );
-            EventUtils.post( environment, "UPDATE", "SQL script " + sqlScript.getName() + " executed" );
-            LOGGER.info( "SQL script {} executed", sqlScript.getName() );
-          }
-        }
-        catch ( Exception e )
-        {
-          // SQL script execution failed, delete the SQL script from the cache
-          try
-          {
-            fileManipulator.delete( sqlScriptRuntime );
-          }
-          catch ( FileManipulatorException fileManipulatorException )
-          {
-            LOGGER.warn( "Can't delete {}/sql/{}", new Object[]{ applicationCacheDir, sqlScript.getName() },
-                         fileManipulatorException );
-          }
-          LOGGER.error( "SQL script {} execution failed", sqlScript.getName(), e );
-          throw new UpdateException( "SQL script " + sqlScript.getName() + " execution failed", e );
-        }
-      }
-    }
-    else
-    {
-      // the user provided a single SQL script
-
-      // change mappings in the SQL script
-      for ( Iterator mappingIterator = sqlScript.getMappings().iterator(); mappingIterator.hasNext(); )
-      {
-        Mapping mapping = (Mapping) mappingIterator.next();
-        FileManipulator.searchAndReplace( mapping.getKey(),
-                                          VariableUtils.replace( mapping.getValue(), environment.getVariables() ),
-                                          sqlScriptCache );
-      }
-
-      // compare the SQL script with the target one
-      try
-      {
-        if ( sqlScript.isForce() || ( !fileManipulator.contentEquals( sqlScriptCache, sqlScriptRuntime ) ) )
-        {
-          // the SQL script needs to be updated and executed
-          // copy the SQL script to the target
-          fileManipulator.copy( sqlScriptCache, sqlScriptRuntime );
-          if ( database.getSqlCommand() != null && database.getSqlCommand().trim().length() > 0 )
-          {
-            // execute SQL script using system command
-            String command = VariableUtils.replace( database.getSqlCommand(), environment.getVariables() );
-            String output = SqlScriptUtils.executeUsingCommand( sqlScriptRuntime, command );
-            updateLog.addUpdateMessage(
-              new UpdateMessage( "info", "SQL script " + sqlScript.getName() + " executed: " + output ) );
-            EventUtils.post( environment, "UPDATE", "SQL script " + sqlScript.getName() + " executed: " + output );
-            LOGGER.info( "SQL script " + sqlScript.getName() + " executed: " + output );
-          }
-          else
-          {
-            // execute SQL script using JDBC
-            String user = null;
-            String password = null;
-            String driver = null;
-            String url = null;
-            if ( database.getConnectionPool() != null && database.getConnectionPool().trim().length() > 0 )
-            {
-              // the database is linked to a connection pool
-              // looking for the connection pool (from the cache)
-              String connectionPoolName =
-                VariableUtils.replace( database.getConnectionPool(), environment.getVariables() );
-              JDBCConnectionPool connectionPool = server.getJDBCConnectionPool( connectionPoolName );
-              if ( connectionPool == null )
-              {
-                LOGGER.error( "JDBC connection pool {} is not found in JEE application server {}",
-                              database.getConnectionPool(), server.getName() );
-                throw new UpdateException(
-                  "JDBC connection pool " + database.getConnectionPool() + " is not found in JEE application server "
-                    + server.getName() );
-              }
-              user = VariableUtils.replace( connectionPool.getUser(), environment.getVariables() );
-              password = VariableUtils.replace( connectionPool.getPassword(), environment.getVariables() );
-              driver = VariableUtils.replace( connectionPool.getDriver(), environment.getVariables() );
-              url = VariableUtils.replace( connectionPool.getUrl(), environment.getVariables() );
-            }
-            else
-            {
-              // use the database connection data
-              user = VariableUtils.replace( database.getUser(), environment.getVariables() );
-              password = VariableUtils.replace( database.getPassword(), environment.getVariables() );
-              driver = VariableUtils.replace( database.getDriver(), environment.getVariables() );
-              url = VariableUtils.replace( database.getJdbcurl(), environment.getVariables() );
-            }
-            // execute SQL script using JDBC
-            SqlScriptUtils.executeUsingJdbc( sqlScriptRuntime, driver, user, password, url );
-          }
-          // add message
-          updateLog.setStatus( "Update performed" );
-          updateLog.setUpdated( true );
-          updateLog.addUpdateMessage( new UpdateMessage( "info", "SQL script " + sqlScript.getName() + " executed" ) );
-          EventUtils.post( environment, "UPDATE", "SQL script " + sqlScript.getName() + " executed" );
-          LOGGER.info( "SQL script " + sqlScript.getName() + " executed" );
-        }
-      }
-      catch ( Exception e )
-      {
-        // SQL script execution failed, delete the SQL script from the cache
-        try
-        {
-          fileManipulator.delete( sqlScriptRuntime );
-        }
-        catch ( FileManipulatorException fileManipulatorException )
-        {
-          LOGGER.warn( "Can't delete {}/sql/{}", new Object[]{ applicationCacheDir, sqlScript.getName() },
-                       fileManipulatorException );
-        }
-        LOGGER.error( "SQL script {} execution failed", sqlScript.getName(), e );
-        throw new UpdateException( "SQL script " + sqlScript.getName() + " execution failed", e );
-      }
-    }
-
-    // change mappings in the SQL scripts
-    for ( Iterator mappingIterator = sqlScript.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      FileManipulator.searchAndReplace( mapping.getKey(),
-                                        VariableUtils.replace( mapping.getValue(), environment.getVariables() ),
-                                        sqlScriptCache );
-    }
-  }
-
-  /**
-   * Wrapper method to execute a SQL script via WS.
-   *
-   * @param environmentName the target environment name.
-   * @param serverName      the target JEE application server name.
-   * @param applicationName the target JEE application name.
-   * @param databaseName    the target database name.
-   * @param sqlScriptName   the target SQL script name.
-   * @throws KalumetException in case of execution failure.
-   */
-  public static void execute( String environmentName, String serverName, String applicationName, String databaseName,
-                              String sqlScriptName )
-    throws KalumetException
-  {
-    LOGGER.info( "SQL script {} execution requested by WS", sqlScriptName );
-
-    // load configuration
-    LOGGER.debug( "Loading configuration" );
-    Kalumet kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-
-    // looking for component objects
-    LOGGER.debug( "Looking for component objects" );
-    Environment environment = kalumet.getEnvironment( environmentName );
-    if ( environment == null )
-    {
-      LOGGER.error( "Environment {} is not found in the configuration", environmentName );
-      throw new KalumetException( "Environment " + environmentName + " is not found in the configuration" );
-    }
-    JEEApplicationServer applicationServer =
-      environment.getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( applicationServer == null )
-    {
-      LOGGER.error( "JEE application server {} is not found in environment {}", serverName, environment.getName() );
-      throw new KalumetException(
-        "JEE application server " + serverName + " is not found in environment " + environment.getName() );
-    }
-    JEEApplication application = applicationServer.getJEEApplication( applicationName );
-    if ( application == null )
-    {
-      LOGGER.error( "JEE application {} is not found in JEE application server {}", applicationName,
-                    applicationServer.getName() );
-      throw new KalumetException( "JEE application " + applicationName + " is not found in JEE application server "
-                                    + applicationServer.getName() );
-    }
-    Database database = application.getDatabase( databaseName );
-    if ( database == null )
-    {
-      LOGGER.error( "Database {} is not found in JEE application {}", databaseName, application.getName() );
-      throw new KalumetException(
-        "Database " + databaseName + " is not found in JEE application " + application.getName() );
-    }
-    SqlScript sqlScript = database.getSqlScript( sqlScriptName );
-    if ( sqlScript == null )
-    {
-      LOGGER.error( "SQL script {} is not found in database {}", sqlScriptName, database.getName() );
-      throw new KalumetException( "SQL script " + sqlScriptName + " is not found in database " + database.getName() );
-    }
-
-    // post an event and create the update log.
-    LOGGER.debug( "Post an event and create the update log" );
-    EventUtils.post( environment, "UPDATE", "SQL script " + sqlScript.getName() + " execution request by WS" );
-    UpdateLog updateLog =
-      new UpdateLog( "SQL script " + sqlScript.getName() + " execution in progress ...", sqlScript.getName(),
-                     environment );
-
-    // send a notification and waiting for the count down.
-    LOGGER.info( "Send a notification and waiting for the count down" );
-    NotifierUtils.waitAndNotify( environment );
-
-    try
-    {
-      // call execution
-      LOGGER.debug( "Call SQL script updater" );
-      SqlScriptUpdater.execute( environment, applicationServer, application, database, sqlScript, updateLog );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "SQL script {} execution failed", sqlScript.getName(), e );
-      EventUtils.post( environment, "ERROR",
-                       "SQL script " + sqlScript.getName() + " execution failed: " + e.getMessage() );
-      updateLog.setStatus( "SQL script " + sqlScript.getName() + " execution error" );
-      updateLog.addUpdateMessage(
-        new UpdateMessage( "error", "SQL script " + sqlScript.getName() + " execution failed: " + e.getMessage() ) );
-      PublisherUtils.publish( environment );
-      throw new UpdateException( "SQL script " + sqlScript.getName() + " execution failed", e );
-    }
-
-    // execution completed.
-    LOGGER.info( "SQL script {} executed", sqlScript.getName() );
-    updateLog.setStatus( "SQL script " + sqlScript.getName() + " executed" );
-    updateLog.addUpdateMessage( new UpdateMessage( "info", "SQL script " + sqlScript.getName() + " executed" ) );
-    LOGGER.info( "Publishing update report" );
-    PublisherUtils.publish( environment );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/UpdateException.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/UpdateException.java
deleted file mode 100644
index e9d3b17..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/updater/UpdateException.java
+++ /dev/null
@@ -1,61 +0,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.
- */
-package org.apache.kalumet.agent.updater;
-
-import org.apache.kalumet.KalumetException;
-
-/**
- * Exception wrapper for updaters.
- */
-public class UpdateException
-  extends KalumetException
-{
-
-  /**
-   * Update exception with the explanation message.
-   *
-   * @param message the explanation message.
-   */
-  public UpdateException( String message )
-  {
-    super( message );
-  }
-
-  /**
-   * Update exception with the cause.
-   *
-   * @param cause the cause.
-   */
-  public UpdateException( Throwable cause )
-  {
-    super( cause );
-  }
-
-  /**
-   * Update exception with the explanation message and cause.
-   *
-   * @param message the explanation message.
-   * @param cause   the cause.
-   */
-  public UpdateException( String message, Throwable cause )
-  {
-    super( message, cause );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/utils/EventUtils.java b/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/utils/EventUtils.java
deleted file mode 100644
index 29a9cd2..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/java/org/apache/kalumet/agent/utils/EventUtils.java
+++ /dev/null
@@ -1,77 +0,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.
- */
-package org.apache.kalumet.agent.utils;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.agent.Configuration;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.Kalumet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Agent utils method to post event.
- */
-public class EventUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( EventUtils.class );
-
-  /**
-   * Wrapper method to post an event.
-   *
-   * @param environment the target environment.
-   * @param author      the event author.
-   * @param severity    the event severity.
-   * @param event       the event message.
-   */
-  public static void post( Environment environment, String author, String severity, String event )
-  {
-    LOGGER.debug( "Loading configuration from the cache" );
-    Kalumet kalumet = Configuration.CONFIG_CACHE;
-    if ( kalumet == null )
-    {
-      LOGGER.debug( "No configuration in cache, updating it" );
-      try
-      {
-        kalumet = Kalumet.digeste( Configuration.CONFIG_LOCATION );
-      }
-      catch ( KalumetException kalumetException )
-      {
-        LOGGER.warn( "Can't post journal event", kalumetException );
-        return;
-      }
-      Configuration.CONFIG_CACHE = kalumet;
-    }
-    org.apache.kalumet.utils.EventUtils.post( environment, author, severity, event, kalumet );
-  }
-
-  /**
-   * Wrapper method to post an event.
-   *
-   * @param environment the target environment.
-   * @param severity    the event severity.
-   * @param event       the event message.
-   */
-  public static void post( Environment environment, String severity, String event )
-  {
-    EventUtils.post( environment, Configuration.AGENT_ID, severity, event );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/agent/src/main/resources/apache-kalumet.wsdd b/0.6.x/kalumet-modules/agent/src/main/resources/apache-kalumet.wsdd
deleted file mode 100644
index 374c7cc..0000000
--- a/0.6.x/kalumet-modules/agent/src/main/resources/apache-kalumet.wsdd
+++ /dev/null
@@ -1,171 +0,0 @@
-<?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.
--->
-<deployment name="defaultClientConfig"
-            xmlns="http://xml.apache.org/axis/wsdd/"
-            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
-
-  <globalConfiguration>
-    <parameter name="disablePrettyXML" value="true"/>
-    <parameter name="dotNetSoapEncFix" value="true"/>
-    <parameter name="enableNamespacePrefixOptimization" value="false"/>
-    <requestFlow>
-      <handler type="java:org.apache.axis.handlers.JWSHandler">
-        <parameter name="scope" value="session"/>
-      </handler>
-      <handler type="java:org.apache.axis.handlers.JWSHandler">
-        <parameter name="scope" value="request"/>
-        <parameter name="extension" value=".jwr"/>
-      </handler>
-    </requestFlow>
-  </globalConfiguration>
-
-  <handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
-  <handler type="java:org.apache.axis.transport.local.LocalResponder" name="LocalResponder"/>
-  <handler type="java:org;apache.axis.handlers.SimpleAuthenticationHandler" name="Authenticate"/>
-
-  <service name="WsServerAdminService" provider="java:MSG">
-    <namespace>http://xml.apache.org/axis/wsdd/</namespace>
-    <parameter name="allowedMethods" value="AdminService"/>
-    <parameter name="enableRemoteAdmin" value="false"/>
-    <parameter name="className" value="org.apache.axis.utils.Admin"/>
-  </service>
-
-  <service name="EnvironmentService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.EnvironmentUpdater"/>
-  </service>
-
-  <service name="JEEApplicationServerService" provider="java:RPC">
-    <parameter name="allowedMethods" value="start
-            stop
-            status
-            update"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.JEEApplicationServerUpdater"/>
-  </service>
-
-  <service name="JEEApplicationService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.JEEApplicationUpdater"/>
-  </service>
-
-  <service name="ArchiveService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            check"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.ArchiveUpdater"/>
-  </service>
-
-  <service name="ConfigurationFileService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            check"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.ConfigurationFileUpdater"/>
-  </service>
-
-  <service name="ContentManagerService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.ContentManagerUpdater"/>
-  </service>
-
-  <service name="DatabaseService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.DatabaseUpdater"/>
-  </service>
-
-  <service name="JDBCConnectionPoolService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            check"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.JDBCConnectionPoolUpdater"/>
-  </service>
-
-  <service name="JDBCDataSourceService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            check"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.JDBCDataSourceUpdater"/>
-  </service>
-
-  <service name="JMSConnectionFactoryService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            check"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.JMSConnectionFactoryUpdater"/>
-  </service>
-
-  <service name="JMSServerService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            check"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.JMSServerUpdater"/>
-  </service>
-
-  <service name="JNDIBindingService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            check"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.JNDIBindingUpdater"/>
-  </service>
-
-  <service name="SharedLibraryService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            check"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.SharedLibraryUpdater"/>
-  </service>
-
-  <service name="SqlScriptService" provider="java:RPC">
-    <parameter name="allowedMethods" value="execute"/>
-    <parameter name="className" value="org.apache.kalumet.agent.updater.SqlScriptUpdater"/>
-  </service>
-
-  <service name="SoftwareService" provider="java:RPC">
-    <parameter name="allowedMethods" value="update
-            executeCommand
-            updateLocation
-            updateConfigurationFile
-            updateDatabase"/>
-    <parameter name="className" value="org.apache.kalumet.updater.SoftwareUpdater"/>
-  </service>
-
-  <service name="FileService" provider="java:RPC">
-    <parameter name="allowedMethods" value="view
-            browse"/>
-    <parameter name="className" value="org.apache.kalumet.agent.utils.FileUtils"/>
-  </service>
-
-  <service name="CommandService" provider="java:RPC">
-    <parameter name="allowedMethods" value="execute"/>
-    <parameter name="className" value="org.apache.kalumet.agent.utils.CommandUtils"/>
-  </service>
-
-  <service name="AgentService" provider="java:RPC">
-    <parameter name="allowedMethods" value="getVersion"/>
-    <parameter name="className" value="org.apache.kalumet.agent.utils.AgentUtils"/>
-  </service>
-
-  <transport name="http">
-    <parameter name="qs:list" value="org.apache.axis.transport.http.QSListHandler"/>
-    <parameter name="qs:method" value="org.apache.axis.transport.http.QSMethodHandler"/>
-    <parameter name="qs:wsdl" value="org.apache.axis.transport.http.QSWSDLHandler"/>
-    <requestFlow>
-      <handler type="URLMapper"/>
-      <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
-    </requestFlow>
-  </transport>
-
-  <transport name="local">
-    <responseFlow>
-      <handler type="LocalResponder"/>
-    </responseFlow>
-  </transport>
-
-</deployment>
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/pom.xml b/0.6.x/kalumet-modules/common/pom.xml
deleted file mode 100644
index 2bbf1e5..0000000
--- a/0.6.x/kalumet-modules/common/pom.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet</groupId>
-    <artifactId>kalumet-modules</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.common</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Kalumet :: Common Library</name>
-
-  <properties>
-    <tomcat7Version>7.0.29</tomcat7Version>
-  </properties>
-
-
-  <dependencies>
-    <dependency>
-      <groupId>axis</groupId>
-      <artifactId>axis</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>concurrent</groupId>
-      <artifactId>concurrent</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-digester</groupId>
-      <artifactId>commons-digester</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-io</groupId>
-      <artifactId>commons-io</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-lang</groupId>
-      <artifactId>commons-lang</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-vfs</groupId>
-      <artifactId>commons-vfs</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>oro</groupId>
-      <artifactId>oro</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>xerces</groupId>
-      <artifactId>xercesImpl</artifactId>
-    </dependency>
-
-    <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>log4j</groupId>
-      <artifactId>log4j</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.tomcat.embed</groupId>
-      <artifactId>tomcat-embed-core</artifactId>
-      <version>${tomcat7Version}</version>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.tomcat.embed</groupId>
-      <artifactId>tomcat-embed-logging-juli</artifactId>
-      <version>${tomcat7Version}</version>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulator.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulator.java
deleted file mode 100644
index 97dbb88..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulator.java
+++ /dev/null
@@ -1,797 +0,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.
- */
-package org.apache.kalumet;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.lang.SystemUtils;
-import org.apache.commons.vfs.FileObject;
-import org.apache.commons.vfs.FileSystemException;
-import org.apache.commons.vfs.FileSystemManager;
-import org.apache.commons.vfs.FileType;
-import org.apache.commons.vfs.Selectors;
-import org.apache.commons.vfs.VFS;
-import org.apache.commons.vfs.impl.StandardFileSystemManager;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.Software;
-import org.apache.oro.text.regex.MalformedPatternException;
-import org.apache.oro.text.regex.Pattern;
-import org.apache.oro.text.regex.PatternCompiler;
-import org.apache.oro.text.regex.PatternMatcher;
-import org.apache.oro.text.regex.PatternMatcherInput;
-import org.apache.oro.text.regex.Perl5Compiler;
-import org.apache.oro.text.regex.Perl5Matcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.security.DigestInputStream;
-import java.security.MessageDigest;
-
-/**
- * Virtual file system (VFS) wrapper to perform various actions on files or directories (local or remote).
- */
-public class FileManipulator
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( FileManipulator.class );
-
-  private static final String BASE_DIR = SystemUtils.USER_DIR;
-
-  private static final String WORKING_DIR = "work";
-
-  private static final String PROTOCOL_REGEX = "(.+):(.+)";
-
-  private static final String JAR_EXTENSION = ".jar";
-
-  private static final String ZIP_EXTENSION = ".zip";
-
-  private static final String TGZ_EXTENSION = ".tgz";
-
-  private static final String TARGZ_EXTENSION = ".tar.gz";
-
-  private static final String TBZ2_EXTENSION = ".tbz2";
-
-  private static final String JAR_PROTOCOL = "jar:";
-
-  private static final String ZIP_PROTOCOL = "zip:";
-
-  private static final String TGZ_PROTOCOL = "tgz:";
-
-  private static final String TARGZ_PROTOCOL = "tgz:";
-
-  private static final String TBZ2_PROTOCOL = "tbz2:";
-
-  private static FileManipulator _singleton = null;
-
-  private FileSystemManager fileSystemManager;
-
-  /**
-   * Private constructor to init the singleton.
-   *
-   * @throws FileManipulatorException in <code>FileManipulator</code> init failed.
-   */
-  public FileManipulator()
-    throws FileManipulatorException
-  {
-    try
-    {
-      LOGGER.debug( "Creating VFS file system manager ..." );
-      this.fileSystemManager = VFS.getManager();
-      // this.fileSystemManager = new StandardFileSystemManager();
-      // fileSystemManager.setCacheStrategy(CacheStrategy.ON_CALL);
-      ( (StandardFileSystemManager) this.fileSystemManager ).setReplicator( new KalumetFileReplicator() );
-      // fileSystemManager.init();
-    }
-    catch ( Exception e )
-    {
-      throw new FileManipulatorException( e );
-    }
-  }
-
-  /**
-   * Cleanly close the file manipulator.
-   */
-  public void close()
-  {
-    // nothing to do
-    // just a hook in case of custom VFS filesystem implementation
-  }
-
-  /**
-   * Get the current basedir path.
-   *
-   * @return the path of the local basedir directory.
-   * @throws FileManipulatorException
-   */
-  public static String getBaseDir()
-    throws FileManipulatorException
-  {
-    try
-    {
-      File baseDir = new File( FileManipulator.BASE_DIR );
-      return baseDir.getPath();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't get basedir", e );
-      throw new FileManipulatorException( "Can't get basedir", e );
-    }
-  }
-
-  /**
-   * Resolve VFS path to add filename regex selector.
-   *
-   * @param vfsPath the file to resolve (can look like /tmp/folder/file*).
-   * @return the resolved file object.
-   * @throws FileSystemException      if the VFS file object can't be resolved.
-   * @throws FileManipulatorException if the regex is not valid (regex is allowed only on files, not directories).
-   */
-  public FileObject resolveFile( String vfsPath )
-    throws FileSystemException, FileManipulatorException
-  {
-    LOGGER.debug( "Resolve VFS path {}", vfsPath );
-    LOGGER.debug( "Check if the file name regex selector is required" );
-    if ( ( vfsPath.indexOf( "/" ) == -1 ) || ( vfsPath.indexOf( "*" ) == -1 ) )
-    {
-      LOGGER.debug( "Regex select is not required for {}", vfsPath );
-      return fileSystemManager.resolveFile( vfsPath );
-    }
-    LOGGER.debug( "Isolating the path end" );
-    LOGGER.debug( "Finding the last index of / separator" );
-    int separatorIndex = vfsPath.lastIndexOf( '/' );
-    int tokenIndex = vfsPath.lastIndexOf( '*' );
-    if ( tokenIndex < separatorIndex )
-    {
-      LOGGER.error( "Wildcard * is only supported on the file name, not on directories" );
-      throw new FileManipulatorException( "Wildcard * is only supported on the file name, not on directories" );
-    }
-    String pattern = vfsPath.substring( separatorIndex + 1 );
-    LOGGER.debug( "{} pattern found", pattern );
-    String baseName = vfsPath.substring( 0, separatorIndex + 1 );
-    LOGGER.debug( "Getting the base name {}", baseName );
-    LOGGER.debug( "Looking for the file (first found is returned)" );
-    FileObject baseUrl = fileSystemManager.resolveFile( baseName );
-    FileObject[] fileObjects = baseUrl.findFiles( new FileNameRegexSelector( pattern ) );
-    if ( fileObjects.length < 1 )
-    {
-      LOGGER.error( "No file matching {} found on {}", pattern, baseName );
-      throw new FileManipulatorException( "No file matching " + pattern + " found on " + baseName );
-    }
-    baseUrl.close();
-    return fileObjects[0];
-  }
-
-  /**
-   * Check if the given VFS path is available (exists).
-   *
-   * @param vfsPath the VFS path
-   * @return true if the VFS path exists, false else
-   */
-  public boolean exists( String vfsPath )
-  {
-    FileObject fileObject = null;
-    try
-    {
-      fileObject = this.resolveFile( vfsPath );
-      return fileObject.exists();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if the VFS path {} exists", vfsPath, e );
-      return false;
-    }
-    finally
-    {
-      if ( fileObject != null )
-      {
-        try
-        {
-          fileObject.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-    }
-  }
-
-  /**
-   * Compare the content of two files.
-   *
-   * @param src  the source file to compare.
-   * @param dest the destination file to compare with.
-   * @return true if the two files have exactly the same content, false else.
-   * @throws FileManipulatorException if the compare failed.
-   */
-  public boolean contentEquals( String src, String dest )
-    throws FileManipulatorException
-  {
-    FileObject srcFile = null;
-    FileObject destFile = null;
-    try
-    {
-      LOGGER.debug( "Comparing the content of {} and {}", src, dest );
-      srcFile = this.resolveFile( src );
-      destFile = this.resolveFile( dest );
-      if ( !srcFile.exists() || !destFile.exists() )
-      {
-        LOGGER.debug( "{} or {} don't exist", src, dest );
-        return false;
-      }
-      if ( !srcFile.getType().equals( FileType.FILE ) )
-      {
-        LOGGER.error( "The source {} is not a file", src );
-        throw new IllegalArgumentException( "The source URI " + src + " is not a file" );
-      }
-      if ( !destFile.getType().equals( FileType.FILE ) )
-      {
-        LOGGER.error( "The destination {} is not a file", dest );
-        throw new IllegalArgumentException( "The destination URI " + dest + " is not a file" );
-      }
-      return IOUtils.contentEquals( srcFile.getContent().getInputStream(), destFile.getContent().getInputStream() );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't compare content of {} and {}", new Object[]{ src, dest }, e );
-      throw new FileManipulatorException( "Can't compare content of " + src + " and " + dest, e );
-    }
-    finally
-    {
-      if ( srcFile != null )
-      {
-        try
-        {
-          srcFile.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      if ( destFile != null )
-      {
-        try
-        {
-          destFile.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-    }
-  }
-
-  /**
-   * Compare checksum of two files.
-   *
-   * @param src  the source file.
-   * @param dest the destination file.
-   * @return true if the two files are the same (same signature), false else.
-   * @throws FileManipulatorException
-   */
-  public boolean checksumEquals( String src, String dest )
-    throws FileManipulatorException
-  {
-    FileObject srcFile = null;
-    FileObject destFile = null;
-    try
-    {
-      if ( !srcFile.exists() )
-      {
-        LOGGER.error( "Source {} doesn't exist", src );
-        throw new FileManipulatorException( "Source " + src + " doesn't exist" );
-      }
-      if ( destFile.exists() && destFile.getType().equals( FileType.FOLDER ) )
-      {
-        destFile = this.resolveFile( dest + "/" + srcFile.getName().getBaseName() );
-      }
-      if ( !destFile.exists() )
-      {
-        return false;
-      }
-      if ( !srcFile.getType().equals( FileType.FILE ) )
-      {
-        LOGGER.error( "Source {} is not a file", src );
-        throw new FileManipulatorException( "Source " + src + " is not a file" );
-      }
-      if ( !destFile.getType().equals( FileType.FILE ) )
-      {
-        LOGGER.error( "Destination {} is not a file", dest );
-        throw new FileManipulatorException( "Destination " + dest + " is not a file" );
-      }
-      LOGGER.debug( "Create the message digest" );
-      MessageDigest messageDigest = MessageDigest.getInstance( "MD5" );
-      LOGGER.debug( "Generate the checksum for the source" );
-      DigestInputStream srcStream = new DigestInputStream( srcFile.getContent().getInputStream(), messageDigest );
-      byte[] srcBuffer = new byte[8192];
-      while ( srcStream.read( srcBuffer ) != -1 )
-      {
-        ;
-      }
-      byte[] srcMd5 = messageDigest.digest();
-      // reset the message digest
-      messageDigest.reset();
-      LOGGER.debug( "Generate the checksum for the destination" );
-      DigestInputStream destStream = new DigestInputStream( destFile.getContent().getInputStream(), messageDigest );
-      byte[] destBuffer = new byte[8192];
-      while ( destStream.read( destBuffer ) != -1 )
-      {
-        ;
-      }
-      byte[] destMd5 = messageDigest.digest();
-      LOGGER.debug( "Compare the checksum" );
-      return MessageDigest.isEqual( srcMd5, destMd5 );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't compare checksum of {} and {}", new Object[]{ src, dest }, e );
-      throw new FileManipulatorException( "Can't compare checksum of " + src + " and " + dest, e );
-    }
-    finally
-    {
-      if ( srcFile != null )
-      {
-        try
-        {
-          srcFile.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      if ( destFile != null )
-      {
-        try
-        {
-          destFile.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-    }
-  }
-
-  /**
-   * Copy files.
-   *
-   * @param src  the source VFS path.
-   * @param dest the destination VFS path.
-   * @throws FileManipulatorException in case of copy failure.
-   */
-  public void copy( String src, String dest )
-    throws FileManipulatorException
-  {
-    FileObject srcFile = null;
-    FileObject destFile = null;
-    try
-    {
-      srcFile = this.resolveFile( src );
-      destFile = this.resolveFile( dest );
-      if ( srcFile.getType().equals( FileType.FOLDER ) )
-      {
-        LOGGER.debug( "Source {} is a folder", src );
-        if ( !destFile.exists() )
-        {
-          LOGGER.debug( "Destination folder {} doesn't exist, create it", dest );
-          destFile.createFolder();
-        }
-        if ( !destFile.getType().equals( FileType.FOLDER ) )
-        {
-          LOGGER.error( "Destination {} must be a folder", dest );
-          throw new IllegalArgumentException( "Destination " + dest + " must be a folder" );
-        }
-        LOGGER.debug( "Copy source folder {} to {} using SELECT_ALL selector", src, dest );
-        destFile.copyFrom( srcFile, Selectors.SELECT_ALL );
-      }
-      else
-      {
-        LOGGER.debug( "Source {} is a file" );
-        if ( destFile.exists() && destFile.getType().equals( FileType.FOLDER ) )
-        {
-          destFile = this.resolveFile( dest + "/" + srcFile.getName().getBaseName() );
-        }
-        destFile.copyFrom( srcFile, Selectors.SELECT_SELF );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't copy from {} to {}", new Object[]{ src, dest }, e );
-      throw new FileManipulatorException( "Can't copy from " + src + " to " + dest, e );
-    }
-    finally
-    {
-      if ( srcFile != null )
-      {
-        try
-        {
-          srcFile.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      if ( destFile != null )
-      {
-        try
-        {
-          destFile.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-    }
-  }
-
-  /**
-   * Check if a given path is a directory.
-   *
-   * @param vfsPath the VFS path to check.
-   * @return true if the path is a folder, false else.
-   */
-  public boolean isFolder( String vfsPath )
-  {
-    FileObject file = null;
-    try
-    {
-      file = this.resolveFile( vfsPath );
-      return ( file.getType().equals( FileType.FOLDER ) );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if {} is a folder", vfsPath, e );
-    }
-    finally
-    {
-      if ( file != null )
-      {
-        try
-        {
-          file.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-    }
-    return false;
-  }
-
-  /**
-   * Browse (Return the children) of a give VFS path
-   *
-   * @param vfsPath the VFS path.
-   * @return the children array.
-   */
-  public FileObject[] browse( String vfsPath )
-  {
-    FileObject file = null;
-    try
-    {
-      file = this.resolveFile( vfsPath );
-      if ( !file.getType().equals( FileType.FOLDER ) )
-      {
-        throw new IllegalArgumentException( "{} is not a directory" );
-      }
-      return file.getChildren();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't get {} children", vfsPath, e );
-    }
-    finally
-    {
-      if ( file != null )
-      {
-        try
-        {
-          file.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Read a VFS path and return the input stream content.
-   *
-   * @param vfsPath the VFS path.
-   * @return the input stream content.
-   * @throws FileManipulatorException in case of read failure.
-   */
-  public InputStream read( String vfsPath )
-    throws FileManipulatorException
-  {
-    FileObject file = null;
-    try
-    {
-      file = this.resolveFile( vfsPath );
-      if ( !file.exists() || !file.getType().equals( FileType.FILE ) )
-      {
-        LOGGER.error( "{} doesn't exist or is not a file" );
-        throw new IllegalArgumentException( vfsPath + " doesn't exist or is not a file" );
-      }
-      return file.getContent().getInputStream();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't read {}", vfsPath, e );
-      throw new FileManipulatorException( "Can't read " + vfsPath, e );
-    }
-  }
-
-  /**
-   * Get the VFS path output stream to write into.
-   *
-   * @param vfsPath the VFS path.
-   * @return the output stream.
-   * @throws FileManipulatorException in case of writing failure.
-   */
-  public OutputStream write( String vfsPath )
-    throws FileManipulatorException
-  {
-    FileObject file = null;
-    try
-    {
-      file = this.resolveFile( vfsPath );
-      if ( file.exists() && !file.getType().equals( FileType.FILE ) )
-      {
-        LOGGER.error( "{} is not a file", vfsPath );
-        throw new IllegalArgumentException( vfsPath + " is not a file" );
-      }
-      return file.getContent().getOutputStream();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't write {}", vfsPath, e );
-      throw new FileManipulatorException( "Can't write " + vfsPath, e );
-    }
-  }
-
-  /**
-   * Creates the environment cache directory.
-   *
-   * @param environment the <code>Environment</code>.
-   * @return the environment cache directory path.
-   * @throws FileManipulatorException in case of creation failure.
-   */
-  public static String createEnvironmentCacheDir( Environment environment )
-    throws FileManipulatorException
-  {
-    String directory = FileManipulator.getBaseDir() + "/" + FileManipulator.WORKING_DIR + "/" + environment.getName();
-    FileManipulator fileManipulator = new FileManipulator();
-    fileManipulator.createDirectory( directory );
-    fileManipulator.close();
-    return directory;
-  }
-
-  /**
-   * Creates an environment jeeApplication cache directory.
-   *
-   * @param environment     the <code>Environment</code>.
-   * @param jeeApplication the <code>JEEApplication</code>.
-   * @return the environment jeeApplication cache directory path.
-   * @throws FileManipulatorException in case of creation failure.
-   */
-  public static String createJEEApplicationCacheDir( Environment environment, JEEApplication jeeApplication )
-    throws FileManipulatorException
-  {
-    String directory = FileManipulator.createEnvironmentCacheDir( environment );
-    directory = directory + "/applications/" + jeeApplication.getName();
-    FileManipulator fileManipulator = new FileManipulator();
-    fileManipulator.createDirectory( directory );
-    fileManipulator.close();
-    return directory;
-  }
-
-  /**
-   * Creates an environment software cache directory.
-   *
-   * @param environment the <code>Environment</code>.
-   * @param software    the <code>Software</code>.
-   * @return the environment software cache directory path.
-   * @throws FileManipulatorException in case of creation failure.
-   */
-  public static String createSoftwareCacheDir( Environment environment, Software software )
-    throws FileManipulatorException
-  {
-    String directory = FileManipulator.createEnvironmentCacheDir( environment );
-    directory = directory + "/softwares/" + software.getName();
-    FileManipulator fileManipulator = new FileManipulator();
-    fileManipulator.createDirectory( directory );
-    fileManipulator.close();
-    return directory;
-  }
-
-  /**
-   * Creates a directory.
-   *
-   * @param path the directory path to create.
-   * @throws FileManipulatorException in case of creation failure.
-   */
-  public void createDirectory( String path )
-    throws FileManipulatorException
-  {
-    FileObject directory = null;
-    try
-    {
-      directory = this.resolveFile( path );
-      directory.createFolder();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't create directory {}", path, e );
-      throw new FileManipulatorException( "Can't create directory " + path, e );
-    }
-    finally
-    {
-      if ( directory != null )
-      {
-        try
-        {
-          directory.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-    }
-  }
-
-  /**
-   * Check if the given VFS path begins with a protocol (file:, http:, ...).
-   *
-   * @param path the VFS path to check.
-   * @return true
-   */
-  public static boolean protocolExists( String path )
-  {
-    // make a regex on the path
-    LOGGER.debug( "Looking for protocol in {}", path );
-    PatternMatcher matcher = new Perl5Matcher();
-    PatternCompiler compiler = new Perl5Compiler();
-    Pattern pattern = null;
-    try
-    {
-      pattern = compiler.compile( FileManipulator.PROTOCOL_REGEX );
-    }
-    catch ( MalformedPatternException malformedPatternException )
-    {
-      LOGGER.warn( "URL protocol check failed", malformedPatternException );
-      return false;
-    }
-    PatternMatcherInput input = new PatternMatcherInput( path );
-    if ( matcher.contains( input, pattern ) )
-    {
-      LOGGER.debug( "{} matches the protocol regex" );
-      return true;
-    }
-    LOGGER.debug( "{} doesn't match the protocol regex" );
-    return false;
-  }
-
-  /**
-   * Format an URL to a VFS compliant URL (finding the protocol corresponding to the extension).
-   *
-   * @param url source URL
-   * @return the VFS formatted URL.
-   */
-  public static String format( String url )
-  {
-    String formattedUrl = url.trim();
-    if ( formattedUrl.endsWith( JAR_EXTENSION ) && !formattedUrl.startsWith( JAR_PROTOCOL ) )
-    {
-      return JAR_PROTOCOL + formattedUrl;
-    }
-    if ( formattedUrl.endsWith( ZIP_EXTENSION ) && !formattedUrl.startsWith( ZIP_PROTOCOL ) )
-    {
-      return ZIP_PROTOCOL + formattedUrl;
-    }
-    if ( formattedUrl.endsWith( TGZ_EXTENSION ) && !formattedUrl.startsWith( TGZ_PROTOCOL ) )
-    {
-      return TGZ_PROTOCOL + formattedUrl;
-    }
-    if ( formattedUrl.endsWith( TARGZ_EXTENSION ) && !formattedUrl.startsWith( TARGZ_PROTOCOL ) )
-    {
-      return TARGZ_PROTOCOL + formattedUrl;
-    }
-    if ( formattedUrl.endsWith( TBZ2_EXTENSION ) && !formattedUrl.startsWith( TBZ2_PROTOCOL ) )
-    {
-      return TBZ2_PROTOCOL + formattedUrl;
-    }
-    return formattedUrl;
-  }
-
-  /**
-   * Delete a VFS path.
-   *
-   * @param path the VFS path.
-   * @throws FileManipulatorException in case of deletion failure.
-   */
-  public void delete( String path )
-    throws FileManipulatorException
-  {
-    FileObject file = null;
-    try
-    {
-      file = this.resolveFile( path );
-      file.delete( Selectors.SELECT_ALL );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't delete {}", path, e );
-      throw new FileManipulatorException( "Can't delete " + path, e );
-    }
-    finally
-    {
-      if ( file != null )
-      {
-        try
-        {
-          file.close();
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-    }
-  }
-
-  /**
-   * Search and replace a regex in a given VFS path.
-   *
-   * @param regex      the regexp to search.
-   * @param substitute the replacement string.
-   * @param path       the VFS path where to search and replace.
-   */
-  public static void searchAndReplace( String path, String regex, String substitute )
-  {
-    try
-    {
-      String content = FileUtils.readFileToString( new File( path ), null );
-      content = StringUtils.replace( content, regex, substitute );
-      FileUtils.writeStringToFile( new File( path ), content, null );
-    }
-    catch ( IOException ioException )
-    {
-      LOGGER.warn( "Can't replace {} with {} in {}", new Object[]{ regex, substitute, path }, ioException );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulatorException.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulatorException.java
deleted file mode 100644
index 899cc6e..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileManipulatorException.java
+++ /dev/null
@@ -1,43 +0,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.
- */
-package org.apache.kalumet;
-
-/**
- * Exception wrapper for all file manipulation failures.
- */
-public class FileManipulatorException
-  extends KalumetException
-{
-
-  public FileManipulatorException( String message )
-  {
-    super( message );
-  }
-
-  public FileManipulatorException( Throwable cause )
-  {
-    super( cause );
-  }
-
-  public FileManipulatorException( String message, Throwable cause )
-  {
-    super( message, cause );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileNameRegexSelector.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileNameRegexSelector.java
deleted file mode 100644
index d603539..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/FileNameRegexSelector.java
+++ /dev/null
@@ -1,85 +0,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.
- */
-package org.apache.kalumet;
-
-import org.apache.commons.vfs.FileSelectInfo;
-import org.apache.commons.vfs.FileSelector;
-import org.apache.oro.text.GlobCompiler;
-import org.apache.oro.text.regex.MalformedPatternException;
-import org.apache.oro.text.regex.Pattern;
-import org.apache.oro.text.regex.PatternCompiler;
-import org.apache.oro.text.regex.PatternMatcher;
-import org.apache.oro.text.regex.Perl5Matcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * VFS file selector based on name regex.
- */
-public class FileNameRegexSelector
-  implements FileSelector
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( FileNameRegexSelector.class );
-
-  private Pattern pattern;
-
-  private PatternMatcher matcher;
-
-  /**
-   * Default constructor with the matcher pattern.
-   *
-   * @param pattern the file name regex pattern to use.
-   * @throws FileManipulatorException if the regex pattern is malformed.
-   */
-  public FileNameRegexSelector( String pattern )
-    throws FileManipulatorException
-  {
-    LOGGER.debug( "Creating the glob regex" );
-    PatternCompiler compiler = new GlobCompiler();
-    try
-    {
-      this.pattern = compiler.compile( pattern );
-      this.matcher = new Perl5Matcher();
-    }
-    catch ( MalformedPatternException malformedPatternException )
-    {
-      LOGGER.error( "Invalid regex pattern " + pattern, malformedPatternException );
-      throw new FileManipulatorException( "Invalid regex pattern " + pattern, malformedPatternException );
-    }
-  }
-
-  /**
-   * @see org.apache.commons.vfs.FileSelector#includeFile(org.apache.commons.vfs.FileSelectInfo)
-   */
-  public boolean includeFile( FileSelectInfo fileInfo )
-  {
-    String fileName = fileInfo.getFile().getName().getBaseName();
-    return matcher.matches( fileName, pattern );
-  }
-
-  /**
-   * @see org.apache.commons.vfs.FileSelector#traverseDescendents(org.apache.commons.vfs.FileSelectInfo)
-   */
-  public boolean traverseDescendents( FileSelectInfo fileInfo )
-  {
-    return true;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/KalumetException.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/KalumetException.java
deleted file mode 100644
index d7e7f5c..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/KalumetException.java
+++ /dev/null
@@ -1,59 +0,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.
- */
-package org.apache.kalumet;
-
-/**
- * Generic Kalumet exception wrapper.
- */
-public class KalumetException
-  extends Exception
-{
-
-  /**
-   * Create exception with the explanation message.
-   *
-   * @param message the explanation message.
-   */
-  public KalumetException( String message )
-  {
-    super( message );
-  }
-
-  /**
-   * Create exception with the cause.
-   *
-   * @param cause the cause.
-   */
-  public KalumetException( Throwable cause )
-  {
-    super( cause );
-  }
-
-  /**
-   * Create exception with the explanation message and the cause.
-   *
-   * @param message the explanation message.
-   * @param cause   the cause.
-   */
-  public KalumetException( String message, Throwable cause )
-  {
-    super( message, cause );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/KalumetFileReplicator.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/KalumetFileReplicator.java
deleted file mode 100644
index c489bb1..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/KalumetFileReplicator.java
+++ /dev/null
@@ -1,189 +0,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.
- */
-package org.apache.kalumet;
-
-import org.apache.commons.vfs.FileObject;
-import org.apache.commons.vfs.FileSelector;
-import org.apache.commons.vfs.FileSystemException;
-import org.apache.commons.vfs.Selectors;
-import org.apache.commons.vfs.provider.AbstractVfsComponent;
-import org.apache.commons.vfs.provider.FileReplicator;
-import org.apache.commons.vfs.provider.TemporaryFileStore;
-import org.apache.commons.vfs.provider.UriParser;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.lang.ref.ReferenceQueue;
-import java.util.ArrayList;
-
-/**
- * VFS file replicator to avoid huge space usage in the VFS cache.
- */
-public class KalumetFileReplicator
-  extends AbstractVfsComponent
-  implements FileReplicator, TemporaryFileStore
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( KalumetFileReplicator.class );
-
-  private final ArrayList<WeakFileReference> copies = new ArrayList<WeakFileReference>();
-
-  private File tmpDir;
-
-  private ReferenceQueue queue = new ReferenceQueue();
-
-  private char[] TMP_RESERVED_CHARS =
-    new char[]{ '?', '/', '\\', ' ', '&', '"', '\'', '*', '#', ';', ':', '<', '>', '|' };
-
-  /**
-   * Constructor to set the location of the temporary directory.
-   *
-   * @param tmpDir the temporary cache directory.
-   */
-  public KalumetFileReplicator( final File tmpDir )
-  {
-    this.tmpDir = tmpDir;
-  }
-
-  /**
-   * Default constructor.
-   */
-  public KalumetFileReplicator()
-  {
-
-  }
-
-  /**
-   * Initialize the VFS component.
-   *
-   * @throws FileSystemException in case of init failure.
-   */
-  public void init()
-    throws FileSystemException
-  {
-    if ( tmpDir == null )
-    {
-      tmpDir = new File( "kalumet_cache" ).getAbsoluteFile();
-    }
-  }
-
-  /**
-   * Close the replication class, deleting all temporary files.
-   */
-  public void close()
-  {
-    // delete the temporary files
-    while ( copies.size() > 0 )
-    {
-      WeakFileReference fileReference = (WeakFileReference) copies.remove( 0 );
-      try
-      {
-        File file = new File( fileReference.getPath() );
-        FileObject fileObject = getContext().toFileObject( file );
-        fileObject.delete( Selectors.SELECT_ALL );
-      }
-      catch ( FileSystemException fileSystemException )
-      {
-        LOGGER.error( "Can't delete temporary files", fileSystemException );
-      }
-    }
-    // clean the tmp directory, if it's empty
-    if ( tmpDir != null && tmpDir.exists() && tmpDir.list().length == 0 )
-    {
-      tmpDir.delete();
-      tmpDir = null;
-    }
-  }
-
-  /**
-   * Allocates a new temporary file.
-   *
-   * @param baseName the file base name.
-   * @return the temporary file.
-   * @throws FileSystemException if the allocation failed.
-   */
-  public File allocateFile( final String baseName )
-    throws FileSystemException
-  {
-    WeakFileReference fileReference = (WeakFileReference) queue.poll();
-    while ( fileReference != null )
-    {
-      File toDelete = new File( fileReference.getPath() );
-      if ( toDelete.exists() )
-      {
-        toDelete.delete();
-      }
-      copies.remove( fileReference );
-      fileReference = (WeakFileReference) queue.poll();
-    }
-    // create the filename
-    final String baseNamePath = createFileName( baseName );
-    final File file = createFile( tmpDir, baseNamePath );
-    // keep track to delete later
-    copies.add( new WeakFileReference( file, queue ) );
-    return file;
-  }
-
-  /**
-   * Create the temporary file name.
-   *
-   * @param baseName the temporary file base name.
-   * @return the temporary file name.
-   */
-  protected String createFileName( final String baseName )
-  {
-    String safeBaseName = UriParser.encode( baseName, TMP_RESERVED_CHARS ).replace( '%', '_' );
-    return "tmp_" + safeBaseName;
-  }
-
-  /**
-   * Create a temporary file.
-   *
-   * @param parent the parent file.
-   * @param name   the file name.
-   * @return the file.
-   * @throws FileSystemException in case of creation failure.
-   */
-  protected File createFile( final File parent, final String name )
-    throws FileSystemException
-  {
-    return new File( parent, UriParser.decode( name ) );
-  }
-
-  /**
-   * Create a local (in cache) copy of the file, and all its descendants.
-   *
-   * @param src      the source file.
-   * @param selector the file selector.
-   * @return the replicate file.
-   * @throws FileSystemException in case of replication failure.
-   */
-  public File replicateFile( final FileObject src, final FileSelector selector )
-    throws FileSystemException
-  {
-    final String baseName = src.getName().getBaseName();
-    final File file = allocateFile( baseName );
-    // copy from the source file
-    final FileObject dest = getContext().toFileObject( file );
-    dest.copyFrom( src, selector );
-    return file;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/WeakFileReference.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/WeakFileReference.java
deleted file mode 100644
index 28e4703..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/WeakFileReference.java
+++ /dev/null
@@ -1,55 +0,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.
- */
-package org.apache.kalumet;
-
-import java.io.File;
-import java.lang.ref.ReferenceQueue;
-import java.lang.ref.WeakReference;
-
-/**
- * Managed files by reference.
- */
-public class WeakFileReference
-  extends WeakReference
-{
-
-  private String absolutePath;
-
-  /**
-   * Default constructor.
-   *
-   * @param file  the file to manage reference.
-   * @param queue the references queue.
-   */
-  public WeakFileReference( File file, ReferenceQueue queue )
-  {
-    super( file, queue );
-    this.absolutePath = file.getAbsolutePath();
-  }
-
-  /**
-   * Gets the absolute path of the file.
-   *
-   * @return the absolute path of the file.
-   */
-  public String getPath()
-  {
-    return this.absolutePath;
-  }
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Access.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Access.java
deleted file mode 100644
index 6bb20ba..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Access.java
+++ /dev/null
@@ -1,139 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represents the <code>access</code> tag in the Kalumet XML DOM.
- */
-public class Access
-  implements Serializable, Cloneable
-{
-
-  private static final long serialVersionUID = -3233389055334111823L;
-
-  private String group;
-
-  private List properties;
-
-  public Access()
-  {
-    properties = new LinkedList();
-  }
-
-  public String getGroup()
-  {
-    return this.group;
-  }
-
-  public void setGroup( String group )
-  {
-    this.group = group;
-  }
-
-  public List getProperties()
-  {
-    return properties;
-  }
-
-  public void setProperties( List properties )
-  {
-    this.properties = properties;
-  }
-
-  /**
-   * Add a new <code>Property</code> in the <code>Access</code>.
-   *
-   * @param property the <code>Property</code> to add.
-   */
-  public void addProperty( Property property )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getProperty( property.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Property name already exists in access." );
-    }
-    this.properties.add( property );
-  }
-
-  /**
-   * Get the <code>Property</code> identified by a given name in the <code>Access</code>.
-   *
-   * @param name the <code>Property</code> name.
-   * @return the <code>Property</code> found or null if no <code>Property</code> found.
-   */
-  public Property getProperty( String name )
-  {
-    for ( Iterator propertyIterator = this.properties.iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      if ( property.getName().equals( name ) )
-      {
-        return property;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Access clone = new Access();
-    clone.setGroup( this.getGroup() );
-    for ( Iterator propertyIterator = this.getProperties().iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      clone.properties.add( (Property) property.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transforms the <code>Access</code> POJO into a DOM element.
-   *
-   * @param document the core DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "access" );
-    element.setAttribute( "group", this.getGroup() );
-    // properties
-    ElementImpl properties = new ElementImpl( document, "properties" );
-    for ( Iterator propertyIterator = this.getProperties().iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      properties.appendChild( property.toDOMElement( document ) );
-    }
-    element.appendChild( properties );
-    return element;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Agent.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Agent.java
deleted file mode 100644
index c170ce5..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Agent.java
+++ /dev/null
@@ -1,155 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represents the <code>agent</code> tag in the Kalumet DOM.
- */
-public class Agent
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -2827134650188545192L;
-
-  private String id;
-
-  private String hostname;
-
-  private int port;
-
-  private String cron;
-
-  private int maxmanagedenvironments;
-
-  private int maxjeeapplicationserversstarted;
-
-  public Agent()
-  {
-  }
-
-  public String getId()
-  {
-    return this.id;
-  }
-
-  public void setId( String id )
-  {
-    this.id = id;
-  }
-
-  public String getHostname()
-  {
-    return this.hostname;
-  }
-
-  public void setHostname( String hostname )
-  {
-    this.hostname = hostname;
-  }
-
-  public int getPort()
-  {
-    return this.port;
-  }
-
-  public void setPort( int port )
-  {
-    this.port = port;
-  }
-
-  public String getCron()
-  {
-    return cron;
-  }
-
-  public void setCron( String cron )
-  {
-    this.cron = cron;
-  }
-
-  public int getMaxmanagedenvironments()
-  {
-    return this.maxmanagedenvironments;
-  }
-
-  public void setMaxmanagedenvironments( int maxmanagedenvironments )
-  {
-    this.maxmanagedenvironments = maxmanagedenvironments;
-  }
-
-  public int getMaxjeeapplicationserversstarted()
-  {
-    return this.maxjeeapplicationserversstarted;
-  }
-
-  public void setMaxjeeapplicationserversstarted(int maxenvironmentsactive)
-  {
-    this.maxjeeapplicationserversstarted = maxenvironmentsactive;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Agent clone = new Agent();
-    clone.setId( this.getId() );
-    clone.setHostname( this.getHostname() );
-    clone.setPort( this.getPort() );
-    clone.setCron( this.getCron() );
-    clone.setMaxmanagedenvironments( this.getMaxmanagedenvironments() );
-    clone.setMaxjeeapplicationserversstarted(this.getMaxjeeapplicationserversstarted());
-    return clone;
-  }
-
-  /**
-   * Transforms the <code>Agent</code> POJO into a DOM element.
-   *
-   * @param document the DOM core document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "agent" );
-    element.setAttribute( "id", this.getId() );
-    element.setAttribute( "hostname", this.getHostname() );
-    element.setAttribute( "port", new Integer( this.getPort() ).toString() );
-    element.setAttribute( "cron", this.getCron() );
-    element.setAttribute( "maxmanagedenvironments", new Integer( this.getMaxmanagedenvironments() ).toString() );
-    element.setAttribute( "maxjeeapplicationserversstarted",
-                          new Integer( this.getMaxjeeapplicationserversstarted() ).toString() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherAgent )
-  {
-    return this.getId().compareTo( ( (Agent) anotherAgent ).getId() );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Archive.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Archive.java
deleted file mode 100644
index 9646fb3..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Archive.java
+++ /dev/null
@@ -1,210 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represents the <code>archive</code> tag in the Kalumet DOM.
- */
-public class Archive
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 7125281479795326133L;
-
-  private String name;
-
-  private String uri;
-
-  private String classloaderorder;
-
-  private String classloaderpolicy;
-
-  private String vhost;
-
-  private String path;
-
-  private String context;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private String agent;
-
-  public Archive()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getUri()
-  {
-    return this.uri;
-  }
-
-  public void setUri( String uri )
-  {
-    this.uri = uri;
-  }
-
-  public String getClassloaderorder()
-  {
-    return classloaderorder;
-  }
-
-  public void setClassloaderorder( String classloaderorder )
-  {
-    this.classloaderorder = classloaderorder;
-  }
-
-  public String getClassloaderpolicy()
-  {
-    return classloaderpolicy;
-  }
-
-  public void setClassloaderpolicy( String classloaderpolicy )
-  {
-    this.classloaderpolicy = classloaderpolicy;
-  }
-
-  public String getVhost()
-  {
-    return this.vhost;
-  }
-
-  public void setVhost( String vhost )
-  {
-    this.vhost = vhost;
-  }
-
-  public String getPath()
-  {
-    return this.path;
-  }
-
-  public void setPath( String path )
-  {
-    this.path = path;
-  }
-
-  public String getContext()
-  {
-    return this.context;
-  }
-
-  public void setContext( String context )
-  {
-    this.context = context;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Archive clone = new Archive();
-    clone.setName( this.getName() );
-    clone.setUri( this.getUri() );
-    clone.setClassloaderorder( this.getClassloaderorder() );
-    clone.setClassloaderpolicy( this.getClassloaderpolicy() );
-    clone.setVhost( this.getVhost() );
-    clone.setPath( this.getPath() );
-    clone.setContext( this.getContext() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setAgent( this.getAgent() );
-    return clone;
-  }
-
-  /**
-   * Transforms the <code>Archive</code> specific POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "archive" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "uri", this.getUri() );
-    element.setAttribute( "classloaderorder", this.getClassloaderorder() );
-    element.setAttribute( "classloaderpolicy", this.getClassloaderpolicy() );
-    element.setAttribute( "vhost", this.getVhost() );
-    element.setAttribute( "path", this.getPath() );
-    element.setAttribute( "context", this.getContext() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "agent", this.getAgent() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherArchive )
-  {
-    return this.getName().compareTo( ( (Archive) anotherArchive ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Cache.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Cache.java
deleted file mode 100644
index 2aec347..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Cache.java
+++ /dev/null
@@ -1,85 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represents the <code>cache</code> tag in the Kalumet XML configuration
- * file.
- */
-public class Cache
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 1931779797709903317L;
-
-  private String path;
-
-  public Cache()
-  {
-  }
-
-  public String getPath()
-  {
-    return this.path;
-  }
-
-  public void setPath( String path )
-  {
-    this.path = path;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Cache clone = new Cache();
-    clone.setPath( this.getPath() );
-    return clone;
-  }
-
-  /**
-   * Transforms the <code>Cache</code> POJO to a DOM element.
-   *
-   * @param document the core XML document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "cache" );
-    element.setAttribute( "path", this.getPath() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherCache )
-  {
-    return this.getPath().compareTo( ( (Cache) anotherCache ).getPath() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Command.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Command.java
deleted file mode 100644
index 907d224..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Command.java
+++ /dev/null
@@ -1,142 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CDATASectionImpl;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent a <code>command</code> tag, mainly inside <code>software</code>.
- */
-public class Command
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -3671135569540426579L;
-
-  private String name;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private String agent;
-
-  private String command;
-
-  public Command()
-  {
-  }
-
-  public String getName()
-  {
-    return name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public boolean isActive()
-  {
-    return active;
-  }
-
-  public boolean isBlocker()
-  {
-    return blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  public String getCommand()
-  {
-    return command;
-  }
-
-  public void setCommand( String command )
-  {
-    this.command = command;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Command clone = new Command();
-    clone.setName( this.getName() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setAgent( this.getAgent() );
-    clone.setCommand( this.getCommand() );
-    return clone;
-  }
-
-  /**
-   * Transforms a <code>command</code> into a XML DOM element.
-   *
-   * @param document the DOM document.
-   * @return the <code>command</code> DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "command" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "agent", this.getAgent() );
-    CDATASectionImpl content = new CDATASectionImpl( document, this.getCommand() );
-    element.appendChild( content );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherCommand )
-  {
-    return this.getName().compareTo( ( (Command) anotherCommand ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ConfigurationFile.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ConfigurationFile.java
deleted file mode 100644
index 2c3ac46..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ConfigurationFile.java
+++ /dev/null
@@ -1,231 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represents the <code>configurationfile</code> tag in the Kalumet DOM.
- */
-public class ConfigurationFile
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -1898011382653346087L;
-
-  private String name;
-
-  private String uri;
-
-  private String path;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private String agent;
-
-  private LinkedList mappings;
-
-  public ConfigurationFile()
-  {
-    this.mappings = new LinkedList();
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getUri()
-  {
-    return this.uri;
-  }
-
-  public void setUri( String uri )
-  {
-    this.uri = uri;
-  }
-
-  public String getPath()
-  {
-    return this.path;
-  }
-
-  public void setPath( String path )
-  {
-    this.path = path;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  /**
-   * Add a new <code>Mapping</code> in the <code>ConfigurationFile</code>
-   * mappings container.
-   *
-   * @param mapping the <code>Mapping</code> to add.
-   */
-  public void addMapping( Mapping mapping )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getMapping( mapping.getKey() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Mapping key already exists in the configuration file." );
-    }
-    this.mappings.add( mapping );
-  }
-
-  /**
-   * Get the <code>Mapping</code> list in the <code>ConfigurationFile</code>
-   * mappings container.
-   *
-   * @return the <code>Mapping</code> list.
-   */
-  public List getMappings()
-  {
-    return this.mappings;
-  }
-
-  /**
-   * Set the <code>Mapping</code> list in the
-   * <code>ConfigurationFile</code> mappings container.
-   *
-   * @param mappings the new <code>Mapping</code> list.
-   */
-  public void setMappings( LinkedList mappings )
-  {
-    this.mappings = mappings;
-  }
-
-  /**
-   * Get the <code>Mapping</code> identified by a given key in the
-   * <code>ConfigurationFile</code> mappings container.
-   *
-   * @param key the <code>Mapping</code> key.
-   * @return the <code>Mapping</code> found or null if no <code>Mapping</code> found.
-   */
-  public Mapping getMapping( String key )
-  {
-    for ( Iterator mappingIterator = this.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      if ( mapping.getKey().equals( key ) )
-      {
-        return mapping;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    ConfigurationFile clone = new ConfigurationFile();
-    clone.setName( this.getName() );
-    clone.setUri( this.getUri() );
-    clone.setPath( this.getPath() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setAgent( this.getAgent() );
-    for ( Iterator mappingIterator = this.mappings.iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      clone.mappings.add( (Mapping) mapping.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>ConfigurationFile</code> POJO to a DOM element.
-   *
-   * @param document the core XML document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "configurationfile" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "uri", this.getUri() );
-    element.setAttribute( "path", this.getPath() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "agent", this.getAgent() );
-    // mappings
-    ElementImpl mappings = new ElementImpl( document, "mappings" );
-    for ( Iterator mappingIterator = this.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      mappings.appendChild( mapping.toDOMElement( document ) );
-    }
-    element.appendChild( mappings );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherConfigurationFile )
-  {
-    return this.getName().compareTo( ( (ConfigurationFile) anotherConfigurationFile ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ContentManager.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ContentManager.java
deleted file mode 100644
index ec2e645..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ContentManager.java
+++ /dev/null
@@ -1,217 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>contentmanager</code> tag in the Kalumet DOM.
- */
-public class ContentManager
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -6772514401403559365L;
-
-  private String name;
-
-  private String classname;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private String agent;
-
-  private LinkedList properties;
-
-  public ContentManager()
-  {
-    this.properties = new LinkedList();
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getClassname()
-  {
-    return this.classname;
-  }
-
-  public void setClassname( String classname )
-  {
-    this.classname = classname;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  /**
-   * Add a new <code>Property</code> in the <code>ContentManager</code>
-   * properties container.
-   *
-   * @param property the <code>Property</code> to add.
-   */
-  public void addProperty( Property property )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getProperty( property.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Property name already exists in content manager." );
-    }
-    this.properties.add( property );
-  }
-
-  /**
-   * Get the <code>Property</code> list in the <code>ContentManager</code>
-   * properties container.
-   *
-   * @return the <code>Property</code> list.
-   */
-  public List getProperties()
-  {
-    return this.properties;
-  }
-
-  /**
-   * Set the <code>Property</code> list in the
-   * <code>ContentManager</code> properties container.
-   *
-   * @param properties the new <code>Property</code> list.
-   */
-  public void setProperties( LinkedList properties )
-  {
-    this.properties = properties;
-  }
-
-  /**
-   * Get the <code>Property</code> identified by a given name in the
-   * <code>ContentManager</code> properties container.
-   *
-   * @param name the <code>Property</code> name.
-   * @return the <code>Property</code> found or null if no <code>Property</code> found.
-   */
-  public Property getProperty( String name )
-  {
-    for ( Iterator propertyIterator = this.getProperties().iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      if ( property.getName().equals( name ) )
-      {
-        return property;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    ContentManager clone = new ContentManager();
-    clone.setName( this.getName() );
-    clone.setClassname( this.getClassname() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setAgent( this.getAgent() );
-    for ( Iterator propertyIterator = this.properties.iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      clone.properties.add( (Property) property.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>ContentManager</code> POJO to a DOM element.
-   *
-   * @param document the core XML document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "contentmanager" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "classname", this.getClassname() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "agent", this.getAgent() );
-    // properties
-    ElementImpl properties = new ElementImpl( document, "properties" );
-    for ( Iterator propertyIterator = this.getProperties().iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      properties.appendChild( property.toDOMElement( document ) );
-    }
-    element.appendChild( properties );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherContentManager )
-  {
-    return this.getName().compareTo( ( (ContentManager) anotherContentManager ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Database.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Database.java
deleted file mode 100644
index 8efa40e..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Database.java
+++ /dev/null
@@ -1,287 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>database</code> tag in the Kalumet configuration DOM.
- */
-public class Database
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 119112072290707974L;
-
-  private String name;
-
-  private String driver;
-
-  private String user;
-
-  private String password;
-
-  private String jdbcurl;
-
-  private String connectionPool;
-
-  private String sqlCommand;
-
-  private String agent;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private LinkedList sqlScripts;
-
-  public Database()
-  {
-    this.sqlScripts = new LinkedList();
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getDriver()
-  {
-    return this.driver;
-  }
-
-  public void setDriver( String driver )
-  {
-    this.driver = driver;
-  }
-
-  public String getUser()
-  {
-    return this.user;
-  }
-
-  public void setUser( String user )
-  {
-    this.user = user;
-  }
-
-  public String getPassword()
-  {
-    return this.password;
-  }
-
-  public void setPassword( String password )
-  {
-    this.password = password;
-  }
-
-  public String getJdbcurl()
-  {
-    return this.jdbcurl;
-  }
-
-  public void setJdbcurl( String jdbcurl )
-  {
-    this.jdbcurl = jdbcurl;
-  }
-
-  public String getConnectionPool()
-  {
-    return connectionPool;
-  }
-
-  public void setConnectionPool( String connectionPool )
-  {
-    this.connectionPool = connectionPool;
-  }
-
-  public String getSqlCommand()
-  {
-    return sqlCommand;
-  }
-
-  public void setSqlCommand( String sqlCommand )
-  {
-    this.sqlCommand = sqlCommand;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  /**
-   * Add a new <code>SqlScript</code> in the <code>Database</code> sqlscripts
-   * container.
-   *
-   * @param sqlScript the <code>SqlScript</code> to add.
-   */
-  public void addSqlScript( SqlScript sqlScript )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getSqlScript( sqlScript.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "SQL script name already exists in database." );
-    }
-    this.sqlScripts.add( sqlScript );
-  }
-
-  /**
-   * Get the <code>SqlScript</code> list in the <code>Database</code>
-   * sqlscripts container.
-   *
-   * @return the <code>SqlScript</code> list.
-   */
-  public List getSqlScripts()
-  {
-    return this.sqlScripts;
-  }
-
-  /**
-   * Set the <code>SqlScript</code> list in the <code>Database</code>
-   * sqlscripts container.
-   *
-   * @param sqlScripts the new <code>SqlScript</code> list.
-   */
-  public void setSqlScripts( LinkedList sqlScripts )
-  {
-    this.sqlScripts = sqlScripts;
-  }
-
-  /**
-   * Get the <code>SqlScript</code> identified by a given name in the
-   * <code>Database</code> sqlscripts container.
-   *
-   * @param name the <code>SqlScript</code> name.
-   * @return the <code>SqlScript</code> found or null if no <code>SqlScript</code> found.
-   */
-  public SqlScript getSqlScript( String name )
-  {
-    for ( Iterator sqlScriptIterator = this.getSqlScripts().iterator(); sqlScriptIterator.hasNext(); )
-    {
-      SqlScript sqlScript = (SqlScript) sqlScriptIterator.next();
-      if ( sqlScript.getName().equals( name ) )
-      {
-        return sqlScript;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Database clone = new Database();
-    clone.setName( this.getName() );
-    clone.setDriver( this.getDriver() );
-    clone.setUser( this.getUser() );
-    clone.setPassword( this.getPassword() );
-    clone.setJdbcurl( this.getJdbcurl() );
-    clone.setConnectionPool( this.getConnectionPool() );
-    clone.setSqlCommand( this.getSqlCommand() );
-    clone.setAgent( this.getAgent() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    for ( Iterator sqlScriptIterator = this.sqlScripts.iterator(); sqlScriptIterator.hasNext(); )
-    {
-      SqlScript sqlScript = (SqlScript) sqlScriptIterator.next();
-      clone.sqlScripts.add( (SqlScript) sqlScript.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Database</code> POJO to a DOM element.
-   *
-   * @param document the core XML document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "database" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "driver", this.getDriver() );
-    element.setAttribute( "user", this.getUser() );
-    element.setAttribute( "password", this.getPassword() );
-    element.setAttribute( "jdbcurl", this.getJdbcurl() );
-    element.setAttribute( "connectionPool", this.getConnectionPool() );
-    element.setAttribute( "sqlCommand", this.getSqlCommand() );
-    element.setAttribute( "agent", this.getAgent() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    // sqlscripts
-    ElementImpl sqlscripts = new ElementImpl( document, "sqlscripts" );
-    for ( Iterator sqlScriptIterator = this.getSqlScripts().iterator(); sqlScriptIterator.hasNext(); )
-    {
-      SqlScript sqlScript = (SqlScript) sqlScriptIterator.next();
-      sqlscripts.appendChild( sqlScript.toDOMElement( document ) );
-    }
-    element.appendChild( sqlscripts );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherDatabase )
-  {
-    return this.getName().compareTo( ( (Database) anotherDatabase ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Destination.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Destination.java
deleted file mode 100644
index 38c9e7a..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Destination.java
+++ /dev/null
@@ -1,84 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>destination</code> tag in the Kalumet configuration DOM.
- */
-public class Destination
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 1088692045286398988L;
-
-  private String address;
-
-  public Destination()
-  {
-  }
-
-  public String getAddress()
-  {
-    return this.address;
-  }
-
-  public void setAddress( String address )
-  {
-    this.address = address;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Destination clone = new Destination();
-    clone.setAddress( this.getAddress() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Destination</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "destination" );
-    element.setAttribute( "address", this.getAddress() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherDestination )
-  {
-    return this.getAddress().compareTo( ( (Destination) anotherDestination ).getAddress() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Email.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Email.java
deleted file mode 100644
index 8444c5a..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Email.java
+++ /dev/null
@@ -1,175 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>Email</code> tag in the Kalumet configuration DOM.
- */
-public class Email
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -88087573038809801L;
-
-  private String mailhost;
-
-  private String from;
-
-  private LinkedList destinations;
-
-  public Email()
-  {
-    this.destinations = new LinkedList();
-  }
-
-  public String getMailhost()
-  {
-    return this.mailhost;
-  }
-
-  public void setMailhost( String mailhost )
-  {
-    this.mailhost = mailhost;
-  }
-
-  public String getFrom()
-  {
-    return this.from;
-  }
-
-  public void setFrom( String from )
-  {
-    this.from = from;
-  }
-
-  /**
-   * Add a new <code>Destination</code> in the <code>Email</code>
-   * destinations container.
-   *
-   * @param destination the <code>Destination</code> to add.
-   */
-  public void addDestination( Destination destination )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getDestination( destination.getAddress() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Destination address already exists in the email destinations." );
-    }
-    this.destinations.add( destination );
-  }
-
-  /**
-   * Get the <code>Destination</code> list in the <code>Email</code>
-   * destinations container.
-   *
-   * @return the <code>Destination</code> list.
-   */
-  public List getDestinations()
-  {
-    return this.destinations;
-  }
-
-  /**
-   * Set the <code>Destination</code> list in the <code>Email</code>
-   * destinations container.
-   *
-   * @param destinations the new <code>Destination</code> list.
-   */
-  public void setDestinations( LinkedList destinations )
-  {
-    this.destinations = destinations;
-  }
-
-  /**
-   * Get the <code>Destination</code> identified by a given address in the
-   * <code>Email</code> destinations container.
-   *
-   * @param address the <code>Destination</code> address.
-   * @return the <code>Destination</code> found or null if not found.
-   */
-  public Destination getDestination( String address )
-  {
-    for ( Iterator destinationIterator = this.getDestinations().iterator(); destinationIterator.hasNext(); )
-    {
-      Destination destination = (Destination) destinationIterator.next();
-      if ( destination.getAddress().equals( address ) )
-      {
-        return destination;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Email clone = new Email();
-    clone.setMailhost( this.getMailhost() );
-    clone.setFrom( this.getFrom() );
-    for ( Iterator destinationIterator = this.destinations.iterator(); destinationIterator.hasNext(); )
-    {
-      Destination destination = (Destination) destinationIterator.next();
-      clone.destinations.add( (Destination) destination.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Email</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "email" );
-    element.setAttribute( "mailhost", this.getMailhost() );
-    element.setAttribute( "from", this.getFrom() );
-    // destinations
-    ElementImpl destinations = new ElementImpl( document, "destinations" );
-    for ( Iterator destinationIterator = this.getDestinations().iterator(); destinationIterator.hasNext(); )
-    {
-      Destination destination = (Destination) destinationIterator.next();
-      destinations.appendChild( destination.toDOMElement( document ) );
-    }
-    element.appendChild( destinations );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherEmail )
-  {
-    return this.getMailhost().compareTo( ( (Email) anotherEmail ).getMailhost() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Environment.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Environment.java
deleted file mode 100644
index 0fcd2c0..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Environment.java
+++ /dev/null
@@ -1,742 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CDATASectionImpl;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>environment</code> tag in the Kalumet configuration DOM.
- */
-public class Environment
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -5131247974934459040L;
-
-  private String name;
-
-  private String group;
-
-  private String tag;
-
-  private boolean autoupdate;
-
-  private String agent;
-
-  private String lock;
-
-  private String releaseLocation;
-
-  private String notes;
-
-  private String weblinks;
-
-  private LinkedList variables;
-
-  private LinkedList freeFields;
-
-  private LinkedList accesses;
-
-  private JEEApplicationServers jeeApplicationServers;
-
-  private LinkedList softwares;
-
-  private LinkedList logFiles;
-
-  private Notifiers notifiers;
-
-  private LinkedList publishers;
-
-  private Statistics statistics;
-
-  public Environment()
-  {
-    this.variables = new LinkedList();
-    this.freeFields = new LinkedList();
-    this.accesses = new LinkedList();
-    this.jeeApplicationServers = new JEEApplicationServers();
-    this.softwares = new LinkedList();
-    this.logFiles = new LinkedList();
-    this.notifiers = new Notifiers();
-    this.publishers = new LinkedList();
-    this.statistics = new Statistics();
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getGroup()
-  {
-    return this.group;
-  }
-
-  public void setGroup( String group )
-  {
-    this.group = group;
-  }
-
-  public String getTag()
-  {
-    return this.tag;
-  }
-
-  public void setTag( String flag )
-  {
-    this.tag = flag;
-  }
-
-  public boolean isAutoupdate()
-  {
-    return this.autoupdate;
-  }
-
-  public void setAutoupdate( boolean autoupdate )
-  {
-    this.autoupdate = autoupdate;
-  }
-
-  public String getAgent()
-  {
-    return this.agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  public String getLock()
-  {
-    return this.lock;
-  }
-
-  public void setLock( String lock )
-  {
-    this.lock = lock;
-  }
-
-  public String getReleaseLocation()
-  {
-    return this.releaseLocation;
-  }
-
-  public void setReleaseLocation( String releaseLocation )
-  {
-    this.releaseLocation = releaseLocation;
-  }
-
-  public String getNotes()
-  {
-    return this.notes;
-  }
-
-  public void setNotes( String notes )
-  {
-    this.notes = notes;
-  }
-
-  public String getWeblinks()
-  {
-    return this.weblinks;
-  }
-
-  public void setWeblinks( String weblinks )
-  {
-    this.weblinks = weblinks;
-  }
-
-  /**
-   * Add a new <code>Variable</code> in the <code>Environment</code>
-   * variables container.
-   *
-   * @param variable the <code>Variable</code> to add.
-   */
-  public void addVariable( Variable variable )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getVariable( variable.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Variable name already exists in the environment variables." );
-    }
-    this.variables.add( variable );
-  }
-
-  /**
-   * Get the <code>Variable</code> list in the <code>Environment</code>
-   * variables container.
-   *
-   * @return the <code>Variable</code> list.
-   */
-  public List getVariables()
-  {
-    return this.variables;
-  }
-
-  /**
-   * Set the <code>Variable</code> list in the <code>Environment</code>
-   * variables container.
-   *
-   * @param variables the new <code>Variable</code> list.
-   */
-  public void setVariables( LinkedList variables )
-  {
-    this.variables = variables;
-  }
-
-  /**
-   * Get the <code>Variable</code> identified by a given name in the
-   * <code>Environment</code> variables container.
-   *
-   * @param name the <code>Variable</code> name.
-   * @return the <code>Variable</code> found or null if not found.
-   */
-  public Variable getVariable( String name )
-  {
-    for ( Iterator variableIterator = this.getVariables().iterator(); variableIterator.hasNext(); )
-    {
-      Variable variable = (Variable) variableIterator.next();
-      if ( variable.getName().equals( name ) )
-      {
-        return variable;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>FreeField</code> in the <code>Environment</code>
-   * free fields container.
-   *
-   * @param freeField the <code>FreeField</code> to add.
-   */
-  public void addFreeField( FreeField freeField )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getFreeField( freeField.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Freefield name already exists in the environment freefields." );
-    }
-    this.freeFields.add( freeField );
-  }
-
-  /**
-   * Get the <code>FreeField</code> list in the <code>Environment</code>
-   * free fields container.
-   *
-   * @return the <code>FreeField</code> list.
-   */
-  public List getFreeFields()
-  {
-    return this.freeFields;
-  }
-
-  /**
-   * Set the <code>FreeField<code> list in the <code>Environment</code>
-   * free fields container.
-   *
-   * @param freeFields the new <code>FreeField</code> list.
-   */
-  public void setFreeFields( LinkedList freeFields )
-  {
-    this.freeFields = freeFields;
-  }
-
-  /**
-   * Get the <code>FreeField</code> identified by a given name in the
-   * <code>Environment</code> free fields container.
-   *
-   * @param name the <code>FreeField</code> name.
-   * @return the <code>FreeField</code> found or null if not found.
-   */
-  public FreeField getFreeField( String name )
-  {
-    for ( Iterator freeFieldIterator = this.getFreeFields().iterator(); freeFieldIterator.hasNext(); )
-    {
-      FreeField freeField = (FreeField) freeFieldIterator.next();
-      if ( freeField.getName().equals( name ) )
-      {
-        return freeField;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>Access</code> in the <code>Environment</code> accesses
-   * container.
-   *
-   * @param access the <code>Access</code> to add.
-   */
-  public void addAccess( Access access )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getAccess( access.getGroup() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Access group id already exists in the environnement accesses." );
-    }
-    this.accesses.add( access );
-  }
-
-  /**
-   * Get the <code>Access</code> list in the <code>Environment</code>
-   * accesses container.
-   *
-   * @return the <code>Access</code> list.
-   */
-  public List getAccesses()
-  {
-    return this.accesses;
-  }
-
-  /**
-   * Set the <code>Access</code> list in the <code>Environment</code>
-   * accesses container.
-   *
-   * @param accesses the new <code>Access</code> list.
-   */
-  public void setAccesses( LinkedList accesses )
-  {
-    this.accesses = accesses;
-  }
-
-  /**
-   * Get the <code>Access</code> identified by a given group id in the
-   * <code>Environment</code> accesses container.
-   *
-   * @param group the group id.
-   * @return the <code>Access</code> found or null if not found.
-   */
-  public Access getAccess( String group )
-  {
-    for ( Iterator accessIterator = this.getAccesses().iterator(); accessIterator.hasNext(); )
-    {
-      Access access = (Access) accessIterator.next();
-      if ( access.getGroup().equals( group ) )
-      {
-        return access;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Set the <code>JEEApplicationServers</code> container in the
-   * <code>Environment</code>.
-   *
-   * @param jeeApplicationServers the <code>JEEApplicationServers</code> to set.
-   */
-  public void setJEEApplicationServers(JEEApplicationServers jeeApplicationServers)
-  {
-    this.jeeApplicationServers = jeeApplicationServers;
-  }
-
-  /**
-   * Get the <code>JEEApplicationServers</code> container in the
-   * <code>Environment</code>.
-   *
-   * @return the <code>JEEApplicationServers</code> container.
-   */
-  public JEEApplicationServers getJEEApplicationServers()
-  {
-    return this.jeeApplicationServers;
-  }
-
-  /**
-   * Add a new <code>Software</code> in the <code>Environment</code>
-   * softwares container.
-   *
-   * @param software the <code>Software</code> to add.
-   */
-  public void addSoftware( Software software )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getSoftware( software.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Software name already exists in the environment." );
-    }
-    this.softwares.add( software );
-  }
-
-  /**
-   * Get the <code>Software</code> list in the <code>Environment</code>
-   * softwares container.
-   *
-   * @return the <code>Software</code> list.
-   */
-  public List getSoftwares()
-  {
-    return this.softwares;
-  }
-
-  /**
-   * Set the <code>Software</code> list in the <code>Environment</code>
-   * softwares container.
-   *
-   * @param softwares the new <code>Software</code> list.
-   */
-  public void setSoftwares( LinkedList softwares )
-  {
-    this.softwares = softwares;
-  }
-
-  /**
-   * Get the <code>Software</code> identified by a given name in the
-   * <code>Environment</code> softwares container.
-   *
-   * @param name the <code>Software</code> name.
-   * @return the <code>Software</code> found or null if not found.
-   */
-  public Software getSoftware( String name )
-  {
-    for ( Iterator softwareIterator = this.getSoftwares().iterator(); softwareIterator.hasNext(); )
-    {
-      Software software = (Software) softwareIterator.next();
-      if ( software.getName().equals( name ) )
-      {
-        return software;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Get the environment log files list.
-   *
-   * @return the log files list.
-   */
-  public List getLogFiles()
-  {
-    return this.logFiles;
-  }
-
-  /**
-   * Set the environment log files list.
-   *
-   * @param logFiles the log files list.
-   */
-  public void setLogFiles( LinkedList logFiles )
-  {
-    this.logFiles = logFiles;
-  }
-
-  /**
-   * Get a log file identified by a name.
-   *
-   * @param name the log file name.
-   * @return the log file or null if not found.
-   */
-  public LogFile getLogFile( String name )
-  {
-    for ( Iterator logFileIterator = this.getLogFiles().iterator(); logFileIterator.hasNext(); )
-    {
-      LogFile logFile = (LogFile) logFileIterator.next();
-      if ( logFile.getName().equals( name ) )
-      {
-        return logFile;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new log file in the environment.
-   *
-   * @param logFile the log file to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the log file name already exists.
-   */
-  public void addLogFile( LogFile logFile )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getLogFile( logFile.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Log file name already exists in environment." );
-    }
-    this.logFiles.add( logFile );
-  }
-
-  /**
-   * Set the <code>Notifiers</code> in the <code>Environment</code>.
-   *
-   * @param notifiers the <code>Notifiers</code> to set.
-   */
-  public void setNotifiers( Notifiers notifiers )
-  {
-    this.notifiers = notifiers;
-  }
-
-  /**
-   * Get the <code>Notifiers</code> in the <code>Environment</code>.
-   *
-   * @return the <code>Notifiers</code> in the <code>Environment</code>.
-   */
-  public Notifiers getNotifiers()
-  {
-    return this.notifiers;
-  }
-
-  /**
-   * Add a new <code>Email</code> publisher in the <code>Environment</code>
-   * publishers container.
-   *
-   * @param email the <code>Email</code> to add.
-   */
-  public void addPublisher( Email email )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getPublisher( email.getMailhost() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Email publisher mailhost already exists in environment." );
-    }
-    this.publishers.add( email );
-  }
-
-  /**
-   * Get the <code>Email</code> publisher list in the
-   * <code>Environment</code> publishers container.
-   *
-   * @return the <code>Email</code> publisher list.
-   */
-  public List getPublishers()
-  {
-    return this.publishers;
-  }
-
-  /**
-   * Set the <code>Email</code> publisher list in the
-   * <code>Environment</code> publishers container.
-   *
-   * @param publishers the new <code>Email</code> publisher list.
-   */
-  public void setPublishers( LinkedList publishers )
-  {
-    this.publishers = publishers;
-  }
-
-  /**
-   * Get the <code>Email</code> publisher identified by a given mail host
-   * in the <code>Environment</code> publishers container.
-   *
-   * @param mailhost the <code>Email</code> mail host.
-   * @return the <code>Email</code> found or null if not found.
-   */
-  public Email getPublisher( String mailhost )
-  {
-    for ( Iterator publisherIterator = this.getPublishers().iterator(); publisherIterator.hasNext(); )
-    {
-      Email email = (Email) publisherIterator.next();
-      if ( email.getMailhost().equals( mailhost ) )
-      {
-        return email;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Set the <code>Statistics</code> container.
-   *
-   * @return statistics the new <code>Statistics</code> container.
-   */
-  public Statistics getStatistics()
-  {
-    return statistics;
-  }
-
-  /**
-   * Get the <code>Statistics</code> container.
-   *
-   * @param statistics the current <code>Statistics</code> container.
-   */
-  public void setStatistics( Statistics statistics )
-  {
-    this.statistics = statistics;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Environment clone = new Environment();
-    clone.setName( this.getName() );
-    clone.setGroup( this.getGroup() );
-    clone.setTag( this.getTag() );
-    clone.setAutoupdate( this.isAutoupdate() );
-    clone.setAgent( this.getAgent() );
-    clone.setLock( this.getLock() );
-    clone.setReleaseLocation( this.getReleaseLocation() );
-    clone.setNotes( this.getNotes() );
-    clone.setWeblinks( this.getWeblinks() );
-    for ( Iterator variableIterator = this.variables.iterator(); variableIterator.hasNext(); )
-    {
-      Variable variable = (Variable) variableIterator.next();
-      clone.variables.add( (Variable) variable.clone() );
-    }
-    for ( Iterator freeFieldIterator = this.freeFields.iterator(); freeFieldIterator.hasNext(); )
-    {
-      FreeField freeField = (FreeField) freeFieldIterator.next();
-      clone.freeFields.add( (FreeField) freeField.clone() );
-    }
-    for ( Iterator accessIterator = this.accesses.iterator(); accessIterator.hasNext(); )
-    {
-      Access access = (Access) accessIterator.next();
-      clone.accesses.add( (Access) access.clone() );
-    }
-    clone.setJEEApplicationServers((JEEApplicationServers) this.getJEEApplicationServers().clone());
-    for ( Iterator softwareIterator = this.softwares.iterator(); softwareIterator.hasNext(); )
-    {
-      Software software = (Software) softwareIterator.next();
-      clone.softwares.add( (Software) software.clone() );
-    }
-    for ( Iterator logFilesIterator = this.logFiles.iterator(); logFilesIterator.hasNext(); )
-    {
-      LogFile logFile = (LogFile) logFilesIterator.next();
-      clone.softwares.add( (LogFile) logFile.clone() );
-    }
-    clone.setNotifiers( (Notifiers) this.getNotifiers().clone() );
-    for ( Iterator publisherIterator = this.publishers.iterator(); publisherIterator.hasNext(); )
-    {
-      Email publisher = (Email) publisherIterator.next();
-      clone.publishers.add( (Email) publisher.clone() );
-    }
-    clone.setStatistics( (Statistics) this.getStatistics().clone() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Environment</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "environment" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "group", this.getGroup() );
-    element.setAttribute( "tag", this.getTag() );
-    element.setAttribute( "autoupdate", new Boolean( this.isAutoupdate() ).toString() );
-    element.setAttribute( "agent", this.getAgent() );
-    element.setAttribute( "lock", this.getLock() );
-    element.setAttribute( "releaseLocation", this.getReleaseLocation() );
-    // variables element
-    ElementImpl variables = new ElementImpl( document, "variables" );
-    // add variable to variables
-    for ( Iterator variableIterator = this.getVariables().iterator(); variableIterator.hasNext(); )
-    {
-      Variable variable = (Variable) variableIterator.next();
-      variables.appendChild( variable.toDOMElement( document ) );
-    }
-    // add variables to environment
-    element.appendChild( variables );
-    // freefields element
-    ElementImpl freefields = new ElementImpl( document, "freefields" );
-    // add freefield to freefields
-    for ( Iterator freeFieldIterator = this.getFreeFields().iterator(); freeFieldIterator.hasNext(); )
-    {
-      FreeField freefield = (FreeField) freeFieldIterator.next();
-      freefields.appendChild( freefield.toDOMElement( document ) );
-    }
-    // add freefields to environment
-    element.appendChild( freefields );
-    // accesses element
-    ElementImpl accesses = new ElementImpl( document, "accesses" );
-    // add access to accesses
-    for ( Iterator accessIterator = this.getAccesses().iterator(); accessIterator.hasNext(); )
-    {
-      Access access = (Access) accessIterator.next();
-      accesses.appendChild( access.toDOMElement( document ) );
-    }
-    // add accesses to environment
-    element.appendChild( accesses );
-    // add notes
-    ElementImpl notes = new ElementImpl( document, "notes" );
-    CDATASectionImpl notesContent = new CDATASectionImpl( document, this.getNotes() );
-    notes.appendChild( notesContent );
-    element.appendChild( notes );
-    // add weblinks
-    ElementImpl weblinks = new ElementImpl( document, "weblinks" );
-    CDATASectionImpl weblinksContent = new CDATASectionImpl( document, this.getWeblinks() );
-    weblinks.appendChild( weblinksContent );
-    element.appendChild( weblinks );
-    // add JEE servers
-    element.appendChild( this.getJEEApplicationServers().toDOMElement( document ) );
-    // softwares element
-    ElementImpl softwares = new ElementImpl( document, "softwares" );
-    // add software to softwares
-    for ( Iterator softwareIterator = this.getSoftwares().iterator(); softwareIterator.hasNext(); )
-    {
-      Software software = (Software) softwareIterator.next();
-      softwares.appendChild( software.toDOMElement( document ) );
-    }
-    // add softwares to environment
-    element.appendChild( softwares );
-    // logfiles element
-    ElementImpl logfiles = new ElementImpl( document, "logfiles" );
-    // add logfile to logfiles
-    for ( Iterator logFileIterator = this.getLogFiles().iterator(); logFileIterator.hasNext(); )
-    {
-      LogFile logFile = (LogFile) logFileIterator.next();
-      logfiles.appendChild( logFile.toDOMElement( document ) );
-    }
-    // add logfiles to environment
-    element.appendChild( logfiles );
-    // add notifiers to environments
-    element.appendChild( this.getNotifiers().toDOMElement( document ) );
-    // publishers element
-    ElementImpl publishers = new ElementImpl( document, "publishers" );
-    // add email publisher to publishers
-    for ( Iterator publisherIterator = this.getPublishers().iterator(); publisherIterator.hasNext(); )
-    {
-      Email email = (Email) publisherIterator.next();
-      publishers.appendChild( email.toDOMElement( document ) );
-    }
-    // add publishers to environment
-    element.appendChild( publishers );
-    // add statistics
-    element.appendChild( this.getStatistics().toDOMElement( document ) );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherEnvironment )
-  {
-    return this.getName().compareTo( ( (Environment) anotherEnvironment ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/FreeField.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/FreeField.java
deleted file mode 100644
index 506d6e2..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/FreeField.java
+++ /dev/null
@@ -1,100 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CDATASectionImpl;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>freefield</code> tag in the Kalumet configuration DOM.
- */
-public class FreeField
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -39120916167747289L;
-
-  private String name;
-
-  private String content;
-
-  public FreeField()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getContent()
-  {
-    return this.content;
-  }
-
-  public void setContent( String content )
-  {
-    this.content = content;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    FreeField clone = new FreeField();
-    clone.setName( this.getName() );
-    clone.setContent( this.getContent() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>FreeField</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "freefield" );
-    element.setAttribute( "name", this.getName() );
-    CDATASectionImpl content = new CDATASectionImpl( document, this.getContent() );
-    element.appendChild( content );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherFreeField )
-  {
-    return this.getName().compareTo( ( (FreeField) anotherFreeField ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Group.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Group.java
deleted file mode 100644
index 021a466..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Group.java
+++ /dev/null
@@ -1,175 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>group</code> tag in the Kalumet configuration DOM.
- */
-public class Group
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 5188524193501221530L;
-
-  private String id;
-
-  private String name;
-
-  private LinkedList users;
-
-  public Group()
-  {
-    this.users = new LinkedList();
-  }
-
-  public String getId()
-  {
-    return this.id;
-  }
-
-  public void setId( String id )
-  {
-    this.id = id;
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  /**
-   * Add a new <code>User</code> in the <code>Group</code> container.
-   *
-   * @param user the <code>User</code> to add.
-   */
-  public void addUser( User user )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getUser( user.getId() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "User id already exists in group." );
-    }
-    this.users.add( user );
-  }
-
-  /**
-   * Get the <code>User</code> list in the <code>Group</code> container.
-   *
-   * @return the <code>User</code> list.
-   */
-  public List getUsers()
-  {
-    return this.users;
-  }
-
-  /**
-   * Set the <code>User</code> list in the <code>Group</code>
-   * container.
-   *
-   * @param users the new <code>User</code> list.
-   */
-  public void setUsers( LinkedList users )
-  {
-    this.users = users;
-  }
-
-  /**
-   * Get a <code>User</code> identified by a given id in the
-   * <code>Group</code> container;
-   *
-   * @param id the <code>User</code> id.
-   * @return the found <code>User</code> or null if not found.
-   */
-  public User getUser( String id )
-  {
-    for ( Iterator userIterator = this.getUsers().iterator(); userIterator.hasNext(); )
-    {
-      User user = (User) userIterator.next();
-      if ( user.getId().equals( id ) )
-      {
-        return user;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Group clone = new Group();
-    clone.setId( this.getId() );
-    clone.setName( this.getName() );
-    for ( Iterator userIterator = this.users.iterator(); userIterator.hasNext(); )
-    {
-      User user = (User) userIterator.next();
-      clone.users.add( (User) user.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Group</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "group" );
-    element.setAttribute( "id", this.getId() );
-    element.setAttribute( "name", this.getName() );
-    // users element
-    ElementImpl users = new ElementImpl( document, "users" );
-    // add user in the users element
-    for ( Iterator userIterator = this.getUsers().iterator(); userIterator.hasNext(); )
-    {
-      User user = (User) userIterator.next();
-      users.appendChild( user.toDOMElement( document ) );
-    }
-    // add users to group element
-    element.appendChild( users );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherGroup )
-  {
-    return this.getId().compareTo( ( (Group) anotherGroup ).getId() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JDBCConnectionPool.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JDBCConnectionPool.java
deleted file mode 100644
index 66e9819..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JDBCConnectionPool.java
+++ /dev/null
@@ -1,239 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>jdbcconnectionpool</code> tag in the Kalumet XML
- * configuration file.
- */
-public class JDBCConnectionPool
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 8052573645587249685L;
-
-  private String name;
-
-  private String driver;
-
-  private String helperclass;
-
-  private int increment;
-
-  private int initial;
-
-  private int maximal;
-
-  private String user;
-
-  private String password;
-
-  private String url;
-
-  private String classpath;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  public JDBCConnectionPool()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getDriver()
-  {
-    return this.driver;
-  }
-
-  public void setDriver( String driver )
-  {
-    this.driver = driver;
-  }
-
-  public String getHelperclass()
-  {
-    return this.helperclass;
-  }
-
-  public void setHelperclass( String helperclass )
-  {
-    this.helperclass = helperclass;
-  }
-
-  public int getIncrement()
-  {
-    return this.increment;
-  }
-
-  public void setIncrement( int increment )
-  {
-    this.increment = increment;
-  }
-
-  public int getInitial()
-  {
-    return this.initial;
-  }
-
-  public void setInitial( int initial )
-  {
-    this.initial = initial;
-  }
-
-  public int getMaximal()
-  {
-    return this.maximal;
-  }
-
-  public void setMaximal( int maximal )
-  {
-    this.maximal = maximal;
-  }
-
-  public String getUser()
-  {
-    return this.user;
-  }
-
-  public void setUser( String user )
-  {
-    this.user = user;
-  }
-
-  public String getPassword()
-  {
-    return this.password;
-  }
-
-  public void setPassword( String password )
-  {
-    this.password = password;
-  }
-
-  public String getUrl()
-  {
-    return this.url;
-  }
-
-  public void setUrl( String url )
-  {
-    this.url = url;
-  }
-
-  public String getClasspath()
-  {
-    return this.classpath;
-  }
-
-  public void setClasspath( String classpath )
-  {
-    this.classpath = classpath;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JDBCConnectionPool clone = new JDBCConnectionPool();
-    clone.setName( this.getName() );
-    clone.setDriver( this.getDriver() );
-    clone.setHelperclass( this.getHelperclass() );
-    clone.setIncrement( this.getIncrement() );
-    clone.setInitial( this.getInitial() );
-    clone.setMaximal( this.getMaximal() );
-    clone.setUser( this.getUser() );
-    clone.setPassword( this.getPassword() );
-    clone.setUrl( this.getUrl() );
-    clone.setClasspath( this.getClasspath() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>JDBCConnectionPool</code> POJO to a DOM element.
-   *
-   * @param document the core XML document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jdbcconnectionpool" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "driver", this.getDriver() );
-    element.setAttribute( "helperclass", this.getHelperclass() );
-    element.setAttribute( "increment", new Integer( this.getIncrement() ).toString() );
-    element.setAttribute( "initial", new Integer( this.getInitial() ).toString() );
-    element.setAttribute( "maximal", new Integer( this.getMaximal() ).toString() );
-    element.setAttribute( "user", this.getUser() );
-    element.setAttribute( "password", this.getPassword() );
-    element.setAttribute( "url", this.getUrl() );
-    element.setAttribute( "classpath", this.getClasspath() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isActive() ).toString() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherConnectionPool )
-  {
-    return this.getName().compareTo( ( (JDBCConnectionPool) anotherConnectionPool ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JDBCDataSource.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JDBCDataSource.java
deleted file mode 100644
index 6958806..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JDBCDataSource.java
+++ /dev/null
@@ -1,126 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>jdbcdatasource</code> tag in the Kalumet configuration DOM.
- */
-public class JDBCDataSource
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -6850328756411047364L;
-
-  private String name;
-
-  private String pool;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  public JDBCDataSource()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getPool()
-  {
-    return this.pool;
-  }
-
-  public void setPool( String pool )
-  {
-    this.pool = pool;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JDBCDataSource clone = new JDBCDataSource();
-    clone.setName( this.getName() );
-    clone.setPool( this.getPool() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    return clone;
-  }
-
-  /**
-   * Transforms the <code>JDBCDataSource</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jdbcdatasource" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "pool", this.getPool() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherDataSource )
-  {
-    return this.getName().compareTo( ( (JDBCDataSource) anotherDataSource ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplication.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplication.java
deleted file mode 100644
index 6024154..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplication.java
+++ /dev/null
@@ -1,444 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represents the <code>jeeapplication</code> tag in the Kalumet DOM.
- */
-public class JEEApplication
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -1198170476993837094L;
-
-  private String name;
-
-  private String uri;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private String agent;
-
-  private LinkedList archives;
-
-  private LinkedList contentManagers;
-
-  private LinkedList configurationFiles;
-
-  private LinkedList databases;
-
-  /**
-   * Default constructor to create a <code>JEEApplication</code>
-   */
-  public JEEApplication()
-  {
-    this.archives = new LinkedList();
-    this.contentManagers = new LinkedList();
-    this.configurationFiles = new LinkedList();
-    this.databases = new LinkedList();
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getUri()
-  {
-    return this.uri;
-  }
-
-  public void setUri( String uri )
-  {
-    this.uri = uri;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  /**
-   * Add a new <code>Archive</code> in the <code>JEEApplication</code> archives container.
-   *
-   * @param archive the <code>Archive</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the archive name already exists in the application.
-   */
-  public void addArchive( Archive archive )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getArchive( archive.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Archive name already exists in the JEE application." );
-    }
-    this.archives.add( archive );
-  }
-
-  /**
-   * Get the <code>Archive</code> list in the <code>JEEApplication</code> archives container.
-   *
-   * @return the <code>Archive</code> list
-   */
-  public List getArchives()
-  {
-    return this.archives;
-  }
-
-  /**
-   * Overwrite the <code>Archive</code> list in the <code>JEEApplication</code> archives container.
-   *
-   * @param archives the new <code>Archive</code> list.
-   */
-  public void setArchives( LinkedList archives )
-  {
-    this.archives = archives;
-  }
-
-  /**
-   * Get the <code>Archive</code> identified by a given name in the <code>JEEApplication</code> archives container.
-   *
-   * @param name the <code>Archive</code> name.
-   * @return the <code>Archive</code> found or null if not found.
-   */
-  public Archive getArchive( String name )
-  {
-    for ( Iterator archiveIterator = this.getArchives().iterator(); archiveIterator.hasNext(); )
-    {
-      Archive archive = (Archive) archiveIterator.next();
-      if ( archive.getName().equals( name ) )
-      {
-        return archive;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>ContentManager</code> in the <code>JEEApplication</code> content managers container.
-   *
-   * @param contentManager the <code>ContentManager</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>ContentManager</code> already exists in the application.
-   */
-  public void addContentManager( ContentManager contentManager )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getContentManager( contentManager.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Content manager name already exists in the JEE application." );
-    }
-    this.contentManagers.add( contentManager );
-  }
-
-  /**
-   * Get the <code>ContentManager</code> list in the <code>JEEApplication</code> content managers container.
-   *
-   * @return the <code>ContentManager</code> list.
-   */
-  public List getContentManagers()
-  {
-    return this.contentManagers;
-  }
-
-  /**
-   * Overwrite the <code>ContentManager</code> list in the <code>JEEApplication</code> content managers container.
-   *
-   * @param contentManagers the new <code>ContentManagers</code> list.
-   */
-  public void setContentManagers( LinkedList contentManagers )
-  {
-    this.contentManagers = contentManagers;
-  }
-
-  /**
-   * Return the <code>ContentManager</code> identified by a given name in the <code>JEEApplication</code> content managers container.
-   *
-   * @return the <code>ContentManager</code> found or null if not found.
-   */
-  public ContentManager getContentManager( String name )
-  {
-    for ( Iterator contentManagerIterator = this.getContentManagers().iterator(); contentManagerIterator.hasNext(); )
-    {
-      ContentManager contentManager = (ContentManager) contentManagerIterator.next();
-      if ( contentManager.getName().equals( name ) )
-      {
-        return contentManager;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>ConfigurationFile</code> in the <code>JEEApplication</code>
-   * configuration files container.
-   *
-   * @param configurationFile the <code>ConfigurationFile</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>ConfigurationFile</code> name already exists in the application.
-   */
-  public void addConfigurationFile( ConfigurationFile configurationFile )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getConfigurationFile( configurationFile.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Configuration file name already exists in the JEE application." );
-    }
-    this.configurationFiles.add( configurationFile );
-  }
-
-  /**
-   * Get the <code>ConfigurationFile</code> list in the
-   * <code>JEEApplication</code> configuration files container.
-   *
-   * @return the <code>ConfigurationFile</code> list.
-   */
-  public List getConfigurationFiles()
-  {
-    return this.configurationFiles;
-  }
-
-  /**
-   * Overwrite the <code>ConfigurationFile</code> list in the
-   * <code>JEEApplication</code> configuration files container.
-   *
-   * @param configurationFiles the new <code>ConfigurationFile</code> list.
-   */
-  public void setConfigurationFiles( LinkedList configurationFiles )
-  {
-    this.configurationFiles = configurationFiles;
-  }
-
-  /**
-   * Get the <code>ConfigurationFile</code> identified by a given name in the
-   * <code>JEEApplication</code> configuration files container.
-   *
-   * @param name the <code>ConfigurationFile</code> name.
-   * @return the <code>ConfigurationFile</code> found or null if not found.
-   */
-  public ConfigurationFile getConfigurationFile( String name )
-  {
-    for ( Iterator configurationFileIterator = this.getConfigurationFiles().iterator();
-          configurationFileIterator.hasNext(); )
-    {
-      ConfigurationFile configurationFile = (ConfigurationFile) configurationFileIterator.next();
-      if ( configurationFile.getName().equals( name ) )
-      {
-        return configurationFile;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>Database</code> in the <code>JEEApplication</code>
-   * databases container.
-   *
-   * @param database the <code>Database</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>Database</code> name already exists in the application.
-   */
-  public void addDatabase( Database database )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getDatabase( database.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Database name already exists in the JEE application." );
-    }
-    this.databases.add( database );
-  }
-
-  /**
-   * Get the <code>Database</code> list in the <code>JEEApplication</code>
-   * databases container.
-   *
-   * @return the <code>Database</code> list.
-   */
-  public List getDatabases()
-  {
-    return this.databases;
-  }
-
-  /**
-   * Overwrite the <code>Database</code> list in the <code>JEEApplication</code>
-   * databases container.
-   *
-   * @param databases the new <code>Database</code> list.
-   */
-  public void setDatabases( LinkedList databases )
-  {
-    this.databases = databases;
-  }
-
-  /**
-   * Get the <code>Database</code> identified by a given name in the
-   * <code>JEEApplication</code> databases container.
-   *
-   * @param name the <code>Database</code> name.
-   * @return the <code>Database</code> found or null if not found.
-   */
-  public Database getDatabase( String name )
-  {
-    for ( Iterator databaseIterator = this.getDatabases().iterator(); databaseIterator.hasNext(); )
-    {
-      Database database = (Database) databaseIterator.next();
-      if ( database.getName().equals( name ) )
-      {
-        return database;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JEEApplication clone = new JEEApplication();
-    clone.setName( this.getName() );
-    clone.setUri( this.getUri() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setAgent( this.getAgent() );
-    for ( Iterator archiveIterator = this.archives.iterator(); archiveIterator.hasNext(); )
-    {
-      Archive archive = (Archive) archiveIterator.next();
-      clone.archives.add( (Archive) archive.clone() );
-    }
-    for ( Iterator contentManagerIterator = this.contentManagers.iterator(); contentManagerIterator.hasNext(); )
-    {
-      ContentManager contentManager = (ContentManager) contentManagerIterator.next();
-      clone.contentManagers.add( (ContentManager) contentManager.clone() );
-    }
-    for ( Iterator configurationFileIterator = this.configurationFiles.iterator();
-          configurationFileIterator.hasNext(); )
-    {
-      ConfigurationFile configurationFile = (ConfigurationFile) configurationFileIterator.next();
-      clone.configurationFiles.add( (ConfigurationFile) configurationFile.clone() );
-    }
-    for ( Iterator databaseIterator = this.databases.iterator(); databaseIterator.hasNext(); )
-    {
-      Database database = (Database) databaseIterator.next();
-      clone.databases.add( (Database) database.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transforms the <code>JEEApplication</code> POJO to a DOM element.
-   *
-   * @param document the core DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jeeapplication" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "uri", this.getUri() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "agent", this.getAgent() );
-    // archives
-    ElementImpl archives = new ElementImpl( document, "archives" );
-    for ( Iterator archiveIterator = this.getArchives().iterator(); archiveIterator.hasNext(); )
-    {
-      Archive archive = (Archive) archiveIterator.next();
-      archives.appendChild( archive.toDOMElement( document ) );
-    }
-    element.appendChild( archives );
-    // contentmanagers
-    ElementImpl contentmanagers = new ElementImpl( document, "contentmanagers" );
-    for ( Iterator contentManagerIterator = this.getContentManagers().iterator(); contentManagerIterator.hasNext(); )
-    {
-      ContentManager contentManager = (ContentManager) contentManagerIterator.next();
-      contentmanagers.appendChild( contentManager.toDOMElement( document ) );
-    }
-    element.appendChild( contentmanagers );
-    // configurationfiles
-    ElementImpl configurationfiles = new ElementImpl( document, "configurationfiles" );
-    for ( Iterator configurationFileIterator = this.getConfigurationFiles().iterator();
-          configurationFileIterator.hasNext(); )
-    {
-      ConfigurationFile configurationFile = (ConfigurationFile) configurationFileIterator.next();
-      configurationfiles.appendChild( configurationFile.toDOMElement( document ) );
-    }
-    element.appendChild( configurationfiles );
-    // databases
-    ElementImpl databases = new ElementImpl( document, "databases" );
-    for ( Iterator databaseIterator = this.getDatabases().iterator(); databaseIterator.hasNext(); )
-    {
-      Database database = (Database) databaseIterator.next();
-      databases.appendChild( database.toDOMElement( document ) );
-    }
-    element.appendChild( databases );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherApplication )
-  {
-    return this.getName().compareTo( ( (JEEApplication) anotherApplication ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplicationServer.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplicationServer.java
deleted file mode 100644
index 9b40edc..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplicationServer.java
+++ /dev/null
@@ -1,899 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CDATASectionImpl;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represents the <code>jeeapplicationserver</code> tag in the Kalumet DOM.
- */
-public class JEEApplicationServer
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 2272703476099937797L;
-
-  private String name;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private String classname;
-
-  private String jmxurl;
-
-  private String adminuser;
-
-  private String adminpassword;
-
-  private boolean updateRequireRestart;
-
-  private boolean updateRequireCacheCleaning;
-
-  private boolean usejmxstop;
-
-  private boolean deletecomponents;
-
-  private String startupcommand;
-
-  private String shutdowncommand;
-
-  private String agent;
-
-  private LinkedList jdbcConnectionPools;
-
-  private LinkedList jdbcDataSources;
-
-  private LinkedList jmsConnectionFactories;
-
-  private LinkedList jmsServers;
-
-  private LinkedList jndiBindings;
-
-  private LinkedList sharedLibraries;
-
-  private LinkedList jeeApplications;
-
-  private LinkedList caches;
-
-  private LinkedList logAccesses;
-
-  /**
-   * Default constructor to create a new <code>JEEApplicationServer</code>.
-   */
-  public JEEApplicationServer()
-  {
-    this.jdbcConnectionPools = new LinkedList();
-    this.jdbcDataSources = new LinkedList();
-    this.jmsConnectionFactories = new LinkedList();
-    this.jmsServers = new LinkedList();
-    this.jndiBindings = new LinkedList();
-    this.sharedLibraries = new LinkedList();
-    this.jeeApplications = new LinkedList();
-    this.caches = new LinkedList();
-    this.logAccesses = new LinkedList();
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public boolean isActive()
-  {
-    return active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  public String getClassname()
-  {
-    return this.classname;
-  }
-
-  public void setClassname( String classname )
-  {
-    this.classname = classname;
-  }
-
-  public String getJmxurl()
-  {
-    return this.jmxurl;
-  }
-
-  public void setJmxurl( String jmxurl )
-  {
-    this.jmxurl = jmxurl;
-  }
-
-  public String getAdminuser()
-  {
-    return this.adminuser;
-  }
-
-  public void setAdminuser( String adminuser )
-  {
-    this.adminuser = adminuser;
-  }
-
-  public String getAdminpassword()
-  {
-    return this.adminpassword;
-  }
-
-  public void setAdminpassword( String adminpassword )
-  {
-    this.adminpassword = adminpassword;
-  }
-
-  public boolean isUpdateRequireRestart()
-  {
-    return this.updateRequireRestart;
-  }
-
-  public void setUpdateRequireRestart( boolean updateRequireRestart )
-  {
-    this.updateRequireRestart = updateRequireRestart;
-  }
-
-  public boolean isUpdateRequireCacheCleaning()
-  {
-    return this.updateRequireCacheCleaning;
-  }
-
-  public void setUpdateRequireCacheCleaning( boolean updateRequireCacheCleaning )
-  {
-    this.updateRequireCacheCleaning = updateRequireCacheCleaning;
-  }
-
-  public boolean isUsejmxstop()
-  {
-    return this.usejmxstop;
-  }
-
-  public void setUsejmxstop( boolean usejmxstop )
-  {
-    this.usejmxstop = usejmxstop;
-  }
-
-  public boolean isDeletecomponents()
-  {
-    return this.deletecomponents;
-  }
-
-  public void setDeletecomponents( boolean deletecomponents )
-  {
-    this.deletecomponents = deletecomponents;
-  }
-
-  public String getStartupcommand()
-  {
-    return this.startupcommand;
-  }
-
-  public void setStartupcommand( String startupcommand )
-  {
-    this.startupcommand = startupcommand;
-  }
-
-  public String getShutdowncommand()
-  {
-    return this.shutdowncommand;
-  }
-
-  public void setShutdowncommand( String shutdowncommand )
-  {
-    this.shutdowncommand = shutdowncommand;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  /**
-   * Add a new <code>JDBCConnectionPool</code> in the
-   * <code>JEEApplicationServer</code> connection pools container.
-   *
-   * @param JDBCConnectionPool the <code>JDBCConnectionPool</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>JDBCConnectionPool</code> name already exists in the application server.
-   */
-  public void addJDBCConnectionPool( JDBCConnectionPool JDBCConnectionPool )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJDBCConnectionPool( JDBCConnectionPool.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "JDBC connection pool name already exists in the JEE server." );
-    }
-    this.jdbcConnectionPools.add( JDBCConnectionPool );
-  }
-
-  /**
-   * Get the <code>JDBCConnectionPool</code> list in the
-   * <code>JEEApplicationServer</code> connection pools container.
-   *
-   * @return the <code>JDBCConnectionPool</code> list.
-   */
-  public List getJDBCConnectionPools()
-  {
-    return this.jdbcConnectionPools;
-  }
-
-  /**
-   * Overwrite the <code>JDBCConnectionPool</code> list in the
-   * <code>JEEApplicationServer</code> connection pools container.
-   *
-   * @param jdbcConnectionPools the new <code>JDBCConnectionPool</code> list.
-   */
-  public void setJDBCConnectionPools( LinkedList jdbcConnectionPools )
-  {
-    this.jdbcConnectionPools = jdbcConnectionPools;
-  }
-
-  /**
-   * Get the <code>JDBCConnectionPool</code> identified by a given name in the
-   * <code>JEEApplicationServer</code> connection pools container.
-   *
-   * @param name the <code>JDBCConnectionPool</code> name.
-   * @return the <code>JDBCConnectionPool</code> found or null if not found.
-   */
-  public JDBCConnectionPool getJDBCConnectionPool( String name )
-  {
-    for ( Iterator connectionPoolIterator = this.getJDBCConnectionPools().iterator();
-          connectionPoolIterator.hasNext(); )
-    {
-      JDBCConnectionPool JDBCConnectionPool = (JDBCConnectionPool) connectionPoolIterator.next();
-      if ( JDBCConnectionPool.getName().equals( name ) )
-      {
-        return JDBCConnectionPool;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>JDBCDataSource</code> in the <code>JEEApplicationServer</code>
-   * data sources container.
-   *
-   * @param JDBCDataSource the <code>JDBCDataSource</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>JDBCDataSource</code> name already exists in the application server.
-   */
-  public void addJDBCDataSource( JDBCDataSource JDBCDataSource )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJDBCDataSource( JDBCDataSource.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "JDBC data source name already exists in the JEE server." );
-    }
-    this.jdbcDataSources.add( JDBCDataSource );
-  }
-
-  /**
-   * Get the <code>JDBCDataSource</code> list in the
-   * <code>JEEApplicationServer</code> data sources container.
-   *
-   * @return the <code>JDBCDataSource</code> list.
-   */
-  public List getJDBCDataSources()
-  {
-    return this.jdbcDataSources;
-  }
-
-  /**
-   * Overwrite the <code>JDBCDataSource</code> list in the
-   * <code>JEEApplicationServer</code> data sources container.
-   *
-   * @param dataSources the new <code>JDBCDataSource</code> list.
-   */
-  public void setJDBCDataSources( LinkedList dataSources )
-  {
-    this.jdbcDataSources = dataSources;
-  }
-
-  /**
-   * Get the <code>JDBCDataSource</code> identified by a given name in the
-   * <code>JEEApplicationServer</code> data sources container.
-   *
-   * @param name the <code>JDBCDataSource</code> name.
-   * @return the <code>JDBCDataSource</code> found or null if not found.
-   */
-  public JDBCDataSource getJDBCDataSource( String name )
-  {
-    for ( Iterator dataSourceIterator = this.getJDBCDataSources().iterator(); dataSourceIterator.hasNext(); )
-    {
-      JDBCDataSource JDBCDataSource = (JDBCDataSource) dataSourceIterator.next();
-      if ( JDBCDataSource.getName().equals( name ) )
-      {
-        return JDBCDataSource;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>JMSConnectionFactory</code> in the
-   * <code>JEEApplicationServer</code> JMS connection factories container.
-   *
-   * @param jmsConnectionFactory the <code>JMSConnectionFactory</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *
-   */
-  public void addJMSConnectionFactory( JMSConnectionFactory jmsConnectionFactory )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJMSConnectionFactory( jmsConnectionFactory.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "JMS connection factory name already exists in the JEE server." );
-    }
-    this.jmsConnectionFactories.add( jmsConnectionFactory );
-  }
-
-  /**
-   * Get the <code>JMSConnectionFactory</code> list in the
-   * <code>JEEApplicationServer</code> JMS connection factories container.
-   *
-   * @return the <code>JMSConnectionFactory</code> list.
-   */
-  public List getJMSConnectionFactories()
-  {
-    return this.jmsConnectionFactories;
-  }
-
-  /**
-   * Overwrites the <code>JMSConnectionFactory</code> list in the
-   * <code>JEEApplicationServer</code> JMS connection factories container.
-   *
-   * @param jmsConnectionFactories the new <code>JMSConnectionFactory</code> list.
-   */
-  public void setJMSConnectionFactories( LinkedList jmsConnectionFactories )
-  {
-    this.jmsConnectionFactories = jmsConnectionFactories;
-  }
-
-  /**
-   * Gets the <code>JMSConnectionFactory</code> identified by a given name in
-   * the <code>JEEApplicationServer</code> JMS connection factories container.
-   *
-   * @param name the <code>JMSConnectionFactory</code> name.
-   * @return the <code>JMSConnectionFactory</code> found or null if not found.
-   */
-  public JMSConnectionFactory getJMSConnectionFactory( String name )
-  {
-    for ( Iterator jmsConnectionFactoryIterator = this.getJMSConnectionFactories().iterator();
-          jmsConnectionFactoryIterator.hasNext(); )
-    {
-      JMSConnectionFactory jmsConnectionFactory = (JMSConnectionFactory) jmsConnectionFactoryIterator.next();
-      if ( jmsConnectionFactory.getName().equals( name ) )
-      {
-        return jmsConnectionFactory;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Adds a new <code>JMSServer</code> in the <code>JEEApplicationServer</code>
-   * JMS servers container.
-   *
-   * @param jmsServer the <code>JMSServer</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>JMSServer</code> name already exists in the application server.
-   */
-  public void addJMSServer( JMSServer jmsServer )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJMSServer( jmsServer.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "JMS server name already exists in the JEE application server." );
-    }
-    this.jmsServers.add( jmsServer );
-  }
-
-  /**
-   * Gets the <code>JMSServer</code> list in the <code>JEEApplicationServer</code>
-   * JMS servers container.
-   *
-   * @return the <code>JMSServer</code> list.
-   */
-  public List getJMSServers()
-  {
-    return this.jmsServers;
-  }
-
-  /**
-   * Overwrites the <code>JMSServer</code> list in the
-   * <code>JEEApplicationServer</code> JMS servers container.
-   *
-   * @param jmsServers the new <code>JMSServer</code> list.
-   */
-  public void setJMSServers( LinkedList jmsServers )
-  {
-    this.jmsServers = jmsServers;
-  }
-
-  /**
-   * Gets the <code>JMSServer</code> identified by a given name in the
-   * <code>JEEApplicationServer</code> JMS servers container.
-   *
-   * @param name the <code>JMSServer</code> name.
-   * @return the <code>JMSServer</code> found or null if not found.
-   */
-  public JMSServer getJMSServer( String name )
-  {
-    for ( Iterator jmsServerIterator = this.getJMSServers().iterator(); jmsServerIterator.hasNext(); )
-    {
-      JMSServer jmsServer = (JMSServer) jmsServerIterator.next();
-      if ( jmsServer.getName().equals( name ) )
-      {
-        return jmsServer;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Adds a new <code>JNDIBinding</code> in the
-   * <code>JEEApplicationServer</code> name space bindings container.
-   *
-   * @param JNDIBinding the <code>JNDIBinding</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>JNDIBinding</code> name already exists in the application server.
-   */
-  public void addJNDIBinding( JNDIBinding JNDIBinding )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJNDIBinding( JNDIBinding.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Name space binding name already exists in the JEE server." );
-    }
-    this.jndiBindings.add( JNDIBinding );
-  }
-
-  /**
-   * Gets the <code>JNDIBinding</code> list in the
-   * <code>JEEApplicationServer</code> name space bindings container.
-   *
-   * @return the <code>JNDIBinding</code> list.
-   */
-  public List getJNDIBindings()
-  {
-    return this.jndiBindings;
-  }
-
-  /**
-   * Overwrites the <code>JNDIBinding</code> list in the
-   * <code>JEEApplicationServer</code> name space bindings container.
-   *
-   * @param jndiBindings the new <code>JNDIBinding</code> list.
-   */
-  public void setJNDIBindings( LinkedList jndiBindings )
-  {
-    this.jndiBindings = jndiBindings;
-  }
-
-  /**
-   * Gets the <code>JNDIBinding</code> identified by a given name in the
-   * <code>JEEApplicationServer</code> name space bindings container.
-   *
-   * @param name the <code>JNDIBinding</code> name.
-   * @return the <code>JNDIBinding</code> found or null if not found.
-   */
-  public JNDIBinding getJNDIBinding( String name )
-  {
-    for ( Iterator jndiBindingIterator = this.getJNDIBindings().iterator(); jndiBindingIterator.hasNext(); )
-    {
-      JNDIBinding JNDIBinding = (JNDIBinding) jndiBindingIterator.next();
-      if ( JNDIBinding.getName().equals( name ) )
-      {
-        return JNDIBinding;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Adds a new <code>SharedLibrary</code> in the
-   * <code>JEEApplicationServer</code> shared libraries container.
-   *
-   * @param sharedLibrary the <code>SharedLibrary</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>SharedLibrary</code> name already exists in the application server.
-   */
-  public void addSharedLibrary( SharedLibrary sharedLibrary )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getSharedLibrary( sharedLibrary.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Shared library name already exists in the JEE server." );
-    }
-    this.sharedLibraries.add( sharedLibrary );
-  }
-
-  /**
-   * Gets the <code>SharedLibrary</code> list in the
-   * <code>JEEApplicationServer</code> shared libraries container.
-   *
-   * @return the <code>SharedLibrary</code> list.
-   */
-  public List getSharedLibraries()
-  {
-    return this.sharedLibraries;
-  }
-
-  /**
-   * Overwrites the <code>SharedLibrary</code> list in the
-   * <code>JEEApplicationServer</code> shared libraries container.
-   *
-   * @param sharedLibraries the new <code>SharedLibrary</code> list.
-   */
-  public void setSharedLibraries( LinkedList sharedLibraries )
-  {
-    this.sharedLibraries = sharedLibraries;
-  }
-
-  /**
-   * Gets the <code>SharedLibrary</code> identified by a given name in the
-   * <code>JEEApplicationServer</code> shared libraries container.
-   *
-   * @param name the <code>SharedLibrary</code> name.
-   * @return the <code>SharedLibrary</code> found or null if not found.
-   */
-  public SharedLibrary getSharedLibrary( String name )
-  {
-    for ( Iterator sharedLibraryIterator = this.getSharedLibraries().iterator(); sharedLibraryIterator.hasNext(); )
-    {
-      SharedLibrary sharedLibrary = (SharedLibrary) sharedLibraryIterator.next();
-      if ( sharedLibrary.getName().equals( name ) )
-      {
-        return sharedLibrary;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Adds a new <code>JEEApplication</code> in the <code>JEEApplicationServer</code>
-   * jeeApplications container.
-   *
-   * @param jeeApplication the <code>JEEApplication</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>JEEApplication</code> name already exists in the jeeApplication server.
-   */
-  public void addJEEApplication( JEEApplication jeeApplication )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJEEApplication(jeeApplication.getName()) != null )
-    {
-      throw new ModelObjectAlreadyExistsException(
-        "JEE application name already exists in the JEE application server." );
-    }
-    this.jeeApplications.add(jeeApplication);
-  }
-
-  /**
-   * Gets the <code>JEEApplication</code> list in the
-   * <code>JEEApplicationServer</code> jeeApplications container.
-   *
-   * @return the <code>JEEApplication</code> list.
-   */
-  public List getJEEApplications()
-  {
-    return this.jeeApplications;
-  }
-
-  /**
-   * Overwrites the <code>JEEApplication</code> list in the
-   * <code>JEEApplicationServer</code> jeeApplications container.
-   *
-   * @param jeeApplications the new <code>JEEApplication</code> list.
-   */
-  public void setJEEApplications( LinkedList jeeApplications )
-  {
-    this.jeeApplications = jeeApplications;
-  }
-
-  /**
-   * Gets the <code>JEEApplication</code> identified by a given name in the
-   * <code>JEEApplicationServer</code> jeeApplications container.
-   *
-   * @param name the <code>JEEApplication</code> name.
-   * @return the <code>JEEApplication</code> found or null if not found.
-   */
-  public JEEApplication getJEEApplication( String name )
-  {
-    for ( Iterator applicationIterator = this.getJEEApplications().iterator(); applicationIterator.hasNext(); )
-    {
-      JEEApplication jeeApplication = (JEEApplication) applicationIterator.next();
-      if ( jeeApplication.getName().equals( name ) )
-      {
-        return jeeApplication;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Adds a new <code>Cache</code> in the <code>JEEApplicationServer</code> caches
-   * container.
-   *
-   * @param cache the <code>Cache</code> to add.
-   * @throws ModelObjectAlreadyExistsException
-   *          if the <code>Cache</code> path already exists in the application server.
-   */
-  public void addCache( Cache cache )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getCache( cache.getPath() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Cache path already exists in the JEE application server." );
-    }
-    this.caches.add( cache );
-  }
-
-  /**
-   * Gets the <code>Cache</code> list in the <code>JEEApplicationServer</code>
-   * caches container.
-   *
-   * @return the <code>Cache</code> list.
-   */
-  public List getCaches()
-  {
-    return this.caches;
-  }
-
-  /**
-   * Overwrites the <code>Cache</code> list in the
-   * <code>JEEApplicationServer</code> caches container.
-   *
-   * @param caches the new <code>Cache</code> list.
-   */
-  public void setCaches( LinkedList caches )
-  {
-    this.caches = caches;
-  }
-
-  /**
-   * Gets the <code>Cache</code> identified by a given path in the
-   * <code>JEEApplicationServer</code> caches container.
-   *
-   * @param path the <code>Cache</code> path.
-   * @return the <code>Cache</code> found or null if not found.
-   */
-  public Cache getCache( String path )
-  {
-    for ( Iterator cacheIterator = this.getCaches().iterator(); cacheIterator.hasNext(); )
-    {
-      Cache cache = (Cache) cacheIterator.next();
-      if ( cache.getPath().equals( path ) )
-      {
-        return cache;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JEEApplicationServer clone = new JEEApplicationServer();
-    clone.setName( this.getName() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setClassname( this.getClassname() );
-    clone.setJmxurl( this.getJmxurl() );
-    clone.setAdminuser( this.getAdminuser() );
-    clone.setAdminpassword( this.getAdminpassword() );
-    clone.setUpdateRequireRestart( this.isUpdateRequireRestart() );
-    clone.setUpdateRequireCacheCleaning( this.isUpdateRequireCacheCleaning() );
-    clone.setUsejmxstop( this.isUsejmxstop() );
-    clone.setDeletecomponents( this.isDeletecomponents() );
-    clone.setStartupcommand( this.getStartupcommand() );
-    clone.setShutdowncommand( this.getShutdowncommand() );
-    clone.setAgent( this.getAgent() );
-    for ( Iterator jdbcConnectionPoolIterator = this.jdbcConnectionPools.iterator();
-          jdbcConnectionPoolIterator.hasNext(); )
-    {
-      JDBCConnectionPool JDBCConnectionPool = (JDBCConnectionPool) jdbcConnectionPoolIterator.next();
-      clone.jdbcConnectionPools.add( (JDBCConnectionPool) JDBCConnectionPool.clone() );
-    }
-    for ( Iterator jdbcDataSourceIterator = this.jdbcDataSources.iterator(); jdbcDataSourceIterator.hasNext(); )
-    {
-      JDBCDataSource JDBCDataSource = (JDBCDataSource) jdbcDataSourceIterator.next();
-      clone.jdbcDataSources.add( (JDBCDataSource) JDBCDataSource.clone() );
-    }
-    for ( Iterator jmsConnectionFactoryIterator = this.jmsConnectionFactories.iterator();
-          jmsConnectionFactoryIterator.hasNext(); )
-    {
-      JMSConnectionFactory jmsConnectionFactory = (JMSConnectionFactory) jmsConnectionFactoryIterator.next();
-      clone.jmsConnectionFactories.add( (JMSConnectionFactory) jmsConnectionFactory.clone() );
-    }
-    for ( Iterator jmsServerIterator = this.jmsServers.iterator(); jmsServerIterator.hasNext(); )
-    {
-      JMSServer jmsServer = (JMSServer) jmsServerIterator.next();
-      clone.jmsServers.add( (JMSServer) jmsServer.clone() );
-    }
-    for ( Iterator jndiBindingIterator = this.jndiBindings.iterator(); jndiBindingIterator.hasNext(); )
-    {
-      JNDIBinding JNDIBinding = (JNDIBinding) jndiBindingIterator.next();
-      clone.jndiBindings.add( (JNDIBinding) JNDIBinding.clone() );
-    }
-    for ( Iterator sharedLibraryIterator = this.sharedLibraries.iterator(); sharedLibraryIterator.hasNext(); )
-    {
-      SharedLibrary sharedLibrary = (SharedLibrary) sharedLibraryIterator.next();
-      clone.sharedLibraries.add( (SharedLibrary) sharedLibrary.clone() );
-    }
-    for ( Iterator applicationIterator = this.jeeApplications.iterator(); applicationIterator.hasNext(); )
-    {
-      JEEApplication jeeApplication = (JEEApplication) applicationIterator.next();
-      clone.jeeApplications.add( (JEEApplication) jeeApplication.clone() );
-    }
-    for ( Iterator cacheIterator = this.caches.iterator(); cacheIterator.hasNext(); )
-    {
-      Cache cache = (Cache) cacheIterator.next();
-      clone.caches.add( (Cache) cache.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transforms the <code>JEEApplicationServer</code> POJO to a DOM element.
-   *
-   * @param document the core XML document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jeeapplicationserver" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "classname", this.getClassname() );
-    element.setAttribute( "jmxurl", this.getJmxurl() );
-    element.setAttribute( "adminuser", this.getAdminuser() );
-    element.setAttribute( "adminpassword", this.getAdminpassword() );
-    element.setAttribute( "updateRequireRestart", new Boolean( this.isUpdateRequireRestart() ).toString() );
-    element.setAttribute( "updateRequireCacheCleaning", new Boolean( this.isUpdateRequireCacheCleaning() ).toString() );
-    element.setAttribute( "usejmxstop", new Boolean( this.isUsejmxstop() ).toString() );
-    element.setAttribute( "deletecomponents", new Boolean( this.isDeletecomponents() ).toString() );
-    element.setAttribute( "agent", this.getAgent() );
-    // add startup command
-    ElementImpl startupcommand = new ElementImpl( document, "startupcommand" );
-    CDATASectionImpl startupcommandContent = new CDATASectionImpl( document, this.getStartupcommand() );
-    startupcommand.appendChild( startupcommandContent );
-    element.appendChild( startupcommand );
-    // add shutdown command
-    ElementImpl shutdowncommand = new ElementImpl( document, "shutdowncommand" );
-    CDATASectionImpl shutdowncommandContent = new CDATASectionImpl( document, this.getShutdowncommand() );
-    shutdowncommand.appendChild( shutdowncommandContent );
-    element.appendChild( shutdowncommand );
-    // connectionpools
-    ElementImpl jdbcconnectionpools = new ElementImpl( document, "jdbcconnectionpools" );
-    for ( Iterator jdbcConnectionPoolIterator = this.getJDBCConnectionPools().iterator();
-          jdbcConnectionPoolIterator.hasNext(); )
-    {
-      JDBCConnectionPool JDBCConnectionPool = (JDBCConnectionPool) jdbcConnectionPoolIterator.next();
-      jdbcconnectionpools.appendChild( JDBCConnectionPool.toDOMElement( document ) );
-    }
-    element.appendChild( jdbcconnectionpools );
-    // jdbcdatasources
-    ElementImpl jdbcdatasources = new ElementImpl( document, "jdbcdatasources" );
-    for ( Iterator dataSourceIterator = this.getJDBCDataSources().iterator(); dataSourceIterator.hasNext(); )
-    {
-      JDBCDataSource JDBCDataSource = (JDBCDataSource) dataSourceIterator.next();
-      jdbcdatasources.appendChild( JDBCDataSource.toDOMElement( document ) );
-    }
-    element.appendChild( jdbcdatasources );
-    // jmsconnectionfactories
-    ElementImpl jmsconnectionfactories = new ElementImpl( document, "jmsconnectionfactories" );
-    for ( Iterator jmsConnectionFactoryIterator = this.getJMSConnectionFactories().iterator();
-          jmsConnectionFactoryIterator.hasNext(); )
-    {
-      JMSConnectionFactory jmsConnectionFactory = (JMSConnectionFactory) jmsConnectionFactoryIterator.next();
-      jmsconnectionfactories.appendChild( jmsConnectionFactory.toDOMElement( document ) );
-    }
-    element.appendChild( jmsconnectionfactories );
-    // jmsservers
-    ElementImpl jmsservers = new ElementImpl( document, "jmsservers" );
-    for ( Iterator jmsServerIterator = this.getJMSServers().iterator(); jmsServerIterator.hasNext(); )
-    {
-      JMSServer jmsServer = (JMSServer) jmsServerIterator.next();
-      jmsservers.appendChild( jmsServer.toDOMElement( document ) );
-    }
-    element.appendChild( jmsservers );
-    // jndibindings
-    ElementImpl jndiBindings = new ElementImpl( document, "jndibindings" );
-    for ( Iterator jndiBindingIterator = this.getJNDIBindings().iterator(); jndiBindingIterator.hasNext(); )
-    {
-      JNDIBinding JNDIBinding = (JNDIBinding) jndiBindingIterator.next();
-      jndiBindings.appendChild( JNDIBinding.toDOMElement( document ) );
-    }
-    element.appendChild( jndiBindings );
-    // sharedlibraries
-    ElementImpl sharedlibraries = new ElementImpl( document, "sharedlibrairies" );
-    for ( Iterator sharedLibraryIterator = this.getSharedLibraries().iterator(); sharedLibraryIterator.hasNext(); )
-    {
-      SharedLibrary sharedLibrary = (SharedLibrary) sharedLibraryIterator.next();
-      sharedlibraries.appendChild( sharedLibrary.toDOMElement( document ) );
-    }
-    element.appendChild( sharedlibraries );
-    // jeeapplications
-    ElementImpl applications = new ElementImpl( document, "jeeapplications" );
-    for ( Iterator applicationIterator = this.getJEEApplications().iterator(); applicationIterator.hasNext(); )
-    {
-      JEEApplication jeeApplication = (JEEApplication) applicationIterator.next();
-      applications.appendChild(jeeApplication.toDOMElement(document));
-    }
-    element.appendChild( applications );
-    // caches
-    ElementImpl caches = new ElementImpl( document, "caches" );
-    for ( Iterator cacheIterator = this.getCaches().iterator(); cacheIterator.hasNext(); )
-    {
-      Cache cache = (Cache) cacheIterator.next();
-      caches.appendChild( cache.toDOMElement( document ) );
-    }
-    element.appendChild( caches );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherApplicationServer )
-  {
-    return this.getName().compareTo( ( (JEEApplicationServer) anotherApplicationServer ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplicationServers.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplicationServers.java
deleted file mode 100644
index f23d021..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JEEApplicationServers.java
+++ /dev/null
@@ -1,154 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represents the <code>jeeapplicationservers</code> tag in the Kalumet DOM.
- */
-public class JEEApplicationServers
-  implements Serializable, Cloneable
-{
-
-  private static final long serialVersionUID = -4940898204749451109L;
-
-  private boolean cluster;
-
-  private LinkedList jeeApplicationServers;
-
-  public JEEApplicationServers()
-  {
-    this.jeeApplicationServers = new LinkedList();
-  }
-
-  public boolean isCluster()
-  {
-    return this.cluster;
-  }
-
-  public void setCluster( boolean cluster )
-  {
-    this.cluster = cluster;
-  }
-
-  /**
-   * Adds a new <code>JEEApplicationServer</code> in the
-   * <code>JEEApplicationServers</code> container.
-   *
-   * @param jeeApplicationServer the <code>JEEApplicationServer</code> to add.
-   */
-  public void addJEEApplicationServer( JEEApplicationServer jeeApplicationServer )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJEEApplicationServer( jeeApplicationServer.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "JEE application server name already exists in the environment." );
-    }
-    this.jeeApplicationServers.add(jeeApplicationServer);
-  }
-
-  /**
-   * Gets the <code>JEEApplicationServer</code> list in the
-   * <code>JEEApplicationServers</code> container.
-   *
-   * @return the <code>JEEApplicationServer</code> list.
-   */
-  public List getJEEApplicationServers()
-  {
-    return this.jeeApplicationServers;
-  }
-
-  /**
-   * Overwrites the <code>JEEApplicationServer</code> list in the
-   * <code>JEEApplicationServers</code> container.
-   *
-   * @param jeeApplicationServers the new <code>JEEApplicationServer</code> list.
-   */
-  public void setJEEApplicationServers( LinkedList jeeApplicationServers )
-  {
-    this.jeeApplicationServers = jeeApplicationServers;
-  }
-
-  /**
-   * Gets the <code>JEEApplicationServer</code> identified by a given name in the
-   * <code>JEEApplicationServers</code> container.
-   *
-   * @param name the <code>JEEApplicationServer</code> name.
-   * @return the <code>JEEApplicationServer</code> found or null if no found.
-   */
-  public JEEApplicationServer getJEEApplicationServer( String name )
-  {
-    for ( Iterator applicationServerIterator = this.getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer jeeApplicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      if ( jeeApplicationServer.getName().equals( name ) )
-      {
-        return jeeApplicationServer;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JEEApplicationServers clone = new JEEApplicationServers();
-    clone.setCluster( this.isCluster() );
-    for ( Iterator applicationServerIterator = this.jeeApplicationServers.iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer jeeApplicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      clone.jeeApplicationServers.add( (JEEApplicationServer) jeeApplicationServer.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transforms the <code>JEEApplicationServers</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jeeapplicationservers" );
-    element.setAttribute( "cluster", new Boolean( this.isCluster() ).toString() );
-    // add JEE application server child nodes
-    for ( Iterator applicationServerIterator = this.getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer jeeApplicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      element.appendChild(jeeApplicationServer.toDOMElement(document));
-    }
-    return element;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSConnectionFactory.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSConnectionFactory.java
deleted file mode 100644
index 46a9e42..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSConnectionFactory.java
+++ /dev/null
@@ -1,108 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>jmsconnectionfactory</code> tag in the Kalumet configuration DOM.
- */
-public class JMSConnectionFactory
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 4118489349470578800L;
-
-  private String name;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JMSConnectionFactory clone = new JMSConnectionFactory();
-    clone.setName( this.getName() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>JMSConnectionFactory</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jmsconnectionfactory" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherJMSConnectionFactory )
-  {
-    return this.getName().compareTo( ( (JMSConnectionFactory) anotherJMSConnectionFactory ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSQueue.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSQueue.java
deleted file mode 100644
index 848fb7f..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSQueue.java
+++ /dev/null
@@ -1,84 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>jmsqueue</code> tag in the Kalumet configuration DOM.
- */
-public class JMSQueue
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -5239170363052872967L;
-
-  private String name;
-
-  public JMSQueue()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JMSQueue clone = new JMSQueue();
-    clone.setName( this.getName() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>JMSQueue</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jmsqueue" );
-    element.setAttribute( "name", this.getName() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherJMSQueue )
-  {
-    return this.getName().compareTo( ( (JMSQueue) anotherJMSQueue ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSServer.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSServer.java
deleted file mode 100644
index 67a7eac..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSServer.java
+++ /dev/null
@@ -1,263 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>jmsserver</code> tag in the Kalumet configuration DOM.
- */
-public class JMSServer
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -6330087943208308843L;
-
-  private String name;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private LinkedList jmsQueues;
-
-  private LinkedList jmsTopics;
-
-  public JMSServer()
-  {
-    this.jmsQueues = new LinkedList();
-    this.jmsTopics = new LinkedList();
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  /**
-   * Add a new <code>JMSQueue</code> in the <code>JMSServer</code>
-   * JMS queues container.
-   *
-   * @param jmsQueue the <code>JMSQueue</code> to add.
-   */
-  public void addJMSQueue( JMSQueue jmsQueue )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJMSQueue( jmsQueue.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "JMS queue name already exists in JMS server." );
-    }
-    this.jmsQueues.add( jmsQueue );
-  }
-
-  /**
-   * Get the <code>JMSQueue</code> list in the <code>JMSServer</code>
-   * JMS queues container.
-   *
-   * @return the <code>JMSQueue</code> list.
-   */
-  public List getJMSQueues()
-  {
-    return this.jmsQueues;
-  }
-
-  /**
-   * Set the <code>JMSQueue</code> list in the <code>JMSServer</code>
-   * JMS queues container.
-   *
-   * @param jmsQueues the new <code>JMSQueue</code> list.
-   */
-  public void setJMSQueues( LinkedList jmsQueues )
-  {
-    this.jmsQueues = jmsQueues;
-  }
-
-  /**
-   * Get the <code>JMSQueue</code> identified by a given name in the
-   * <code>JMSServer</code> JMS queues container.
-   *
-   * @param name the <code>JMSQueue</code> name.
-   * @return the <code>JMSQueue</code> found or null if not found.
-   */
-  public JMSQueue getJMSQueue( String name )
-  {
-    for ( Iterator jmsQueueIterator = this.getJMSQueues().iterator(); jmsQueueIterator.hasNext(); )
-    {
-      JMSQueue jmsQueue = (JMSQueue) jmsQueueIterator.next();
-      if ( jmsQueue.getName().equals( name ) )
-      {
-        return jmsQueue;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>JMSTopic</code> in the <code>JMSServer</code>
-   * JMS topics container.
-   *
-   * @param jmsTopic the <code>JMSTopic</code> to add.
-   */
-  public void addJMSTopic( JMSTopic jmsTopic )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getJMSTopic( jmsTopic.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "JMS topic name already exists in JMS server." );
-    }
-    this.jmsTopics.add( jmsTopic );
-  }
-
-  /**
-   * Get the <code>JMSTopic</code> list in the <code>JMSServer</code>
-   * JMS topics container.
-   *
-   * @return the <code>JMSTopic</code> list.
-   */
-  public List getJMSTopics()
-  {
-    return this.jmsTopics;
-  }
-
-  /**
-   * Set the <code>JMSTopic</code> list in the <code>JMSServer</code>
-   * JMS topics container.
-   *
-   * @param jmsTopics the new <code>JMSTopic</code> list.
-   */
-  public void setJMSTopics( LinkedList jmsTopics )
-  {
-    this.jmsTopics = jmsTopics;
-  }
-
-  /**
-   * Get the <code>JMSTopic</code> identified by a given name in the
-   * <code>JMSServer</code> JMS topics container.
-   *
-   * @param name the <code>JMSTopic</code> name.
-   * @return the <code>JMSTopic</code> found or null if not found.
-   */
-  public JMSTopic getJMSTopic( String name )
-  {
-    for ( Iterator jmsTopicIterator = this.getJMSTopics().iterator(); jmsTopicIterator.hasNext(); )
-    {
-      JMSTopic jmsTopic = (JMSTopic) jmsTopicIterator.next();
-      if ( jmsTopic.getName().equals( name ) )
-      {
-        return jmsTopic;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JMSServer clone = new JMSServer();
-    clone.setName( this.getName() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    for ( Iterator jmsQueueIterator = this.jmsQueues.iterator(); jmsQueueIterator.hasNext(); )
-    {
-      JMSQueue jmsQueue = (JMSQueue) jmsQueueIterator.next();
-      clone.jmsQueues.add( (JMSQueue) jmsQueue.clone() );
-    }
-    for ( Iterator jmsTopicIterator = this.jmsTopics.iterator(); jmsTopicIterator.hasNext(); )
-    {
-      JMSTopic jmsTopic = (JMSTopic) jmsTopicIterator.next();
-      clone.jmsTopics.add( (JMSTopic) jmsTopic.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>JMSServer</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jmsserver" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    // jmsqueues
-    ElementImpl jmsqueues = new ElementImpl( document, "jmsqueues" );
-    for ( Iterator jmsQueueIterator = this.getJMSQueues().iterator(); jmsQueueIterator.hasNext(); )
-    {
-      JMSQueue jmsQueue = (JMSQueue) jmsQueueIterator.next();
-      jmsqueues.appendChild( jmsQueue.toDOMElement( document ) );
-    }
-    element.appendChild( jmsqueues );
-    // jmstopics
-    ElementImpl jmstopics = new ElementImpl( document, "jmstopics" );
-    for ( Iterator jmsTopicIterator = this.getJMSTopics().iterator(); jmsTopicIterator.hasNext(); )
-    {
-      JMSTopic jmsTopic = (JMSTopic) jmsTopicIterator.next();
-      jmstopics.appendChild( jmsTopic.toDOMElement( document ) );
-    }
-    element.appendChild( jmstopics );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherJMSServer )
-  {
-    return this.getName().compareTo( ( (JMSServer) anotherJMSServer ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSTopic.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSTopic.java
deleted file mode 100644
index cf1ed71..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JMSTopic.java
+++ /dev/null
@@ -1,84 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>jmstopic</code> tag in the Kalumet configuration DOM.
- */
-public class JMSTopic
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -1602613331569475624L;
-
-  private String name;
-
-  public JMSTopic()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JMSTopic clone = new JMSTopic();
-    clone.setName( this.getName() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>JMSTopic</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jmstopic" );
-    element.setAttribute( "name", this.getName() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherJMSTopic )
-  {
-    return this.getName().compareTo( ( (JMSTopic) anotherJMSTopic ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JNDIBinding.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JNDIBinding.java
deleted file mode 100644
index 6c054a0..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/JNDIBinding.java
+++ /dev/null
@@ -1,154 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>jndibinding</code> tag in the Kalumet configuration DOM.
- */
-public class JNDIBinding
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -2336476111740231781L;
-
-  private String name;
-
-  private String jndiname;
-
-  private String jndialias;
-
-  private String providerurl;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  public JNDIBinding()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getJndiname()
-  {
-    return this.jndiname;
-  }
-
-  public void setJndiname( String jndiname )
-  {
-    this.jndiname = jndiname;
-  }
-
-  public String getJndialias()
-  {
-    return this.jndialias;
-  }
-
-  public void setJndialias( String jndialias )
-  {
-    this.jndialias = jndialias;
-  }
-
-  public String getProviderurl()
-  {
-    return this.providerurl;
-  }
-
-  public void setProviderurl( String providerurl )
-  {
-    this.providerurl = providerurl;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    JNDIBinding clone = new JNDIBinding();
-    clone.setName( this.getName() );
-    clone.setJndiname( this.getJndiname() );
-    clone.setJndialias( this.getJndialias() );
-    clone.setProviderurl( this.getProviderurl() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>JNDIBinding</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "jndibinding" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "jndiname", this.getJndiname() );
-    element.setAttribute( "jndialias", this.getJndialias() );
-    element.setAttribute( "providerurl", this.getProviderurl() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherNameSpaceBinding )
-  {
-    return this.getName().compareTo( ( (JNDIBinding) anotherNameSpaceBinding ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Kalumet.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Kalumet.java
deleted file mode 100644
index 1d1a2e7..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Kalumet.java
+++ /dev/null
@@ -1,1007 +0,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.
- */
-package org.apache.kalumet.model;
-
-import EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock;
-import org.apache.commons.digester.Digester;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.KalumetException;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
-import org.w3c.dom.Element;
-
-import java.io.FileOutputStream;
-import java.io.Serializable;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Represents the <code>kalumet</code> root tag in the main Kalumet DOM.
- */
-public class Kalumet
-  implements Serializable, Cloneable
-{
-
-  private static final long serialVersionUID = -3237352886418250595L;
-
-  private static WriterPreferenceReadWriteLock lock = new WriterPreferenceReadWriteLock();
-
-  private LinkedList properties;
-
-  private Security security;
-
-  private LinkedList agents;
-
-  private LinkedList environments;
-
-  public Kalumet()
-  {
-    this.properties = new LinkedList();
-    this.security = new Security();
-    this.agents = new LinkedList();
-    this.environments = new LinkedList();
-  }
-
-  /**
-   * Adds a new <code>Property</code> in the <code>Kalumet</code>
-   * container.
-   *
-   * @param property the <code>Property</code> to add.
-   */
-  public void addProperty( Property property )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getProperty( property.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Property name already exists in Kalumet configuration." );
-    }
-    this.properties.add( property );
-  }
-
-  /**
-   * Gets the <code>Property</code> list in the <code>Kalumet</code>
-   * container.
-   *
-   * @return the <code>Property</code> list.
-   */
-  public List getProperties()
-  {
-    return this.properties;
-  }
-
-  /**
-   * Overwrites the <code>Property</code> list in the <code>Kalumet</code>
-   * container.
-   *
-   * @param properties the new <code>Property</code> list.
-   */
-  public void setProperties( LinkedList properties )
-  {
-    this.properties = properties;
-  }
-
-  /**
-   * Get the <code>Property</code> identified by a given name in the
-   * <code>Kalumet</code> container.
-   *
-   * @param name the <code>Property</code> name.
-   * @return the found <code>Property</code> or null if no <code>Property</code> found.
-   */
-  public Property getProperty( String name )
-  {
-    for ( Iterator propertyIterator = this.getProperties().iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      if ( property.getName().equals( name ) )
-      {
-        return property;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Set the <code>Security</code> definition of the <code>Kalumet</code>
-   * container.
-   *
-   * @param security the <code>Security</code> definition.
-   */
-  public void setSecurity( Security security )
-  {
-    this.security = security;
-  }
-
-  /**
-   * Get the <code>Security</code> definition of the <code>Kalumet</code>
-   * container.
-   *
-   * @return the <code>Security</code> definition.
-   */
-  public Security getSecurity()
-  {
-    return this.security;
-  }
-
-  /**
-   * Add a new <code>Agent</code> in the <code>Kalumet</code> container.
-   *
-   * @param agent the <code>Agent</code> to add.
-   */
-  public void addAgent( Agent agent )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getAgent( agent.getId() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Agent id already exists in Kalumet configuration." );
-    }
-    this.agents.add( agent );
-  }
-
-  /**
-   * Overwrite the <code>Agent</code> list in the <code>Kalumet</code>
-   * container with a new list.
-   *
-   * @param agents the new <code>Agent</code> list.
-   */
-  public void setAgents( LinkedList agents )
-  {
-    this.agents = agents;
-  }
-
-  /**
-   * Return the <code>Agent</code> list in the <code>Kalumet</code>
-   * container.
-   *
-   * @return the <code>Agent</code> list.
-   */
-  public List getAgents()
-  {
-    return this.agents;
-  }
-
-  /**
-   * Get the <code>Agent</code> identified by a given id in the
-   * <code>Kalumet</code> container.
-   *
-   * @param id the <code>Agent</code> id.
-   * @return the found <code>Agent</code> or null if no <code>Agent</code> found.
-   */
-  public Agent getAgent( String id )
-  {
-    for ( Iterator agentIterator = this.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      if ( agent.getId().equals( id ) )
-      {
-        return agent;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a new <code>Environment</code> to the <code>Kalumet</code>
-   * container.
-   *
-   * @param environment the <code>Environment</code> to add.
-   */
-  public void addEnvironment( Environment environment )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getEnvironment( environment.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Environment name already exists in Kalumet configuration." );
-    }
-    this.environments.add( environment );
-  }
-
-  /**
-   * Get the <code>Environment</code> list in the <code>Kalumet</code>
-   * container.
-   *
-   * @return the <code>Environment</code> list.
-   */
-  public List getEnvironments()
-  {
-    return this.environments;
-  }
-
-  /**
-   * Overwrite the <code>Environment</code> list in the
-   * <code>Kalumet</code> container.
-   *
-   * @param environments the new <code>Environment</code> list.
-   */
-  public void setEnvironments( LinkedList environments )
-  {
-    this.environments = environments;
-  }
-
-  /**
-   * Get the <code>Environment</code> identified by the given name in the
-   * <code>Kalumet</code> container.
-   *
-   * @param name the <code>Environment</code> name.
-   * @return the found <code>Environment</code> or null if no <code>Environment</code> found.
-   */
-  public Environment getEnvironment( String name )
-  {
-    for ( Iterator environmentIterator = this.getEnvironments().iterator(); environmentIterator.hasNext(); )
-    {
-      Environment environment = (Environment) environmentIterator.next();
-      if ( environment.getName().equals( name ) )
-      {
-        return environment;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Get the <code>Environment</code> map order by group.
-   *
-   * @return the groups/environments map.
-   */
-  public Map getEnvironmentsByGroups()
-  {
-    HashMap map = new HashMap();
-    for ( Iterator environmentIterator = environments.iterator(); environmentIterator.hasNext(); )
-    {
-      Environment current = (Environment) environmentIterator.next();
-      if ( !map.containsKey( current.getGroup() ) )
-      {
-        map.put( current.getGroup(), new LinkedList() );
-      }
-      ( (List) map.get( current.getGroup() ) ).add( current );
-    }
-    return map;
-  }
-
-  /**
-   * Get the <code>Environment</code> list for a given <code>User</code> id.
-   *
-   * @param userid the <code>User</code> id.
-   * @return the <code>Environment</code> list of the user.
-   */
-  public List getUserEnvironments( String userid )
-  {
-    LinkedList userEnvironments = new LinkedList();
-    Security security = this.getSecurity();
-    for ( Iterator environmentIterator = this.getEnvironments().iterator(); environmentIterator.hasNext(); )
-    {
-      Environment environment = (Environment) environmentIterator.next();
-      if ( security.checkEnvironmentUserAccess( environment, userid, null ) )
-      {
-        userEnvironments.add( environment );
-      }
-    }
-    return userEnvironments;
-  }
-
-  /**
-   * Get the <code>Environment</code> user map order by group.
-   *
-   * @param userid the <code>User</code> id.
-   * @return the groups/environments user map.
-   */
-  public Map getUserEnvironmentsByGroups( String userid )
-  {
-    HashMap map = new HashMap();
-    for ( Iterator userEnvironmentIterator = this.getUserEnvironments( userid ).iterator();
-          userEnvironmentIterator.hasNext(); )
-    {
-      Environment environment = (Environment) userEnvironmentIterator.next();
-      if ( !map.containsKey( environment.getGroup() ) )
-      {
-        map.put( environment.getGroup(), new LinkedList() );
-      }
-      ( (List) map.get( environment.getGroup() ) ).add( environment );
-    }
-    return map;
-  }
-
-  /**
-   * Get the <code>Environment</code> list for a given <code>Agent</code> id.
-   *
-   * @param id the <code>Agent</code> id.
-   * @return the <code>Environment</code> list managed by the <code>Agent</code>.
-   */
-  public List getEnvironmentsByAgent( String id )
-  {
-    LinkedList list = new LinkedList();
-    for ( Iterator environmentIterator = this.getEnvironments().iterator(); environmentIterator.hasNext(); )
-    {
-      Environment current = (Environment) environmentIterator.next();
-      if ( current.getAgent().equals( id ) )
-      {
-        list.add( current );
-      }
-    }
-    return list;
-  }
-
-  /**
-   * Digeste a given XML file and return the main kalumet root tag.
-   *
-   * @param path the Kalumet XML file to parse.
-   * @return the main <code>Kalumet</code> corresponding with the root tag.
-   */
-  public static Kalumet digeste( String path )
-    throws KalumetException
-  {
-    if ( !path.startsWith( "http:" ) && !path.startsWith( "HTTP:" ) && !path.startsWith( "file:" ) && !path.startsWith(
-      "FILE:" ) )
-    {
-      path = "file:" + path;
-    }
-    Kalumet kalumet = null;
-    try
-    {
-      lock.readLock().acquire();
-
-      // init the digester with no validation on the XML file (no DTD)
-      Digester digester = new Digester();
-      digester.setValidating( false );
-
-      // kalumet tag rules
-      digester.addObjectCreate( "kalumet", "org.apache.kalumet.model.Kalumet" );
-      digester.addSetProperties( "kalumet" );
-
-      // properties/property tag rules
-      digester.addObjectCreate( "kalumet/properties/property", "org.apache.kalumet.model.Property" );
-      digester.addSetProperties( "kalumet/properties/property" );
-
-      // add property in the kalumet tag rule
-      digester.addSetNext( "kalumet/properties/property", "addProperty", "org.apache.kalumet.model.Property" );
-
-      // security tag rules
-      digester.addObjectCreate( "kalumet/security", "org.apache.kalumet.model.Security" );
-      digester.addSetProperties( "kalumet/security" );
-
-      // user tag rules
-      digester.addObjectCreate( "kalumet/security/users/user", "org.apache.kalumet.model.User" );
-      digester.addSetProperties( "kalumet/security/users/user" );
-
-      // add user to security tag rule
-      digester.addSetNext( "kalumet/security/users/user", "addUser", "org.apache.kalumet.model.User" );
-
-      // group tag rules
-      digester.addObjectCreate( "kalumet/security/groups/group", "org.apache.kalumet.model.Group" );
-      digester.addSetProperties( "kalumet/security/groups/group" );
-
-      // user group tag rules
-      digester.addObjectCreate( "kalumet/security/groups/group/users/user", "org.apache.kalumet.model.User" );
-      digester.addSetProperties( "kalumet/security/groups/group/users/user" );
-
-      // add user in group tag rule
-      digester.addSetNext( "kalumet/security/groups/group/users/user", "addUser", "org.apache.kalumet.model.User" );
-
-      // add group to security tag rule
-      digester.addSetNext( "kalumet/security/groups/group", "addGroup", "org.apache.kalumet.model.Group" );
-
-      // add security to kalumet tag rule
-      digester.addSetNext( "kalumet/security", "setSecurity", "org.apache.kalumet.model.Security" );
-
-      // agent tag rules
-      digester.addObjectCreate( "kalumet/agents/agent", "org.apache.kalumet.model.Agent" );
-      digester.addSetProperties( "kalumet/agents/agent" );
-
-      // add agent to kalumet tag rule
-      digester.addSetNext( "kalumet/agents/agent", "addAgent", "org.apache.kalumet.model.Agent" );
-
-      // environment tag rules
-      digester.addObjectCreate( "kalumet/environments/environment", "org.apache.kalumet.model.Environment" );
-      digester.addSetProperties( "kalumet/environments/environment" );
-
-      // variables tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/variables/variable",
-                                "org.apache.kalumet.model.Variable" );
-      digester.addSetProperties( "kalumet/environments/environment/variables/variable" );
-
-      // add variable to environment tag rule
-      digester.addSetNext( "kalumet/environments/environment/variables/variable", "addVariable",
-                           "org.apache.kalumet.model.Variable" );
-
-      // freefield tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/freefields/freefield",
-                                "org.apache.kalumet.model.FreeField" );
-      digester.addSetProperties( "kalumet/environments/environment/freefields/freefield" );
-      // add freefield content
-      digester.addCallMethod( "kalumet/environments/environment/freefields/freefield", "setContent", 0 );
-
-      // add freefield to environment tag rule
-      digester.addSetNext( "kalumet/environments/environment/freefields/freefield", "addFreeField",
-                           "org.apache.kalumet.model.FreeField" );
-
-      // access tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/accesses/access", "org.apache.kalumet.model.Access" );
-      digester.addSetProperties( "kalumet/environments/environment/accesses/access" );
-
-      // access properties rules
-      digester.addObjectCreate( "kalumet/environments/environment/accesses/access/properties/property",
-                                "org.apache.kalumet.model.Property" );
-      digester.addSetProperties( "kalumet/environments/environment/accesses/access/properties/property" );
-
-      // add property in access tag rule
-      digester.addSetNext( "kalumet/environments/environment/accesses/access/properties/property", "addProperty",
-                           "org.apache.kalumet.model.Property" );
-
-      // add access to environment tag rule
-      digester.addSetNext( "kalumet/environments/environment/accesses/access", "addAccess",
-                           "org.apache.kalumet.model.Access" );
-
-      // environment notes and weblinks tag rules
-      digester.addCallMethod( "kalumet/environments/environment/notes", "setNotes", 0 );
-      digester.addCallMethod( "kalumet/environments/environment/weblinks", "setWeblinks", 0 );
-
-      // jeeapplicationservers tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/jeeapplicationservers",
-                                "org.apache.kalumet.model.JEEApplicationServers" );
-      digester.addSetProperties( "kalumet/environments/environment/jeeapplicationservers" );
-
-      // jeeapplicationserver tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver",
-                                "org.apache.kalumet.model.JEEApplicationServer" );
-      digester.addSetProperties( "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver" );
-
-      // jeeapplicationserver startupcommand and shutdowncommand tag rules
-      digester.addCallMethod(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/startupcommand",
-        "setStartupcommand", 0 );
-      digester.addCallMethod(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/shutdowncommand",
-        "setShutdowncommand", 0 );
-
-      // jdbcconnectionpool tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jdbcconnectionpools/jdbcconnectionpool",
-        "org.apache.kalumet.model.JDBCConnectionPool" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jdbcconnectionpools/jdbcconnectionpool" );
-
-      // add jdbcconnectionpool to jeeapplicationserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jdbcconnectionpools/jdbcconnectionpool",
-        "addJDBCConnectionPool", "org.apache.kalumet.model.JDBCConnectionPool" );
-
-      // jdbcdatasource tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jdbcdatasources/jdbcdatasource",
-        "org.apache.kalumet.model.JDBCDataSource" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jdbcdatasources/jdbcdatasource" );
-
-      // add jdbcdatasource to jeeapplicationserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jdbcdatasources/jdbcdatasource",
-        "addJDBCDataSource", "org.apache.kalumet.model.JDBCDataSource" );
-
-      // jmsconnectionfactory tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsconnectionfactories/jmsconnectionfactory",
-        "org.apache.kalumet.model.JMSConnectionFactory" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsconnectionfactories/jmsconnectionfactory" );
-
-      // add jmsconnectionfactory to jeeapplicationserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsconnectionfactories/jmsconnectionfactory",
-        "addJMSConnectionFactory", "org.apache.kalumet.model.JMSConnectionFactory" );
-
-      // jmsserver tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver",
-        "org.apache.kalumet.model.JMSServer" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver" );
-
-      // jmsqueue tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver/jmsqueues/jmsqueue",
-        "org.apache.kalumet.model.JMSQueue" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver/jmsqueues/jmsqueue" );
-
-      // add jmsqueue to jmsserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver/jmsqueues/jmsqueue",
-        "addJMSQueue", "org.apache.kalumet.model.JMSQueue" );
-
-      // jmstopic tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver/jmstopics/jmstopic",
-        "org.apache.kalumet.model.JMSTopic" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver/jmstopics/jmstopic" );
-
-      // add jmstopic to jmsserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver/jmstopics/jmstopic",
-        "addJMSTopic", "org.apache.kalumet.model.JMSTopic" );
-
-      // add jmsserver to jeeapplicationserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jmsservers/jmsserver",
-        "addJMSServer", "org.apache.kalumet.model.JMSServer" );
-
-      // jndibinding tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jndibindings/jndibinding",
-        "org.apache.kalumet.model.JNDIBinding" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jndibindings/jndibinding" );
-
-      // add jndibinding to jeeapplicationserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jndibindings/jndibinding",
-        "addJNDIBinding", "org.apache.kalumet.model.JNDIBinding" );
-
-      // sharedlibrary tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/sharedlibrairies/sharedlibrary",
-        "org.apache.kalumet.model.SharedLibrary" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/sharedlibrairies/sharedlibrary" );
-
-      // add sharedlibrary to jeeapplicationserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/sharedlibrairies/sharedlibrary",
-        "addSharedLibrary", "org.apache.kalumet.model.SharedLibrary" );
-
-      // application tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication",
-        "org.apache.kalumet.model.JEEApplication" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication" );
-
-      // archive tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/archives/archive",
-        "org.apache.kalumet.model.Archive" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/archives/archive" );
-
-      // add archive archive to application
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/archives/archive",
-        "addArchive", "org.apache.kalumet.model.Archive" );
-
-      // contentmanager tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/contentmanagers/contentmanager",
-        "org.apache.kalumet.model.ContentManager" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/contentmanagers/contentmanager" );
-
-      // contentmanager property tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/contentmanagers/contentmanager/properties/property",
-        "org.apache.kalumet.model.Property" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/contentmanagers/contentmanager/properties/property" );
-
-      // add property in contentmanager
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/contentmanagers/contentmanager/properties/property",
-        "addProperty", "org.apache.kalumet.model.Property" );
-
-      // add contentmanager to application
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/contentmanagers/contentmanager",
-        "addContentManager", "org.apache.kalumet.model.ContentManager" );
-
-      // configurationfile tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/configurationfiles/configurationfile",
-        "org.apache.kalumet.model.ConfigurationFile" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/configurationfiles/configurationfile" );
-
-      // mapping tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/configurationfiles/configurationfile/mappings/mapping",
-        "org.apache.kalumet.model.Mapping" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/configurationfiles/configurationfile/mappings/mapping" );
-
-      // add mapping to configurationfile
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/configurationfiles/configurationfile/mappings/mapping",
-        "addMapping", "org.apache.kalumet.model.Mapping" );
-
-      // add configurationfile to application
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/configurationfiles/configurationfile",
-        "addConfigurationFile", "org.apache.kalumet.model.ConfigurationFile" );
-
-      // database tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database",
-        "org.apache.kalumet.model.Database" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database" );
-
-      // sqlscript tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database/sqlscripts/sqlscript",
-        "org.apache.kalumet.model.SqlScript" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database/sqlscripts/sqlscript" );
-
-      // sqlscript mapping tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database/sqlscripts/sqlscript/mappings/mapping",
-        "org.apache.kalumet.model.Mapping" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database/sqlscripts/sqlscript/mappings/mapping" );
-
-      // add mapping to sqlscript
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database/sqlscripts/sqlscript/mappings/mapping",
-        "addMapping", "org.apache.kalumet.model.Mapping" );
-
-      // add sqlscript to database
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database/sqlscripts/sqlscript",
-        "addSqlScript", "org.apache.kalumet.model.SqlScript" );
-
-      // add database to application
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/jeeapplication/databases/database",
-        "addDatabase", "org.apache.kalumet.model.Database" );
-
-      // add application to applicationserver
-      digester.addSetNext(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/jeeapplications/application",
-        "addApplication", "org.apache.kalumet.model.JEEApplication" );
-
-      // cache tag rules
-      digester.addObjectCreate(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/caches/cache",
-        "org.apache.kalumet.model.Cache" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/caches/cache" );
-
-      // add cache to applicationserver
-      digester.addSetNext( "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver/caches/cache",
-                           "addCache", "org.apache.kalumet.model.Cache" );
-
-      // add applicationserver to applicationservers tag rule
-      digester.addSetNext( "kalumet/environments/environment/jeeapplicationservers/jeeapplicationserver",
-                           "addJEEApplicationServer", "org.apache.kalumet.model.JEEApplicationServer" );
-
-      // add applicationservers to environment tag rule
-      digester.addSetNext( "kalumet/environments/environment/jeeapplicationservers", "setJEEApplicationServers",
-                           "org.apache.kalumet.model.JEEApplicationServers" );
-
-      // logfile tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/logfiles/logfile",
-                                "org.apache.kalumet.model.LogFile" );
-      digester.addSetProperties( "kalumet/environments/environment/logfiles/logfile" );
-
-      // add logfile to environment tag rule
-      digester.addSetNext( "kalumet/environments/environment/logfiles/logfile", "addLogFile",
-                           "org.apache.kalumet.model.LogFile" );
-
-      // software tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/softwares/software",
-                                "org.apache.kalumet.model.Software" );
-      digester.addSetProperties( "kalumet/environments/environment/softwares/software" );
-
-      // software update plan command item
-      digester.addObjectCreate( "kalumet/environments/environment/softwares/software/updateplan/command",
-                                "org.apache.kalumet.model.Command" );
-      digester.addSetProperties( "kalumet/environments/environment/softwares/software/updateplan/command" );
-      digester.addCallMethod( "kalumet/environments/environment/softwares/software/updateplan/command", "setCommand",
-                              0 );
-      digester.addSetNext( "kalumet/environments/environment/softwares/software/updateplan/command", "addCommand",
-                           "org.apache.kalumet.model.Command" );
-
-      // software update plan location item
-      digester.addObjectCreate( "kalumet/environments/environment/softwares/software/updateplan/location",
-                                "org.apache.kalumet.model.Location" );
-      digester.addSetProperties( "kalumet/environments/environment/softwares/software/updateplan/location" );
-      digester.addSetNext( "kalumet/environments/environment/softwares/software/updateplan/location", "addLocation",
-                           "org.apache.kalumet.model.Location" );
-
-      // software update plan configuration file item
-      digester.addObjectCreate( "kalumet/environments/environment/softwares/software/updateplan/configurationfile",
-                                "org.apache.kalumet.model.ConfigurationFile" );
-      digester.addSetProperties( "kalumet/environments/environment/softwares/software/updateplan/configurationfile" );
-      digester.addObjectCreate(
-        "kalumet/environments/environment/softwares/software/updateplan/configurationfile/mappings/mapping",
-        "org.apache.kalumet.model.Mapping" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/softwares/software/updateplan/configurationfile/mappings/mapping" );
-      digester.addSetNext(
-        "kalumet/environments/environment/softwares/software/updateplan/configurationfile/mappings/mapping",
-        "addMapping", "org.apache.kalumet.model.Mapping" );
-      digester.addSetNext( "kalumet/environments/environment/softwares/software/updateplan/configurationfile",
-                           "addConfigurationFile", "org.apache.kalumet.model.ConfigurationFile" );
-
-      // software update plan database item
-      digester.addObjectCreate( "kalumet/environments/environment/softwares/software/updateplan/database",
-                                "org.apache.kalumet.model.Database" );
-      digester.addSetProperties( "kalumet/environments/environment/softwares/software/updateplan/database" );
-      digester.addObjectCreate(
-        "kalumet/environments/environment/softwares/software/updateplan/database/sqlscripts/sqlscript",
-        "org.apache.kalumet.model.SqlScript" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/softwares/software/updateplan/database/sqlscripts/sqlscript" );
-      digester.addObjectCreate(
-        "kalumet/environments/environment/softwares/software/updateplan/database/sqlscripts/sqlscript/mappings/mapping",
-        "org.apache.kalumet.model.Mapping" );
-      digester.addSetProperties(
-        "kalumet/environments/environment/softwares/software/updateplan/database/sqlscripts/sqlscript/mappings/mapping" );
-      digester.addSetNext(
-        "kalumet/environments/environment/softwares/software/updateplan/database/sqlscripts/sqlscript/mappings/mapping",
-        "addMapping", "org.apache.kalumet.model.Mapping" );
-      digester.addSetNext(
-        "kalumet/environments/environment/softwares/software/updateplan/database/sqlscripts/sqlscript", "addSqlScript",
-        "org.apache.kalumet.model.SqlScript" );
-      digester.addSetNext( "kalumet/environments/environment/softwares/software/updateplan/database", "addDatabase",
-                           "org.apache.kalumet.model.Database" );
-
-      // add software to environment
-      digester.addSetNext( "kalumet/environments/environment/softwares/software", "addSoftware",
-                           "org.apache.kalumet.model.Software" );
-
-      // notifiers tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/notifiers", "org.apache.kalumet.model.Notifiers" );
-      digester.addSetProperties( "kalumet/environments/environment/notifiers" );
-
-      // email tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/notifiers/email", "org.apache.kalumet.model.Email" );
-      digester.addSetProperties( "kalumet/environments/environment/notifiers/email" );
-
-      // destination tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/notifiers/email/destinations/destination",
-                                "org.apache.kalumet.model.Destination" );
-      digester.addSetProperties( "kalumet/environments/environment/notifiers/email/destinations/destination" );
-
-      // add destination to email notifier
-      digester.addSetNext( "kalumet/environments/environment/notifiers/email/destinations/destination",
-                           "addDestination", "org.apache.kalumet.model.Destination" );
-
-      // add email to notifiers
-      digester.addSetNext( "kalumet/environments/environment/notifiers/email", "addNotifier",
-                           "org.apache.kalumet.model.Email" );
-
-      // add notifiers to environment
-      digester.addSetNext( "kalumet/environments/environment/notifiers", "setNotifiers",
-                           "org.apache.kalumet.model.Notifiers" );
-
-      // email publisher tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/publishers/email", "org.apache.kalumet.model.Email" );
-      digester.addSetProperties( "kalumet/environments/environment/publishers/email" );
-
-      // destination email publisher tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/publishers/email/destinations/destination",
-                                "org.apache.kalumet.model.Destination" );
-      digester.addSetProperties( "kalumet/environments/environment/publishers/email/destinations/destination" );
-
-      // add destination to email publisher
-      digester.addSetNext( "kalumet/environments/environment/publishers/email/destinations/destination",
-                           "addDestination", "org.apache.kalumet.model.Destination" );
-
-      // add email publisher to environment
-      digester.addSetNext( "kalumet/environments/environment/publishers/email", "addPublisher",
-                           "org.apache.kalumet.model.Email" );
-
-      // statistics tag rules
-      digester.addObjectCreate( "kalumet/environments/environment/statistics", "org.apache.kalumet.model.Statistics" );
-      digester.addSetProperties( "kalumet/environments/environment/statistics" );
-
-      // add statistics to environment
-      digester.addSetNext( "kalumet/environments/environment/statistics", "setStatistics",
-                           "org.apache.kalumet.model.Statistics" );
-
-      // add environment to kalumet tag rule
-      digester.addSetNext( "kalumet/environments/environment", "addEnvironment",
-                           "org.apache.kalumet.model.Environment" );
-
-      // parse the XML file
-      kalumet = (Kalumet) digester.parse( path );
-    }
-    catch ( Exception e )
-    {
-      throw new KalumetException( "Can't read Kalumet configuration.", e );
-    }
-    finally
-    {
-      lock.readLock().release();
-    }
-    return kalumet;
-  }
-
-  /**
-   * Transform the <code>Kalumet</code> POJO to a DOM Element.
-   *
-   * @param document the XML core document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "kalumet" );
-    // properties element
-    ElementImpl properties = new ElementImpl( document, "properties" );
-    // add property in properties container
-    for ( Iterator propertyIterator = this.getProperties().iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      properties.appendChild( property.toDOMElement( document ) );
-    }
-    // add properties in kalumet
-    element.appendChild( properties );
-    // add security in kalumet
-    element.appendChild( this.getSecurity().toDOMElement( document ) );
-    // agents element
-    ElementImpl agents = new ElementImpl( document, "agents" );
-    // add agent in agents container
-    for ( Iterator agentIterator = this.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agents.appendChild( agent.toDOMElement( document ) );
-    }
-    // add agents in kalumet
-    element.appendChild( agents );
-    // environments element
-    ElementImpl environments = new ElementImpl( document, "environments" );
-    // add environment in environments container
-    for ( Iterator environmentIterator = this.getEnvironments().iterator(); environmentIterator.hasNext(); )
-    {
-      Environment environment = (Environment) environmentIterator.next();
-      environments.appendChild( environment.toDOMElement( document ) );
-    }
-    // add environments in kalumet
-    element.appendChild( environments );
-    return element;
-  }
-
-  /*
-  * (non-Javadoc)
-  * @see java.lang.Object#clone()
-  */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Kalumet clone = new Kalumet();
-    for ( Iterator propertyIterator = this.properties.iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      clone.properties.add( (Property) property.clone() );
-    }
-    clone.setSecurity( (Security) this.getSecurity().clone() );
-    for ( Iterator agentIterator = this.agents.iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      clone.agents.add( (Agent) agent.clone() );
-    }
-    for ( Iterator environmentIterator = this.environments.iterator(); environmentIterator.hasNext(); )
-    {
-      Environment environment = (Environment) environmentIterator.next();
-      clone.environments.add( (Environment) environment.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Write a Kalumet XML file with the content of the in-memory
-   * configuration.
-   *
-   * @param path   the path to the file to write.
-   * @param backup a flag indicated if a previous backup must be copied before writing.
-   */
-  public synchronized void writeXMLFile( String path, boolean backup )
-    throws KalumetException
-  {
-    if ( backup )
-    {
-      this.backupXMLFile( path );
-    }
-    try
-    {
-      lock.writeLock().acquire();
-      OutputFormat format = new OutputFormat();
-      format.setLineWidth( 72 );
-      format.setIndenting( true );
-      format.setIndent( 3 );
-      format.setEncoding( "ISO-8859-1" );
-      if ( path.startsWith( "http:" ) || path.startsWith( "http:" ) )
-      {
-        throw new KalumetException( "Can't write Kalumet XML file over a HTTP URL." );
-      }
-      if ( path.startsWith( "file:" ) || path.startsWith( "FILE:" ) )
-      {
-        path = path.substring( 5 );
-      }
-      XMLSerializer serializer = new XMLSerializer( new FileOutputStream( path ), format );
-      serializer.serialize( this.toDOMElement( new CoreDocumentImpl( true ) ) );
-    }
-    catch ( Exception e )
-    {
-      throw new KalumetException( "Can't write Kalumet XML file.", e );
-    }
-    finally
-    {
-      lock.writeLock().release();
-    }
-  }
-
-  /**
-   * Write a Kalumet XML file with the content of the in-memory
-   * configuration.
-   *
-   * @param path the path to the file to write.
-   */
-  public void writeXMLFile( String path )
-    throws KalumetException
-  {
-    this.writeXMLFile( path, false );
-  }
-
-  /**
-   * Make a backup of the old Kalumet XML configuration to avoid file
-   * corruption (for example when disk full).
-   *
-   * @param path the path to the Kalumet XML file.
-   */
-  public void backupXMLFile( String path )
-    throws KalumetException
-  {
-    FileManipulator fileManipulator = null;
-    try
-    {
-      fileManipulator = new FileManipulator();
-      fileManipulator.copy( path, path + ".backup" );
-    }
-    finally
-    {
-      if ( fileManipulator != null )
-      {
-        fileManipulator.close();
-      }
-    }
-  }
-
-  public static void writeDefault( String path )
-    throws KalumetException
-  {
-    Kalumet kalumet = new Kalumet();
-    Security security = kalumet.getSecurity();
-    User adminUser = new User();
-    adminUser.setId( "admin" );
-    adminUser.setName( "admin" );
-    adminUser.setPassword( "21232f297a57a5a743894a0e4a801fc3" );
-    Group adminGroup = new Group();
-    adminGroup.setId( "admin" );
-    adminGroup.setName( "admin" );
-    adminGroup.addUser( adminUser );
-    security.addGroup( adminGroup );
-    security.addUser( adminUser );
-    kalumet.writeXMLFile( path );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Location.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Location.java
deleted file mode 100644
index 4c7d429..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Location.java
+++ /dev/null
@@ -1,154 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * A <code>location</code> is a general wrapper for files and directories.
- */
-public class Location
-  implements Cloneable, Serializable, Comparable
-{
-
-  private static final long serialVersionUID = 3632838715316673949L;
-
-  private String name;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private String uri;
-
-  private String path;
-
-  private String agent;
-
-  public Location()
-  {
-  }
-
-  public boolean isActive()
-  {
-    return active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  public String getName()
-  {
-    return name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getUri()
-  {
-    return uri;
-  }
-
-  public void setUri( String uri )
-  {
-    this.uri = uri;
-  }
-
-  public String getPath()
-  {
-    return path;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  public void setPath( String path )
-  {
-    this.path = path;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Location clone = new Location();
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setName( this.getName() );
-    clone.setUri( this.getUri() );
-    clone.setPath( this.getPath() );
-    clone.setAgent( this.getAgent() );
-    return clone;
-  }
-
-  /**
-   * Transform a <code>location</code> into a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  public Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "location" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "uri", this.getUri() );
-    element.setAttribute( "path", this.getPath() );
-    element.setAttribute( "agent", this.getAgent() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherLocation )
-  {
-    return this.getName().compareTo( ( (Location) anotherLocation ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/LogFile.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/LogFile.java
deleted file mode 100644
index 7e1ed51..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/LogFile.java
+++ /dev/null
@@ -1,112 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Define the access to a log file.
- */
-public class LogFile
-  implements Cloneable, Serializable, Comparable
-{
-
-  private static final long serialVersionUID = -544824580684870083L;
-
-  private String name;
-
-  private String path;
-
-  private String agent;
-
-  public LogFile()
-  {
-  }
-
-  public String getName()
-  {
-    return name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getPath()
-  {
-    return path;
-  }
-
-  public void setPath( String path )
-  {
-    this.path = path;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    LogFile logFile = new LogFile();
-    logFile.setAgent( this.getAgent() );
-    logFile.setName( this.getName() );
-    logFile.setPath( this.getPath() );
-    return logFile;
-  }
-
-  /**
-   * Transform a <code>logfile</code> into a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  public Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "logfile" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "path", this.getPath() );
-    element.setAttribute( "agent", this.getAgent() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherLogFile )
-  {
-    return this.getName().compareTo( ( (LogFile) anotherLogFile ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Mapping.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Mapping.java
deleted file mode 100644
index 86c7661..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Mapping.java
+++ /dev/null
@@ -1,98 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>mapping</code> tag in the Kalumet configuration DOM.
- */
-public class Mapping
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 6313869273116904013L;
-
-  private String key;
-
-  private String value;
-
-  public Mapping()
-  {
-  }
-
-  public String getKey()
-  {
-    return this.key;
-  }
-
-  public void setKey( String key )
-  {
-    this.key = key;
-  }
-
-  public String getValue()
-  {
-    return this.value;
-  }
-
-  public void setValue( String value )
-  {
-    this.value = value;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Mapping clone = new Mapping();
-    clone.setKey( this.getKey() );
-    clone.setValue( this.getValue() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Mapping</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "mapping" );
-    element.setAttribute( "key", this.getKey() );
-    element.setAttribute( "value", this.getValue() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherMapping )
-  {
-    return this.getKey().compareTo( ( (Mapping) anotherMapping ).getKey() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ModelObjectAlreadyExistsException.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ModelObjectAlreadyExistsException.java
deleted file mode 100644
index b5a569c..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/ModelObjectAlreadyExistsException.java
+++ /dev/null
@@ -1,64 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.kalumet.KalumetException;
-
-/**
- * Exception class handler to manage when a model component already exists in
- * the Kalumet configuration.
- */
-public final class ModelObjectAlreadyExistsException
-  extends KalumetException
-{
-
-  private static final long serialVersionUID = -6461646659257275924L;
-
-  /**
-   * Creates a <code>ModelObjectAlreadyExistsException</code> with an explanation message.
-   *
-   * @param message the explanation message.
-   */
-  public ModelObjectAlreadyExistsException( String message )
-  {
-    super( message );
-  }
-
-  /**
-   * Creates a <code>ModelObjectAlreadyExistsException</code> with the underlying cause.
-   *
-   * @param cause the underlying cause.
-   */
-  public ModelObjectAlreadyExistsException( Throwable cause )
-  {
-    super( cause );
-  }
-
-  /**
-   * Creates a <code>ModelObjectAlreadyExistsException</code> with an explanation message and the underlying cause.
-   *
-   * @param message the explanation message.
-   * @param cause   the underlying cause.
-   */
-  public ModelObjectAlreadyExistsException( String message, Throwable cause )
-  {
-    super( message, cause );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Notifiers.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Notifiers.java
deleted file mode 100644
index 69ddd9b..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Notifiers.java
+++ /dev/null
@@ -1,151 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>notifiers</code> tag in the Kalumet configuration DOM.
- */
-public class Notifiers
-  implements Serializable, Cloneable
-{
-
-  private static final long serialVersionUID = -5087839972754579270L;
-
-  private int countdown;
-
-  private LinkedList notifiers;
-
-  public Notifiers()
-  {
-    this.notifiers = new LinkedList();
-  }
-
-  public int getCountdown()
-  {
-    return this.countdown;
-  }
-
-  public void setCountdown( int countdown )
-  {
-    this.countdown = countdown;
-  }
-
-  /**
-   * Add a new <code>Email</code> notifier in the <code>Notifiers</code>
-   * notifiers container.
-   *
-   * @param email the <code>Email</code> to add.
-   */
-  public void addNotifier( Email email )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getNotifier( email.getMailhost() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Email notifier mailhost already exists in notifiers." );
-    }
-    this.notifiers.add( email );
-  }
-
-  /**
-   * Get the <code>Email</code> notifier list in the <code>Notifiers</code>
-   * notifiers container.
-   *
-   * @return the <code>Email</code> notifier list.
-   */
-  public List getNotifiers()
-  {
-    return this.notifiers;
-  }
-
-  /**
-   * Set the <code>Email</code> notifier list in the
-   * <code>Notifiers</code> notifiers container.
-   *
-   * @param notifiers the new <code>Email</code> notifier list.
-   */
-  public void setNotifiers( LinkedList notifiers )
-  {
-    this.notifiers = notifiers;
-  }
-
-  /**
-   * Get the <code>Email</code> notifier identified by a given mail host in
-   * the <code>Notifiers</code> notifiers container.
-   *
-   * @param mailhost the <code>Email</code> notifier mail host.
-   * @return the <code>Email</code> found or null if not found.
-   */
-  public Email getNotifier( String mailhost )
-  {
-    for ( Iterator notifierIterator = this.getNotifiers().iterator(); notifierIterator.hasNext(); )
-    {
-      Email email = (Email) notifierIterator.next();
-      if ( email.getMailhost().equals( mailhost ) )
-      {
-        return email;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Notifiers clone = new Notifiers();
-    clone.setCountdown( this.getCountdown() );
-    for ( Iterator notifierIterator = this.notifiers.iterator(); notifierIterator.hasNext(); )
-    {
-      Email notifier = (Email) notifierIterator.next();
-      clone.notifiers.add( (Email) notifier.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Notifiers</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "notifiers" );
-    element.setAttribute( "countdown", new Integer( this.getCountdown() ).toString() );
-    // email notifier child nodes
-    for ( Iterator notifierIterator = this.getNotifiers().iterator(); notifierIterator.hasNext(); )
-    {
-      Email email = (Email) notifierIterator.next();
-      element.appendChild( email.toDOMElement( document ) );
-    }
-    return element;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Property.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Property.java
deleted file mode 100644
index 103ad34..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Property.java
+++ /dev/null
@@ -1,98 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent a <code>property</code> tag in the Kalumet configuration DOM.
- */
-public class Property
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -1044229953052391950L;
-
-  private String name;
-
-  private String value;
-
-  public Property()
-  {
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setValue( String value )
-  {
-    this.value = value;
-  }
-
-  public String getValue()
-  {
-    return this.value;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Property clone = new Property();
-    clone.setName( this.getName() );
-    clone.setValue( this.getValue() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Property</code> POJO to a DOM Element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "property" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "value", this.getValue() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherProperty )
-  {
-    return this.getName().compareTo( ( (Property) anotherProperty ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Security.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Security.java
deleted file mode 100644
index f354e44..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Security.java
+++ /dev/null
@@ -1,324 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>security</code> tag in the Kalumet configuration DOM.
- */
-public class Security
-  implements Serializable, Cloneable
-{
-
-  private static final long serialVersionUID = 1323976117053191122L;
-
-  private LinkedList users;
-
-  private LinkedList groups;
-
-  public Security()
-  {
-    this.users = new LinkedList();
-    this.groups = new LinkedList();
-  }
-
-  /**
-   * Add a new <code>User</code> in the <code>Security</code> container.
-   *
-   * @param user the <code>User</code> to add.
-   */
-  public void addUser( User user )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getUser( user.getId() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "User id already exists in the security user configuration." );
-    }
-    this.users.add( user );
-  }
-
-  /**
-   * Get the <code>User</code> list in the <code>Security</code>
-   * container.
-   *
-   * @return the <code>User</code> list.
-   */
-  public List getUsers()
-  {
-    return this.users;
-  }
-
-  /**
-   * Set the <code>User</code> list in the <code>Security</code>
-   * container.
-   *
-   * @param users the new <code>User</code> list.
-   */
-  public void setUsers( LinkedList users )
-  {
-    this.users = users;
-  }
-
-  /**
-   * Get the <code>User</code> identified by a given id in the
-   * <code>Security</code> container.
-   *
-   * @param id the <code>User</code> id.
-   * @return the found <code>User</code> or null if not found.
-   */
-  public User getUser( String id )
-  {
-    for ( Iterator userIterator = this.getUsers().iterator(); userIterator.hasNext(); )
-    {
-      User user = (User) userIterator.next();
-      if ( user.getId().equals( id ) )
-      {
-        return user;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Identify a user.
-   *
-   * @param id       the user id.
-   * @param password the user password (in clear).
-   * @return true if the user is identified, false else.
-   */
-  public boolean identifyUser( String id, String password )
-    throws KalumetException
-  {
-    String encryptedPassword = User.md5PasswordCrypt( password );
-    User user = this.getUser( id );
-    if ( user == null )
-    {
-      return false;
-    }
-    if ( !user.getPassword().equals( encryptedPassword ) )
-    {
-      return false;
-    }
-    return true;
-  }
-
-  /**
-   * Add a new <code>Group</code> in the <code>Security</code> container.
-   *
-   * @param group the <code>Group</code> to add.
-   */
-  public void addGroup( Group group )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getGroup( group.getId() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Group id already exists in security definition." );
-    }
-    this.groups.add( group );
-  }
-
-  /**
-   * Get the <code>Group</code> list in the <code>Security</code> container.
-   *
-   * @return the <code>Group</code> list.
-   */
-  public List getGroups()
-  {
-    return this.groups;
-  }
-
-  /**
-   * Set the <code>Group</code> list in the <code>Security</code>
-   * container.
-   *
-   * @param groups the new <code>Group</code>list.
-   */
-  public void setGroups( LinkedList groups )
-  {
-    this.groups = groups;
-  }
-
-  /**
-   * Get a <code>Group</code> identified by a given id in the
-   * <code>Security</code> container.
-   *
-   * @param id the <code>Group</code> id.
-   * @return the found <code>Group</code> or null if not found.
-   */
-  public Group getGroup( String id )
-  {
-    for ( Iterator groupIterator = this.getGroups().iterator(); groupIterator.hasNext(); )
-    {
-      Group group = (Group) groupIterator.next();
-      if ( group.getId().equals( id ) )
-      {
-        return group;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Get all groups of a user.
-   *
-   * @param userid the user id.
-   * @return the user groups.
-   */
-  public List getUserGroups( String userid )
-  {
-    if ( userid.equals( "admin" ) )
-    {
-      return this.getGroups();
-    }
-    LinkedList userGroups = new LinkedList();
-    for ( Iterator groupIterator = this.getGroups().iterator(); groupIterator.hasNext(); )
-    {
-      Group group = (Group) groupIterator.next();
-      if ( group.getUser( userid ) != null )
-      {
-        userGroups.add( group );
-      }
-    }
-    return userGroups;
-  }
-
-  /**
-   * Check user in group.
-   *
-   * @param userid  the user id.
-   * @param groupid the group id.
-   * @return true if the user is a member of the group, false else.
-   */
-  public boolean checkUserInGroup( String userid, String groupid )
-  {
-    if ( userid.equals( "admin" ) )
-    {
-      return true;
-    }
-    for ( Iterator userGroupIterator = this.getUserGroups( userid ).iterator(); userGroupIterator.hasNext(); )
-    {
-      Group group = (Group) userGroupIterator.next();
-      if ( group.getId().equals( groupid ) )
-      {
-        return true;
-      }
-    }
-    return false;
-  }
-
-  /**
-   * Check if a user has an access to a given environment.
-   *
-   * @param environment the <code>Environment</code>.
-   * @param userid      the <code>User</code> id.
-   * @param property    the <code>Access</code> property.
-   * @return true if the user has access to the environment, false else.
-   */
-  public boolean checkEnvironmentUserAccess( Environment environment, String userid, String property )
-  {
-    if ( this.checkUserInGroup( userid, "admin" ) )
-    {
-      return true;
-    }
-    for ( Iterator accessIterator = environment.getAccesses().iterator(); accessIterator.hasNext(); )
-    {
-      Access access = (Access) accessIterator.next();
-      if ( property == null )
-      {
-        if ( this.checkUserInGroup( userid, access.getGroup() ) )
-        {
-          return true;
-        }
-      }
-      else
-      {
-        if ( access.getProperty( property ) != null && access.getProperty( property ).getValue().equals( "true" ) )
-        {
-          if ( this.checkUserInGroup( userid, access.getGroup() ) )
-          {
-            return true;
-          }
-        }
-      }
-    }
-    return false;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Security clone = new Security();
-    for ( Iterator userIterator = this.users.iterator(); userIterator.hasNext(); )
-    {
-      User user = (User) userIterator.next();
-      clone.users.add( (User) user.clone() );
-    }
-    for ( Iterator groupIterator = this.groups.iterator(); groupIterator.hasNext(); )
-    {
-      Group group = (Group) groupIterator.next();
-      clone.groups.add( (Group) group.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Security</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "security" );
-    // users element
-    ElementImpl users = new ElementImpl( document, "users" );
-    // add user in the users container
-    for ( Iterator userIterator = this.getUsers().iterator(); userIterator.hasNext(); )
-    {
-      User user = (User) userIterator.next();
-      users.appendChild( user.toDOMElement( document ) );
-    }
-    // add users in security
-    element.appendChild( users );
-    // groups element
-    ElementImpl groups = new ElementImpl( document, "groups" );
-    // add group in the groups container
-    for ( Iterator groupIterator = this.getGroups().iterator(); groupIterator.hasNext(); )
-    {
-      Group group = (Group) groupIterator.next();
-      groups.appendChild( group.toDOMElement( document ) );
-    }
-    // add groups in security
-    element.appendChild( groups );
-    return element;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/SharedLibrary.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/SharedLibrary.java
deleted file mode 100644
index 0fea054..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/SharedLibrary.java
+++ /dev/null
@@ -1,126 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent the <code>sharedlibrary</code> tag in the Kalumet configuration DOM.
- */
-public class SharedLibrary
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -16763008144930653L;
-
-  private String name;
-
-  private String classpath;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  public SharedLibrary()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getClasspath()
-  {
-    return this.classpath;
-  }
-
-  public void setClasspath( String classpath )
-  {
-    this.classpath = classpath;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    SharedLibrary clone = new SharedLibrary();
-    clone.setName( this.getName() );
-    clone.setClasspath( this.getClasspath() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>SharedLibrary</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "sharedlibrary" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "classpath", this.getClasspath() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherSharedLibrary )
-  {
-    return this.getName().compareTo( ( (SharedLibrary) anotherSharedLibrary ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Software.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Software.java
deleted file mode 100644
index 0220557..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Software.java
+++ /dev/null
@@ -1,394 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-/**
- * Represent the <code>software</code> tag in the Kalumet DOM.
- */
-public class Software
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 1464721106305749412L;
-
-  private String name;
-
-  private String uri;
-
-  private String agent;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private boolean beforejee;
-
-  private LinkedList updatePlan;
-
-  public Software()
-  {
-    this.updatePlan = new LinkedList();
-  }
-
-  public String getName()
-  {
-    return name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getUri()
-  {
-    return uri;
-  }
-
-  public void setUri( String uri )
-  {
-    this.uri = uri;
-  }
-
-  public String getAgent()
-  {
-    return agent;
-  }
-
-  public void setAgent( String agent )
-  {
-    this.agent = agent;
-  }
-
-  public boolean isActive()
-  {
-    return active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  public boolean isBeforejee()
-  {
-    return beforejee;
-  }
-
-  public void setBeforejee(boolean beforejee)
-  {
-    this.beforejee = beforejee;
-  }
-
-  public LinkedList getUpdatePlan()
-  {
-    return updatePlan;
-  }
-
-  public void setUpdatePlan( LinkedList updatePlan )
-  {
-    this.updatePlan = updatePlan;
-  }
-
-  /**
-   * Get the software component with the given name.
-   *
-   * @param name the software component name.
-   * @return the component <code>Object</code> or <code>null</code> if not found.
-   */
-  public Object getComponent( String name )
-  {
-    Object component = this.getLocation( name );
-    if ( component != null )
-    {
-      return component;
-    }
-    component = this.getCommand( name );
-    if ( component != null )
-    {
-      return component;
-    }
-    component = this.getConfigurationFile( name );
-    if ( component != null )
-    {
-      return component;
-    }
-    component = this.getDatabase( name );
-    if ( component != null )
-    {
-      return component;
-    }
-    return null;
-  }
-
-  /**
-   * Add a system command into the software update plan.
-   *
-   * @param command the system command
-   */
-  public void addCommand( Command command )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getComponent( command.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Software component " + command.getName() + " already exists." );
-    }
-    updatePlan.add( command );
-  }
-
-  /**
-   * Get the command identified by <code>name</code> in the software update plan..
-   *
-   * @param name the command name.
-   * @return the <code>Command</code> or <code>null</code> if not found.
-   */
-  public Command getCommand( String name )
-  {
-    for ( Iterator updatePlanIterator = updatePlan.iterator(); updatePlanIterator.hasNext(); )
-    {
-      Object item = updatePlanIterator.next();
-      if ( item instanceof Command )
-      {
-        Command command = (Command) item;
-        if ( command.getName().equals( name ) )
-        {
-          return command;
-        }
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a <code>Location</code> into the software update plan.
-   *
-   * @param location the files/directories location
-   */
-  public void addLocation( Location location )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getComponent( location.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Software component " + location.getName() + " already exists." );
-    }
-    updatePlan.add( location );
-  }
-
-  /**
-   * Get the <code>Location</code> identified by <code>name</code> in the software update plan..
-   *
-   * @param name the location name.
-   * @return the <code>Location</code> or <code>null</code> if not found.
-   */
-  public Location getLocation( String name )
-  {
-    for ( Iterator updatePlanIterator = updatePlan.iterator(); updatePlanIterator.hasNext(); )
-    {
-      Object item = updatePlanIterator.next();
-      if ( item instanceof Location )
-      {
-        Location location = (Location) item;
-        if ( location.getName().equals( name ) )
-        {
-          return location;
-        }
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a <code>ConfigurationFile</code> into the software update plan.
-   *
-   * @param configurationFile the configuration file.
-   */
-  public void addConfigurationFile( ConfigurationFile configurationFile )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getComponent( configurationFile.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException(
-        "Software component " + configurationFile.getName() + " already exists." );
-    }
-    updatePlan.add( configurationFile );
-  }
-
-  /**
-   * Get the <code>ConfigurationFile</code> identified by <code>name</code> in the software update plan.
-   *
-   * @param name the configuration file name.
-   * @return the <code>ConfigurationFile</code> or <code>null</code> if not found.
-   */
-  public ConfigurationFile getConfigurationFile( String name )
-  {
-    for ( Iterator updatePlanIterator = updatePlan.iterator(); updatePlanIterator.hasNext(); )
-    {
-      Object item = updatePlanIterator.next();
-      if ( item instanceof ConfigurationFile )
-      {
-        ConfigurationFile configurationFile = (ConfigurationFile) item;
-        if ( configurationFile.getName().equals( name ) )
-        {
-          return configurationFile;
-        }
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Add a database (including SQL scripts) into the software update plan.
-   *
-   * @param database the database
-   */
-  public void addDatabase( Database database )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getComponent( database.getName() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Software component " + database.getName() + " already exists." );
-    }
-    updatePlan.add( database );
-  }
-
-  /**
-   * Get the <code>Database</code> identified by <code>name</code> in the software update plan.
-   *
-   * @param name the database name.
-   * @return the <code>Database</code> or <code>null</code> if not found.
-   */
-  public Database getDatabase( String name )
-  {
-    for ( Iterator updatePlanIterator = updatePlan.iterator(); updatePlanIterator.hasNext(); )
-    {
-      Object item = updatePlanIterator.next();
-      if ( item instanceof Database )
-      {
-        Database database = (Database) item;
-        if ( database.getName().equals( name ) )
-        {
-          return database;
-        }
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Software clone = new Software();
-    clone.setName( this.getName() );
-    clone.setUri( this.getUri() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setBeforejee(this.isBeforejee());
-    for ( Iterator updatePlanIterator = this.getUpdatePlan().iterator(); updatePlanIterator.hasNext(); )
-    {
-      Object item = updatePlanIterator.next();
-      if ( item instanceof Command )
-      {
-        clone.getUpdatePlan().add( ( (Command) item ).clone() );
-      }
-      if ( item instanceof Location )
-      {
-        clone.getUpdatePlan().add( ( (Location) item ).clone() );
-      }
-      if ( item instanceof ConfigurationFile )
-      {
-        clone.getUpdatePlan().add( ( (ConfigurationFile) item ).clone() );
-      }
-      if ( item instanceof Database )
-      {
-        clone.getUpdatePlan().add( ( (Database) item ).clone() );
-      }
-    }
-    return clone;
-  }
-
-  /**
-   * Transform a <code>software</code> into a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "software" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "uri", this.getUri() );
-    element.setAttribute( "agent", this.getAgent() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "beforejee", new Boolean( this.isBeforejee() ).toString() );
-    ElementImpl updateplan = new ElementImpl( document, "updateplan" );
-    element.appendChild( updateplan );
-    for ( Iterator updatePlanIterator = this.getUpdatePlan().iterator(); updatePlanIterator.hasNext(); )
-    {
-      Object item = updatePlanIterator.next();
-      if ( item instanceof Command )
-      {
-        updateplan.appendChild( ( (Command) item ).toDOMElement( document ) );
-      }
-      if ( item instanceof Location )
-      {
-        updateplan.appendChild( ( (Location) item ).toDOMElement( document ) );
-      }
-      if ( item instanceof ConfigurationFile )
-      {
-        updateplan.appendChild( ( (ConfigurationFile) item ).toDOMElement( document ) );
-      }
-      if ( item instanceof Database )
-      {
-        updateplan.appendChild( ( (Database) item ).toDOMElement( document ) );
-      }
-    }
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherSoftware )
-  {
-    return this.getName().compareTo( ( (Software) anotherSoftware ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/SqlScript.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/SqlScript.java
deleted file mode 100644
index 3b36414..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/SqlScript.java
+++ /dev/null
@@ -1,217 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represent the <code>sqlscript</code> tag in the Kalumet configuration DOM.
- */
-public class SqlScript
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = 2997968132530345317L;
-
-  private String name;
-
-  private String uri;
-
-  private boolean active;
-
-  private boolean blocker;
-
-  private boolean force;
-
-  private LinkedList mappings;
-
-  public SqlScript()
-  {
-    this.mappings = new LinkedList();
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getUri()
-  {
-    return this.uri;
-  }
-
-  public void setUri( String uri )
-  {
-    this.uri = uri;
-  }
-
-  public boolean isActive()
-  {
-    return this.active;
-  }
-
-  public void setActive( boolean active )
-  {
-    this.active = active;
-  }
-
-  public boolean isBlocker()
-  {
-    return this.blocker;
-  }
-
-  public void setBlocker( boolean blocker )
-  {
-    this.blocker = blocker;
-  }
-
-  public boolean isForce()
-  {
-    return this.force;
-  }
-
-  public void setForce( boolean force )
-  {
-    this.force = force;
-  }
-
-  /**
-   * Add a new <code>Mapping</code> in the <code>SqlScript</code> mappings
-   * container.
-   *
-   * @param mapping the <code>Mapping</code> to add.
-   */
-  public void addMapping( Mapping mapping )
-    throws ModelObjectAlreadyExistsException
-  {
-    if ( this.getMapping( mapping.getKey() ) != null )
-    {
-      throw new ModelObjectAlreadyExistsException( "Mapping key already exists in sqlscript." );
-    }
-    this.mappings.add( mapping );
-  }
-
-  /**
-   * Get the <code>Mapping</code> list in the <code>SqlScript</code>
-   * mappings container.
-   *
-   * @return the <code>Mapping</code> list.
-   */
-  public List getMappings()
-  {
-    return this.mappings;
-  }
-
-  /**
-   * Set the <code>Mapping</code> in the <code>SqlScript</code>
-   * mappings container.
-   *
-   * @param mappings the new <code>Mapping</code> list.
-   */
-  public void setMappings( LinkedList mappings )
-  {
-    this.mappings = mappings;
-  }
-
-  /**
-   * Get the <code>Mapping</code> identified by a given key in the
-   * <code>SqlScript</code> mappings container.
-   *
-   * @param key the <code>Mapping</code> key.
-   * @return the <code>Mapping</code> found or null if not found.
-   */
-  public Mapping getMapping( String key )
-  {
-    for ( Iterator mappingIterator = this.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      if ( mapping.getKey().equals( key ) )
-      {
-        return mapping;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    SqlScript clone = new SqlScript();
-    clone.setName( this.getName() );
-    clone.setUri( this.getUri() );
-    clone.setActive( this.isActive() );
-    clone.setBlocker( this.isBlocker() );
-    clone.setForce( this.isForce() );
-    for ( Iterator mappingIterator = this.mappings.iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      clone.mappings.add( (Mapping) mapping.clone() );
-    }
-    return clone;
-  }
-
-  /**
-   * Transform the <code>SqlScript</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "sqlscript" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "uri", this.getUri() );
-    element.setAttribute( "active", new Boolean( this.isActive() ).toString() );
-    element.setAttribute( "blocker", new Boolean( this.isBlocker() ).toString() );
-    element.setAttribute( "force", new Boolean( this.isForce() ).toString() );
-    // mappings
-    ElementImpl mappings = new ElementImpl( document, "mappings" );
-    for ( Iterator mappingIterator = this.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      mappings.appendChild( mapping.toDOMElement( document ) );
-    }
-    element.appendChild( mappings );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherSqlScript )
-  {
-    return this.getName().compareTo( ( (SqlScript) anotherSqlScript ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Statistics.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Statistics.java
deleted file mode 100644
index 8a6ae4b..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Statistics.java
+++ /dev/null
@@ -1,105 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Store environment statistics (number of update, etc).
- */
-public class Statistics
-  implements Serializable, Cloneable
-{
-
-  private static final long serialVersionUID = -6110824574514994557L;
-
-  private int updateCount;
-
-  private String lastUpdateDate;
-
-  private String lastChangeDate;
-
-  public Statistics()
-  {
-    updateCount = 0;
-  }
-
-  public int getUpdateCount()
-  {
-    return updateCount;
-  }
-
-  public void setUpdateCount( int updateCount )
-  {
-    this.updateCount = updateCount;
-  }
-
-  public String getLastUpdateDate()
-  {
-    return lastUpdateDate;
-  }
-
-  public void setLastUpdateDate( String lastUpdateDate )
-  {
-    this.lastUpdateDate = lastUpdateDate;
-  }
-
-  public String getLastChangeDate()
-  {
-    return lastChangeDate;
-  }
-
-  public void setLastChangeDate( String lastChangeDate )
-  {
-    this.lastChangeDate = lastChangeDate;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Statistics clone = new Statistics();
-    clone.setUpdateCount( this.getUpdateCount() );
-    clone.setLastChangeDate( this.getLastChangeDate() );
-    clone.setLastUpdateDate( this.getLastUpdateDate() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Statistics</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "statistics" );
-    element.setAttribute( "updatecount", new Integer( this.getUpdateCount() ).toString() );
-    element.setAttribute( "lastupdatedate", this.getLastUpdateDate() );
-    element.setAttribute( "lastchangedate", this.getLastChangeDate() );
-    return element;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/User.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/User.java
deleted file mode 100644
index b843c84..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/User.java
+++ /dev/null
@@ -1,188 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.kalumet.KalumetException;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-import java.security.MessageDigest;
-
-/**
- * Represent the <code>user</code> tag in the Kalumet configuration DOM.
- */
-public class User
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -1628759131745053332L;
-
-  private String id;
-
-  private String name;
-
-  private String email;
-
-  private String password;
-
-  public User()
-  {
-  }
-
-  public String getId()
-  {
-    return this.id;
-  }
-
-  public void setId( String id )
-  {
-    this.id = id;
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getEmail()
-  {
-    return this.email;
-  }
-
-  public void setEmail( String email )
-  {
-    this.email = email;
-  }
-
-  /**
-   * <b>Warning : this method returns the encrypted password</b>
-   */
-  public String getPassword()
-  {
-    return this.password;
-  }
-
-  /**
-   * <b>Warning : this method is expecting for an encrypted password</b>
-   */
-  public void setPassword( String password )
-  {
-    this.password = password;
-  }
-
-  /**
-   * Encrypts MD5 of a given password.
-   *
-   * @param password the password to encrypt.
-   * @return the MD5 encrypted password.
-   */
-  public static String md5PasswordCrypt( String password )
-    throws KalumetException
-  {
-    try
-    {
-      byte[] hash = MessageDigest.getInstance( "MD5" ).digest( password.getBytes() );
-      StringBuffer hashString = new StringBuffer();
-      for ( int i = 0; i < hash.length; i++ )
-      {
-        String hex = Integer.toHexString( hash[i] );
-        if ( hex.length() == 1 )
-        {
-          hashString.append( '0' );
-          hashString.append( hex.charAt( hex.length() - 1 ) );
-        }
-        else
-        {
-          hashString.append( hex.substring( hex.length() - 2 ) );
-        }
-      }
-      return hashString.toString();
-    }
-    catch ( Exception e )
-    {
-      throw new KalumetException( "Cant' crypt password.", e );
-    }
-  }
-
-  /**
-   * Check if a given password match the <code>User</code> password.
-   *
-   * @param password the given password.
-   * @return true of the password match the <code>User</code> password, false else.
-   */
-  public boolean checkPassword( String password )
-    throws KalumetException
-  {
-    String crypt = User.md5PasswordCrypt( password );
-    if ( this.getPassword().equals( crypt ) )
-    {
-      return true;
-    }
-    else
-    {
-      return false;
-    }
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    User clone = new User();
-    clone.setId( this.getId() );
-    clone.setName( this.getName() );
-    clone.setEmail( this.getEmail() );
-    clone.setPassword( this.getPassword() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>User</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "user" );
-    element.setAttribute( "id", this.getId() );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "email", this.getEmail() );
-    element.setAttribute( "password", this.getPassword() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherUser )
-  {
-    return this.getId().compareTo( ( (User) anotherUser ).getId() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Variable.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Variable.java
deleted file mode 100644
index cfb6119..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/Variable.java
+++ /dev/null
@@ -1,98 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-import java.io.Serializable;
-
-/**
- * Represent a <code>variable</code> tag in the Kalumet configuration DOM.
- */
-public class Variable
-  implements Serializable, Cloneable, Comparable
-{
-
-  private static final long serialVersionUID = -7869565872871570323L;
-
-  private String name;
-
-  private String value;
-
-  public Variable()
-  {
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setValue( String value )
-  {
-    this.value = value;
-  }
-
-  public String getValue()
-  {
-    return this.value;
-  }
-
-  /**
-   * @see java.lang.Object#clone()
-   */
-  public Object clone()
-    throws CloneNotSupportedException
-  {
-    Variable clone = new Variable();
-    clone.setName( this.getName() );
-    clone.setValue( this.getValue() );
-    return clone;
-  }
-
-  /**
-   * Transform the <code>Variable</code> POJO to a DOM Element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "variable" );
-    element.setAttribute( "name", this.getName() );
-    element.setAttribute( "value", this.getValue() );
-    return element;
-  }
-
-  /**
-   * @see java.lang.Comparable#compareTo(java.lang.Object)
-   */
-  public int compareTo( Object anotherVariable )
-  {
-    return this.getName().compareTo( ( (Variable) anotherVariable ).getName() );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/log/Event.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/log/Event.java
deleted file mode 100644
index e371968..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/log/Event.java
+++ /dev/null
@@ -1,101 +0,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.
- */
-package org.apache.kalumet.model.log;
-
-import org.apache.xerces.dom.CDATASectionImpl;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-/**
- * Represents the <code>event</code> tag in the journal DOM.
- */
-public class Event
-{
-
-  private String date;
-
-  private String severity;
-
-  private String author;
-
-  private String content;
-
-  public Event()
-  {
-  }
-
-  public String getDate()
-  {
-    return this.date;
-  }
-
-  public void setDate( String date )
-  {
-    this.date = date;
-  }
-
-  public String getSeverity()
-  {
-    return this.severity;
-  }
-
-  public void setSeverity( String severity )
-  {
-    this.severity = severity;
-  }
-
-  public String getAuthor()
-  {
-    return this.author;
-  }
-
-  public void setAuthor( String author )
-  {
-    this.author = author;
-  }
-
-  public String getContent()
-  {
-    return this.content;
-  }
-
-  public void setContent( String content )
-  {
-    this.content = content;
-  }
-
-  /**
-   * Transforms the <code>Event</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "event" );
-    element.setAttribute( "date", this.getDate() );
-    element.setAttribute( "severity", this.getSeverity() );
-    element.setAttribute( "author", this.getAuthor() );
-    CDATASectionImpl content = new CDATASectionImpl( document, this.getContent() );
-    element.appendChild( content );
-    return element;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/log/Journal.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/log/Journal.java
deleted file mode 100644
index 951edc9..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/log/Journal.java
+++ /dev/null
@@ -1,181 +0,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.
- */
-package org.apache.kalumet.model.log;
-
-import EDU.oswego.cs.dl.util.concurrent.WriterPreferenceReadWriteLock;
-import org.apache.commons.digester.Digester;
-import org.apache.kalumet.KalumetException;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
-import org.w3c.dom.Element;
-
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Manages the environment log file and represents the <code>journal</code>
- * root tag.
- */
-public class Journal
-{
-
-  private LinkedList events;
-
-  private WriterPreferenceReadWriteLock lock = new WriterPreferenceReadWriteLock();
-
-  public Journal()
-  {
-    this.events = new LinkedList();
-  }
-
-  /**
-   * Adds a new <code>Event</code> in the <code>Journal</code> container.
-   *
-   * @param event the <code>Event</code> to add.
-   */
-  public void addEvent( Event event )
-  {
-    this.events.add( event );
-  }
-
-  /**
-   * Gets the <code>Event</code> list in the <code>Journal</code>
-   * container.
-   *
-   * @return the <code>Event</code> list.
-   */
-  public List getEvents()
-  {
-    return this.events;
-  }
-
-  /**
-   * Transforms the <code>Journal</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "journal" );
-    // events
-    for ( Iterator eventIterator = this.getEvents().iterator(); eventIterator.hasNext(); )
-    {
-      Event event = (Event) eventIterator.next();
-      element.appendChild( event.toDOMElement( document ) );
-    }
-    return element;
-  }
-
-  /**
-   * Parses and loads a given XML log file and return the environment journal root tag.
-   *
-   * @param path the environment log XML to parse.
-   * @return the environment <code>Journal</code> corresponding with the journal root tag.
-   */
-  public static Journal digeste( String path )
-    throws KalumetException
-  {
-    if ( !path.startsWith( "http:" ) && !path.startsWith( "HTTP:" ) && !path.startsWith( "file:" ) && !path.startsWith(
-      "FILE:" ) )
-    {
-      path = "file:" + path;
-    }
-    Journal journal = null;
-    try
-    {
-
-      // init the digester with no validation on the XML file (no DTD)
-      Digester digester = new Digester();
-      digester.setValidating( false );
-
-      // journal tag rules
-      digester.addObjectCreate( "journal", "org.apache.kalumet.model.log.Journal" );
-      digester.addSetProperties( "journal" );
-
-      // event tag rules
-      digester.addObjectCreate( "journal/event", "org.apache.kalumet.model.log.Event" );
-      digester.addSetProperties( "journal/event" );
-
-      // event content
-      digester.addCallMethod( "journal/event", "setContent", 0 );
-
-      // add event to journal
-      digester.addSetNext( "journal/event", "addEvent", "org.apache.kalumet.model.log.Event" );
-
-      // parse the XML file
-      journal = (Journal) digester.parse( path );
-    }
-    catch ( IOException ioException )
-    {
-      // most of the time IOException occurs because the journal file path
-      // doesn't exist, try to create it
-      journal = new Journal();
-      journal.writeXMLFile( path );
-    }
-    catch ( Exception e )
-    {
-      throw new KalumetException( "Can't read journal", e );
-    }
-    return journal;
-  }
-
-  /**
-   * Writes the environment journal log XML file with the in-memory DOM.
-   *
-   * @param path the path to the file to write.
-   */
-  public void writeXMLFile( String path )
-    throws KalumetException
-  {
-    try
-    {
-      lock.writeLock().acquire();
-      OutputFormat format = new OutputFormat();
-      format.setLineWidth( 72 );
-      format.setIndenting( true );
-      format.setIndent( 3 );
-      format.setEncoding( "ISO-8859-1" );
-      if ( path.startsWith( "http:" ) || path.startsWith( "http:" ) )
-      {
-        throw new KalumetException( "Can't write journal file over a HTTP URL" );
-      }
-      if ( path.startsWith( "file:" ) || path.startsWith( "FILE:" ) )
-      {
-        path = path.substring( 5 );
-      }
-      XMLSerializer serializer = new XMLSerializer( new FileOutputStream( path ), format );
-      serializer.serialize( this.toDOMElement( new CoreDocumentImpl( true ) ) );
-    }
-    catch ( Exception e )
-    {
-      throw new KalumetException( "Can't write journal", e );
-    }
-    finally
-    {
-      lock.writeLock().release();
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/update/UpdateLog.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/update/UpdateLog.java
deleted file mode 100644
index c3b5347..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/update/UpdateLog.java
+++ /dev/null
@@ -1,207 +0,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.
- */
-package org.apache.kalumet.model.update;
-
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.commons.lang.time.FastDateFormat;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.KalumetException;
-import org.apache.kalumet.model.Environment;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.apache.xml.serialize.OutputFormat;
-import org.apache.xml.serialize.XMLSerializer;
-import org.w3c.dom.Element;
-
-import java.io.FileOutputStream;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represents the main tag of the Kalumet update log DOM.
- */
-public class UpdateLog
-{
-
-  private final static transient Log LOG = LogFactory.getLog( UpdateLog.class );
-
-  public final static String MAIN_LOG_FILE = "log.xml";
-
-  private String status;
-
-  private String time;
-
-  private String title;
-
-  private String basedir;
-
-  private boolean updated = false;
-
-  private LinkedList updateMessages;
-
-  public UpdateLog()
-  {
-    this.updateMessages = new LinkedList();
-  }
-
-  /**
-   * Create a <code>UpdateLog</code> defining basic attributes.
-   *
-   * @param status      the status.
-   * @param time        the time.
-   * @param title       the title.
-   * @param environment the environment associated to this update log.
-   * @param updated     the updated flag.
-   */
-  public UpdateLog( String status, String time, String title, Environment environment, boolean updated )
-    throws KalumetException
-  {
-    this.updateMessages = new LinkedList();
-    this.status = status;
-    this.time = time;
-    this.title = title;
-    this.basedir = FileManipulator.createEnvironmentCacheDir( environment );
-    this.updated = updated;
-  }
-
-  /**
-   * Create a <code>UpdateLog</code>.
-   *
-   * @param status      the current update log status.
-   * @param title       the current update log title.
-   * @param environment the update log environment linked.
-   * @throws KalumetException in case of update log creation failure.
-   */
-  public UpdateLog( String status, String title, Environment environment )
-    throws KalumetException
-  {
-    this( status, ( (FastDateFormat) DateFormatUtils.ISO_DATETIME_FORMAT ).format( new Date() ), title, environment,
-          false );
-  }
-
-  public String getStatus()
-  {
-    return this.status;
-  }
-
-  public void setStatus( String status )
-  {
-    this.status = status;
-  }
-
-  public String getTime()
-  {
-    return this.time;
-  }
-
-  public void setTime( String time )
-  {
-    this.time = time;
-  }
-
-  public String getTitle()
-  {
-    return this.title;
-  }
-
-  public void setTitle( String title )
-  {
-    this.title = title;
-  }
-
-  public boolean isUpdated()
-  {
-    return this.updated;
-  }
-
-  public void setUpdated( boolean updated )
-  {
-    this.updated = updated;
-  }
-
-  /**
-   * Adds a new <code>UpdateMessage</code> in the <code>UpdateLog</code>.
-   *
-   * @param updateMessage the <code>UpdateMessage</code> to add.
-   */
-  public void addUpdateMessage( UpdateMessage updateMessage )
-  {
-    this.updateMessages.add( updateMessage );
-    this.writeXMLFile();
-  }
-
-  /**
-   * Gets <code>UpdateMessage</code> list in the <code>UpdateLog</code>.
-   *
-   * @return the <code>UpdateMessage</code> list.
-   */
-  public List getUpdateMessages()
-  {
-    return this.updateMessages;
-  }
-
-  /**
-   * Transforms the <code>UpdateLog</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "updatelog" );
-    element.setAttribute( "status", this.getStatus() );
-    element.setAttribute( "time", this.getTime() );
-    element.setAttribute( "title", this.getTitle() );
-    element.setAttribute( "updated", new Boolean( this.isUpdated() ).toString() );
-    // add update message child nodes
-    for ( Iterator updateMessageIterator = this.getUpdateMessages().iterator(); updateMessageIterator.hasNext(); )
-    {
-      UpdateMessage updateMessage = (UpdateMessage) updateMessageIterator.next();
-      element.appendChild( updateMessage.toDOMElement( document ) );
-    }
-    return element;
-  }
-
-  /**
-   * Writes the Kalumet agent XML log file using in-memory DOM.
-   */
-  public synchronized void writeXMLFile()
-  {
-    try
-    {
-      OutputFormat format = new OutputFormat();
-      format.setLineWidth( 72 );
-      format.setIndenting( true );
-      format.setIndent( 3 );
-      format.setEncoding( "ISO-8859-1" );
-      XMLSerializer serializer =
-        new XMLSerializer( new FileOutputStream( this.basedir + "/" + MAIN_LOG_FILE ), format );
-      serializer.serialize( this.toDOMElement( new CoreDocumentImpl( true ) ) );
-    }
-    catch ( Exception e )
-    {
-      LOG.error( "Can't write update log file.", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/update/UpdateMessage.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/update/UpdateMessage.java
deleted file mode 100644
index 72c4e40..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/model/update/UpdateMessage.java
+++ /dev/null
@@ -1,87 +0,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.
- */
-package org.apache.kalumet.model.update;
-
-import org.apache.xerces.dom.CDATASectionImpl;
-import org.apache.xerces.dom.CoreDocumentImpl;
-import org.apache.xerces.dom.ElementImpl;
-import org.w3c.dom.Element;
-
-/**
- * Represents a <code>updatemessage</code> tag in the Kalumet update log DOM.
- */
-public class UpdateMessage
-{
-
-  private String priority;
-
-  private String message;
-
-  public UpdateMessage()
-  {
-  }
-
-  /**
-   * Creates a UpdateMessage with a defined message content.
-   *
-   * @param priority the message priority (info, error, ...).
-   * @param message  the message content.
-   */
-  public UpdateMessage( String priority, String message )
-  {
-    this.priority = priority;
-    this.message = message;
-  }
-
-  public String getPriority()
-  {
-    return this.priority;
-  }
-
-  public void setPriority( String priority )
-  {
-    this.priority = priority;
-  }
-
-  public String getMessage()
-  {
-    return this.message;
-  }
-
-  public void setMessage( String message )
-  {
-    this.message = message;
-  }
-
-  /**
-   * Transforms the <code>UpdateMessage</code> POJO to a DOM element.
-   *
-   * @param document the DOM document.
-   * @return the DOM element.
-   */
-  protected Element toDOMElement( CoreDocumentImpl document )
-  {
-    ElementImpl element = new ElementImpl( document, "updatemessage" );
-    element.setAttribute( "priority", this.getPriority() );
-    CDATASectionImpl message = new CDATASectionImpl( document, this.getMessage() );
-    element.appendChild( message );
-    return element;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/AbstractClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/AbstractClient.java
deleted file mode 100644
index 036b89d..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/AbstractClient.java
+++ /dev/null
@@ -1,50 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-import org.apache.axis.client.Call;
-import org.apache.axis.client.Service;
-
-import java.net.URL;
-
-/**
- * Abstract WS client.
- */
-public abstract class AbstractClient
-{
-
-  protected Call call;
-
-  public AbstractClient( String url )
-    throws ClientException
-  {
-    try
-    {
-      Service service = new Service();
-      this.call = (Call) service.createCall();
-      call.setTimeout( new Integer( Integer.MAX_VALUE ) );
-      call.setTargetEndpointAddress( new URL( url ) );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Can't to the Kalumet agent WS server", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/AgentClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/AgentClient.java
deleted file mode 100644
index 9610701..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/AgentClient.java
+++ /dev/null
@@ -1,64 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * WebService client dedicated to Kalumet agent operations.
- */
-public class AgentClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of connection failure.
-   */
-  public AgentClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/AgentService" );
-  }
-
-  /**
-   * Wrapper method to the get agent version.
-   *
-   * @return the agent version.
-   * @throws ClientException in case of communication failure.
-   */
-  public String getVersion()
-    throws ClientException
-  {
-    String version = null;
-    try
-    {
-      version = (String) call.invoke( "getVersion", null );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Can't get agent version", e );
-    }
-    return version;
-  }
-
-  // TODO update method to fully update an agent
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ArchiveClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ArchiveClient.java
deleted file mode 100644
index 3d41ef4..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ArchiveClient.java
+++ /dev/null
@@ -1,94 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * Archive WS client.
- */
-public class ArchiveClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public ArchiveClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JEEApplicationArchiveService" );
-  }
-
-  /**
-   * Wrapper method to call archive update.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param applicationName       the target JEE application name.
-   * @param archiveName           the target archive name.
-   * @param delegation            true if this call is a delegation from another agent, false else.
-   * @throws ClientException in case of communication failure.
-   */
-  public void update( String environmentName, String applicationServerName, String applicationName, String archiveName,
-                      boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, applicationName, archiveName,
-        new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JEE archive " + archiveName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to call archive check.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param applicationName       the target JEE application name.
-   * @param archiveName           the target archive name.
-   * @return true if the JEE application archive is up to date, false else.
-   * @throws ClientException in case of communication failure.
-   */
-  public boolean check( String environmentName, String applicationServerName, String applicationName,
-                        String archiveName )
-    throws ClientException
-  {
-    boolean upToDate = false;
-    try
-    {
-      upToDate = ( (Boolean) call.invoke( "check",
-                                          new Object[]{ environmentName, applicationServerName, applicationName,
-                                            archiveName } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JEE archive " + archiveName + " check status failed", e );
-    }
-    return upToDate;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ClientException.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ClientException.java
deleted file mode 100644
index aff6efc..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ClientException.java
+++ /dev/null
@@ -1,61 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-import org.apache.kalumet.KalumetException;
-
-/**
- * WebService client exception wrapper.
- */
-public class ClientException
-  extends KalumetException
-{
-
-  /**
-   * Create a WebService client exception with the explanation message.
-   *
-   * @param message the explanation message.
-   */
-  public ClientException( String message )
-  {
-    super( message );
-  }
-
-  /**
-   * Create a WebService client exception with the cause.
-   *
-   * @param cause the cause.
-   */
-  public ClientException( Throwable cause )
-  {
-    super( cause );
-  }
-
-  /**
-   * Create a WebService client exception with the explanation message and the cause.
-   *
-   * @param message the explanation message.
-   * @param cause   the cause.
-   */
-  public ClientException( String message, Throwable cause )
-  {
-    super( message, cause );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/CommandClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/CommandClient.java
deleted file mode 100644
index d0198cd..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/CommandClient.java
+++ /dev/null
@@ -1,63 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * Command WS client.
- */
-public class CommandClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host hostname or IP address of the Kalumet agent WS server.
-   * @param port port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public CommandClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/CommandService" );
-  }
-
-  /**
-   * Wrapper method to execute a command.
-   *
-   * @param command the command to execute.
-   * @return the command output.
-   * @throws ClientException in case of communication failure.
-   */
-  public String execute( String command )
-    throws ClientException
-  {
-    String output = null;
-    try
-    {
-      output = (String) call.invoke( "execute", new Object[]{ command } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Command " + command + " execute failed", e );
-    }
-    return output;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ConfigurationFileClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ConfigurationFileClient.java
deleted file mode 100644
index 71f9bcd..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ConfigurationFileClient.java
+++ /dev/null
@@ -1,96 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * ConfigurationFIle WS client.
- */
-public class ConfigurationFileClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public ConfigurationFileClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JEEApplicationConfigurationFileService" );
-  }
-
-  /**
-   * Wrapper method to update a JEE application configuration file.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param applicationName       the target JEE application name.
-   * @param configurationFileName the target configuration file name.
-   * @param delegation            true if the call is a delegation from another agent, false else.
-   * @throws ClientException in case of communication failure.
-   */
-  public void update( String environmentName, String applicationServerName, String applicationName,
-                      String configurationFileName, boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update",
-                   new Object[]{ environmentName, applicationServerName, applicationName, configurationFileName,
-                     new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JEE application configuration file " + configurationFileName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check if the JEE application configuration file is up to date.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param applicationName       the target JEE application name.
-   * @param configurationFileName the target configuration file name.
-   * @return true if the configuration file is up to date, false else.
-   * @throws ClientException in case of communication failure.
-   */
-  public boolean check( String environmentName, String applicationServerName, String applicationName,
-                        String configurationFileName )
-    throws ClientException
-  {
-    boolean upToDate = false;
-    try
-    {
-      upToDate = ( (Boolean) call.invoke( "check",
-                                          new Object[]{ environmentName, applicationServerName, applicationName,
-                                            configurationFileName } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException(
-        "JEE application configuration file " + configurationFileName + " status check failed", e );
-    }
-    return upToDate;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ContentManagerClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ContentManagerClient.java
deleted file mode 100644
index a64fd51..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/ContentManagerClient.java
+++ /dev/null
@@ -1,66 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * Content manager WS client.
- */
-public class ContentManagerClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or UP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public ContentManagerClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JEEApplicationContentManagerService" );
-  }
-
-  /**
-   * Wrapper method to update a JEE application content manager.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param applicationName       the target JEE application name.
-   * @param contentManagerName    the target content manager name.
-   * @param delegation            true if the call is a delegation from another agent, false else.
-   * @throws ClientException
-   */
-  public void update( String environmentName, String applicationServerName, String applicationName,
-                      String contentManagerName, boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, applicationName, contentManagerName,
-        new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Content manager " + contentManagerName + " update failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/DatabaseClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/DatabaseClient.java
deleted file mode 100644
index 5cb8961..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/DatabaseClient.java
+++ /dev/null
@@ -1,66 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * Database WS client.
- */
-public class DatabaseClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public DatabaseClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JEEApplicationDatabaseService" );
-  }
-
-  /**
-   * Wrapper method to update a database.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param applicationName       the target JEE application name.
-   * @param databaseName          the target database name.
-   * @param delegation            if true, the call is a delegation from another agent, false else.
-   * @throws ClientException in case of communication failure.
-   */
-  public void update( String environmentName, String applicationServerName, String applicationName, String databaseName,
-                      boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, applicationName, databaseName,
-        new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Database " + databaseName + " update failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/EnvironmentClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/EnvironmentClient.java
deleted file mode 100644
index 2c6572f..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/EnvironmentClient.java
+++ /dev/null
@@ -1,60 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * Environment WS client.
- */
-public class EnvironmentClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws AbstractClient in case of communication failure.
-   */
-  public EnvironmentClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/EnvironmentService" );
-  }
-
-  /**
-   * Wrapper method to update an environment.
-   *
-   * @param environmentName the target environment name.
-   * @throws ClientException in case of update failure.
-   */
-  public void update( String environmentName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Environment " + environmentName + " update failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/FileClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/FileClient.java
deleted file mode 100644
index 955db56..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/FileClient.java
+++ /dev/null
@@ -1,86 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-import org.apache.axis.encoding.ser.BeanDeserializerFactory;
-import org.apache.axis.encoding.ser.BeanSerializerFactory;
-
-import javax.xml.namespace.QName;
-
-/**
- * File WS client.
- */
-public class FileClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public FileClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/FileService" );
-  }
-
-  /**
-   * Wrapper method to view the content of a VFS file.
-   *
-   * @param path the VFS path.
-   * @return the file content.
-   * @throws ClientException in case of viewing failure.
-   */
-  public String view( String path )
-    throws ClientException
-  {
-    String content = null;
-    try
-    {
-      content = ( (String) call.invoke( "view", new Object[]{ path } ) );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Can't view the file " + path + " content", e );
-    }
-    return content;
-  }
-
-  public SimplifiedFileObject[] browse( String path )
-    throws ClientException
-  {
-    call.registerTypeMapping( SimplifiedFileObject.class,
-                              new QName( "http://kalumet.apache.org", "SimplifiedFileObject" ),
-                              BeanSerializerFactory.class, BeanDeserializerFactory.class );
-    SimplifiedFileObject[] children = null;
-    try
-    {
-      children = ( (SimplifiedFileObject[]) call.invoke( "browse", new Object[]{ path } ) );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Can't browse " + path, e );
-    }
-    return children;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JDBCConnectionPoolClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JDBCConnectionPoolClient.java
deleted file mode 100644
index ec16cf3..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JDBCConnectionPoolClient.java
+++ /dev/null
@@ -1,87 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * JEE application server JDBC connection pool WS client.
- */
-public class JDBCConnectionPoolClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host hostname or IP address of the Kalumet agent WS server.
-   * @param port port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public JDBCConnectionPoolClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JDBCConnectionPoolService" );
-  }
-
-  /**
-   * Wrapper method to update a JDBC connection pool.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param connectionPoolName    the target connection pool name.
-   * @throws ClientException in case of communication failure.
-   */
-  public void update( String environmentName, String applicationServerName, String connectionPoolName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, connectionPoolName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JDBC connection pool " + connectionPoolName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check if a JDBC connection pool is up to date or not.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param connectionPoolName    the target connection pool name.
-   * @return true if the connection pool is up to date, false else.
-   * @throws ClientException in case of communication failure.
-   */
-  public boolean check( String environmentName, String applicationServerName, String connectionPoolName )
-    throws ClientException
-  {
-    boolean upToDate = false;
-    try
-    {
-      upToDate = ( (Boolean) call.invoke( "check", new Object[]{ environmentName, applicationServerName,
-        connectionPoolName } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JDBC connection pool " + connectionPoolName + " status check failed", e );
-    }
-    return upToDate;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JDBCDataSourceClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JDBCDataSourceClient.java
deleted file mode 100644
index 5efc15a..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JDBCDataSourceClient.java
+++ /dev/null
@@ -1,87 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * JDBCDataSource WS client.
- */
-public class JDBCDataSourceClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public JDBCDataSourceClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JDBCDataSourceService" );
-  }
-
-  /**
-   * Wrapper method to update a JDBC data source.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param dataSourceName        the target data source name.
-   * @throws ClientException in case of update failure.
-   */
-  public void update( String environmentName, String applicationServerName, String dataSourceName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, dataSourceName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JDBC data source " + dataSourceName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check if a JDBC data source is up to date or not.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param dataSourceName        the target data source name.
-   * @return true if the data source is up to date, false else.
-   * @throws ClientException in case of check failure.
-   */
-  public boolean check( String environmentName, String applicationServerName, String dataSourceName )
-    throws ClientException
-  {
-    boolean upToDate = false;
-    try
-    {
-      upToDate = ( (Boolean) call.invoke( "check", new Object[]{ environmentName, applicationServerName,
-        dataSourceName } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JDBC data source " + dataSourceName + " status check failed", e );
-    }
-    return upToDate;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JEEApplicationClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JEEApplicationClient.java
deleted file mode 100644
index f186a9f..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JEEApplicationClient.java
+++ /dev/null
@@ -1,65 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-
-/**
- * JEEApplication WS client.
- */
-public class JEEApplicationClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host hostname or IP address of the Kalumet agent WS server.
-   * @param port port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public JEEApplicationClient(String host, int port)
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JEEApplicationService" );
-  }
-
-  /**
-   * Wrapper method to update a JEE application.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param applicationName
-   * @param delegation
-   * @throws ClientException
-   */
-  public void update( String environmentName, String applicationServerName, String applicationName, boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update",
-                   new Object[]{ environmentName, applicationServerName, applicationName, new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JEE application " + applicationName + " update failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JEEApplicationServerClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JEEApplicationServerClient.java
deleted file mode 100644
index 47605f3..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JEEApplicationServerClient.java
+++ /dev/null
@@ -1,125 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * JEE application server WS client.
- */
-public class JEEApplicationServerClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public JEEApplicationServerClient(String host, int port)
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JEEApplicationServerService" );
-  }
-
-  /**
-   * Wrapper method to stop a JEE application server.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @throws ClientException in case of stop failure.
-   */
-  public void stop( String environmentName, String applicationServerName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "stop", new Object[]{ environmentName, applicationServerName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JEE application server " + applicationServerName + " stop failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to start a JEE application server.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @throws ClientException in case of stop failure.
-   */
-  public void start( String environmentName, String applicationServerName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "start", new Object[]{ environmentName, applicationServerName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JEE application server " + applicationServerName + " start failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check the status of a JEE application server.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @return the current status of the JEE application server.
-   * @throws ClientException in case of status check failure.
-   */
-  public String status( String environmentName, String applicationServerName )
-    throws ClientException
-  {
-    String status = null;
-    try
-    {
-      status = (String) call.invoke( "status", new Object[]{ environmentName, applicationServerName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JEE application server " + applicationServerName + " status check failed", e );
-    }
-    return status;
-  }
-
-  /**
-   * Wrapper method to update a JEE application server.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param delegation            if true, the call is a delegation from another agent, false else.
-   * @throws ClientException in case of update failure.
-   */
-  public void update( String environmentName, String applicationServerName, boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JEE application server " + applicationServerName + " update failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JMSConnectionFactoryClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JMSConnectionFactoryClient.java
deleted file mode 100644
index 6d18558..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JMSConnectionFactoryClient.java
+++ /dev/null
@@ -1,87 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * JMS connection factory WS client.
- */
-public class JMSConnectionFactoryClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public JMSConnectionFactoryClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JMSConnectionFactoryService" );
-  }
-
-  /**
-   * Wrapper method to update a JMS connection factory.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param connectionFactoryName the target JMS connection factory.
-   * @throws ClientException in case of update failure.
-   */
-  public void update( String environmentName, String applicationServerName, String connectionFactoryName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, connectionFactoryName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JMS connection factory " + connectionFactoryName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check if a JMS connection factory is up to date or not.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param connectionFactoryName the target JMS connection factory name.
-   * @return true if the JMS connection factory is up to date, false else.
-   * @throws ClientException in case of status check failure.
-   */
-  public boolean check( String environmentName, String applicationServerName, String connectionFactoryName )
-    throws ClientException
-  {
-    boolean upToDate = false;
-    try
-    {
-      upToDate = ( (Boolean) call.invoke( "check", new Object[]{ environmentName, applicationServerName,
-        connectionFactoryName } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JMS connection factory " + connectionFactoryName + " status check failed", e );
-    }
-    return upToDate;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JMSServerClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JMSServerClient.java
deleted file mode 100644
index 5d3e20b..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JMSServerClient.java
+++ /dev/null
@@ -1,87 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * JMS server WS client.
- */
-public class JMSServerClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public JMSServerClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JMSServerService" );
-  }
-
-  /**
-   * Wrapper method to update a JMS server.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param jmsServerName         the target JMS server name.
-   * @throws ClientException in case of update failure.
-   */
-  public void update( String environmentName, String applicationServerName, String jmsServerName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, jmsServerName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JMS server " + jmsServerName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check if a JMS server is up to date or not.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param jmsServerName         the target JMS server name.
-   * @return true if the JMS server is up to date, false else.
-   * @throws ClientException in case of status check failure.
-   */
-  public boolean check( String environmentName, String applicationServerName, String jmsServerName )
-    throws ClientException
-  {
-    boolean upToDate = false;
-    try
-    {
-      upToDate = ( (Boolean) call.invoke( "check", new Object[]{ environmentName, applicationServerName,
-        jmsServerName } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JMS server " + jmsServerName + " status check failed", e );
-    }
-    return upToDate;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JNDIBindingClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JNDIBindingClient.java
deleted file mode 100644
index 9ca8809..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/JNDIBindingClient.java
+++ /dev/null
@@ -1,87 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * JNDI binding WS client.
- */
-public class JNDIBindingClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public JNDIBindingClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/JNDIBindingService" );
-  }
-
-  /**
-   * Wrapper method to update a JNDI binding.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param jndiBindingName       the target JNDI binding name.
-   * @throws ClientException in case of update failure.
-   */
-  public void update( String environmentName, String applicationServerName, String jndiBindingName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, jndiBindingName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JNDI binding " + jndiBindingName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check if a JNDI binding is up to date or not.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param jndiBindingName       the target JNDI binding name.
-   * @return true of the JNDI binding is up to date, false else.
-   * @throws ClientException in case of status check failure.
-   */
-  public boolean check( String environmentName, String applicationServerName, String jndiBindingName )
-    throws ClientException
-  {
-    boolean upToDate = false;
-    try
-    {
-      upToDate = ( (Boolean) call.invoke( "check", new Object[]{ environmentName, applicationServerName,
-        jndiBindingName } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "JNDI binding " + jndiBindingName + " status check failed", e );
-    }
-    return upToDate;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SharedLibraryClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SharedLibraryClient.java
deleted file mode 100644
index 6c2a5eb..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SharedLibraryClient.java
+++ /dev/null
@@ -1,87 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * Shared library WS client.
- */
-public class SharedLibraryClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public SharedLibraryClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/SharedLibraryService" );
-  }
-
-  /**
-   * Wrapper method to update a shared library.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param sharedLibraryName     the target shared library name.
-   * @throws ClientException in case of update failure.
-   */
-  public void update( String environmentName, String applicationServerName, String sharedLibraryName )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, applicationServerName, sharedLibraryName } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Shared library " + sharedLibraryName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to check if a shared library is up to date or not.
-   *
-   * @param environmentName       the target environment name.
-   * @param applicationServerName the target JEE application server name.
-   * @param sharedLibraryName     the target shared library name.
-   * @return true if the shared library is up to date, false else.
-   * @throws ClientException in case of status check failure.
-   */
-  public boolean check( String environmentName, String applicationServerName, String sharedLibraryName )
-    throws ClientException
-  {
-    boolean upToDate = false;
-    try
-    {
-      upToDate = ( (Boolean) call.invoke( "check", new Object[]{ environmentName, applicationServerName,
-        sharedLibraryName } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Shared library " + sharedLibraryName + " status check failed", e );
-    }
-    return upToDate;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SimplifiedFileObject.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SimplifiedFileObject.java
deleted file mode 100644
index df1d390..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SimplifiedFileObject.java
+++ /dev/null
@@ -1,91 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * Simplified VFS file object to be used via WS.
- */
-public class SimplifiedFileObject
-  implements Serializable
-{
-
-  private String name;
-
-  private String path;
-
-  private boolean file;
-
-  private long size;
-
-  private Date lastModificationDate;
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getPath()
-  {
-    return this.path;
-  }
-
-  public void setPath( String path )
-  {
-    this.path = path;
-  }
-
-  public boolean isFile()
-  {
-    return this.file;
-  }
-
-  public void setFile( boolean file )
-  {
-    this.file = file;
-  }
-
-  public Date getLastModificationDate()
-  {
-    return this.lastModificationDate;
-  }
-
-  public void setLastModificationDate( Date lastModificationDate )
-  {
-    this.lastModificationDate = lastModificationDate;
-  }
-
-  public long getSize()
-  {
-    return this.size;
-  }
-
-  public void setSize( long size )
-  {
-    this.size = size;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SoftwareClient.java b/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SoftwareClient.java
deleted file mode 100644
index 0b2e31d..0000000
--- a/0.6.x/kalumet-modules/common/src/main/java/org/apache/kalumet/ws/client/SoftwareClient.java
+++ /dev/null
@@ -1,155 +0,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.
- */
-package org.apache.kalumet.ws.client;
-
-/**
- * Software WS client.
- */
-public class SoftwareClient
-  extends AbstractClient
-{
-
-  /**
-   * Default constructor.
-   *
-   * @param host the hostname or IP address of the Kalumet agent WS server.
-   * @param port the port number of the Kalumet agent WS server.
-   * @throws ClientException in case of communication failure.
-   */
-  public SoftwareClient( String host, int port )
-    throws ClientException
-  {
-    super( "http://" + host + ":" + port + "/axis/services/SoftwareService" );
-  }
-
-  /**
-   * Wrapper method to update a software.
-   *
-   * @param environmentName the target environment name.
-   * @param softwareName    the target software name.
-   * @param delegation      true if the call is performed by another agent, false else.
-   * @throws ClientException in case of update failure.
-   */
-  public void update( String environmentName, String softwareName, boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "update", new Object[]{ environmentName, softwareName, new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Software " + softwareName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to execute a command.
-   *
-   * @param environmentName the target environment name.
-   * @param softwareName    the target software name.
-   * @param commandName     the target command name.
-   * @param delegation      true if the call is performed by another agent, false else.
-   * @throws ClientException in case of command execution failure.
-   */
-  public void executeCommand( String environmentName, String softwareName, String commandName, boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "executeCommand",
-                   new Object[]{ environmentName, softwareName, commandName, new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Command " + commandName + " execution failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a location.
-   *
-   * @param environmentName the target environment name.
-   * @param softwareName    the target software name.
-   * @param locationName    the target location name.
-   * @param delegation      true if the call is performed by another agent, false else.
-   * @throws ClientException in case of location update failure.
-   */
-  public void updateLocation( String environmentName, String softwareName, String locationName, boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "updateLocation",
-                   new Object[]{ environmentName, softwareName, locationName, new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Location " + locationName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a configuration file.
-   *
-   * @param environmentName       the target environment name.
-   * @param softwareName          the target software name.
-   * @param configurationFileName the target configuration file name.
-   * @param delegation            true if the call is performed by another agent, false else.
-   * @throws ClientException in case of configuration file update failure.
-   */
-  public void updateConfigurationFile( String environmentName, String softwareName, String configurationFileName,
-                                       boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "updateConfigurationFile",
-                   new Object[]{ environmentName, softwareName, configurationFileName, new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Configuration file " + configurationFileName + " update failed", e );
-    }
-  }
-
-  /**
-   * Wrapper method to update a database.
-   *
-   * @param environmentName the target environment name.
-   * @param softwareName    the target software name.
-   * @param databaseName    the target database name.
-   * @param delegation      true if the call is performed by another agent, false else.
-   * @throws ClientException in case of database update failure.
-   */
-  public void updateDatabase( String environmentName, String softwareName, String databaseName, boolean delegation )
-    throws ClientException
-  {
-    try
-    {
-      call.invoke( "updateDatabase",
-                   new Object[]{ environmentName, softwareName, databaseName, new Boolean( delegation ) } );
-    }
-    catch ( Exception e )
-    {
-      throw new ClientException( "Database " + databaseName + " update failed", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/test/java/org/apache/kalumet/FileManipulatorTest.java b/0.6.x/kalumet-modules/common/src/test/java/org/apache/kalumet/FileManipulatorTest.java
deleted file mode 100644
index 2ddf3ac..0000000
--- a/0.6.x/kalumet-modules/common/src/test/java/org/apache/kalumet/FileManipulatorTest.java
+++ /dev/null
@@ -1,137 +0,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.
- */
-package org.apache.kalumet;
-
-import org.apache.catalina.Context;
-import org.apache.catalina.startup.Tomcat;
-import org.apache.commons.io.IOUtils;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.IOException;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * Unit tests on the <code>FileManipulator</code>.
- */
-public class FileManipulatorTest
-{
-
-    private FileManipulator fileManipulator;
-
-    private Tomcat tomcat;
-
-    private int port;
-
-    @Before
-    public void setUp()
-        throws Exception
-    {
-        fileManipulator = new FileManipulator();
-        tomcat = new Tomcat();
-        tomcat.setBaseDir( System.getProperty( "java.io.tmpdir" ) );
-        tomcat.setPort( 0 );
-
-        Context context = tomcat.addContext( "", System.getProperty( "java.io.tmpdir" ) );
-
-        Tomcat.addServlet( context, "foo", new SimpleGetServlet() );
-        context.addServletMapping( "/repos/*", "foo" );
-
-        tomcat.start();
-
-        this.port = tomcat.getConnector().getLocalPort();
-
-    }
-
-    private static class SimpleGetServlet
-        extends HttpServlet
-    {
-        @Override
-        protected void doGet( HttpServletRequest req, HttpServletResponse resp )
-            throws ServletException, IOException
-        {
-            if ( req.getPathInfo().endsWith( "LICENSE" ) )
-            {
-                String basedir = System.getProperty( "basedir" );
-                File f = new File( basedir, "src/test/resources/LICENSE" );
-                IOUtils.copy( new FileInputStream( f ), resp.getOutputStream() );
-                return;
-            }
-
-            resp.setStatus( 404 );
-        }
-    }
-
-    @After
-    public void shutdown()
-        throws Exception
-    {
-
-        tomcat.stop();
-
-    }
-
-    @Test
-    public void testProtocolPrefix()
-        throws Exception
-    {
-        String uri = "http://uri";
-        assertEquals( true, FileManipulator.protocolExists( uri ) );
-        uri = "uri";
-        assertEquals( false, FileManipulator.protocolExists( uri ) );
-        uri = "zip:file:/test";
-        assertEquals( true, FileManipulator.protocolExists( uri ) );
-    }
-
-    @Test
-    public void testVFSFormatting()
-        throws Exception
-    {
-        String uri = FileManipulator.format( "http://uri/archive.tar.gz" ) + "!/lib";
-        assertEquals( "tgz:http://uri/archive.tar.gz!/lib", uri );
-    }
-
-    @Test
-    public void testContentCompare()
-        throws Exception
-    {
-        assertEquals( true, fileManipulator.contentEquals(
-            "http://localhost:" + port + "/repos/asf/incubator/kalumet/trunk/LICENSE",
-            "http://localhost:" + port + "/repos/asf/incubator/kalumet/trunk/LICENSE" ) );
-    }
-
-    @Test
-    public void testExists()
-        throws Exception
-    {
-        assertEquals( true, fileManipulator.exists(
-            "http://localhost:" + port + "/repos/asf/incubator/kalumet/trunk/LICENSE" ) );
-        assertEquals( false, fileManipulator.exists(
-            "http://localhost:" + port + "/repos/asf/incubator/kalumet/trunk/NOT_FOUND" ) );
-    }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/test/java/org/apache/kalumet/model/KalumetTest.java b/0.6.x/kalumet-modules/common/src/test/java/org/apache/kalumet/model/KalumetTest.java
deleted file mode 100644
index 184db03..0000000
--- a/0.6.x/kalumet-modules/common/src/test/java/org/apache/kalumet/model/KalumetTest.java
+++ /dev/null
@@ -1,309 +0,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.
- */
-package org.apache.kalumet.model;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import static org.junit.Assert.assertEquals;
-
-/**
- * Unit tests on the Kalumet model.
- */
-public class KalumetTest
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( KalumetTest.class );
-
-  private Kalumet kalumetModel;
-
-  @Before
-  public void setUp()
-    throws Exception
-  {
-    kalumetModel = Kalumet.digeste( "file:./src/test/resources/kalumet.xml" );
-  }
-
-  @Test
-  public void testPropertiesUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test property" );
-    Property testProperty = kalumetModel.getProperty( "test" );
-    assertEquals( "test", testProperty.getValue() );
-  }
-
-  @Test
-  public void testUserUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test user" );
-    User user = kalumetModel.getSecurity().getUser( "test" );
-    assertEquals( "test", user.getId() );
-    assertEquals( "Test Test", user.getName() );
-    assertEquals( "test@example.com", user.getEmail() );
-  }
-
-  @Test
-  public void testGroupUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test group" );
-    Group group = kalumetModel.getSecurity().getGroup( "test" );
-    assertEquals( "Test Group", group.getName() );
-    assertEquals( "test", group.getUser( "test" ).getId() );
-  }
-
-  @Test
-  public void testAgentUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test agent" );
-    Agent agent = kalumetModel.getAgent( "test" );
-    assertEquals( "localhost", agent.getHostname() );
-    assertEquals( 5000, agent.getPort() );
-    assertEquals( "0 * * * * *", agent.getCron() );
-    assertEquals( 5, agent.getMaxmanagedenvironments() );
-    assertEquals( 3, agent.getMaxjeeapplicationserversstarted() );
-  }
-
-  @Test
-  public void testEnvironmentUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment" );
-    Environment environment = kalumetModel.getEnvironment( "test_auto" );
-    assertEquals( "test_auto", environment.getName() );
-    assertEquals( "TEST", environment.getGroup() );
-    assertEquals( "test", environment.getTag() );
-    assertEquals( false, environment.isAutoupdate() );
-    assertEquals( "test", environment.getAgent() );
-    assertEquals( "test", environment.getLock() );
-    assertEquals( "ftp://remote/release/${RELEASE_VERSION}", environment.getReleaseLocation() );
-    assertEquals( "Notes test.", environment.getNotes() );
-    assertEquals( "Weblinks test.", environment.getWeblinks() );
-  }
-
-  @Test
-  public void testVariableUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment RELEASE_VERSION variable" );
-    Variable variable = kalumetModel.getEnvironment( "test_auto" ).getVariable( "RELEASE_VERSION" );
-    assertEquals( "test", variable.getValue() );
-  }
-
-  @Test
-  public void testFreeFieldUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment FREE freefield" );
-    FreeField freeField = kalumetModel.getEnvironment( "test_auto" ).getFreeField( "FREE" );
-    assertEquals( "field", freeField.getContent() );
-  }
-
-  @Test
-  public void testAccessUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment access for the test group" );
-    Access access = kalumetModel.getEnvironment( "test_auto" ).getAccess( "test" );
-    assertEquals( "false", access.getProperty( "admin" ).getValue() );
-    assertEquals( "true", access.getProperty( "update" ).getValue() );
-    assertEquals( "true", access.getProperty( "jee_application_servers_change" ).getValue() );
-    assertEquals( "true", access.getProperty( "jee_application_servers_update" ).getValue() );
-    assertEquals( "true", access.getProperty( "jee_application_servers_control" ).getValue() );
-    assertEquals( "true", access.getProperty( "jee_resources_change" ).getValue() );
-    assertEquals( "true", access.getProperty( "jee_resources_update" ).getValue() );
-    assertEquals( "true", access.getProperty( "jee_applications_change" ).getValue() );
-    assertEquals( "true", access.getProperty( "jee_applications_update" ).getValue() );
-    assertEquals( "true", access.getProperty( "softwares_change" ).getValue() );
-    assertEquals( "true", access.getProperty( "softwares_update" ).getValue() );
-    assertEquals( "true", access.getProperty( "release" ).getValue() );
-    assertEquals( "true", access.getProperty( "shell" ).getValue() );
-    assertEquals( "true", access.getProperty( "browser" ).getValue() );
-    assertEquals( "true", access.getProperty( "homepage" ).getValue() );
-  }
-
-  @Test
-  public void testLogFileUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment test log file" );
-    LogFile logFile = kalumetModel.getEnvironment( "test_auto" ).getLogFile( "test" );
-    assertEquals( "test", logFile.getName() );
-    assertEquals( "/tmp", logFile.getPath() );
-    assertEquals( "test", logFile.getAgent() );
-  }
-
-  @Test
-  public void testJEEApplicationServersUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment JEE application servers" );
-    JEEApplicationServers applicationServers = kalumetModel.getEnvironment( "test_auto" ).getJEEApplicationServers();
-    assertEquals( false, applicationServers.isCluster() );
-  }
-
-  @Test
-  public void testJEEApplicationServerUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment as_test JEE application server" );
-    JEEApplicationServer applicationServer =
-      kalumetModel.getEnvironment( "test_auto" ).getJEEApplicationServers().getJEEApplicationServer("as_test");
-    assertEquals( "org.apache.kalumet.jmx.plugins.DummyPlugin", applicationServer.getClassname() );
-    assertEquals( "dummy://localhost:1099", applicationServer.getJmxurl() );
-    assertEquals( "admin_user", applicationServer.getAdminuser() );
-    assertEquals( "admin_password", applicationServer.getAdminpassword() );
-    assertEquals( true, applicationServer.isUpdateRequireRestart() );
-    assertEquals( true, applicationServer.isUpdateRequireCacheCleaning() );
-    assertEquals( false, applicationServer.isUsejmxstop() );
-    assertEquals( false, applicationServer.isDeletecomponents() );
-    assertEquals( "test", applicationServer.getAgent() );
-    assertEquals( "echo \"Startup\"", applicationServer.getStartupcommand() );
-    assertEquals( "echo \"Shutdown\"", applicationServer.getShutdowncommand() );
-  }
-
-  @Test
-  public void testJDBCConnectionPoolUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment, as_test JEE application server, JDBC connection pool test" );
-    JDBCConnectionPool connectionPool =
-      kalumetModel.getEnvironment( "test_auto" ).getJEEApplicationServers().getJEEApplicationServer(
-              "as_test").getJDBCConnectionPool( "test" );
-    assertEquals( "test", connectionPool.getName() );
-  }
-
-  @Test
-  public void testJDBCDataSourceUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment, as_test JEE application server, JDBC data source test" );
-    JDBCDataSource dataSource =
-      kalumetModel.getEnvironment( "test_auto" ).getJEEApplicationServers().getJEEApplicationServer(
-              "as_test").getJDBCDataSource( "test" );
-    assertEquals( "test", dataSource.getName() );
-  }
-
-  @Test
-  public void testSoftwareUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment test software" );
-    Software software = kalumetModel.getEnvironment( "test_auto" ).getSoftware( "test" );
-    assertEquals( "test", software.getName() );
-    assertEquals( "http://www.example.com/software", software.getUri() );
-    assertEquals( "test", software.getAgent() );
-    assertEquals( true, software.isActive() );
-    assertEquals( false, software.isBlocker() );
-    assertEquals( false, software.isBeforejee() );
-  }
-
-  @Test
-  public void testSoftwareUpdatePlanCommandUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment test software, command_test command" );
-    Command command = kalumetModel.getEnvironment( "test_auto" ).getSoftware( "test" ).getCommand( "command_test" );
-    assertEquals( "command_test", command.getName() );
-    assertEquals( true, command.isActive() );
-    assertEquals( false, command.isBlocker() );
-    assertEquals( "ls /tmp", command.getCommand() );
-    assertEquals( "test", command.getAgent() );
-  }
-
-  @Test
-  public void testSoftwareUpdatePlanLocationUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment test software, location_test location" );
-    Location location = kalumetModel.getEnvironment( "test_auto" ).getSoftware( "test" ).getLocation( "location_test" );
-    assertEquals( "location_test", location.getName() );
-    assertEquals( true, location.isActive() );
-    assertEquals( false, location.isBlocker() );
-    assertEquals( "http://www.example.com/location", location.getUri() );
-    assertEquals( "/tmp/location", location.getPath() );
-    assertEquals( "test", location.getAgent() );
-  }
-
-  @Test
-  public void testSoftwareUpdatePlanConfigurationFileUnmarshalling()
-  {
-    LOGGER.info( "Get Kalumet test_auto environment test software, configurationfile_test configuration file" );
-    ConfigurationFile configurationFile =
-      kalumetModel.getEnvironment( "test_auto" ).getSoftware( "test" ).getConfigurationFile( "configurationfile_test" );
-    assertEquals( "configurationfile_test", configurationFile.getName() );
-    assertEquals( "http://www.example.com/configurationfile", configurationFile.getUri() );
-    assertEquals( "/tmp/configurationfile", configurationFile.getPath() );
-    assertEquals( true, configurationFile.isActive() );
-    assertEquals( false, configurationFile.isBlocker() );
-    assertEquals( "test", configurationFile.getAgent() );
-  }
-
-  @Test
-  public void testSoftwareUpdatePlanDatabaseUnmarshaling()
-  {
-    LOGGER.info( "Get Kalumet environment test_auto test software db_test database update plan item." );
-    Database database = kalumetModel.getEnvironment( "test_auto" ).getSoftware( "test" ).getDatabase( "db_test" );
-    assertEquals( "db_test", database.getName() );
-    assertEquals( true, database.isActive() );
-    assertEquals( false, database.isBlocker() );
-    assertEquals( "com.example.test.Driver", database.getDriver() );
-    assertEquals( "user_test", database.getUser() );
-    assertEquals( "password_test", database.getPassword() );
-    assertEquals( "jdbc://example.com:3306/test", database.getJdbcurl() );
-    assertEquals( "test", database.getAgent() );
-    assertEquals( "", database.getSqlCommand() );
-    assertEquals( "", database.getConnectionPool() );
-  }
-
-  @Test
-  public void testSoftwareUpdatePlanDatabaseSqlScriptUnmarshaling()
-  {
-    LOGGER.info(
-      "Get Kalumet environment test_auto test software db_test database update plan sqlscript_test SQL script." );
-    SqlScript sqlScript =
-      kalumetModel.getEnvironment( "test_auto" ).getSoftware( "test" ).getDatabase( "db_test" ).getSqlScript(
-        "sqlscript_test" );
-    assertEquals( "sqlscript_test", sqlScript.getName() );
-    assertEquals( true, sqlScript.isActive() );
-    assertEquals( false, sqlScript.isBlocker() );
-    assertEquals( true, sqlScript.isForce() );
-    assertEquals( "http://www.example.com/sqlscript", sqlScript.getUri() );
-  }
-
-  @Test
-  public void testKalumetMarshalling()
-    throws Exception
-  {
-    Kalumet kalumet = new Kalumet();
-    Property testProperty = new Property();
-    testProperty.setName( "test" );
-    testProperty.setValue( "test" );
-    kalumet.getProperties().add( testProperty );
-    Environment environment = new Environment();
-    environment.setName( "test" );
-    environment.setNotes( "Only for test" );
-    environment.setWeblinks( "Only for test" );
-    Software software = new Software();
-    software.setName( "test" );
-    software.setUri( "http://www.example.com/test?test=test&other=other" );
-    environment.addSoftware( software );
-    kalumet.addEnvironment( environment );
-    kalumet.writeXMLFile( "file:./target/kalumet.xml" );
-  }
-
-  @Test
-  public void testKalumetUnmarshalling()
-    throws Exception
-  {
-    Kalumet kalumet = Kalumet.digeste( "file:./target/kalumet.xml" );
-    Software software = kalumet.getEnvironment( "test" ).getSoftware( "test" );
-    assertEquals( "http://www.example.com/test?test=test&other=other", software.getUri() );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/common/src/test/resources/LICENSE b/0.6.x/kalumet-modules/common/src/test/resources/LICENSE
deleted file mode 100644
index 2a4cd78..0000000
--- a/0.6.x/kalumet-modules/common/src/test/resources/LICENSE
+++ /dev/null
@@ -1,655 +0,0 @@
-
-                                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed 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.
-
-==========================================================================
-The Apache License, Version 2.0 applies to the following libraries:
-axis, quartz
-
-==========================================================================
-The following license applies to the slf4j library
---------------------------------------------------------------------------
- Copyright (c) 2004-2013 QOS.ch All rights reserved. Permission 
- is hereby granted, free of charge, to any person obtaining a copy 
- of this software and associated documentation files (the "Software"), 
- to deal in the Software without restriction, including without limitation 
- the rights to use, copy, modify, merge, publish, distribute, sublicense, 
- and/or sell copies of the Software, and to permit persons to whom the 
- Software is furnished to do so, subject to the following conditions: 
- The above copyright notice and this permission notice shall be included 
- in all copies or substantial portions of the Software. 
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
- THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
- SOFTWARE.
-
-==========================================================================
-The following license applies to the classworlds library
---------------------------------------------------------------------------
-/*
- $Id: LICENSE.txt,v 1.1.1.1 2003/07/29 04:37:59 bob Exp $
-
- Copyright 2002 (C) The Codehaus. All Rights Reserved.
-
- Redistribution and use of this software and associated documentation
- ("Software"), with or without modification, are permitted provided
- that the following conditions are met:
-
- 1. Redistributions of source code must retain copyright
-    statements and notices.  Redistributions must also contain a
-    copy of this document.
-
- 2. Redistributions in binary form must reproduce the
-    above copyright notice, this list of conditions and the
-    following disclaimer in the documentation and/or other
-    materials provided with the distribution.
-
- 3. The name "classworlds" must not be used to endorse or promote
-    products derived from this Software without prior written
-    permission of The Codehaus.  For written permission, please
-    contact bob@codehaus.org.
-
- 4. Products derived from this Software may not be called "classworlds"
-    nor may "classworlds" appear in their names without prior written
-    permission of The Codehaus. "classworlds" is a registered
-    trademark of The Codehaus.
-
- 5. Due credit should be given to The Codehaus.
-    (http://classworlds.codehaus.org/).
-
- THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
- ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
- NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
- THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
- INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
- STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
- OF THE POSSIBILITY OF SUCH DAMAGE.
-
- */
-
-==========================================================================
-The following license applies to the Echo2 library
---------------------------------------------------------------------------
-
-Mozilla Public License Version 2.0
-==================================
-
-1. Definitions
---------------
-
-1.1. "Contributor"
-    means each individual or legal entity that creates, contributes to
-    the creation of, or owns Covered Software.
-
-1.2. "Contributor Version"
-    means the combination of the Contributions of others (if any) used
-    by a Contributor and that particular Contributor's Contribution.
-
-1.3. "Contribution"
-    means Covered Software of a particular Contributor.
-
-1.4. "Covered Software"
-    means Source Code Form to which the initial Contributor has attached
-    the notice in Exhibit A, the Executable Form of such Source Code
-    Form, and Modifications of such Source Code Form, in each case
-    including portions thereof.
-
-1.5. "Incompatible With Secondary Licenses"
-    means
-
-    (a) that the initial Contributor has attached the notice described
-        in Exhibit B to the Covered Software; or
-
-    (b) that the Covered Software was made available under the terms of
-        version 1.1 or earlier of the License, but not also under the
-        terms of a Secondary License.
-
-1.6. "Executable Form"
-    means any form of the work other than Source Code Form.
-
-1.7. "Larger Work"
-    means a work that combines Covered Software with other material, in 
-    a separate file or files, that is not Covered Software.
-
-1.8. "License"
-    means this document.
-
-1.9. "Licensable"
-    means having the right to grant, to the maximum extent possible,
-    whether at the time of the initial grant or subsequently, any and
-    all of the rights conveyed by this License.
-
-1.10. "Modifications"
-    means any of the following:
-
-    (a) any file in Source Code Form that results from an addition to,
-        deletion from, or modification of the contents of Covered
-        Software; or
-
-    (b) any new file in Source Code Form that contains any Covered
-        Software.
-
-1.11. "Patent Claims" of a Contributor
-    means any patent claim(s), including without limitation, method,
-    process, and apparatus claims, in any patent Licensable by such
-    Contributor that would be infringed, but for the grant of the
-    License, by the making, using, selling, offering for sale, having
-    made, import, or transfer of either its Contributions or its
-    Contributor Version.
-
-1.12. "Secondary License"
-    means either the GNU General Public License, Version 2.0, the GNU
-    Lesser General Public License, Version 2.1, the GNU Affero General
-    Public License, Version 3.0, or any later versions of those
-    licenses.
-
-1.13. "Source Code Form"
-    means the form of the work preferred for making modifications.
-
-1.14. "You" (or "Your")
-    means an individual or a legal entity exercising rights under this
-    License. For legal entities, "You" includes any entity that
-    controls, is controlled by, or is under common control with You. For
-    purposes of this definition, "control" means (a) the power, direct
-    or indirect, to cause the direction or management of such entity,
-    whether by contract or otherwise, or (b) ownership of more than
-    fifty percent (50%) of the outstanding shares or beneficial
-    ownership of such entity.
-
-2. License Grants and Conditions
---------------------------------
-
-2.1. Grants
-
-Each Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than patent or trademark)
-    Licensable by such Contributor to use, reproduce, make available,
-    modify, display, perform, distribute, and otherwise exploit its
-    Contributions, either on an unmodified basis, with Modifications, or
-    as part of a Larger Work; and
-
-(b) under Patent Claims of such Contributor to make, use, sell, offer
-    for sale, have made, import, and otherwise transfer either its
-    Contributions or its Contributor Version.
-
-2.2. Effective Date
-
-The licenses granted in Section 2.1 with respect to any Contribution
-become effective for each Contribution on the date the Contributor first
-distributes such Contribution.
-
-2.3. Limitations on Grant Scope
-
-The licenses granted in this Section 2 are the only rights granted under
-this License. No additional rights or licenses will be implied from the
-distribution or licensing of Covered Software under this License.
-Notwithstanding Section 2.1(b) above, no patent license is granted by a
-Contributor:
-
-(a) for any code that a Contributor has removed from Covered Software;
-    or
-
-(b) for infringements caused by: (i) Your and any other third party's
-    modifications of Covered Software, or (ii) the combination of its
-    Contributions with other software (except as part of its Contributor
-    Version); or
-
-(c) under Patent Claims infringed by Covered Software in the absence of
-    its Contributions.
-
-This License does not grant any rights in the trademarks, service marks,
-or logos of any Contributor (except as may be necessary to comply with
-the notice requirements in Section 3.4).
-
-2.4. Subsequent Licenses
-
-No Contributor makes additional grants as a result of Your choice to
-distribute the Covered Software under a subsequent version of this
-License (see Section 10.2) or under the terms of a Secondary License (if
-permitted under the terms of Section 3.3).
-
-2.5. Representation
-
-Each Contributor represents that the Contributor believes its
-Contributions are its original creation(s) or it has sufficient rights
-to grant the rights to its Contributions conveyed by this License.
-
-2.6. Fair Use
-
-This License is not intended to limit any rights You have under
-applicable copyright doctrines of fair use, fair dealing, or other
-equivalents.
-
-2.7. Conditions
-
-Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
-in Section 2.1.
-
-3. Responsibilities
--------------------
-
-3.1. Distribution of Source Form
-
-All distribution of Covered Software in Source Code Form, including any
-Modifications that You create or to which You contribute, must be under
-the terms of this License. You must inform recipients that the Source
-Code Form of the Covered Software is governed by the terms of this
-License, and how they can obtain a copy of this License. You may not
-attempt to alter or restrict the recipients' rights in the Source Code
-Form.
-
-3.2. Distribution of Executable Form
-
-If You distribute Covered Software in Executable Form then:
-
-(a) such Covered Software must also be made available in Source Code
-    Form, as described in Section 3.1, and You must inform recipients of
-    the Executable Form how they can obtain a copy of such Source Code
-    Form by reasonable means in a timely manner, at a charge no more
-    than the cost of distribution to the recipient; and
-
-(b) You may distribute such Executable Form under the terms of this
-    License, or sublicense it under different terms, provided that the
-    license for the Executable Form does not attempt to limit or alter
-    the recipients' rights in the Source Code Form under this License.
-
-3.3. Distribution of a Larger Work
-
-You may create and distribute a Larger Work under terms of Your choice,
-provided that You also comply with the requirements of this License for
-the Covered Software. If the Larger Work is a combination of Covered
-Software with a work governed by one or more Secondary Licenses, and the
-Covered Software is not Incompatible With Secondary Licenses, this
-License permits You to additionally distribute such Covered Software
-under the terms of such Secondary License(s), so that the recipient of
-the Larger Work may, at their option, further distribute the Covered
-Software under the terms of either this License or such Secondary
-License(s).
-
-3.4. Notices
-
-You may not remove or alter the substance of any license notices
-(including copyright notices, patent notices, disclaimers of warranty,
-or limitations of liability) contained within the Source Code Form of
-the Covered Software, except that You may alter any license notices to
-the extent required to remedy known factual inaccuracies.
-
-3.5. Application of Additional Terms
-
-You may choose to offer, and to charge a fee for, warranty, support,
-indemnity or liability obligations to one or more recipients of Covered
-Software. However, You may do so only on Your own behalf, and not on
-behalf of any Contributor. You must make it absolutely clear that any
-such warranty, support, indemnity, or liability obligation is offered by
-You alone, and You hereby agree to indemnify every Contributor for any
-liability incurred by such Contributor as a result of warranty, support,
-indemnity or liability terms You offer. You may include additional
-disclaimers of warranty and limitations of liability specific to any
-jurisdiction.
-
-4. Inability to Comply Due to Statute or Regulation
----------------------------------------------------
-
-If it is impossible for You to comply with any of the terms of this
-License with respect to some or all of the Covered Software due to
-statute, judicial order, or regulation then You must: (a) comply with
-the terms of this License to the maximum extent possible; and (b)
-describe the limitations and the code they affect. Such description must
-be placed in a text file included with all distributions of the Covered
-Software under this License. Except to the extent prohibited by statute
-or regulation, such description must be sufficiently detailed for a
-recipient of ordinary skill to be able to understand it.
-
-5. Termination
---------------
-
-5.1. The rights granted under this License will terminate automatically
-if You fail to comply with any of its terms. However, if You become
-compliant, then the rights granted under this License from a particular
-Contributor are reinstated (a) provisionally, unless and until such
-Contributor explicitly and finally terminates Your grants, and (b) on an
-ongoing basis, if such Contributor fails to notify You of the
-non-compliance by some reasonable means prior to 60 days after You have
-come back into compliance. Moreover, Your grants from a particular
-Contributor are reinstated on an ongoing basis if such Contributor
-notifies You of the non-compliance by some reasonable means, this is the
-first time You have received notice of non-compliance with this License
-from such Contributor, and You become compliant prior to 30 days after
-Your receipt of the notice.
-
-5.2. If You initiate litigation against any entity by asserting a patent
-infringement claim (excluding declaratory judgment actions,
-counter-claims, and cross-claims) alleging that a Contributor Version
-directly or indirectly infringes any patent, then the rights granted to
-You by any and all Contributors for the Covered Software under Section
-2.1 of this License shall terminate.
-
-5.3. In the event of termination under Sections 5.1 or 5.2 above, all
-end user license agreements (excluding distributors and resellers) which
-have been validly granted by You or Your distributors under this License
-prior to termination shall survive termination.
-
-************************************************************************
-*                                                                      *
-*  6. Disclaimer of Warranty                                           *
-*  -------------------------                                           *
-*                                                                      *
-*  Covered Software is provided under this License on an "as is"       *
-*  basis, without warranty of any kind, either expressed, implied, or  *
-*  statutory, including, without limitation, warranties that the       *
-*  Covered Software is free of defects, merchantable, fit for a        *
-*  particular purpose or non-infringing. The entire risk as to the     *
-*  quality and performance of the Covered Software is with You.        *
-*  Should any Covered Software prove defective in any respect, You     *
-*  (not any Contributor) assume the cost of any necessary servicing,   *
-*  repair, or correction. This disclaimer of warranty constitutes an   *
-*  essential part of this License. No use of any Covered Software is   *
-*  authorized under this License except under this disclaimer.         *
-*                                                                      *
-************************************************************************
-
-************************************************************************
-*                                                                      *
-*  7. Limitation of Liability                                          *
-*  --------------------------                                          *
-*                                                                      *
-*  Under no circumstances and under no legal theory, whether tort      *
-*  (including negligence), contract, or otherwise, shall any           *
-*  Contributor, or anyone who distributes Covered Software as          *
-*  permitted above, be liable to You for any direct, indirect,         *
-*  special, incidental, or consequential damages of any character      *
-*  including, without limitation, damages for lost profits, loss of    *
-*  goodwill, work stoppage, computer failure or malfunction, or any    *
-*  and all other commercial damages or losses, even if such party      *
-*  shall have been informed of the possibility of such damages. This   *
-*  limitation of liability shall not apply to liability for death or   *
-*  personal injury resulting from such party's negligence to the       *
-*  extent applicable law prohibits such limitation. Some               *
-*  jurisdictions do not allow the exclusion or limitation of           *
-*  incidental or consequential damages, so this exclusion and          *
-*  limitation may not apply to You.                                    *
-*                                                                      *
-************************************************************************
-
-8. Litigation
--------------
-
-Any litigation relating to this License may be brought only in the
-courts of a jurisdiction where the defendant maintains its principal
-place of business and such litigation shall be governed by laws of that
-jurisdiction, without reference to its conflict-of-law provisions.
-Nothing in this Section shall prevent a party's ability to bring
-cross-claims or counter-claims.
-
-9. Miscellaneous
-----------------
-
-This License represents the complete agreement concerning the subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the extent
-necessary to make it enforceable. Any law or regulation which provides
-that the language of a contract shall be construed against the drafter
-shall not be used to construe this License against a Contributor.
-
-10. Versions of the License
----------------------------
-
-10.1. New Versions
-
-Mozilla Foundation is the license steward. Except as provided in Section
-10.3, no one other than the license steward has the right to modify or
-publish new versions of this License. Each version will be given a
-distinguishing version number.
-
-10.2. Effect of New Versions
-
-You may distribute the Covered Software under the terms of the version
-of the License under which You originally received the Covered Software,
-or under the terms of any subsequent version published by the license
-steward.
-
-10.3. Modified Versions
-
-If you create software not governed by this License, and you want to
-create a new license for such software, you may create and use a
-modified version of this License if you rename the license and remove
-any references to the name of the license steward (except to note that
-such modified license differs from this License).
-
-10.4. Distributing Source Code Form that is Incompatible With Secondary
-Licenses
-
-If You choose to distribute Source Code Form that is Incompatible With
-Secondary Licenses under the terms of this version of the License, the
-notice described in Exhibit B of this License must be attached.
-
-Exhibit A - Source Code Form License Notice
--------------------------------------------
-
-  This Source Code Form is subject to the terms of the Mozilla Public
-  License, v. 2.0. If a copy of the MPL was not distributed with this
-  file, You can obtain one at http://mozilla.org/MPL/2.0/.
-
-If it is not possible or desirable to put the notice in a particular
-file, then You may include the notice in a location (such as a LICENSE
-file in a relevant directory) where a recipient would be likely to look
-for such a notice.
-
-You may add additional accurate notices of copyright ownership.
-
-Exhibit B - "Incompatible With Secondary Licenses" Notice
----------------------------------------------------------
-
-  This Source Code Form is "Incompatible With Secondary Licenses", as
-  defined by the Mozilla Public License, v. 2.0.
-
diff --git a/0.6.x/kalumet-modules/common/src/test/resources/kalumet.xml b/0.6.x/kalumet-modules/common/src/test/resources/kalumet.xml
deleted file mode 100644
index 461b66f..0000000
--- a/0.6.x/kalumet-modules/common/src/test/resources/kalumet.xml
+++ /dev/null
@@ -1,156 +0,0 @@
-<?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.
--->
-<!-- Unit test on the Kalumet model -->
-<kalumet>
-
-  <properties>
-    <property name="test" value="test"/>
-  </properties>
-
-  <security>
-    <users>
-      <user id="test" name="Test Test" email="test@example.com" password=""/>
-    </users>
-    <groups>
-      <group id="test" name="Test Group">
-        <users>
-          <user id="test"/>
-        </users>
-      </group>
-    </groups>
-  </security>
-
-  <agents>
-    <agent id="test" hostname="localhost" port="5000" cron="0 * * * * *" maxmanagedenvironments="5"
-           maxjeeapplicationserversstarted="3"/>
-  </agents>
-
-  <environments>
-    <environment name="test_auto" group="TEST" tag="test" autoupdate="false" agent="test" lock="test"
-                 releaseLocation="ftp://remote/release/${RELEASE_VERSION}">
-      <notes>
-        <![CDATA[
-Notes test.
-]]>
-      </notes>
-      <weblinks>
-        <![CDATA[
-Weblinks test.
-]]>
-      </weblinks>
-      <variables>
-        <variable name="RELEASE_VERSION" value="test"/>
-      </variables>
-      <freefields>
-        <freefield name="FREE">
-          <![CDATA[
-field
-]]>
-        </freefield>
-      </freefields>
-      <accesses>
-        <access group="test">
-          <properties>
-            <property name="admin" value="false"/>
-            <property name="update" value="true"/>
-            <property name="jee_application_servers_change" value="true"/>
-            <property name="jee_application_servers_update" value="true"/>
-            <property name="jee_application_servers_control" value="true"/>
-            <property name="jee_resources_change" value="true"/>
-            <property name="jee_resources_update" value="true"/>
-            <property name="jee_applications_change" value="true"/>
-            <property name="jee_applications_update" value="true"/>
-            <property name="softwares_change" value="true"/>
-            <property name="softwares_update" value="true"/>
-            <property name="release" value="true"/>
-            <property name="shell" value="true"/>
-            <property name="browser" value="true"/>
-            <property name="homepage" value="true"/>
-          </properties>
-        </access>
-      </accesses>
-      <logfiles>
-        <logfile name="test" path="/tmp" agent="test"/>
-      </logfiles>
-      <jeeapplicationservers cluster="false">
-        <jeeapplicationserver name="as_test" classname="org.apache.kalumet.jmx.plugins.DummyPlugin"
-                               jmxurl="dummy://localhost:1099" adminuser="admin_user" adminpassword="admin_password"
-                               updateRequireRestart="true" updateRequireCacheCleaning="true" usejmxstop="false"
-                               deletecomponents="false" agent="test">
-          <startupcommand>
-            <![CDATA[
-echo "Startup"
-                        ]]>
-          </startupcommand>
-          <shutdowncommand>
-            <![CDATA[
-echo "Shutdown"
-                        ]]>
-          </shutdowncommand>
-          <jdbcconnectionpools>
-            <jdbcconnectionpool name="test"/>
-          </jdbcconnectionpools>
-          <jdbcdatasources>
-            <jdbcdatasource name="test"/>
-          </jdbcdatasources>
-        </jeeapplicationserver>
-      </jeeapplicationservers>
-      <softwares>
-        <software name="test" uri="http://www.example.com/software" agent="test" active="true" blocker="false"
-                  beforejee="false">
-          <updateplan>
-            <command name="command_test" agent="test" active="true" blocker="false">
-              <![CDATA[
-ls /tmp
-                            ]]>
-            </command>
-            <location name="location_test" active="true" blocker="false" agent="test"
-                      uri="http://www.example.com/location" path="/tmp/location" override="false"/>
-            <configurationfile name="configurationfile_test" active="true" blocker="false"
-                               uri="http://www.example.com/configurationfile" path="/tmp/configurationfile"
-                               agent="test">
-              <mappings>
-                <mapping key="test" value="test"/>
-              </mappings>
-            </configurationfile>
-            <database name="db_test" active="true" blocker="false" driver="com.example.test.Driver" user="user_test"
-                      password="password_test" jdbcurl="jdbc://example.com:3306/test" connectionPool="" sqlCommand=""
-                      agent="test">
-              <sqlscripts>
-                <sqlscript name="sqlscript_test" active="true" blocker="false" force="true"
-                           uri="http://www.example.com/sqlscript">
-                  <mappings>
-                    <mapping key="test" value="test"/>
-                  </mappings>
-                </sqlscript>
-              </sqlscripts>
-            </database>
-          </updateplan>
-        </software>
-      </softwares>
-      <notifiers>
-
-      </notifiers>
-      <publishers>
-
-      </publishers>
-    </environment>
-  </environments>
-
-</kalumet>
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/common/src/test/resources/log4j.xml b/0.6.x/kalumet-modules/common/src/test/resources/log4j.xml
deleted file mode 100644
index d8409b6..0000000
--- a/0.6.x/kalumet-modules/common/src/test/resources/log4j.xml
+++ /dev/null
@@ -1,41 +0,0 @@
-<?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.
--->
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
-  <appender name="SYSTEMOUT_LOG" class="org.apache.log4j.ConsoleAppender">
-    <param name="Target" value="System.out"/>
-
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
-    </layout>
-  </appender>
-
-  <category name="org.apache.kalumet">
-    <priority value="DEBUG"/>
-    <appender-ref ref="SYSTEMOUT_LOG"/>
-  </category>
-
-  <root>
-    <priority value="INFO"/>
-    <appender-ref ref="SYSTEMOUT_LOG"/>
-  </root>
-
-</log4j:configuration>
diff --git a/0.6.x/kalumet-modules/console/pom.xml b/0.6.x/kalumet-modules/console/pom.xml
deleted file mode 100644
index 1b870cb..0000000
--- a/0.6.x/kalumet-modules/console/pom.xml
+++ /dev/null
@@ -1,172 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet</groupId>
-    <artifactId>kalumet-modules</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.console</artifactId>
-  <packaging>war</packaging>
-  <name>Apache Kalumet :: Console</name>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.utils</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-collections</groupId>
-      <artifactId>commons-collections</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.nextapp.echo</groupId>
-      <artifactId>app</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.nextapp.echo</groupId>
-      <artifactId>webcontainer</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.nextapp.echo</groupId>
-      <artifactId>webrender</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.nextapp.echo.extras</groupId>
-      <artifactId>app</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.nextapp.echo.extras</groupId>
-      <artifactId>webcontainer</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-log4j12</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>javax.servlet</groupId>
-      <artifactId>servlet-api</artifactId>
-      <version>2.4</version>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-war-plugin</artifactId>
-        <configuration>
-          <warName>apache-kalumet</warName>
-          <archive>
-            <manifest>
-              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-            </manifest>
-          </archive>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.mortbay.jetty</groupId>
-        <artifactId>maven-jetty-plugin</artifactId>
-        <version>6.1.12</version>
-        <configuration>
-          <connectors>
-            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
-              <port>8181</port>
-              <maxIdleTime>60000</maxIdleTime>
-            </connector>
-          </connectors>
-          <systemProperties>
-            <systemProperty>
-              <name>com.sun.management.jmxremote</name>
-              <value>true</value>
-            </systemProperty>
-            <systemProperty>
-              <name>kalumet.home</name>
-              <value>target</value>
-            </systemProperty>
-          </systemProperties>
-          <scanIntervalSeconds>10</scanIntervalSeconds>
-          <contextPath>/apache-kalumet-console</contextPath>
-          <tmpDir>${project.build.directory}/work</tmpDir>
-          <webApp>${basedir}/target/${project.artifactId}-${project.version}.war</webApp>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.tomcat.maven</groupId>
-        <artifactId>tomcat7-maven-plugin</artifactId>
-        <configuration>
-          <port>8181</port>
-          <path>/apache-kalumet-console</path>
-          <systemProperties>
-            <java.io.tmpdir>${project.build.directory}</java.io.tmpdir>
-            <kalumet.home>${project.build.directory}</kalumet.home>
-          </systemProperties>
-        </configuration>
-        <dependencies>
-
-        </dependencies>
-      </plugin>
-    </plugins>
-  </build>
-
-  <profiles>
-    <profile>
-      <!-- profile for dev an log output in the console -->
-      <id>dev</id>
-      <build>
-        <plugins>
-          <plugin>
-            <artifactId>maven-antrun-plugin</artifactId>
-            <executions>
-              <execution>
-                <id>override-log4j-with-console-output</id>
-                <phase>process-resources</phase>
-                <goals>
-                  <goal>run</goal>
-                </goals>
-                <configuration>
-                  <tasks>
-                    <copy overwrite="true" file="${basedir}/src/test/tomcat/log4j.xml" todir="${project.build.outputDirectory}" />
-                  </tasks>
-                </configuration>
-              </execution>
-            </executions>
-          </plugin>
-        </plugins>
-      </build>
-    </profile>
-  </profiles>
-
-</project>
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AboutWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AboutWindow.java
deleted file mode 100644
index 23c77e8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AboutWindow.java
+++ /dev/null
@@ -1,125 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-
-/**
- * About window.
- */
-public class AboutWindow
-  extends WindowPane
-{
-
-  /**
-   * Create a new <code>AboutWindow</code>.
-   */
-  public AboutWindow()
-  {
-    super();
-
-    setTitle( Messages.getString( "about" ) );
-    setIcon( Styles.INFORMATION );
-    setStyleName( "about" );
-    setId( "aboutwindow" );
-    setModal( true );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    Label label;
-
-    // split pane to put control
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // control row
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-
-    // close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( new ActionListener()
-    {
-
-      private static final long serialVersionUID = 8624164259974769878L;
-
-      public void actionPerformed( ActionEvent e )
-      {
-        AboutWindow.this.userClose();
-      }
-    } );
-    controlRow.add( closeButton );
-
-    // define a column to store the several labels
-    Column column = new Column();
-    column.setStyleName( "about" );
-    column.setCellSpacing( new Extent( 5 ) );
-
-    // define the title label
-    label = new Label( Messages.getString( "kalumet.console" ) );
-    label.setStyleName( "about.title" );
-    column.add( label );
-
-    // define version label if possible
-    Package p = Package.getPackage( "org.apache.kalumet.console" );
-    if ( p != null && p.getImplementationVersion() != null )
-    {
-      label = new Label( "Version: " + p.getImplementationVersion() );
-    }
-    else
-    {
-      label = new Label( "" );
-    }
-    label.setStyleName( "default" );
-    column.add( label );
-
-    // define the jvm label
-    label = new Label(
-      "JVM: " + System.getProperty( "java.vm.vendor" ) + " " + System.getProperty( "java.vm.name" ) + " "
-        + System.getProperty( "java.vm.version" ) );
-    label.setStyleName( "default" );
-    column.add( label );
-
-    // define the os label
-    label = new Label(
-      "Host: " + System.getProperty( "os.arch" ) + " " + System.getProperty( "os.name" ) + " " + System.getProperty(
-        "os.version" ) );
-    label.setStyleName( "default" );
-    column.add( label );
-
-    // define the copyright label
-    label = new Label( "Apache 2.0 License" );
-    label.setStyleName( "default" );
-    column.add( label );
-
-    // add the column to the split pane
-    splitPane.add( column );
-
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ActionPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ActionPane.java
deleted file mode 100644
index 2d2e080..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ActionPane.java
+++ /dev/null
@@ -1,292 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.EnvironmentClient;
-
-/**
- * Environment updater pane.
- */
-public class ActionPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        EnvironmentClient webServiceClient = new EnvironmentClient( agent.getHostname(), agent.getPort() );
-        webServiceClient.update( parent.getEnvironmentName() );
-      }
-      catch ( Exception e )
-      {
-        message = "Environment " + parent.getEnvironmentName() + " update failed: " + e.getMessage();
-        failure = true;
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.locked" ) );
-        return;
-      }
-      // check if no modifications are in progress
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ) );
-        return;
-      }
-      // check if the user can launch the update
-      if ( !parent.adminPermission && !parent.updatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ) );
-        return;
-      }
-
-      // add confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // put message in the action events column
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              parent.getEnvironmentName() + " update in progress ...", parent.getEnvironmentName() );
-            // launch the asynchronous task
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // synchro
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Environment " + parent.getEnvironmentName() + " updated.", parent.getEnvironmentName() );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // publish release
-  private ActionListener publishRelease = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.warn.locked" ) );
-        return;
-      }
-      // check if the user has the permission to publish a release
-      if ( !parent.adminPermission && !parent.releasePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ) );
-        return;
-      }
-      // check if no modifications are in progress
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ) );
-        return;
-      }
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "publishreleasewindow_" + parent.getEnvironmentName() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new PublishReleaseWindow( parent ) );
-      }
-    }
-  };
-
-  // publish home page
-  private ActionListener publishHomePage = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.warn.locked" ) );
-        return;
-      }
-      // check if the user can publish homepage
-      if ( !parent.adminPermission && !parent.homepagePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ) );
-        return;
-      }
-      // check if no modifications are in progress
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ) );
-        return;
-      }
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "homepagewindow_" + parent.getEnvironmentName() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new HomePageWindow( parent ) );
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>UpdaterPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public ActionPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "border.grid" );
-    layout.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    add( layout );
-
-    // add environment grid header
-    Label environmentActionHeader = new Label( " " );
-    environmentActionHeader.setStyleName( "grid.header" );
-    layout.add( environmentActionHeader );
-    Label environmentHeader = new Label( Messages.getString( "environment" ) );
-    environmentHeader.setStyleName( "grid.header" );
-    layout.add( environmentHeader );
-
-    if ( parent.adminPermission || parent.updatePermission )
-    {
-      // update button
-      Button updateButton = new Button( Styles.COG );
-      updateButton.addActionListener( update );
-      layout.add( updateButton );
-      Button updateLabel = new Button( Messages.getString( "update" ) );
-      updateLabel.setStyleName( "default" );
-      updateLabel.addActionListener( update );
-      layout.add( updateLabel );
-    }
-
-    if ( parent.adminPermission || parent.releasePermission )
-    {
-      // release button
-      Button releaseButton = new Button( Styles.LORRY );
-      releaseButton.addActionListener( publishRelease );
-      layout.add( releaseButton );
-      Button releaseLabel = new Button( Messages.getString( "release" ) );
-      releaseLabel.setStyleName( "default" );
-      releaseLabel.addActionListener( publishRelease );
-      layout.add( releaseLabel );
-    }
-
-    if ( parent.adminPermission || parent.homepagePermission )
-    {
-      // homepage button
-      Button homePageButton = new Button( Styles.DRIVE_WEB );
-      homePageButton.addActionListener( publishHomePage );
-      layout.add( homePageButton );
-      Button homePageLabel = new Button( Messages.getString( "homepage" ) );
-      homePageLabel.setStyleName( "default" );
-      homePageLabel.addActionListener( publishHomePage );
-      layout.add( homePageLabel );
-    }
-
-    // update this pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // nothing to do
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminAgentWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminAgentWindow.java
deleted file mode 100644
index 22a3ae2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminAgentWindow.java
+++ /dev/null
@@ -1,510 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.ws.client.AgentClient;
-
-import java.util.Iterator;
-
-/**
- * Admin agent window.
- */
-public class AdminAgentWindow
-  extends WindowPane
-{
-
-  // attributes
-  private String agentId;
-
-  private Agent agent;
-
-  private AdminAgentsWindow parent;
-
-  private TextField idField;
-
-  private TextField hostnameField;
-
-  private TextField portField;
-
-  private TextField cronField;
-
-  private TextField maxEnvironmentsField;
-
-  private TextField maxActiveApplicationServersField;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // call the WebService client
-        AgentClient client = new AgentClient( agent.getHostname(), agent.getPort() );
-        message = "Agent " + agentId + " version " + client.getVersion() + " started.";
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Agent " + agentId + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      AdminAgentWindow.this.userClose();
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      for ( Iterator agentIterator = parent.getAgents().iterator(); agentIterator.hasNext(); )
-      {
-        Agent current = (Agent) agentIterator.next();
-        if ( agent.getId().equals( agentId ) )
-        {
-          agent = current;
-          break;
-        }
-      }
-      if ( agent == null )
-      {
-        agent = new Agent();
-      }
-      update();
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user is the admin
-      if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "agents.restricted" ) );
-        return;
-      }
-
-      String newId = idField.getText().trim();
-      String newHostname = hostnameField.getText().trim();
-      String newPort = portField.getText().trim();
-      String newCron = cronField.getText().trim();
-      String newMaxEnvironments = maxEnvironmentsField.getText().trim();
-      String newMaxEnvironmentsActive = maxActiveApplicationServersField.getText().trim();
-
-      // check fields
-      if ( newId.length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "agent.mandatory" ) );
-        return;
-      }
-      // if the admin change the agent id or if it's a new agent, check if
-      // the id is not already used
-      if ( agentId == null || agentId.trim().length() < 1 || ( ( agentId != null ) && ( agentId.trim().length() > 0 )
-        && ( !newId.equals( agentId ) ) ) )
-      {
-        for ( Iterator agentIterator = parent.getAgents().iterator(); agentIterator.hasNext(); )
-        {
-          Agent current = (Agent) agentIterator.next();
-          if ( current.getId().equals( newId ) )
-          {
-            KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "agent.exists" ) );
-            return;
-          }
-        }
-      }
-
-      // update the current agent
-      agent.setId( newId );
-      agent.setHostname( newHostname );
-      agent.setPort( new Integer( newPort ).intValue() );
-      if ( newCron.length() < 1 )
-      {
-        newCron = "0 0 0 * * ?";
-      }
-      agent.setCron( newCron );
-      agent.setMaxmanagedenvironments( new Integer( newMaxEnvironments ).intValue() );
-      agent.setMaxjeeapplicationserversstarted(new Integer(newMaxEnvironmentsActive).intValue());
-      if ( agentId == null || agentId.trim().length() < 1 )
-      {
-        // it's a new agent
-        parent.getAgents().add( agent );
-      }
-      setTitle( Messages.getString( "agent" ) + " " + agent.getId() );
-      setId( "agentwindow_" + agent.getId() );
-      agentId = agent.getId();
-      parent.update();
-    }
-  };
-
-  // paste
-  public ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // get the copy component
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof Agent ) )
-      {
-        return;
-      }
-      Agent clone = (Agent) copy;
-      idField.setText( clone.getId() );
-      hostnameField.setText( clone.getHostname() );
-      portField.setText( new Integer( clone.getPort() ).toString() );
-      cronField.setText( clone.getCron() );
-      maxEnvironmentsField.setText( new Integer( clone.getMaxmanagedenvironments() ).toString() );
-      maxActiveApplicationServersField.setText( new Integer( clone.getMaxjeeapplicationserversstarted() ).toString() );
-    }
-  };
-
-  // delete
-  public ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // display a confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // looking for the agent to remove
-            Agent agentToRemove = null;
-            for ( Iterator agentIterator = parent.getAgents().iterator(); agentIterator.hasNext(); )
-            {
-              Agent agent = (Agent) agentIterator.next();
-              if ( agent.getId().equals( agentId ) )
-              {
-                agentToRemove = agent;
-                break;
-              }
-            }
-            parent.getAgents().remove( agentToRemove );
-            AdminAgentWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // status
-  public ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // add an event
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "Agent " + agentId + " status check in progress ..." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addError(
-                                                                        statusThread.message );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                                                                        statusThread.message );
-                                                                    }
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  /**
-   * Create a new <code>AdminAgentWindow</code>.
-   *
-   * @param parent  the <code>AdminAgentsWindow</code> parent.
-   * @param agentId the <code>Agent</code> ID.
-   */
-  public AdminAgentWindow( AdminAgentsWindow parent, String agentId )
-  {
-    super();
-
-    // check if the user that try to access this window is the admin
-    if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "agents.restricted" ) );
-      AdminAgentWindow.this.userClose();
-      return;
-    }
-
-    // update the original agent id and parent admin agents window
-    this.parent = parent;
-    this.agentId = agentId;
-
-    // update the agent object from agents parent list
-    for ( Iterator agentIterator = parent.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent current = (Agent) agentIterator.next();
-      if ( current.getId().equals( agentId ) )
-      {
-        this.agent = current;
-        break;
-      }
-    }
-    if ( this.agent == null )
-    {
-      this.agent = new Agent();
-    }
-
-    if ( agentId == null )
-    {
-      setTitle( Messages.getString( "agent" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "agent" ) + " " + agentId );
-    }
-    setIcon( Styles.COG );
-    setId( "agentwindow_" + agentId );
-    setStyleName( "agent" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the delete button
-    Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-    deleteButton.setStyleName( "control" );
-    deleteButton.addActionListener( delete );
-    controlRow.add( deleteButton );
-    // add the paste button
-    Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-    pasteButton.setStyleName( "control" );
-    pasteButton.addActionListener( paste );
-    controlRow.add( pasteButton );
-    // add the status button
-    Button statusButton = new Button( Messages.getString( "status" ), Styles.INFORMATION );
-    statusButton.setStyleName( "control" );
-    statusButton.addActionListener( status );
-    controlRow.add( statusButton );
-    // add the apply button
-    Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-    applyButton.setStyleName( "control" );
-    applyButton.addActionListener( apply );
-    controlRow.add( applyButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTab = new ContentPane();
-    generalTab.setStyleName( "tab.content" );
-    generalTab.setLayoutData( tabLayoutData );
-    tabPane.add( generalTab );
-
-    // add the general grid layout
-    Grid generalGridLayout = new Grid( 2 );
-    generalGridLayout.setStyleName( "agent" );
-    generalGridLayout.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalGridLayout.setColumnWidth( 0, new Extent( 10, Extent.PERCENT ) );
-    generalGridLayout.setColumnWidth( 1, new Extent( 90, Extent.PERCENT ) );
-    generalTab.add( generalGridLayout );
-
-    // add the agent id field
-    Label agentIdLabel = new Label( Messages.getString( "id" ) );
-    agentIdLabel.setStyleName( "default" );
-    generalGridLayout.add( agentIdLabel );
-    idField = new TextField();
-    idField.setStyleName( "default" );
-    idField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalGridLayout.add( idField );
-
-    // add the agent hostname field
-    Label agentHostnameLabel = new Label( Messages.getString( "hostname" ) );
-    agentHostnameLabel.setStyleName( "default" );
-    generalGridLayout.add( agentHostnameLabel );
-    hostnameField = new TextField();
-    hostnameField.setStyleName( "default" );
-    hostnameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalGridLayout.add( hostnameField );
-
-    // add the agent port field
-    Label agentPortLabel = new Label( Messages.getString( "port" ) );
-    agentPortLabel.setStyleName( "default" );
-    generalGridLayout.add( agentPortLabel );
-    portField = new TextField();
-    portField.setStyleName( "default" );
-    portField.setWidth( new Extent( 15, Extent.EX ) );
-    generalGridLayout.add( portField );
-
-    // add the scheduler tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "scheduler" ) );
-    ContentPane schedulerTab = new ContentPane();
-    schedulerTab.setLayoutData( tabLayoutData );
-    schedulerTab.setStyleName( "tab.content" );
-    tabPane.add( schedulerTab );
-
-    // add the scheduler grid layout
-    Grid schedulerGridLayout = new Grid( 2 );
-    schedulerGridLayout.setStyleName( "agent" );
-    schedulerGridLayout.setWidth( new Extent( 100, Extent.PERCENT ) );
-    schedulerGridLayout.setColumnWidth( 0, new Extent( 10, Extent.PERCENT ) );
-    schedulerGridLayout.setColumnWidth( 1, new Extent( 90, Extent.PERCENT ) );
-    schedulerTab.add( schedulerGridLayout );
-
-    // add the cron field
-    Label cronLabel = new Label( Messages.getString( "cron" ) );
-    cronLabel.setStyleName( "default" );
-    schedulerGridLayout.add( cronLabel );
-    cronField = new TextField();
-    cronField.setStyleName( "default" );
-    cronField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    schedulerGridLayout.add( cronField );
-
-    // add the cron examples
-    Label cronExamplesLabel = new Label( Messages.getString( "examples" ) );
-    cronExamplesLabel.setStyleName( "grid.cell" );
-    schedulerGridLayout.add( cronExamplesLabel );
-    TextArea cronExamples = new TextArea();
-    cronExamples.setStyleName( "default" );
-    cronExamples.setWidth( new Extent( 100, Extent.PERCENT ) );
-    cronExamples.setHeight( new Extent( 20, Extent.EX ) );
-    cronExamples.setText( Messages.getString( "cron.examples" ) );
-    cronExamples.setEnabled( false );
-    schedulerGridLayout.add( cronExamples );
-
-    // add the capacity tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "capacity" ) );
-    ContentPane capacityTab = new ContentPane();
-    capacityTab.setLayoutData( tabLayoutData );
-    capacityTab.setStyleName( "tab.content" );
-    tabPane.add( capacityTab );
-
-    // add the capacity grid layout
-    Grid capacityGridLayout = new Grid( 2 );
-    capacityGridLayout.setStyleName( "agent" );
-    capacityGridLayout.setWidth( new Extent( 100, Extent.PERCENT ) );
-    capacityGridLayout.setColumnWidth( 0, new Extent( 10, Extent.PERCENT ) );
-    capacityGridLayout.setColumnWidth( 1, new Extent( 90, Extent.PERCENT ) );
-    capacityTab.add( capacityGridLayout );
-
-    // add the max environments field
-    Label agentMaxEnvironmentsLabel = new Label( Messages.getString( "agent.maxenvironments" ) );
-    agentMaxEnvironmentsLabel.setStyleName( "default" );
-    capacityGridLayout.add( agentMaxEnvironmentsLabel );
-    maxEnvironmentsField = new TextField();
-    maxEnvironmentsField.setStyleName( "default" );
-    maxEnvironmentsField.setWidth( new Extent( 15, Extent.EX ) );
-    capacityGridLayout.add( maxEnvironmentsField );
-
-    // add the max active environments field
-    Label agentMaxActiveEnvironmentsLabel = new Label( Messages.getString( "agent.maxactiveapplicationservers" ) );
-    agentMaxActiveEnvironmentsLabel.setStyleName( "default" );
-    capacityGridLayout.add( agentMaxActiveEnvironmentsLabel );
-    maxActiveApplicationServersField = new TextField();
-    maxActiveApplicationServersField.setStyleName( "default" );
-    maxActiveApplicationServersField.setWidth( new Extent( 15, Extent.EX ) );
-    capacityGridLayout.add( maxActiveApplicationServersField );
-
-    // update the view
-    update();
-  }
-
-  /**
-   * Update the fields value.
-   */
-  protected void update()
-  {
-    // update fields
-    idField.setText( agent.getId() );
-    hostnameField.setText( agent.getHostname() );
-    portField.setText( new Integer( agent.getPort() ).toString() );
-    cronField.setText( agent.getCron() );
-    maxEnvironmentsField.setText( new Integer( agent.getMaxmanagedenvironments() ).toString() );
-    maxActiveApplicationServersField.setText( new Integer( agent.getMaxjeeapplicationserversstarted() ).toString() );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminAgentsWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminAgentsWindow.java
deleted file mode 100644
index 9ab6d0c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminAgentsWindow.java
+++ /dev/null
@@ -1,438 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.AgentClient;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Admin agents window.
- */
-public class AdminAgentsWindow
-  extends WindowPane
-{
-
-  // attributes
-  private List agents;
-
-  private Grid agentsGrid;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String id;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( id );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent " + id + " not found." );
-        }
-        // call the WebService
-        AgentClient client = new AgentClient( agent.getHostname(), agent.getPort() );
-        message = "Agent " + id + " version " + client.getVersion() + " started.";
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Agent " + id + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // close action listener
-  private ActionListener closeActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      AdminAgentsWindow.this.userClose();
-    }
-  };
-
-  // refresh action listener
-  private ActionListener refreshActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      agents = kalumet.getAgents();
-      update();
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        Messages.getString( "agents" ) + " " + Messages.getString( "reloaded" ) );
-    }
-  };
-
-  // delete action listener
-  private ActionListener deleteActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      final String agentId = event.getActionCommand();
-      // display a confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // looking for the agent to remove
-            Agent agentToRemove = null;
-            for ( Iterator agentIterator = agents.iterator(); agentIterator.hasNext(); )
-            {
-              Agent agent = (Agent) agentIterator.next();
-              if ( agent.getId().equals( agentId ) )
-              {
-                agentToRemove = agent;
-                break;
-              }
-            }
-            // remove the agnet
-            agents.remove( agentToRemove );
-            // update the window
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // save action listener
-  private ActionListener saveActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Kalumet kalumet = null;
-      // load Kalumet configuration
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      kalumet.setAgents( (LinkedList) agents );
-      try
-      {
-        ConfigurationManager.writeStore( kalumet );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.write" ) + ": " + e.getMessage() );
-        return;
-      }
-      KalumetConsoleApplication.getApplication().getLogPane().addConfirm( Messages.getString( "agents.saved" ) );
-    }
-  };
-
-  // edit action listener
-  private ActionListener editActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent(
-        "agentwindow_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new AdminAgentWindow( AdminAgentsWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // add action listener
-  private ActionListener addActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new AdminAgentWindow( AdminAgentsWindow.this, null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // get the agent id
-      String agentId = event.getActionCommand();
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( agentId );
-        if ( agent == null )
-        {
-          return;
-        }
-        // store an agent clone in the copy component
-        KalumetConsoleApplication.getApplication().setCopyComponent( agent.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // add an event
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "Agent " + event.getActionCommand() + " status check in progress ..." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.id = event.getActionCommand();
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addError(
-                                                                        statusThread.message );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                                                                        statusThread.message );
-                                                                    }
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  /**
-   * Create a new <code>AdminAgentsWindow</code>.
-   */
-  public AdminAgentsWindow()
-  {
-    super();
-
-    // check if the user that try to access this window is the admin
-    if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "agents.restricted" ) );
-      AdminAgentsWindow.this.userClose();
-      return;
-    }
-
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-    this.agents = kalumet.getAgents();
-    Collections.sort( this.agents );
-
-    setTitle( Messages.getString( "agents" ) );
-    setIcon( Styles.COG );
-    setStyleName( "agents" );
-    setId( "agentswindow" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refreshActionListener );
-    controlRow.add( refreshButton );
-    // add the save button
-    Button saveButton = new Button( Messages.getString( "save" ), Styles.DATABASE_SAVE );
-    saveButton.setStyleName( "control" );
-    saveButton.addActionListener( saveActionListener );
-    controlRow.add( saveButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( closeActionListener );
-    controlRow.add( closeButton );
-
-    // add the column main pane
-    Column content = new Column();
-    content.setStyleName( "agents" );
-    splitPane.add( content );
-
-    // add  button
-    Button addButton = new Button( Messages.getString( "agent.add" ), Styles.ADD );
-    addButton.addActionListener( addActionListener );
-    content.add( addButton );
-
-    // add the agents list grid
-    agentsGrid = new Grid( 3 );
-    agentsGrid.setStyleName( "border.grid" );
-    agentsGrid.setColumnWidth( 0, new Extent( 18, Extent.PX ) );
-    agentsGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    agentsGrid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    content.add( agentsGrid );
-
-    // update agents grid
-    update();
-  }
-
-  /**
-   *
-   *
-   */
-  protected void update()
-  {
-    // delete all agents grid child
-    agentsGrid.removeAll();
-
-    // add grid headers
-    Label agentActionHeader = new Label( " " );
-    agentActionHeader.setStyleName( "grid.header" );
-    agentsGrid.add( agentActionHeader );
-    Label agentIdHeader = new Label( Messages.getString( "id" ) );
-    agentIdHeader.setStyleName( "grid.header" );
-    agentsGrid.add( agentIdHeader );
-    Label agentHostnameHeader = new Label( Messages.getString( "hostname" ) );
-    agentHostnameHeader.setStyleName( "grid.header" );
-    agentsGrid.add( agentHostnameHeader );
-
-    // add agents in grid
-    for ( Iterator agentIterator = agents.iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      // action row with agent id
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      agentsGrid.add( row );
-      // copy button
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.addActionListener( copy );
-      copyButton.setActionCommand( agent.getId() );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      row.add( copyButton );
-      // delete button
-      Button deleteButton = new Button( Styles.DELETE );
-      deleteButton.addActionListener( deleteActionListener );
-      deleteButton.setActionCommand( agent.getId() );
-      deleteButton.setToolTipText( Messages.getString( "delete" ) );
-      row.add( deleteButton );
-      // status button
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setActionCommand( agent.getId() );
-      statusButton.addActionListener( status );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      row.add( statusButton );
-
-      Button idButton = new Button( agent.getId() );
-      idButton.addActionListener( editActionListener );
-      idButton.setActionCommand( agent.getId() );
-      agentsGrid.add( idButton );
-
-      // hostname label
-      Label hostnameLabel = new Label( agent.getHostname() + ":" + agent.getPort() );
-      hostnameLabel.setStyleName( "default" );
-      agentsGrid.add( hostnameLabel );
-    }
-  }
-
-  /**
-   * Get the agents list
-   *
-   * @return the agents list
-   */
-  protected List getAgents()
-  {
-    return this.agents;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminConfigurationWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminConfigurationWindow.java
deleted file mode 100644
index 7ebe096..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminConfigurationWindow.java
+++ /dev/null
@@ -1,456 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Property;
-
-/**
- * Admin configuration window.
- */
-public class AdminConfigurationWindow
-  extends WindowPane
-{
-
-  private TextField consoleLocationField;
-
-  private SelectField ldapAuthenticationField;
-
-  private TextField ldapServerField;
-
-  private TextField ldapBaseDNField;
-
-  private TextField ldapUidAttributeField;
-
-  private TextField ldapMailAttributeField;
-
-  private TextField ldapCnAttributeField;
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      AdminConfigurationWindow.this.userClose();
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // save
-  private ActionListener save = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String logEventAppender = consoleLocationField.getText();
-      int ldapAuthentification = ldapAuthenticationField.getSelectedIndex();
-      String ldapServer = ldapServerField.getText();
-      String ldapBaseDN = ldapBaseDNField.getText();
-      String ldapUidAttribute = ldapUidAttributeField.getText();
-      String ldapMailAttribute = ldapMailAttributeField.getText();
-      String ldapCnAttribute = ldapCnAttributeField.getText();
-
-      // check if the user is allowed to do it
-      if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configuration.restricted" ) );
-        return;
-      }
-
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-
-      // log event appender
-      Property logEventAppenderProperty = kalumet.getProperty( "LogEventAppender" );
-      if ( logEventAppenderProperty == null )
-      {
-        logEventAppenderProperty = new Property();
-        logEventAppenderProperty.setName( "LogEventAppender" );
-        try
-        {
-          kalumet.addProperty( logEventAppenderProperty );
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      kalumet.getProperty( "LogEventAppender" ).setValue( logEventAppender );
-      // ldap authentification
-      Property ldapAuthentificationProperty = kalumet.getProperty( "LdapAuthentication" );
-      if ( ldapAuthentificationProperty == null )
-      {
-        ldapAuthentificationProperty = new Property();
-        ldapAuthentificationProperty.setName( "LdapAuthentication" );
-        try
-        {
-          kalumet.addProperty( ldapAuthentificationProperty );
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      if ( ldapAuthentification == 0 )
-      {
-        kalumet.getProperty( "LdapAuthentication" ).setValue( "true" );
-      }
-      else
-      {
-        kalumet.getProperty( "LdapAuthentication" ).setValue( "false" );
-      }
-      // ldap server
-      Property ldapServerProperty = kalumet.getProperty( "LdapServer" );
-      if ( ldapServerProperty == null )
-      {
-        ldapServerProperty = new Property();
-        ldapServerProperty.setName( "LdapServer" );
-        try
-        {
-          kalumet.addProperty( ldapServerProperty );
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      kalumet.getProperty( "LdapServer" ).setValue( ldapServer );
-      // ldap base DN
-      Property ldapBaseDNProperty = kalumet.getProperty( "LdapBaseDN" );
-      if ( ldapBaseDNProperty == null )
-      {
-        ldapBaseDNProperty = new Property();
-        ldapBaseDNProperty.setName( "LdapBaseDN" );
-        try
-        {
-          kalumet.addProperty( ldapBaseDNProperty );
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      kalumet.getProperty( "LdapBaseDN" ).setValue( ldapBaseDN );
-      // ldap uid attribute
-      Property ldapUidAttributeProperty = kalumet.getProperty( "LdapUidAttribute" );
-      if ( ldapUidAttributeProperty == null )
-      {
-        ldapUidAttributeProperty = new Property();
-        ldapUidAttributeProperty.setName( "LdapUidAttribute" );
-        try
-        {
-          kalumet.addProperty( ldapUidAttributeProperty );
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      kalumet.getProperty( "LdapUidAttribute" ).setValue( ldapUidAttribute );
-      // ldap mail attribute
-      Property ldapMailAttributeProperty = kalumet.getProperty( "LdapMailAttribute" );
-      if ( ldapMailAttributeProperty == null )
-      {
-        ldapMailAttributeProperty = new Property();
-        ldapMailAttributeProperty.setName( "LdapMailAttribute" );
-        try
-        {
-          kalumet.addProperty( ldapMailAttributeProperty );
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-      kalumet.getProperty( "LdapMailAttribute" ).setValue( ldapMailAttribute );
-      // ldap cn attribute
-      Property ldapCnAttributeProperty = kalumet.getProperty( "LdapCnAttribute" );
-      if ( ldapCnAttributeProperty == null )
-      {
-        ldapCnAttributeProperty = new Property();
-        ldapCnAttributeProperty.setName( "LdapCnAttribute" );
-        try
-        {
-          kalumet.addProperty( ldapCnAttributeProperty );
-        }
-        catch ( Exception e )
-        {
-          // ignore
-        }
-      }
-
-      // save Kalumet configuration
-      try
-      {
-        ConfigurationManager.writeStore( kalumet );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.write" ) + ": " + e.getMessage() );
-        return;
-      }
-
-      KalumetConsoleApplication.getApplication().getLogPane().addConfirm( Messages.getString( "configuration.saved" ) );
-    }
-
-  };
-
-  /**
-   * Create a new <code>AdminConfigurationWindow</code>.
-   */
-  public AdminConfigurationWindow()
-  {
-    super();
-
-    // check if the user that try to access this window is the admin
-    if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-        Messages.getString( "configuration.restricted" ) );
-      AdminConfigurationWindow.this.userClose();
-      return;
-    }
-
-    setTitle( Messages.getString( "configuration" ) );
-    setIcon( Styles.COMPUTER_EDIT );
-    setId( "configurationwindow" );
-    setStyleName( "configuration" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.addActionListener( refresh );
-    refreshButton.setStyleName( "control" );
-    controlRow.add( refreshButton );
-    // add the save button
-    Button saveButton = new Button( Messages.getString( "save" ), Styles.DATABASE_SAVE );
-    saveButton.addActionListener( save );
-    saveButton.setStyleName( "control" );
-    controlRow.add( saveButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.addActionListener( close );
-    closeButton.setStyleName( "control" );
-    controlRow.add( closeButton );
-
-    // define a grid layout
-    Grid content = new Grid( 2 );
-    content.setStyleName( "default" );
-    content.setWidth( new Extent( 100, Extent.PERCENT ) );
-    content.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    content.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    splitPane.add( content );
-
-    // create the log event appender field
-    Label logEventAppenderLabel = new Label( Messages.getString( "configuration.journal.location" ) );
-    logEventAppenderLabel.setStyleName( "default" );
-    content.add( logEventAppenderLabel );
-    consoleLocationField = new TextField();
-    consoleLocationField.setStyleName( "default" );
-    consoleLocationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    content.add( consoleLocationField );
-
-    // create the ldap authentication field
-    Label ldapAuthenticationLabel = new Label( Messages.getString( "configuration.ldap.authentication" ) );
-    ldapAuthenticationLabel.setStyleName( "default" );
-    content.add( ldapAuthenticationLabel );
-    ldapAuthenticationField = new SelectField( MainScreen.LABELS );
-    ldapAuthenticationField.setStyleName( "default" );
-    content.add( ldapAuthenticationField );
-
-    // create the ldap server field
-    Label ldapServerLabel = new Label( Messages.getString( "configuration.ldap.server" ) );
-    ldapServerLabel.setStyleName( "default" );
-    content.add( ldapServerLabel );
-    ldapServerField = new TextField();
-    ldapServerField.setStyleName( "default" );
-    ldapServerField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    content.add( ldapServerField );
-
-    // create the ldap base dn field
-    Label ldapBaseDNLabel = new Label( Messages.getString( "configuration.ldap.basedn" ) );
-    ldapBaseDNLabel.setStyleName( "default" );
-    content.add( ldapBaseDNLabel );
-    ldapBaseDNField = new TextField();
-    ldapBaseDNField.setStyleName( "default" );
-    ldapBaseDNField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    content.add( ldapBaseDNField );
-
-    // create the ldap uid attribute field
-    Label ldapUidAttributeLabel = new Label( Messages.getString( "configuration.ldap.uid" ) );
-    ldapUidAttributeLabel.setStyleName( "default" );
-    content.add( ldapUidAttributeLabel );
-    ldapUidAttributeField = new TextField();
-    ldapUidAttributeField.setStyleName( "default" );
-    ldapUidAttributeField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    content.add( ldapUidAttributeField );
-
-    // create the ldap mail attribute field
-    Label ldapMailAttributeLabel = new Label( Messages.getString( "configuration.ldap.mail" ) );
-    ldapMailAttributeLabel.setStyleName( "default" );
-    content.add( ldapMailAttributeLabel );
-    ldapMailAttributeField = new TextField();
-    ldapMailAttributeField.setStyleName( "default" );
-    ldapMailAttributeField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    content.add( ldapMailAttributeField );
-
-    // create the ldap cn attribute field
-    Label ldapCnAttributeLabel = new Label( Messages.getString( "configuration.ldap.cn" ) );
-    ldapCnAttributeLabel.setStyleName( "default" );
-    content.add( ldapCnAttributeLabel );
-    ldapCnAttributeField = new TextField();
-    ldapCnAttributeField.setStyleName( "default" );
-    ldapCnAttributeField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    content.add( ldapCnAttributeField );
-
-    update();
-  }
-
-  /**
-   * Update the window content.
-   */
-  public void update()
-  {
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-
-    Property logEventAppenderProperty = kalumet.getProperty( "LogEventAppender" );
-    if ( logEventAppenderProperty != null )
-    {
-      consoleLocationField.setText( logEventAppenderProperty.getValue() );
-    }
-    else
-    {
-      consoleLocationField.setText( null );
-    }
-
-    Property ldapAuthentificationProperty = kalumet.getProperty( "LdapAuthentication" );
-    if ( ldapAuthentificationProperty != null )
-    {
-      if ( ldapAuthentificationProperty.getValue().equals( "true" ) )
-      {
-        ldapAuthenticationField.setSelectedIndex( 0 );
-      }
-      else
-      {
-        ldapAuthenticationField.setSelectedIndex( 1 );
-      }
-    }
-    else
-    {
-      ldapAuthenticationField.setSelectedIndex( 1 );
-    }
-    Property ldapServerProperty = kalumet.getProperty( "LdapServer" );
-    if ( ldapServerProperty != null )
-    {
-      ldapServerField.setText( ldapServerProperty.getValue() );
-    }
-    else
-    {
-      ldapServerField.setText( null );
-    }
-    Property ldapBaseDNProperty = kalumet.getProperty( "LdapBaseDN" );
-    if ( ldapBaseDNProperty != null )
-    {
-      ldapBaseDNField.setText( ldapBaseDNProperty.getValue() );
-    }
-    else
-    {
-      ldapBaseDNField.setText( null );
-    }
-    Property ldapUidAttributeProperty = kalumet.getProperty( "LdapUidAttribute" );
-    if ( ldapUidAttributeProperty != null )
-    {
-      ldapUidAttributeField.setText( ldapUidAttributeProperty.getValue() );
-    }
-    else
-    {
-      ldapUidAttributeField.setText( null );
-    }
-    Property ldapMailAttributeProperty = kalumet.getProperty( "LdapMailAttribute" );
-    if ( ldapMailAttributeProperty != null )
-    {
-      ldapMailAttributeField.setText( ldapMailAttributeProperty.getValue() );
-    }
-    else
-    {
-      ldapMailAttributeField.setText( null );
-    }
-    Property ldapCnAttributeProperty = kalumet.getProperty( "LdapCnAttribute" );
-    if ( ldapCnAttributeProperty != null )
-    {
-      ldapCnAttributeField.setText( ldapCnAttributeProperty.getValue() );
-    }
-    else
-    {
-      ldapCnAttributeField.setText( null );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminGroupWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminGroupWindow.java
deleted file mode 100644
index 5e63cfa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminGroupWindow.java
+++ /dev/null
@@ -1,483 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.ListBox;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.app.list.ListSelectionModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Group;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.User;
-
-import java.util.Iterator;
-
-/**
- * Admin group window.
- */
-public class AdminGroupWindow
-  extends WindowPane
-{
-
-  // attributes
-  private String groupId;
-
-  private Group group = null;
-
-  private AdminGroupsWindow parent;
-
-  private TextField idField;
-
-  private TextField nameField;
-
-  private ListBox membersBox;
-
-  private ListBox usersBox;
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      AdminGroupWindow.this.userClose();
-    }
-  };
-
-  // refresh action listener
-  private ActionListener refreshActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // update the group from the parent list
-      for ( Iterator groupIterator = parent.getGroups().iterator(); groupIterator.hasNext(); )
-      {
-        Group current = (Group) groupIterator.next();
-        if ( current.getId().equals( groupId ) )
-        {
-          group = current;
-          break;
-        }
-      }
-      if ( group == null )
-      {
-        group = new Group();
-      }
-      update();
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        groupId + " " + Messages.getString( "reloaded" ) );
-    }
-  };
-
-  // add member action listener
-  private ActionListener addMemberActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the users box is not empty
-      if ( usersBox.getModel().size() < 1 )
-      {
-        return;
-      }
-      // check if the user has selected a user
-      if ( usersBox.getSelectedValue() == null )
-      {
-        return;
-      }
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      // get the user object and add the user to the group members
-      User found = null;
-      for ( Iterator userIterator = kalumet.getSecurity().getUsers().iterator(); userIterator.hasNext(); )
-      {
-        User user = (User) userIterator.next();
-        if ( user.getId().equals( (String) usersBox.getSelectedValue() ) )
-        {
-          found = user;
-        }
-      }
-      // check if the user has been found
-      if ( found == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "group.warn.user.notfound" ) );
-        return;
-      }
-      try
-      {
-        group.addUser( found );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "group.warn.user.alreadymember" ) );
-        return;
-      }
-      // update view
-      update();
-      parent.update();
-    }
-  };
-
-  // delete member action listener
-  private ActionListener deleteMemberActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the members box is not empty
-      if ( membersBox.getModel().size() < 1 )
-      {
-        return;
-      }
-      // check if the user has selected a member
-      if ( membersBox.getSelectedValue() == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ErrorWindow( Messages.getString( "AdminGroupWindow.Error.Delete" ),
-                           Messages.getString( "AdminGroupWindow.Error.Delete.Select" ) ) );
-        return;
-      }
-      // get the member object
-      User found = null;
-      for ( Iterator memberIterator = group.getUsers().iterator(); memberIterator.hasNext(); )
-      {
-        User member = (User) memberIterator.next();
-        if ( member.getId().equals( membersBox.getSelectedValue() ) )
-        {
-          found = member;
-        }
-      }
-      // check if the member is found
-      if ( found == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ErrorWindow( Messages.getString( "AdminGroupWindow.Error.Delete" ),
-                           Messages.getString( "AdminGroupWindow.Error.Delete.NotFound" ) ) );
-        return;
-      }
-      group.getUsers().remove( found );
-      // update view
-      update();
-      parent.update();
-    }
-  };
-
-  // apply action listener
-  private ActionListener applyActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String groupNewId = idField.getText().trim();
-      String groupName = nameField.getText().trim();
-
-      // check fields
-      // group id is mandatory
-      if ( groupNewId.length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "group.warn.empty" ) );
-        return;
-      }
-      // if the admin change the group id or if it's a new group, check if
-      // the id is not already used
-      if ( groupId == null || groupId.trim().length() < 1 || ( ( groupId != null ) && ( groupId.trim().length() > 0 )
-        && ( !groupNewId.equals( groupId ) ) ) )
-      {
-        for ( Iterator groupIterator = parent.getGroups().iterator(); groupIterator.hasNext(); )
-        {
-          Group current = (Group) groupIterator.next();
-          if ( current.getId().equals( groupNewId ) )
-          {
-            KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-              new ErrorWindow( Messages.getString( "AdminGroupWindow.Error.Save" ),
-                               Messages.getString( "AdminGroupWindow.Error.GroupIdAlreadyExists" ) ) );
-            return;
-          }
-        }
-      }
-
-      // update the current group
-      group.setId( groupNewId );
-      group.setName( groupName );
-      if ( groupId == null || groupId.trim().length() < 1 )
-      {
-        // it's a new group
-        parent.getGroups().add( group );
-      }
-      setTitle( Messages.getString( "AdminGroupWindow.Title" ) + " " + group.getId() );
-      setId( "adminwindow_" + group.getId() );
-      groupId = group.getId();
-      parent.update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // display a confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // looking for the agent to remove
-            Group groupToRemove = null;
-            for ( Iterator groupIterator = parent.getGroups().iterator(); groupIterator.hasNext(); )
-            {
-              Group group = (Group) groupIterator.next();
-              if ( group.getId().equals( groupId ) )
-              {
-                groupToRemove = group;
-                break;
-              }
-            }
-            parent.getGroups().remove( groupToRemove );
-            AdminGroupWindow.this.userClose();
-            parent.update();
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>AdminGroupWindow</code>.
-   *
-   * @param parent  the <code>AdminGroupsWindow</code> parent.
-   * @param groupId the <code>Group</code> ID.
-   */
-  public AdminGroupWindow( AdminGroupsWindow parent, String groupId )
-  {
-    super();
-
-    // check if the user that try to access this window is the admin
-    if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-        Messages.getString( "groups.warn.restricted" ) );
-      return;
-    }
-
-    // update the original group id and parent admin groups window
-    this.parent = parent;
-    this.groupId = groupId;
-
-    // update the group object from groups parent list
-    for ( Iterator groupIterator = parent.getGroups().iterator(); groupIterator.hasNext(); )
-    {
-      Group current = (Group) groupIterator.next();
-      if ( current.getId().equals( groupId ) )
-      {
-        this.group = current;
-        break;
-      }
-    }
-    if ( this.group == null )
-    {
-      this.group = new Group();
-    }
-
-    if ( groupId == null )
-    {
-      setTitle( Messages.getString( "group" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "group" ) + " " + groupId );
-    }
-    setIcon( Styles.GROUP );
-    setId( "groupwindow_" + groupId );
-    setStyleName( "group" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refreshActionListener );
-    controlRow.add( refreshButton );
-    // add the delete button
-    Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-    deleteButton.setStyleName( "control" );
-    deleteButton.addActionListener( delete );
-    controlRow.add( deleteButton );
-    // add the apply button
-    Button applyButton = new Button( Messages.getString( "apply" ), Styles.DATABASE_GO );
-    applyButton.setStyleName( "control" );
-    applyButton.addActionListener( applyActionListener );
-    controlRow.add( applyButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // content column pane
-    Column content = new Column();
-    content.setStyleName( "group" );
-    splitPane.add( content );
-
-    // layout grid
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 15, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 85, Extent.PERCENT ) );
-    content.add( layoutGrid );
-
-    // add the group id field
-    Label idLabel = new Label( Messages.getString( "id" ) );
-    idLabel.setStyleName( "default" );
-    layoutGrid.add( idLabel );
-    idField = new TextField();
-    idField.setStyleName( "default" );
-    idField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( idField );
-
-    // add the group name field
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "default" );
-    layoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( nameField );
-
-    // add the members header
-    Label membersHeader = new Label( Messages.getString( "members" ) );
-    membersHeader.setStyleName( "default" );
-    layoutGrid.add( membersHeader );
-
-    // grid members
-    Grid membersGrid = new Grid( 2 );
-    membersGrid.setStyleName( "default" );
-    membersGrid.setWidth( new Extent( 100, Extent.PERCENT ) );
-    membersGrid.setColumnWidth( 0, new Extent( 50, Extent.PERCENT ) );
-    membersGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    content.add( membersGrid );
-
-    // membersBox
-    membersBox = new ListBox();
-    membersBox.setStyleName( "default" );
-    membersBox.setHeight( new Extent( 200, Extent.PX ) );
-    membersBox.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
-    membersGrid.add( membersBox );
-    // usersBox
-    usersBox = new ListBox();
-    usersBox.setStyleName( "default" );
-    usersBox.setHeight( new Extent( 200, Extent.PX ) );
-    usersBox.setSelectionMode( ListSelectionModel.SINGLE_SELECTION );
-    membersGrid.add( usersBox );
-    // add user member button
-    Button addMemberButton = new Button( Styles.ARROW_LEFT );
-    addMemberButton.setStyleName( "group.member.add" );
-    addMemberButton.addActionListener( addMemberActionListener );
-    membersGrid.add( addMemberButton );
-    // add delete member button
-    Button deleteMemberButton = new Button( Styles.ARROW_RIGHT );
-    deleteMemberButton.setStyleName( "group.member.delete" );
-    deleteMemberButton.addActionListener( deleteMemberActionListener );
-    membersGrid.add( deleteMemberButton );
-
-    // update fields/boxes value
-    update();
-  }
-
-  /**
-   * Update the group fields/boxes
-   */
-  public void update()
-  {
-    idField.setText( group.getId() );
-    nameField.setText( group.getName() );
-
-    // update the members box
-    DefaultListModel membersBoxModel = (DefaultListModel) membersBox.getModel();
-    membersBoxModel.removeAll();
-    for ( Iterator memberIterator = group.getUsers().iterator(); memberIterator.hasNext(); )
-    {
-      User member = (User) memberIterator.next();
-      membersBoxModel.add( member.getId() );
-    }
-
-    // update the users box
-    DefaultListModel usersBoxModel = (DefaultListModel) usersBox.getModel();
-    usersBoxModel.removeAll();
-
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-
-    for ( Iterator userIterator = kalumet.getSecurity().getUsers().iterator(); userIterator.hasNext(); )
-    {
-      User user = (User) userIterator.next();
-      // check if the user is not already a group member
-      boolean find = false;
-      for ( Iterator memberIterator = group.getUsers().iterator(); memberIterator.hasNext(); )
-      {
-        User member = (User) memberIterator.next();
-        if ( member.getId().equals( user.getId() ) )
-        {
-          find = true;
-        }
-      }
-      if ( !find )
-      {
-        usersBoxModel.add( user.getId() );
-      }
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminGroupsWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminGroupsWindow.java
deleted file mode 100644
index e6bd700..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminGroupsWindow.java
+++ /dev/null
@@ -1,330 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Group;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.User;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Admin groups window.
- */
-public class AdminGroupsWindow
-  extends WindowPane
-{
-
-  // attributes
-  private List groups;
-
-  private Grid groupsGrid;
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      AdminGroupsWindow.this.userClose();
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      groups = kalumet.getSecurity().getGroups();
-      update();
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        Messages.getString( "groups" ) + " " + Messages.getString( "reloaded" ) );
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( event.getActionCommand().equals( "admin" ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "groups.admin" ) );
-        return;
-      }
-      // display a confirm window
-      final String groupId = event.getActionCommand();
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            Group groupToRemove = null;
-            for ( Iterator groupIterator = groups.iterator(); groupIterator.hasNext(); )
-            {
-              Group current = (Group) groupIterator.next();
-              if ( current.getId().equals( groupId ) )
-              {
-                groupToRemove = current;
-                break;
-              }
-            }
-            groups.remove( groupToRemove );
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // save
-  private ActionListener save = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      // update the groups list in Kalumet
-      kalumet.getSecurity().setGroups( (LinkedList) groups );
-      // write the XML file
-      try
-      {
-        ConfigurationManager.writeStore( kalumet );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.write" ) + ": " + e.getMessage() );
-        return;
-      }
-      KalumetConsoleApplication.getApplication().getLogPane().addConfirm( Messages.getString( "groups.saved" ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent(
-        "groupwindow_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new AdminGroupWindow( AdminGroupsWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new AdminGroupWindow( AdminGroupsWindow.this, null ) );
-    }
-  };
-
-  /**
-   * Create a new <code>AdminGroupsWindow</code>.
-   */
-  public AdminGroupsWindow()
-  {
-    super();
-
-    // check if the user that try to access this window is the admin
-    if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "groups.restricted" ) );
-      this.userClose();
-      return;
-    }
-
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      this.userClose();
-      return;
-    }
-    this.groups = kalumet.getSecurity().getGroups();
-    Collections.sort( this.groups );
-
-    setTitle( Messages.getString( "groups" ) );
-    setIcon( Styles.GROUP );
-    setStyleName( "groups" );
-    setId( "groupswindow" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.addActionListener( refresh );
-    refreshButton.setStyleName( "control" );
-    controlRow.add( refreshButton );
-    // add the save button
-    Button saveButton = new Button( Messages.getString( "save" ), Styles.DATABASE_SAVE );
-    saveButton.addActionListener( save );
-    saveButton.setStyleName( "control" );
-    controlRow.add( saveButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.addActionListener( close );
-    closeButton.setStyleName( "control" );
-    controlRow.add( closeButton );
-
-    // add the column main pane
-    Column content = new Column();
-    content.setStyleName( "groups" );
-    splitPane.add( content );
-
-    // add a create group button
-    Row row = new Row();
-    content.add( row );
-    Button createGroupButton = new Button( Messages.getString( "group.add" ), Styles.GROUP_ADD );
-    createGroupButton.setToolTipText( Messages.getString( "add" ) );
-    createGroupButton.addActionListener( create );
-    row.add( createGroupButton );
-
-    // add the groups list grid
-    groupsGrid = new Grid( 4 );
-    groupsGrid.setStyleName( "border.grid" );
-    groupsGrid.setColumnWidth( 0, new Extent( 18, Extent.PX ) );
-    groupsGrid.setColumnWidth( 1, new Extent( 33, Extent.PERCENT ) );
-    groupsGrid.setColumnWidth( 2, new Extent( 33, Extent.PERCENT ) );
-    groupsGrid.setColumnWidth( 3, new Extent( 33, Extent.PERCENT ) );
-    content.add( groupsGrid );
-
-    // update groups grid
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  protected void update()
-  {
-    // delete all groups grid child
-    groupsGrid.removeAll();
-
-    // add grid headers
-    Label groupActionHeader = new Label( " " );
-    groupActionHeader.setStyleName( "grid.header" );
-    groupsGrid.add( groupActionHeader );
-    Label groupIdHeader = new Label( Messages.getString( "id" ) );
-    groupIdHeader.setStyleName( "grid.header" );
-    groupsGrid.add( groupIdHeader );
-    Label groupNameHeader = new Label( Messages.getString( "name" ) );
-    groupNameHeader.setStyleName( "grid.header" );
-    groupsGrid.add( groupNameHeader );
-    Label groupMembersHeader = new Label( Messages.getString( "members" ) );
-    groupMembersHeader.setStyleName( "grid.header" );
-    groupsGrid.add( groupMembersHeader );
-
-    // add groups
-    for ( Iterator groupIterator = groups.iterator(); groupIterator.hasNext(); )
-    {
-      Group currentGroup = (Group) groupIterator.next();
-      // action row with group id
-      Row row = new Row();
-      row.setStyleName( "grid.cell" );
-      groupsGrid.add( row );
-      Button deleteButton = new Button( Styles.GROUP_DELETE );
-      deleteButton.addActionListener( delete );
-      deleteButton.setActionCommand( currentGroup.getId() );
-      deleteButton.setToolTipText( Messages.getString( "delete" ) );
-      row.add( deleteButton );
-      // id
-      Button groupId = new Button( currentGroup.getId() );
-      groupId.addActionListener( edit );
-      groupId.setActionCommand( currentGroup.getId() );
-      groupId.setStyleName( "grid.cell" );
-      groupsGrid.add( groupId );
-      // group name
-      Label groupNameLabel = new Label( currentGroup.getName() );
-      groupNameLabel.setStyleName( "grid.cell" );
-      groupsGrid.add( groupNameLabel );
-      // group members
-      Column membersPane = new Column();
-      membersPane.setStyleName( "grid.cell" );
-      groupsGrid.add( membersPane );
-      for ( Iterator userIterator = currentGroup.getUsers().iterator(); userIterator.hasNext(); )
-      {
-        User currentUser = (User) userIterator.next();
-        Label member = new Label( currentUser.getName() + " (" + currentUser.getId() + ")" );
-        member.setStyleName( "default" );
-        membersPane.add( member );
-      }
-    }
-  }
-
-  protected List getGroups()
-  {
-    return this.groups;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminUserWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminUserWindow.java
deleted file mode 100644
index 64e2591..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminUserWindow.java
+++ /dev/null
@@ -1,349 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.PasswordField;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.model.User;
-
-import java.util.Iterator;
-
-/**
- * Admin user window.
- */
-public class AdminUserWindow
-  extends WindowPane
-{
-
-  // attributes
-  private String userId;
-
-  private User user = null;
-
-  private AdminUsersWindow parent;
-
-  private TextField userIdField;
-
-  private TextField userNameField;
-
-  private TextField userEmailField;
-
-  private PasswordField userPasswordField;
-
-  private PasswordField userConfirmPasswordField;
-
-  // close action listener
-  private ActionListener closeActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      AdminUserWindow.this.userClose();
-    }
-  };
-
-  // refresh action listener
-  private ActionListener refreshActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      for ( Iterator userIterator = parent.getUsers().iterator(); userIterator.hasNext(); )
-      {
-        User current = (User) userIterator.next();
-        if ( current.getId().equals( userId ) )
-        {
-          user = current;
-          break;
-        }
-      }
-      if ( user == null )
-      {
-        user = new User();
-      }
-      update();
-    }
-  };
-
-  // apply action listener
-  private ActionListener applyActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String userNewId = userIdField.getText().trim();
-      String userName = userNameField.getText().trim();
-      String userEmail = userEmailField.getText().trim();
-      String userPassword = userPasswordField.getText().trim();
-      String userConfirmPassword = userConfirmPasswordField.getText().trim();
-      String userPasswordCrypted = null;
-
-      // check fields
-      // user id mandatory
-      if ( userNewId.length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ErrorWindow( Messages.getString( "AdminUserWindow.Error.Save" ),
-                           Messages.getString( "AdminUserWindow.Error.EmptyUserId" ) ) );
-        return;
-      }
-      // password must match confirm password is not empty
-      if ( userPassword.length() > 0 && !userPassword.equals( userConfirmPassword ) )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ErrorWindow( Messages.getString( "AdminUserWindow.Error.Save" ),
-                           Messages.getString( "AdminUserWindow.Error.PasswordMatch" ) ) );
-        return;
-      }
-      // crypt password
-      if ( userPassword.length() > 0 )
-      {
-        try
-        {
-          userPasswordCrypted = User.md5PasswordCrypt( userPassword );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-            new ErrorWindow( Messages.getString( "AdminUserWindow.Error.PasswordCrypt" ), e.getMessage() ) );
-          return;
-        }
-      }
-      // if the admin change the user id or if it's a new user, check if the
-      // id is not already used
-      if ( userId == null || userId.trim().length() < 1 || ( ( userId != null ) && ( userId.trim().length() > 0 )
-        && ( !userNewId.equals( userId ) ) ) )
-      {
-        for ( Iterator userIterator = parent.getUsers().iterator(); userIterator.hasNext(); )
-        {
-          User current = (User) userIterator.next();
-          if ( current.getId().equals( userNewId ) )
-          {
-            KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-              new ErrorWindow( Messages.getString( "AdminUserWindow.Error.Add" ),
-                               Messages.getString( "AdminUserWindow.Error.UserIdAlreadyExists" ) ) );
-            return;
-          }
-        }
-      }
-
-      // update the current user
-      user.setId( userNewId );
-      user.setName( userName );
-      user.setEmail( userEmail );
-      if ( userPasswordCrypted != null )
-      {
-        user.setPassword( userPasswordCrypted );
-      }
-      if ( userId == null || userId.trim().length() < 1 )
-      {
-        // it's a new user
-        parent.getUsers().add( user );
-      }
-      setTitle( Messages.getString( "AdminUserWindow.Title" ) + " " + user.getId() );
-      setId( "adminUserWindow_" + user.getId() );
-      userId = user.getId();
-      parent.update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // display a confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // looking for the agent to remove
-            User userToRemove = null;
-            for ( Iterator userIterator = parent.getUsers().iterator(); userIterator.hasNext(); )
-            {
-              User user = (User) userIterator.next();
-              if ( user.getId().equals( userId ) )
-              {
-                userToRemove = user;
-                break;
-              }
-            }
-            parent.getUsers().remove( userToRemove );
-            AdminUserWindow.this.userClose();
-            parent.update();
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>AdminUserWindow</code>.
-   *
-   * @param parent the <code>AdminUsersWindow</code> parent.
-   * @param userId the <code>User</code> ID.
-   */
-  public AdminUserWindow( AdminUsersWindow parent, String userId )
-  {
-    super();
-
-    // check if the user that try to access this window is the admin
-    if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-        Messages.getString( "uses.warn.restricted" ) );
-      return;
-    }
-
-    // update the original user id and parent admin users window
-    this.parent = parent;
-    this.userId = userId;
-
-    // update the user object from users parent list
-    for ( Iterator userIterator = parent.getUsers().iterator(); userIterator.hasNext(); )
-    {
-      User current = (User) userIterator.next();
-      if ( current.getId().equals( userId ) )
-      {
-        this.user = current;
-        break;
-      }
-    }
-    if ( this.user == null )
-    {
-      this.user = new User();
-    }
-
-    if ( userId == null )
-    {
-      setTitle( Messages.getString( "user" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "user" ) + " " + userId );
-    }
-    setId( "user_" + userId );
-    setStyleName( "user" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refreshActionListener );
-    controlRow.add( refreshButton );
-    // add the delete button
-    Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-    deleteButton.setStyleName( "control" );
-    deleteButton.addActionListener( delete );
-    controlRow.add( deleteButton );
-    // add the apply button
-    Button applyButton = new Button( Messages.getString( "apply" ), Styles.DATABASE_GO );
-    applyButton.setStyleName( "control" );
-    applyButton.addActionListener( applyActionListener );
-    controlRow.add( applyButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( closeActionListener );
-    controlRow.add( closeButton );
-
-    // layout grid
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 15, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 85, Extent.PERCENT ) );
-    splitPane.add( layoutGrid );
-
-    // add the user id field
-    Label userIdLabel = new Label( Messages.getString( "id" ) );
-    userIdLabel.setStyleName( "default" );
-    layoutGrid.add( userIdLabel );
-    userIdField = new TextField();
-    userIdField.setStyleName( "default" );
-    userIdField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userIdField );
-
-    // add the user name field
-    Label userNameLabel = new Label( Messages.getString( "name" ) );
-    userNameLabel.setStyleName( "default" );
-    layoutGrid.add( userNameLabel );
-    userNameField = new TextField();
-    userNameField.setStyleName( "default" );
-    userNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userNameField );
-
-    // add the user e-mail field
-    Label userEmailLabel = new Label( Messages.getString( "email" ) );
-    userEmailLabel.setStyleName( "default" );
-    layoutGrid.add( userEmailLabel );
-    userEmailField = new TextField();
-    userEmailField.setStyleName( "default" );
-    userEmailField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userEmailField );
-
-    // add the user password field
-    Label userPasswordLabel = new Label( Messages.getString( "password" ) );
-    userPasswordLabel.setStyleName( "default" );
-    layoutGrid.add( userPasswordLabel );
-    userPasswordField = new PasswordField();
-    userPasswordField.setStyleName( "default" );
-    userPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userPasswordField );
-
-    // add the user confirm password field
-    Label userConfirmPasswordLabel = new Label( Messages.getString( "confirm" ) );
-    userConfirmPasswordLabel.setStyleName( "default" );
-    layoutGrid.add( userConfirmPasswordLabel );
-    userConfirmPasswordField = new PasswordField();
-    userConfirmPasswordField.setStyleName( "default" );
-    userConfirmPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userConfirmPasswordField );
-
-    // update fields value
-    update();
-  }
-
-  /**
-   * Update the fields value
-   */
-  protected void update()
-  {
-    userIdField.setText( user.getId() );
-    userNameField.setText( user.getName() );
-    userEmailField.setText( user.getEmail() );
-    userPasswordField.setText( null );
-    userConfirmPasswordField.setText( null );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminUsersWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminUsersWindow.java
deleted file mode 100644
index 441b6a3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/AdminUsersWindow.java
+++ /dev/null
@@ -1,327 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.User;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Admin users window.
- *
- * @author onofre
- */
-public class AdminUsersWindow
-  extends WindowPane
-{
-
-  // attributes
-  private List users;
-
-  private Grid usersGrid;
-
-  // close action listener
-  private ActionListener closeActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      AdminUsersWindow.this.userClose();
-    }
-  };
-
-  // refresh action listener
-  private ActionListener refreshActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      users = kalumet.getSecurity().getUsers();
-      update();
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        Messages.getString( "users" ) + " " + Messages.getString( "reloaded" ) );
-    }
-  };
-
-  // delete action listener
-  private ActionListener deleteActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( event.getActionCommand().equals( "admin" ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "users.warn.admin" ) );
-        return;
-      }
-      final String userId = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            User userToRemove = null;
-            for ( Iterator userIterator = users.iterator(); userIterator.hasNext(); )
-            {
-              User current = (User) userIterator.next();
-              if ( current.getId().equals( userId ) )
-              {
-                userToRemove = current;
-                break;
-              }
-            }
-            users.remove( userToRemove );
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // save action listener
-  private ActionListener saveActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      // update the users list in Kalumet
-      kalumet.getSecurity().setUsers( (LinkedList) users );
-      // write the XML file
-      try
-      {
-        ConfigurationManager.writeStore( kalumet );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.write" ) + ": " + e.getMessage() );
-        return;
-      }
-      KalumetConsoleApplication.getApplication().getLogPane().addConfirm( Messages.getString( "users.saved" ) );
-    }
-  };
-
-  // edit action listener
-  private ActionListener editActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if (
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "user_" + event.getActionCommand() )
-          == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new AdminUserWindow( AdminUsersWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // add action listener
-  private ActionListener addActionListener = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new AdminUserWindow( AdminUsersWindow.this, null ) );
-    }
-  };
-
-  /**
-   * Create a new <code>WindowPane</code>.
-   */
-  public AdminUsersWindow()
-  {
-    super();
-
-    // check if the user that try to access this window is the admin
-    if ( !KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-        Messages.getString( "users.warn.restricted" ) );
-      this.userClose();
-      return;
-    }
-
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      this.userClose();
-      return;
-    }
-    this.users = kalumet.getSecurity().getUsers();
-    Collections.sort( this.users );
-
-    setTitle( Messages.getString( "users" ) );
-    setStyleName( "users" );
-    setIcon( Styles.USER );
-    setId( "userswindow" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refreshActionListener );
-    controlRow.add( refreshButton );
-    // add the save button
-    Button saveButton = new Button( Messages.getString( "save" ), Styles.DATABASE_SAVE );
-    saveButton.setStyleName( "control" );
-    saveButton.addActionListener( saveActionListener );
-    controlRow.add( saveButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( closeActionListener );
-    controlRow.add( closeButton );
-
-    // add the column main pane
-    Column content = new Column();
-    content.setStyleName( "users" );
-    splitPane.add( content );
-
-    // add button
-    Row row = new Row();
-    content.add( row );
-    Button addButton = new Button( Messages.getString( "user.add" ), Styles.USER_ADD );
-    addButton.addActionListener( addActionListener );
-    row.add( addButton );
-
-    // add the users list grid
-    usersGrid = new Grid( 4 );
-    usersGrid.setStyleName( "border.grid" );
-    usersGrid.setColumnWidth( 0, new Extent( 18, Extent.PX ) );
-    usersGrid.setColumnWidth( 1, new Extent( 33, Extent.PERCENT ) );
-    usersGrid.setColumnWidth( 2, new Extent( 33, Extent.PERCENT ) );
-    usersGrid.setColumnWidth( 3, new Extent( 33, Extent.PERCENT ) );
-    content.add( usersGrid );
-
-    // update users grid
-    update();
-  }
-
-  protected void update()
-  {
-    // delete all users grid child
-    usersGrid.removeAll();
-
-    // add grid headers
-    Label userActionHeader = new Label( " " );
-    userActionHeader.setStyleName( "grid.header" );
-    usersGrid.add( userActionHeader );
-    Label userIdHeader = new Label( Messages.getString( "id" ) );
-    userIdHeader.setStyleName( "grid.header" );
-    usersGrid.add( userIdHeader );
-    Label userNameHeader = new Label( Messages.getString( "name" ) );
-    userNameHeader.setStyleName( "grid.header" );
-    usersGrid.add( userNameHeader );
-    Label userEmailHeader = new Label( Messages.getString( "email" ) );
-    userEmailHeader.setStyleName( "grid.header" );
-    usersGrid.add( userEmailHeader );
-
-    // add users
-    for ( Iterator userIterator = users.iterator(); userIterator.hasNext(); )
-    {
-      User current = (User) userIterator.next();
-      // action row with user id
-      Row row = new Row();
-      row.setStyleName( "grid.cell" );
-      usersGrid.add( row );
-      Button deleteButton = new Button( Styles.USER_DELETE );
-      deleteButton.addActionListener( deleteActionListener );
-      deleteButton.setActionCommand( current.getId() );
-      deleteButton.setToolTipText( Messages.getString( "delete" ) );
-      row.add( deleteButton );
-      // id
-      Button userId = new Button( current.getId() );
-      userId.addActionListener( editActionListener );
-      userId.setActionCommand( current.getId() );
-      userId.setStyleName( "default" );
-      usersGrid.add( userId );
-      // user name
-      Label userNameLabel = new Label( current.getName() );
-      userNameLabel.setStyleName( "default" );
-      usersGrid.add( userNameLabel );
-      // user email
-      Label userEmailLabel = new Label( current.getEmail() );
-      userEmailLabel.setStyleName( "default" );
-      usersGrid.add( userEmailLabel );
-    }
-  }
-
-  /**
-   * Get the users list.
-   *
-   * @return the users list.
-   */
-  protected List getUsers()
-  {
-    return this.users;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationArchiveWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationArchiveWindow.java
deleted file mode 100644
index 967020e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationArchiveWindow.java
+++ /dev/null
@@ -1,871 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Archive;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.ArchiveClient;
-
-import java.util.Iterator;
-
-/**
- * JEE application archive <code>WindowPane</code>.
- */
-public class ApplicationArchiveWindow
-  extends WindowPane
-{
-
-  private static String[] CLASSLOADER_ORDER =
-    new String[]{ Messages.getString( "parentlast" ), Messages.getString( "parentfirst" ) };
-
-  private static String[] CLASSLOADER_POLICY =
-    new String[]{ Messages.getString( "single" ), Messages.getString( "multiple" ) };
-
-  private String archiveName;
-
-  private Archive archive;
-
-  private ApplicationArchivesPane parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextField uriField;
-
-  private TextField pathField;
-
-  private SelectField agentField;
-
-  private SelectField classloaderOrderField;
-
-  private SelectField classloaderPolicyField;
-
-  private TextField contextRootField;
-
-  private TextField virtualHostField;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent =
-          kalumet.getAgent( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the web service
-        ArchiveClient client = new ArchiveClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate =
-          client.check( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName(),
-                        parent.getParentPane().getServerName(), parent.getParentPane().getApplicationName(),
-                        archiveName );
-        if ( uptodate )
-        {
-          message = "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-            + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JEE appliction " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-            + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-          + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent =
-          kalumet.getAgent( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the web service
-        ArchiveClient client = new ArchiveClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName(),
-                       parent.getParentPane().getServerName(), parent.getParentPane().getApplicationName(), archiveName,
-                       false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-          + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the archive object
-      ApplicationArchiveWindow.this.archive = parent.getParentPane().getApplication().getArchive( archiveName );
-      if ( ApplicationArchiveWindow.this.archive == null )
-      {
-        ApplicationArchiveWindow.this.archive = new Archive();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ApplicationArchiveWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the archive
-            parent.getParentPane().getApplication().getArchives().remove( archive );
-            // add a change events
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete JEE application archive " + archive.getName() );
-            // change the updated flag
-            parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            ApplicationArchiveWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String uriFieldValue = uriField.getText();
-      String pathFieldValue = pathField.getText();
-      int classloaderOrderFieldIndex = classloaderOrderField.getSelectedIndex();
-      int classloaderPolicyFieldIndex = classloaderPolicyField.getSelectedIndex();
-      String contextRootFieldValue = contextRootField.getText();
-      String virtualHostFieldValue = virtualHostField.getText();
-      String agentFieldValue = (String) agentField.getSelectedItem();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || uriFieldValue == null
-        || uriFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "archive.mandatory" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the archive name, check if the new name doesn't
-      // already exist
-      if ( archiveName == null || ( archiveName != null && !archiveName.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getParentPane().getApplication().getArchive( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "archive.exists" ),
-                                                                              parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( archiveName != null )
-      {
-        String change = "Modify JEE application archive " + nameFieldValue;
-        if ( !archive.getUri().equals( uriFieldValue ) )
-        {
-          change += " URI from " + archive.getUri() + " to " + uriFieldValue;
-        }
-        if ( !archive.getPath().equals( pathFieldValue ) )
-        {
-          change += " path from " + archive.getPath() + " to " + pathFieldValue;
-        }
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add( change );
-      }
-      // update the archive object
-      archive.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        archive.setActive( true );
-      }
-      else
-      {
-        archive.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        archive.setBlocker( true );
-      }
-      else
-      {
-        archive.setBlocker( false );
-      }
-      archive.setUri( uriFieldValue );
-      archive.setPath( pathFieldValue );
-      archive.setAgent( agentFieldValue );
-      if ( classloaderOrderFieldIndex == 0 )
-      {
-        archive.setClassloaderorder( "PARENT_LAST" );
-      }
-      else
-      {
-        archive.setClassloaderorder( "PARENT_FIRST" );
-      }
-      if ( classloaderPolicyFieldIndex == 0 )
-      {
-        archive.setClassloaderpolicy( "SINGLE" );
-      }
-      else
-      {
-        archive.setClassloaderpolicy( "MULTIPLE" );
-      }
-      archive.setContext( contextRootFieldValue );
-      archive.setVhost( virtualHostFieldValue );
-      // add the archive object if needed
-      if ( archiveName == null )
-      {
-        try
-        {
-          parent.getParentPane().getApplication().addArchive( archive );
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add JEE application archive " + archive.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "archive.exists" ),
-                                                                              parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "archive" ) + " " + archive.getName() );
-      setId( "archivewindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-               + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-               + archive.getName() );
-      archiveName = archive.getName();
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the parent window
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( archive.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof Archive ) )
-      {
-        return;
-      }
-      archive = (Archive) copy;
-      archiveName = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( parent.getParentPane().getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a message into the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-          + " status check in progress...",
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-          + " status check requested." );
-      // launch the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if there is no pending change
-      if ( parent.getParentPane().getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message in the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-                + " update in progress...",
-              parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-                + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-                        + " updated.",
-                      parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + parent.getParentPane().getApplicationName() + " archive " + archiveName
-                        + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationArchiveWindow</code>.
-   *
-   * @param parent      the <code>ApplicationArchivesPane</code>.
-   * @param archiveName the original <code>Archive</code> name.
-   */
-  public ApplicationArchiveWindow( ApplicationArchivesPane parent, String archiveName )
-  {
-    super();
-
-    // update the parent pane
-    this.parent = parent;
-
-    // update the archive name
-    this.archiveName = archiveName;
-
-    // update the archive object from the parent pane
-    this.archive = parent.getParentPane().getApplication().getArchive( archiveName );
-    if ( this.archive == null )
-    {
-      this.archive = new Archive();
-    }
-
-    if ( archiveName == null )
-    {
-      setTitle( Messages.getString( "archive" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "archive" ) + " " + archiveName );
-    }
-    setId( "archivewindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-             + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-             + archiveName );
-    setStyleName( "default" );
-    setWidth( new Extent( 450, Extent.PX ) );
-    setHeight( new Extent( 300, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    // status
-    Button statusButton = new Button( Messages.getString( "status" ), Styles.INFORMATION );
-    statusButton.setStyleName( "control" );
-    statusButton.addActionListener( status );
-    controlRow.add( statusButton );
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-    {
-      // update
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "tab.content" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    activeField.setSelectedIndex( 0 );
-    generalLayoutGrid.add( activeField );
-    // blocker
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    blockerField.setSelectedIndex( 1 );
-    generalLayoutGrid.add( blockerField );
-    // URI
-    Label uriLabel = new Label( Messages.getString( "uri" ) );
-    uriLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( uriLabel );
-    uriField = new TextField();
-    uriField.setStyleName( "default" );
-    uriField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( uriField );
-    // path
-    Label pathLabel = new Label( Messages.getString( "path" ) );
-    pathLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( pathLabel );
-    pathField = new TextField();
-    pathField.setStyleName( "default" );
-    pathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( pathField );
-    // agent
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    generalLayoutGrid.add( agentField );
-
-    // add the deployment tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "deployment" ) );
-    ContentPane deploymentTabPane = new ContentPane();
-    deploymentTabPane.setStyleName( "tab.content" );
-    deploymentTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( deploymentTabPane );
-    Grid deploymentLayoutGrid = new Grid( 2 );
-    deploymentLayoutGrid.setStyleName( "default" );
-    deploymentLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    deploymentLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    deploymentTabPane.add( deploymentLayoutGrid );
-    // classloader mode
-    Label archiveClassloaderOrderLabel = new Label( Messages.getString( "classloader.order" ) );
-    archiveClassloaderOrderLabel.setStyleName( "grid.cell" );
-    deploymentLayoutGrid.add( archiveClassloaderOrderLabel );
-    classloaderOrderField = new SelectField( ApplicationArchiveWindow.CLASSLOADER_ORDER );
-    classloaderOrderField.setStyleName( "default" );
-    classloaderOrderField.setSelectedIndex( 0 );
-    classloaderOrderField.setWidth( new Extent( 50, Extent.EX ) );
-    deploymentLayoutGrid.add( classloaderOrderField );
-    // classloader policy
-    Label archiveClassLoaderPolicyLabel = new Label( Messages.getString( "classloader.policy" ) );
-    archiveClassLoaderPolicyLabel.setStyleName( "grid.cell" );
-    deploymentLayoutGrid.add( archiveClassLoaderPolicyLabel );
-    classloaderPolicyField = new SelectField( ApplicationArchiveWindow.CLASSLOADER_POLICY );
-    classloaderPolicyField.setStyleName( "default" );
-    classloaderPolicyField.setSelectedIndex( 0 );
-    classloaderPolicyField.setWidth( new Extent( 50, Extent.EX ) );
-    deploymentLayoutGrid.add( classloaderPolicyField );
-    // context root
-    Label archiveContextLabel = new Label( Messages.getString( "contextroot" ) );
-    archiveContextLabel.setStyleName( "grid.cell" );
-    deploymentLayoutGrid.add( archiveContextLabel );
-    contextRootField = new TextField();
-    contextRootField.setStyleName( "default" );
-    contextRootField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    deploymentLayoutGrid.add( contextRootField );
-    Label archiveVHostLabel = new Label( Messages.getString( "virtualhost" ) );
-    archiveVHostLabel.setStyleName( "grid.cell" );
-    deploymentLayoutGrid.add( archiveVHostLabel );
-    virtualHostField = new TextField();
-    virtualHostField.setStyleName( "default" );
-    virtualHostField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    deploymentLayoutGrid.add( virtualHostField );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // update the archive name field
-    nameField.setText( archive.getName() );
-    // update the archive active field
-    if ( archive.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the archive blocker field
-    if ( archive.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the archive uri field
-    uriField.setText( archive.getUri() );
-    // update the archive path field
-    pathField.setText( archive.getPath() );
-    // update the archive classloader order field
-    if ( archive.getClassloaderorder() != null )
-    {
-      if ( archive.getClassloaderorder().equals( "PARENT_FIRST" ) )
-      {
-        classloaderOrderField.setSelectedIndex( 1 );
-      }
-      else
-      {
-        classloaderOrderField.setSelectedIndex( 0 );
-      }
-    }
-    // update the archive classloader policy field
-    if ( archive.getClassloaderpolicy() != null )
-    {
-      if ( archive.getClassloaderpolicy().equals( "SINGLE" ) )
-      {
-        classloaderPolicyField.setSelectedIndex( 0 );
-      }
-      else
-      {
-        classloaderPolicyField.setSelectedIndex( 1 );
-      }
-    }
-    // update the archive context field
-    contextRootField.setText( archive.getContext() );
-    // update the archive vhost field
-    virtualHostField.setText( archive.getVhost() );
-    // update agent field
-    // load Kalumet configuration
-    Kalumet kalumet;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(),
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-      return;
-    }
-    // update agent list model
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    agentListModel.add( "" );
-    for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    // select the item
-    agentField.setSelectedItem( archive.getAgent() );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationArchivesPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationArchivesPane.java
deleted file mode 100644
index d3e27f7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationArchivesPane.java
+++ /dev/null
@@ -1,773 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Archive;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.ArchiveClient;
-
-import java.util.Iterator;
-
-/**
- * JEE application archives pane.
- */
-public class ApplicationArchivesPane
-  extends ContentPane
-{
-
-  private ApplicationWindow parent;
-
-  private Grid grid;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String archiveName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the web service
-        ArchiveClient client = new ArchiveClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate =
-          client.check( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getServerName(),
-                        parent.getApplicationName(), archiveName );
-        if ( uptodate )
-        {
-          message = "JEE application " + parent.getApplicationName() + " archive " + archiveName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message =
-            "JEE application " + parent.getApplicationName() + " archive " + archiveName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message =
-          "JEE application " + parent.getApplicationName() + " archive " + archiveName + " status check failed: "
-            + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String archiveName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the web service
-        ArchiveClient client = new ArchiveClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getServerName(),
-                       parent.getApplicationName(), archiveName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getApplicationName() + " archive " + archiveName + " update failed: "
-          + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the archive object
-      Archive archive = parent.getApplication().getArchive( event.getActionCommand() );
-      if ( archive == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "archive.notfound" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the state and add change event
-      if ( archive.isActive() )
-      {
-        archive.setActive( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Disable JEE application archive " + archive.getName() );
-      }
-      else
-      {
-        archive.setActive( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Enable JEE application archive " + archive.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the archive object
-      Archive archive = parent.getApplication().getArchive( event.getActionCommand() );
-      if ( archive == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "archive.notfound" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the blocker state and add change event
-      if ( archive.isBlocker() )
-      {
-        archive.setBlocker( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for JEE application archive " + archive.getName() );
-      }
-      else
-      {
-        archive.setBlocker( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for JEE application archive " + archive.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      final String archiveName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // looking for the archive object
-            Archive archive = parent.getApplication().getArchive( archiveName );
-            if ( archive == null )
-            {
-              KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                Messages.getString( "archive.notfound" ),
-                parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-              return;
-            }
-            // delete the archive object
-            parent.getApplication().getArchives().remove( archive );
-            // add a change event
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete JEE application archive " + archive.getName() );
-            // change the updated flag
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( parent.getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      String archiveName = event.getActionCommand();
-      // add a message into the log pane and in the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JEE application " + parent.getApplicationName() + " archive " + archiveName + " status check in progress...",
-        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-      parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "JEE application " + parent.getApplicationName() + " archive " + archiveName + " check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.archiveName = archiveName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if there is no pending change
-      if ( parent.getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the archive name
-      final String archiveName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message in the log pane and in the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + parent.getApplicationName() + " archive " + archiveName + " update in progress...",
-              parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + parent.getApplicationName() + " archive " + archiveName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.archiveName = archiveName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + parent.getApplicationName() + " archive " + archiveName + " updated.",
-                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + parent.getApplicationName() + " archive " + archiveName + " updated" );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "archivewindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getServerName() + "_" + parent.getApplicationName() + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ApplicationArchiveWindow( ApplicationArchivesPane.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ApplicationArchiveWindow( ApplicationArchivesPane.this, null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the archive object
-      Archive archive = parent.getApplication().getArchive( event.getActionCommand() );
-      if ( archive == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( archive.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // up
-  private ActionListener up = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the archive object
-      Archive archive = parent.getApplication().getArchive( event.getActionCommand() );
-      if ( archive == null )
-      {
-        return;
-      }
-      // get the archive index
-      int index = parent.getApplication().getArchives().indexOf( archive );
-      // if the archive index is the first or if the archive object is not found
-      // or if the archives list doesn't contain at least two elements, do nothing
-      if ( index == 0 || index == -1 || parent.getApplication().getArchives().size() < 2 )
-      {
-        return;
-      }
-      // get the previous archive
-      Archive previous = (Archive) parent.getApplication().getArchives().get( index - 1 );
-      // switch the archives
-      parent.getApplication().getArchives().set( index, previous );
-      parent.getApplication().getArchives().set( index - 1, archive );
-      // update the pane
-      update();
-    }
-  };
-
-  // down
-  private ActionListener down = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the archive object
-      Archive archive = parent.getApplication().getArchive( event.getActionCommand() );
-      if ( archive == null )
-      {
-        return;
-      }
-      // get the archive index
-      int index = parent.getApplication().getArchives().indexOf( archive );
-      // if the archive index is the last one, or the archive not found
-      // or the archives list doesn't contain at least two elements,
-      // do nothing
-      if ( index == -1 || index == parent.getApplication().getArchives().size() - 1
-        || parent.getApplication().getArchives().size() < 2 )
-      {
-        return;
-      }
-      // get the next archive
-      Archive next = (Archive) parent.getApplication().getArchives().get( index + 1 );
-      // switch the archives
-      parent.getApplication().getArchives().set( index + 1, archive );
-      parent.getApplication().getArchives().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationArchivesPane</code>.
-   *
-   * @param parent the parent <code>ApplicationWindow</code>.
-   */
-  public ApplicationArchivesPane( ApplicationWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add the column content layout
-    Column content = new Column();
-    content.setInsets( new Insets( 2 ) );
-    add( content );
-
-    // add the create button
-    if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "archive.add" ), Styles.ADD );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add the archives grid
-    grid = new Grid( 5 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 10, Extent.PERCENT ) );
-    grid.setColumnWidth( 2, new Extent( 40, Extent.PERCENT ) );
-    grid.setColumnWidth( 3, new Extent( 40, Extent.PERCENT ) );
-    grid.setColumnWidth( 4, new Extent( 10, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // remove all archives grid children
-    grid.removeAll();
-    // add archives grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    Label uriHeader = new Label( Messages.getString( "uri" ) );
-    uriHeader.setStyleName( "grid.header" );
-    grid.add( uriHeader );
-    Label pathHeader = new Label( Messages.getString( "path" ) );
-    pathHeader.setStyleName( "grid.header" );
-    grid.add( pathHeader );
-    Label agentHeader = new Label( Messages.getString( "agent" ) );
-    agentHeader.setStyleName( "grid.header" );
-    grid.add( agentHeader );
-    // add archive
-    for ( Iterator archiveIterator = parent.getApplication().getArchives().iterator(); archiveIterator.hasNext(); )
-    {
-      Archive archive = (Archive) archiveIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setActionCommand( archive.getName() );
-      copyButton.addActionListener( copy );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( archive.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        activeButton.setActionCommand( archive.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( archive.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        blockerButton.setActionCommand( archive.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        // up
-        Button upButton = new Button( Styles.ARROW_UP );
-        upButton.setToolTipText( Messages.getString( "up" ) );
-        upButton.setActionCommand( archive.getName() );
-        upButton.addActionListener( up );
-        row.add( upButton );
-        // down
-        Button downButton = new Button( Styles.ARROW_DOWN );
-        downButton.setToolTipText( Messages.getString( "down" ) );
-        downButton.setActionCommand( archive.getName() );
-        downButton.addActionListener( down );
-        row.add( downButton );
-      }
-      // status
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setActionCommand( archive.getName() );
-      statusButton.addActionListener( status );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      row.add( statusButton );
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        // update
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setActionCommand( archive.getName() );
-        updateButton.addActionListener( update );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        row.add( updateButton );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setActionCommand( archive.getName() );
-        deleteButton.addActionListener( delete );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        row.add( deleteButton );
-      }
-      // name
-      Button name = new Button( archive.getName() );
-      name.setStyleName( "default" );
-      name.setActionCommand( archive.getName() );
-      name.addActionListener( edit );
-      grid.add( name );
-      // uri
-      Label uri = new Label( archive.getUri() );
-      uri.setStyleName( "default" );
-      grid.add( uri );
-      // path
-      Label path = new Label( archive.getPath() );
-      path.setStyleName( "default" );
-      grid.add( path );
-      // agent
-      Label agent = new Label( archive.getAgent() );
-      agent.setStyleName( "default" );
-      grid.add( agent );
-    }
-  }
-
-  /**
-   * Return the parent <code>ApplicationWindow</code>.
-   *
-   * @return the parent <code>ApplicationWindow</code>.
-   */
-  public ApplicationWindow getParentPane()
-  {
-    return parent;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationConfigurationFileWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationConfigurationFileWindow.java
deleted file mode 100644
index 939bcdd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationConfigurationFileWindow.java
+++ /dev/null
@@ -1,1077 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.ConfigurationFile;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Mapping;
-import org.apache.kalumet.ws.client.ConfigurationFileClient;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * JEE application configuration file window.
- */
-public class ApplicationConfigurationFileWindow
-  extends WindowPane
-{
-
-  private String configurationFileName;
-
-  private ConfigurationFile configurationFile;
-
-  private ApplicationConfigurationFilesPane parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextField uriField;
-
-  private TextField pathField;
-
-  private SelectField agentField;
-
-  private Grid mappingsGrid;
-
-  private TextField newMappingKeyField;
-
-  private TextField newMappingValueField;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent =
-          kalumet.getAgent( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        ConfigurationFileClient client = new ConfigurationFileClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate =
-          client.check( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName(),
-                        parent.getParentPane().getServerName(), parent.getParentPane().getApplicationName(),
-                        configurationFileName );
-        if ( uptodate )
-        {
-          message = "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-            + configurationFileName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-            + configurationFileName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-          + configurationFileName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent =
-          kalumet.getAgent( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        ConfigurationFileClient client = new ConfigurationFileClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName(),
-                       parent.getParentPane().getServerName(), parent.getParentPane().getApplicationName(),
-                       configurationFileName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-          + configurationFileName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the configuration file object
-      ApplicationConfigurationFileWindow.this.configurationFile =
-        parent.getParentPane().getApplication().getConfigurationFile( configurationFileName );
-      if ( ApplicationConfigurationFileWindow.this.configurationFile == null )
-      {
-        ApplicationConfigurationFileWindow.this.configurationFile = new ConfigurationFile();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ApplicationConfigurationFileWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the configuration file
-            parent.getParentPane().getApplication().getConfigurationFiles().remove( configurationFile );
-            // add a change event
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete JEE application configuration file " + configurationFile.getName() );
-            // change the updated flag
-            parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            ApplicationConfigurationFileWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String uriFieldValue = uriField.getText();
-      String pathFieldValue = pathField.getText();
-      String agentFieldValue = (String) agentField.getSelectedItem();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || uriFieldValue == null
-        || uriFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.warn.mandatory" ) );
-        return;
-      }
-      // if the user change the configuration file name, check if the new
-      // name doesn't already exist
-      if ( configurationFileName == null || ( configurationFileName != null && !configurationFileName.equals(
-        nameFieldValue ) ) )
-      {
-        if ( parent.getParentPane().getApplication().getConfigurationFile( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "configurationfile.warn.exists" ) );
-          return;
-        }
-      }
-      // add a change event
-      if ( configurationFileName != null )
-      {
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Change JEE application configuration file " + configurationFile.getName() );
-      }
-      // update the configuration file object
-      configurationFile.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        configurationFile.setActive( true );
-      }
-      else
-      {
-        configurationFile.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        configurationFile.setBlocker( true );
-      }
-      else
-      {
-        configurationFile.setBlocker( false );
-      }
-      configurationFile.setUri( uriFieldValue );
-      configurationFile.setPath( pathFieldValue );
-      configurationFile.setAgent( agentFieldValue );
-      // add the configuration file object if needed
-      if ( configurationFileName == null )
-      {
-        try
-        {
-          parent.getParentPane().getApplication().addConfigurationFile( configurationFile );
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add JEE application configuration file " + configurationFile.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "configurationfile.warn.exists" ) );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "configurationfile" ) + " " + configurationFile.getName() );
-      setId(
-        "configurationfilewindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + configurationFile.getName() );
-      configurationFileName = configurationFile.getName();
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the parent window
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( parent.getParentPane().getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a message into the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-          + configurationFileName + " status check in progress...",
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-          + configurationFileName + " status check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if no change has not been saved
-      if ( parent.getParentPane().getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-                + configurationFileName + " update in progress...",
-              parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-                + configurationFileName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-                        + configurationFileName + " updated.",
-                      parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + parent.getParentPane().getApplicationName() + " configuration file "
-                        + configurationFileName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // delete mapping
-  private ActionListener deleteMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the mapping object
-      Mapping mapping = configurationFile.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.warn.mapping.notfound" ) );
-        return;
-      }
-      // delete the mapping object
-      configurationFile.getMappings().remove( mapping );
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Delete JEE application configuration file " + configurationFile.getName() + " mapping " + mapping.getKey() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // edit mapping
-  private ActionListener editMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields
-      TextField keyField = (TextField) ApplicationConfigurationFileWindow.this.getComponent(
-        "configurationfilemappingkey_"
-          + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + configurationFileName + "_" + event.getActionCommand() );
-      TextField valueField = (TextField) ApplicationConfigurationFileWindow.this.getComponent(
-        "configurationfilemappingvalue_"
-          + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + configurationFileName + "_" + event.getActionCommand() );
-      // get fields value
-      String keyFieldValue = keyField.getText();
-      String valueFieldValue = valueField.getText();
-      // check fields
-      if ( keyFieldValue == null || keyFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.warn.mapping.mandatory" ) );
-        return;
-      }
-      // if the user change the mapping key, check if the key doesn't already
-      // exist
-      if ( !keyFieldValue.equals( event.getActionCommand() ) )
-      {
-        if ( configurationFile.getMapping( keyFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "configurationfile.warn.mapping.exists" ) );
-          return;
-        }
-      }
-      // looking for the mapping object
-      Mapping mapping = configurationFile.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.warn.mapping.notfound" ) );
-        return;
-      }
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Change JEE application configuration file " + configurationFile.getName() + " mapping " + mapping.getKey() );
-      // update the mapping
-      mapping.setKey( keyFieldValue );
-      mapping.setValue( valueFieldValue );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // create mapping
-  private ActionListener createMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String newMappingKeyFieldValue = newMappingKeyField.getText();
-      String newMappingValueFieldValue = newMappingValueField.getText();
-      // check fields
-      if ( newMappingKeyFieldValue == null || newMappingKeyFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.warn.mapping.mandatory" ) );
-        return;
-      }
-      // create the mapping object
-      Mapping mapping = new Mapping();
-      mapping.setKey( newMappingKeyFieldValue );
-      mapping.setValue( newMappingValueFieldValue );
-      try
-      {
-        configurationFile.addMapping( mapping );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.warn.mapping.exists" ) );
-        return;
-      }
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Add JEE application configuration file " + configurationFile.getName() + " mapping " + mapping.getKey() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // copy button
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( configurationFile.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof ConfigurationFile ) )
-      {
-        return;
-      }
-      configurationFile = (ConfigurationFile) copy;
-      configurationFileName = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy mapping
-  private ActionListener copyMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the mapping object
-      Mapping mapping = configurationFile.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( mapping.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste mapping
-  private ActionListener pasteMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof Mapping ) )
-      {
-        return;
-      }
-      // update new fields
-      newMappingKeyField.setText( ( (Mapping) copy ).getKey() );
-      newMappingValueField.setText( ( (Mapping) copy ).getValue() );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationConfigurationFileWindow</code>.
-   *
-   * @param parent                the <code>ApplicationConfigurationFilesPane</code>.
-   * @param configurationFileName the original <code>ConfigurationFile</code> name.
-   */
-  public ApplicationConfigurationFileWindow( ApplicationConfigurationFilesPane parent, String configurationFileName )
-  {
-    super();
-
-    // update the parent pane
-    this.parent = parent;
-
-    // update the configuration file name
-    this.configurationFileName = configurationFileName;
-
-    // update the configuration file object from the parent pane
-    this.configurationFile = parent.getParentPane().getApplication().getConfigurationFile( configurationFileName );
-    if ( this.configurationFile == null )
-    {
-      this.configurationFile = new ConfigurationFile();
-    }
-
-    if ( configurationFileName == null )
-    {
-      setTitle( Messages.getString( "configurationfile" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "configurationfile" ) + " " + configurationFileName );
-    }
-    setId(
-      "configurationfilewindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-        + "_" + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-        + configurationFileName );
-    setStyleName( "default" );
-    setWidth( new Extent( 450, Extent.PX ) );
-    setHeight( new Extent( 300, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    // add the status button
-    Button statusButton = new Button( Messages.getString( "status" ), Styles.INFORMATION );
-    statusButton.setStyleName( "control" );
-    statusButton.addActionListener( status );
-    controlRow.add( statusButton );
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "tab.content" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    activeField.setSelectedIndex( 0 );
-    generalLayoutGrid.add( activeField );
-    // blocker
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    blockerField.setSelectedIndex( 1 );
-    generalLayoutGrid.add( blockerField );
-    // URI
-    Label uriLabel = new Label( Messages.getString( "uri" ) );
-    uriLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( uriLabel );
-    uriField = new TextField();
-    uriField.setStyleName( "default" );
-    uriField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( uriField );
-    // path
-    Label pathLabel = new Label( Messages.getString( "path" ) );
-    pathLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( pathLabel );
-    pathField = new TextField();
-    pathField.setStyleName( "default" );
-    pathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( pathField );
-    // agent
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( agentField );
-
-    // add the mappings tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "mappings" ) );
-    ContentPane mappingsTabPane = new ContentPane();
-    mappingsTabPane.setStyleName( "tab.content" );
-    mappingsTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( mappingsTabPane );
-    mappingsGrid = new Grid( 3 );
-    mappingsGrid.setStyleName( "border.grid" );
-    mappingsGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    mappingsGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    mappingsGrid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    mappingsTabPane.add( mappingsGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the window
-   */
-  public void update()
-  {
-    // update the configuration file name field
-    nameField.setText( configurationFile.getName() );
-    // update the configuration file active field
-    if ( configurationFile.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the configuration file blocker field
-    if ( configurationFile.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the configuration file uri field
-    uriField.setText( configurationFile.getUri() );
-    // update the configuration file path field
-    pathField.setText( configurationFile.getPath() );
-    // update the agent field
-    List agentList = new LinkedList();
-    try
-    {
-      Kalumet kalumet = ConfigurationManager.loadStore();
-      agentList = kalumet.getAgents();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(),
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-    }
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    agentListModel.add( "" );
-    for ( Iterator agentIterator = agentList.iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    agentField.setSelectedItem( configurationFile.getAgent() );
-    // remove all mappings grid children
-    mappingsGrid.removeAll();
-    // add mappings grid header
-    Label mappingActionHeader = new Label( " " );
-    mappingActionHeader.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingActionHeader );
-    Label mappingKeyLabel = new Label( Messages.getString( "key" ) );
-    mappingKeyLabel.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingKeyLabel );
-    Label mappingValueLabel = new Label( Messages.getString( "value" ) );
-    mappingValueLabel.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingValueLabel );
-    // add mappings
-    for ( Iterator mappingIterator = configurationFile.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      mappingsGrid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( mapping.getKey() );
-      copyButton.addActionListener( copyMapping );
-      row.add( copyButton );
-      // delete / edit
-      if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( mapping.getKey() );
-        editButton.addActionListener( editMapping );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( mapping.getKey() );
-        deleteButton.addActionListener( deleteMapping );
-        row.add( deleteButton );
-      }
-      // mapping key
-      TextField mappingKeyField = new TextField();
-      mappingKeyField.setStyleName( "default" );
-      mappingKeyField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingKeyField.setId( "configurationfilemappingkey_"
-                               + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-                               + "_" + parent.getParentPane().getServerName() + "_"
-                               + parent.getParentPane().getApplicationName() + "_" + configurationFileName + "_"
-                               + mapping.getKey() );
-      mappingKeyField.setText( mapping.getKey() );
-      mappingsGrid.add( mappingKeyField );
-      // mapping value
-      TextField mappingValueField = new TextField();
-      mappingValueField.setStyleName( "default" );
-      mappingValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingValueField.setId( "configurationfilemappingvalue_"
-                                 + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-                                 + "_" + parent.getParentPane().getServerName() + "_"
-                                 + parent.getParentPane().getApplicationName() + "_" + configurationFileName + "_"
-                                 + mapping.getKey() );
-      mappingValueField.setText( mapping.getValue() );
-      mappingsGrid.add( mappingValueField );
-    }
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      mappingsGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteMapping );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( createMapping );
-      row.add( addButton );
-      // key
-      newMappingKeyField = new TextField();
-      newMappingKeyField.setStyleName( "default" );
-      newMappingKeyField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingsGrid.add( newMappingKeyField );
-      // value
-      newMappingValueField = new TextField();
-      newMappingValueField.setStyleName( "default" );
-      newMappingValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingsGrid.add( newMappingValueField );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationConfigurationFilesPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationConfigurationFilesPane.java
deleted file mode 100644
index 367f815..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationConfigurationFilesPane.java
+++ /dev/null
@@ -1,773 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.ConfigurationFile;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.ConfigurationFileClient;
-
-import java.util.Iterator;
-
-/**
- * JEE application configuration files pane.
- */
-public class ApplicationConfigurationFilesPane
-  extends ContentPane
-{
-
-  private ApplicationWindow parent;
-
-  private Grid grid;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String configurationFileName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the web service
-        ConfigurationFileClient client = new ConfigurationFileClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate =
-          client.check( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getServerName(),
-                        parent.getApplicationName(), configurationFileName );
-        if ( uptodate )
-        {
-          message = "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-            + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-            + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-          + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String configurationFileName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the web service
-        ConfigurationFileClient client = new ConfigurationFileClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getServerName(),
-                       parent.getApplicationName(), configurationFileName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-          + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the configuration file object
-      ConfigurationFile configurationFile = parent.getApplication().getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.notfound" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the state and add a change event
-      if ( configurationFile.isActive() )
-      {
-        configurationFile.setActive( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Disable JEE application configuration file " + configurationFile.getName() );
-      }
-      else
-      {
-        configurationFile.setActive( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Enable JEE application configuration file " + configurationFile.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the configuration file object
-      ConfigurationFile configurationFile = parent.getApplication().getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.notfound" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the blocker state and add a change event
-      if ( configurationFile.isBlocker() )
-      {
-        configurationFile.setBlocker( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for JEE application configuration file " + configurationFile.getName() );
-      }
-      else
-      {
-        configurationFile.setBlocker( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for JEE application configuration file " + configurationFile.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the configuration file object
-      final ConfigurationFile configurationFile =
-        parent.getApplication().getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.notfound" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the configuration file object
-            parent.getApplication().getConfigurationFiles().remove( configurationFile );
-            // add a change event
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete JEE application configuration file " + configurationFile.getName() );
-            // change the updated flag
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "configurationfilewindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getServerName() + "_" + parent.getApplicationName() + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ApplicationConfigurationFileWindow( ApplicationConfigurationFilesPane.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ApplicationConfigurationFileWindow( ApplicationConfigurationFilesPane.this, null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the configuration file object
-      ConfigurationFile configurationFile = parent.getApplication().getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( configurationFile.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // up
-  private ActionListener up = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the configuration file object
-      ConfigurationFile configurationFile = parent.getApplication().getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        return;
-      }
-      // get the configuration file index
-      int index = parent.getApplication().getConfigurationFiles().indexOf( configurationFile );
-      // if the index is the first one, or the configuration file is not found
-      // or the configuration files list doesn't contain at least two elements
-      // do nothing
-      if ( index == 0 || index == -1 || parent.getApplication().getConfigurationFiles().size() < 2 )
-      {
-        return;
-      }
-      // get the previous configuration file
-      ConfigurationFile previous = (ConfigurationFile) parent.getApplication().getConfigurationFiles().get( index - 1 );
-      // switch the configuration files
-      parent.getApplication().getConfigurationFiles().set( index - 1, configurationFile );
-      parent.getApplication().getConfigurationFiles().set( index, previous );
-      // update the pane
-      update();
-    }
-  };
-
-  // down
-  private ActionListener down = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the configuration file object
-      ConfigurationFile configurationFile = parent.getApplication().getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        return;
-      }
-      // get the configuration file index
-      int index = parent.getApplication().getConfigurationFiles().indexOf( configurationFile );
-      // if the index is the last one, or the configuration file is not found
-      // or if the configuration files list doesn't contain at least two elements
-      // do nothing
-      if ( index == -1 || index == parent.getApplication().getConfigurationFiles().size() - 1
-        || parent.getApplication().getConfigurationFiles().size() < 2 )
-      {
-        return;
-      }
-      // get the next configuration file
-      ConfigurationFile next = (ConfigurationFile) parent.getApplication().getConfigurationFiles().get( index + 1 );
-      // switch the configuration files
-      parent.getApplication().getConfigurationFiles().set( index + 1, configurationFile );
-      parent.getApplication().getConfigurationFiles().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( parent.getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "environment.notsaved" ),
-                                                                          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      String configurationFileName = event.getActionCommand();
-      // add a message into the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-          + " status check in progress...", parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-      parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-          + " status check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.configurationFileName = configurationFileName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if a change has not been saved
-      if ( parent.getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the configuration file name
-      final String configurationFileName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message in the log pane and in the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-                + " update in progress...", parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-                + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.configurationFileName = configurationFileName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-                        + " updated.", parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + parent.getApplicationName() + " configuration file " + configurationFileName
-                        + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationConfigurationFilesPane</code>.
-   *
-   * @param parent the parent <code>ApplicationWindow</code>
-   */
-  public ApplicationConfigurationFilesPane( ApplicationWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout content
-    Column content = new Column();
-    add( content );
-
-    // add the create button
-    if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "configurationfile.add" ), Styles.ADD );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add the configuration files grid
-    grid = new Grid( 5 );
-    grid.setStyleName( "border.grid" );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // remove all configuration files grid children
-    grid.removeAll();
-    // add configuration files grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    Label uriHeader = new Label( Messages.getString( "uri" ) );
-    uriHeader.setStyleName( "grid.header" );
-    grid.add( uriHeader );
-    Label pathHeader = new Label( Messages.getString( "path" ) );
-    pathHeader.setStyleName( "grid.header" );
-    grid.add( pathHeader );
-    Label agentHeader = new Label( Messages.getString( "agent" ) );
-    agentHeader.setStyleName( "grid.header" );
-    grid.add( agentHeader );
-    // add configuration file
-    for ( Iterator configurationFileIterator = parent.getApplication().getConfigurationFiles().iterator();
-          configurationFileIterator.hasNext(); )
-    {
-      ConfigurationFile configurationFile = (ConfigurationFile) configurationFileIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setActionCommand( configurationFile.getName() );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( configurationFile.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        activeButton.setActionCommand( configurationFile.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( configurationFile.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        blockerButton.setActionCommand( configurationFile.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // up
-      Button upButton = new Button( Styles.ARROW_UP );
-      upButton.setToolTipText( Messages.getString( "up" ) );
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        upButton.setActionCommand( configurationFile.getName() );
-        upButton.addActionListener( up );
-      }
-      row.add( upButton );
-      // down
-      Button downButton = new Button( Styles.ARROW_DOWN );
-      downButton.setToolTipText( Messages.getString( "down" ) );
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        downButton.setActionCommand( configurationFile.getName() );
-        downButton.addActionListener( down );
-      }
-      row.add( downButton );
-      // status
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      statusButton.setActionCommand( configurationFile.getName() );
-      statusButton.addActionListener( status );
-      row.add( statusButton );
-      // update
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( configurationFile.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      // delete
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( configurationFile.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      Button name = new Button( configurationFile.getName() );
-      name.setActionCommand( configurationFile.getName() );
-      name.addActionListener( edit );
-      grid.add( name );
-      // uri
-      Label uri = new Label( configurationFile.getUri() );
-      uri.setStyleName( "default" );
-      grid.add( uri );
-      // path
-      Label path = new Label( configurationFile.getPath() );
-      path.setStyleName( "default" );
-      grid.add( path );
-      // agent
-      Label agent = new Label( configurationFile.getAgent() );
-      agent.setStyleName( "default" );
-      grid.add( agent );
-    }
-  }
-
-  /**
-   * Return the <code>ApplicationWindow</code> parent pane.
-   *
-   * @return the parent <code>ApplicationWindow</code>.
-   */
-  public ApplicationWindow getParentPane()
-  {
-    return parent;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationContentManagerWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationContentManagerWindow.java
deleted file mode 100644
index f7f0ff6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationContentManagerWindow.java
+++ /dev/null
@@ -1,961 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.ContentManager;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Property;
-import org.apache.kalumet.ws.client.ContentManagerClient;
-
-import java.util.Iterator;
-
-/**
- * JEE application content manager window.
- */
-public class ApplicationContentManagerWindow
-  extends WindowPane
-{
-
-  private String contentManagerName;
-
-  private ContentManager contentManager;
-
-  private ApplicationContentManagersPane parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextField classnameField;
-
-  private SelectField agentField;
-
-  private Grid propertiesGrid;
-
-  private TextField newPropertyNameField;
-
-  private TextField newPropertyValueField;
-
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent =
-          kalumet.getAgent( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        ContentManagerClient client = new ContentManagerClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName(),
-                       parent.getParentPane().getServerName(), parent.getParentPane().getApplicationName(),
-                       contentManagerName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message =
-          "JEE application " + parent.getParentPane().getApplicationName() + " content manager " + contentManagerName
-            + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the content manager object
-      ApplicationContentManagerWindow.this.contentManager =
-        parent.getParentPane().getApplication().getContentManager( contentManagerName );
-      if ( ApplicationContentManagerWindow.this.contentManager == null )
-      {
-        ApplicationContentManagerWindow.this.contentManager = new ContentManager();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ApplicationContentManagerWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the content manager
-            parent.getParentPane().getApplication().getContentManagers().remove( contentManager );
-            // add a change event
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-                + contentManager.getName() );
-            // change the updated flag
-            parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            ApplicationContentManagerWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String classnameFieldValue = classnameField.getText();
-      String agentFieldValue = (String) agentField.getSelectedItem();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || classnameFieldValue == null
-        || classnameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "contentmanager.mandatory" ),
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the content manager name, check if the new
-      // content manager name doesn't already exist
-      if ( contentManagerName == null || ( contentManagerName != null && !contentManagerName.equals(
-        nameFieldValue ) ) )
-      {
-        if ( parent.getParentPane().getApplication().getContentManager( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "contentmanager.exists" ),
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( contentManagerName != null )
-      {
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Change JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-            + contentManager.getName() );
-      }
-      // update the content manager object
-      contentManager.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        contentManager.setActive( true );
-      }
-      else
-      {
-        contentManager.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        contentManager.setBlocker( true );
-      }
-      else
-      {
-        contentManager.setBlocker( false );
-      }
-      contentManager.setClassname( classnameFieldValue );
-      contentManager.setAgent( agentFieldValue );
-      // add the content manager object if needed
-      if ( contentManagerName == null )
-      {
-        try
-        {
-          parent.getParentPane().getApplication().addContentManager( contentManager );
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-              + contentManager.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "contentmanager.exists" ),
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "contentmanager" ) + " " + contentManager.getName() );
-      setId(
-        "contentmanagerwindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + contentManager.getName() );
-      contentManagerName = contentManager.getName();
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the parent window
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // delete property
-  private ActionListener deleteProperty = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the property object
-      Property property = contentManager.getProperty( event.getActionCommand() );
-      if ( property == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "property.notfound" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // delete the property object
-      contentManager.getProperties().remove( property );
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Delete JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-          + contentManager.getName() + " property " + property.getName() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // edit property
-  private ActionListener editProperty = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields
-      TextField propertyNameField = (TextField) ApplicationContentManagerWindow.this.getComponent(
-        "propertyname_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + contentManagerName + "_" + event.getActionCommand() );
-      TextField propertyValueField = (TextField) ApplicationContentManagerWindow.this.getComponent(
-        "propertyvalue_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + contentManagerName + "_" + event.getActionCommand() );
-      // get fields value
-      String propertyNameFieldValue = propertyNameField.getText();
-      String propertyValueFieldValue = propertyValueField.getText();
-      // check fields
-      if ( propertyNameFieldValue == null || propertyNameFieldValue.trim().length() < 1
-        || propertyValueFieldValue == null || propertyValueFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "contentmanager.mandatory" ),
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the property name, check if the name doens't
-      // already exist
-      if ( !propertyNameFieldValue.equals( event.getActionCommand() ) )
-      {
-        if ( contentManager.getProperty( propertyNameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "contentmanager.exists" ),
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the property object
-      Property property = contentManager.getProperty( event.getActionCommand() );
-      if ( property == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "property.notfound" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Change JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-          + contentManagerName + " property " + property.getName() );
-      // update the property
-      property.setName( propertyNameFieldValue );
-      property.setValue( propertyValueFieldValue );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // create property
-  private ActionListener createProperty = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String newPropertyNameFieldValue = newPropertyNameField.getText();
-      String newPropertyValueFieldValue = newPropertyValueField.getText();
-      // check fields
-      if ( newPropertyNameFieldValue == null || newPropertyNameFieldValue.trim().length() < 1
-        || newPropertyValueFieldValue == null || newPropertyValueFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "property.mandatory" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the property object
-      Property property = new Property();
-      property.setName( newPropertyNameFieldValue );
-      property.setValue( newPropertyValueFieldValue );
-      try
-      {
-        contentManager.addProperty( property );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "property.exists" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Add JEE application " + parent.getParentPane().getApplicationName() + " content manager " + contentManagerName
-          + " property " + property.getName() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( contentManager.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof ContentManager ) )
-      {
-        return;
-      }
-      contentManager = (ContentManager) copy;
-      contentManagerName = null;
-      // update the parent pane
-      parent.update();
-      // upate the window
-      update();
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if a change has not been saved
-      if ( parent.getParentPane().getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-                + contentManagerName + " update in progress...",
-              parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-                + contentManagerName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-                        + contentManagerName + " updated.",
-                      parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + parent.getParentPane().getApplicationName() + " content manager "
-                        + contentManagerName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // copy property
-  private ActionListener copyProperty = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the property object
-      Property property = contentManager.getProperty( event.getActionCommand() );
-      if ( property == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( property );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste property
-  private ActionListener pasteProperty = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof Property ) )
-      {
-        return;
-      }
-      // update the new fields
-      newPropertyNameField.setText( ( (Property) copy ).getName() );
-      newPropertyValueField.setText( ( (Property) copy ).getValue() );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationContentManagerWindow</code>.
-   *
-   * @param parent             the <code>ApplicationContentManagersPane</code>.
-   * @param contentManagerName the original <code>ContentManager</code> name.
-   */
-  public ApplicationContentManagerWindow( ApplicationContentManagersPane parent, String contentManagerName )
-  {
-    super();
-
-    // update the parent pane
-    this.parent = parent;
-
-    // update the content manager name
-    this.contentManagerName = contentManagerName;
-
-    // update the content manager object from the parent pane
-    this.contentManager = parent.getParentPane().getApplication().getContentManager( contentManagerName );
-    if ( this.contentManager == null )
-    {
-      this.contentManager = new ContentManager();
-    }
-
-    if ( contentManagerName == null )
-    {
-      setTitle( Messages.getString( "contentmanager" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "contentmanager" ) + " " + contentManagerName );
-    }
-    setId(
-      "contentmanagerwindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-        + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-        + contentManagerName );
-    setStyleName( "default" );
-    setWidth( new Extent( 450, Extent.PX ) );
-    setHeight( new Extent( 300, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    // add the update button
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-    {
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "tab.content" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setSelectedIndex( 0 );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( activeField );
-    // blocker
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setSelectedIndex( 1 );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( blockerField );
-    // classname
-    Label classnameLabel = new Label( Messages.getString( "classname" ) );
-    classnameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( classnameLabel );
-    classnameField = new TextField();
-    classnameField.setStyleName( "default" );
-    classnameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( classnameField );
-    // agent
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    generalLayoutGrid.add( agentField );
-
-    // add the properties tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "properties" ) );
-    ContentPane propertiesTabPane = new ContentPane();
-    propertiesTabPane.setStyleName( "tab.content" );
-    propertiesTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( propertiesTabPane );
-    propertiesGrid = new Grid( 3 );
-    propertiesGrid.setStyleName( "grid.border" );
-    propertiesGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    propertiesGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    propertiesGrid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    propertiesTabPane.add( propertiesGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the window
-   */
-  public void update()
-  {
-    // update the content manager name field
-    nameField.setText( contentManager.getName() );
-    // update the content manager active field
-    if ( contentManager.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the content manager blocker field
-    if ( contentManager.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the classname field
-    classnameField.setText( contentManager.getClassname() );
-    // update the agent field
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    agentListModel.add( "" );
-    try
-    {
-      Kalumet kalumet = ConfigurationManager.loadStore();
-      for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-      {
-        Agent agent = (Agent) agentIterator.next();
-        agentListModel.add( agent.getId() );
-      }
-      agentField.setSelectedItem( contentManager.getAgent() );
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(),
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-    }
-    // remove all properties grid children
-    propertiesGrid.removeAll();
-    // add properties grid header
-    Label propertyActionHeader = new Label( " " );
-    propertyActionHeader.setStyleName( "grid.header" );
-    propertiesGrid.add( propertyActionHeader );
-    Label propertyNameHeader = new Label( Messages.getString( "name" ) );
-    propertyNameHeader.setStyleName( "grid.header" );
-    propertiesGrid.add( propertyNameHeader );
-    Label propertyValueHeader = new Label( Messages.getString( "value" ) );
-    propertyValueHeader.setStyleName( "grid.header" );
-    propertiesGrid.add( propertyValueHeader );
-    // add properties
-    for ( Iterator propertyIterator = contentManager.getProperties().iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      propertiesGrid.add( row );
-      // property copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( property.getName() );
-      copyButton.addActionListener( copyProperty );
-      row.add( copyButton );
-      // property delete / edit
-      if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        // property edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( property.getName() );
-        editButton.addActionListener( editProperty );
-        row.add( editButton );
-        // property delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( property.getName() );
-        deleteButton.addActionListener( deleteProperty );
-        row.add( deleteButton );
-      }
-      // property name
-      TextField propertyNameField = new TextField();
-      propertyNameField.setStyleName( "default" );
-      propertyNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      propertyNameField.setId(
-        "propertyname_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + contentManagerName + "_" + property.getName() );
-      propertyNameField.setText( property.getName() );
-      propertiesGrid.add( propertyNameField );
-      // property value
-      TextField propertyValueField = new TextField();
-      propertyValueField.setStyleName( "default" );
-      propertyValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      propertyValueField.setId(
-        "propertyvalue_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + contentManagerName + "_" + property.getName() );
-      propertyValueField.setText( property.getValue() );
-      propertiesGrid.add( propertyValueField );
-    }
-    // add the adding property row
-    if ( parent.getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      propertiesGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteProperty );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( createProperty );
-      row.add( addButton );
-      // new property name
-      newPropertyNameField = new TextField();
-      newPropertyNameField.setStyleName( "default" );
-      newPropertyNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      propertiesGrid.add( newPropertyNameField );
-      // new property value
-      newPropertyValueField = new TextField();
-      newPropertyValueField.setStyleName( "default" );
-      newPropertyValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      propertiesGrid.add( newPropertyValueField );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationContentManagersPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationContentManagersPane.java
deleted file mode 100644
index ac33590..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationContentManagersPane.java
+++ /dev/null
@@ -1,547 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.ContentManager;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.ContentManagerClient;
-
-import java.util.Iterator;
-
-/**
- * JEE application content managers pane.
- */
-public class ApplicationContentManagersPane
-  extends ContentPane
-{
-
-  private ApplicationWindow parent;
-
-  private Grid grid;
-
-  class UpdateThread
-    extends Thread
-  {
-
-    public String contentManagerName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        ContentManagerClient client = new ContentManagerClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getServerName(),
-                       parent.getApplicationName(), contentManagerName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getApplicationName() + " content manager " + contentManagerName
-          + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the content manager object
-      ContentManager contentManager = parent.getApplication().getContentManager( event.getActionCommand() );
-      if ( contentManager == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "contentmanager.notfound" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the state and add a change event
-      if ( contentManager.isActive() )
-      {
-        contentManager.setActive( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Disable JEE application " + parent.getApplicationName() + " content manager " + contentManager.getName() );
-      }
-      else
-      {
-        contentManager.setActive( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Enable JEE application " + parent.getApplicationName() + " content manager " + contentManager.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the content manager object
-      ContentManager contentManager = parent.getApplication().getContentManager( event.getActionCommand() );
-      if ( contentManager == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "contentmanager.notfound" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the blocker state and add a change event
-      if ( contentManager.isBlocker() )
-      {
-        contentManager.setBlocker( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for JEE application " + parent.getApplicationName() + " content manager "
-            + contentManager.getName() );
-      }
-      else
-      {
-        contentManager.setBlocker( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for JEE application " + parent.getApplicationName() + " content manager "
-            + contentManager.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the content manager object
-      final ContentManager contentManager = parent.getApplication().getContentManager( event.getActionCommand() );
-      if ( contentManager == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "contentmanager.notfound" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the content manager object
-            parent.getApplication().getContentManagers().remove( contentManager );
-            // add a change event
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete JEE application " + parent.getApplicationName() + " content manager "
-                + contentManager.getName() );
-            // change the updated flag
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if a change has not been saved
-      if ( parent.getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the content manager name
-      final String contentManagerName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + parent.getApplicationName() + " content manager " + contentManagerName
-                + " update in progress...", parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + parent.getApplicationName() + " content manager " + contentManagerName
-                + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.contentManagerName = contentManagerName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + parent.getApplicationName() + " content manager " + contentManagerName
-                        + " updated.", parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + parent.getApplicationName() + " content manager " + contentManagerName
-                        + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "contentmanagerwindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getServerName() + "_" + parent.getApplicationName() + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ApplicationContentManagerWindow( ApplicationContentManagersPane.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ApplicationContentManagerWindow( ApplicationContentManagersPane.this, null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the content manager object
-      ContentManager contentManager = parent.getApplication().getContentManager( event.getActionCommand() );
-      if ( contentManager == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( contentManager.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationContentManagersPane</code>.
-   *
-   * @param parent the parent <code>ApplicationWindow</code>.
-   */
-  public ApplicationContentManagersPane( ApplicationWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout content
-    Column content = new Column();
-    add( content );
-
-    // add the create button
-    if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "contentmanager.add" ), Styles.ADD );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add the content managers grid
-    grid = new Grid( 4 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // remove all content mangers grid children
-    grid.removeAll();
-    // add content managers grid header
-    // action header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    // name header
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    // classname header
-    Label classnameHeader = new Label( Messages.getString( "classname" ) );
-    classnameHeader.setStyleName( "grid.header" );
-    grid.add( classnameHeader );
-    // agent header
-    Label agentHeader = new Label( Messages.getString( "agent" ) );
-    agentHeader.setStyleName( "grid.header" );
-    grid.add( agentHeader );
-    // add content manager
-    for ( Iterator contentManagerIterator = parent.getApplication().getContentManagers().iterator();
-          contentManagerIterator.hasNext(); )
-    {
-      ContentManager contentManager = (ContentManager) contentManagerIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( contentManager.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( contentManager.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        activeButton.setActionCommand( contentManager.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( contentManager.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        blockerButton.setActionCommand( contentManager.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // up
-      // TODO
-      // down
-      // TODO
-      // update
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( contentManager.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      // delete
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( contentManager.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      Button name = new Button( contentManager.getName() );
-      name.setStyleName( "default" );
-      name.setActionCommand( contentManager.getName() );
-      name.addActionListener( edit );
-      grid.add( name );
-      // classname
-      Label classname = new Label( contentManager.getClassname() );
-      classname.setStyleName( "default" );
-      grid.add( classname );
-      // agent
-      Label agent = new Label( contentManager.getAgent() );
-      agent.setStyleName( "default" );
-      grid.add( agent );
-    }
-  }
-
-  /**
-   * Get the parent <code>ApplicationWindow</code>.
-   *
-   * @return the parent <code>ApplicationWindow</code>.
-   */
-  public ApplicationWindow getParentPane()
-  {
-    return parent;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabaseSqlScriptWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabaseSqlScriptWindow.java
deleted file mode 100644
index 0db5970..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabaseSqlScriptWindow.java
+++ /dev/null
@@ -1,814 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.model.Mapping;
-import org.apache.kalumet.model.SqlScript;
-
-import java.util.Iterator;
-
-/**
- * JEE application database sql script window.
- */
-public class ApplicationDatabaseSqlScriptWindow
-  extends WindowPane
-{
-
-  private String sqlScriptName;
-
-  private SqlScript sqlScript;
-
-  private ApplicationDatabaseWindow parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private SelectField forceField;
-
-  private TextField uriField;
-
-  private Grid mappingsGrid;
-
-  private TextField newMappingKeyField;
-
-  private TextField newMappingValueField;
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the sql script object
-      ApplicationDatabaseSqlScriptWindow.this.sqlScript = parent.getDatabase().getSqlScript( sqlScriptName );
-      if ( ApplicationDatabaseSqlScriptWindow.this.sqlScript == null )
-      {
-        ApplicationDatabaseSqlScriptWindow.this.sqlScript = new SqlScript();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ApplicationDatabaseSqlScriptWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the sql script
-            parent.getDatabase().getSqlScripts().remove( sqlScript );
-            // add a change event
-            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete SQL script " + sqlScript.getName() );
-            // change the updated flag
-            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            ApplicationDatabaseSqlScriptWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      int forceFieldIndex = forceField.getSelectedIndex();
-      String uriFieldValue = uriField.getText();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || uriFieldValue == null
-        || uriFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sql.script.mandatory" ),
-          parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the sql script name, check if the new name
-      // doesn't already exist
-      if ( sqlScriptName == null || ( sqlScriptName != null && !sqlScriptName.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getDatabase().getSqlScript( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sql.script.exists" ),
-                                                                              parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( sqlScriptName != null )
-      {
-        parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Change SQL script " + sqlScript.getName() );
-      }
-      // update the sql script object
-      sqlScript.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        sqlScript.setActive( true );
-      }
-      else
-      {
-        sqlScript.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        sqlScript.setBlocker( true );
-      }
-      else
-      {
-        sqlScript.setBlocker( false );
-      }
-      if ( forceFieldIndex == 0 )
-      {
-        sqlScript.setForce( true );
-      }
-      else
-      {
-        sqlScript.setForce( false );
-      }
-      sqlScript.setUri( uriFieldValue );
-      // add the sql script object if needed
-      if ( sqlScriptName == null )
-      {
-        try
-        {
-          parent.getDatabase().addSqlScript( sqlScript );
-          parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add SQL script " + sqlScript.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sql.script.exists" ),
-                                                                              parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "sql.script" ) + " " + sqlScript.getName() );
-      setId( "sqlscriptwindow_"
-               + parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-               + "_" + parent.getParentPane().getParentPane().getServerName() + "_"
-               + parent.getParentPane().getParentPane().getApplicationName() + "_" + parent.getDatabaseName() + "_"
-               + sqlScript.getName() );
-      sqlScriptName = sqlScript.getName();
-      // change the updated flag
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the parent window
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // delete mapping
-  public ActionListener deleteMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the mapping object
-      Mapping mapping = sqlScript.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.notfound" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // delete the mapping object
-      sqlScript.getMappings().remove( mapping );
-      // add a change event
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Delete SQL script " + sqlScript.getName() + " mapping " + mapping.getKey() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // edit mapping
-  private ActionListener editMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields
-      TextField mappingKeyField = (TextField) ApplicationDatabaseSqlScriptWindow.this.getComponent( "mappingkey_"
-                                                                                                      + parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-                                                                                                      + "_"
-                                                                                                      + parent.getParentPane().getParentPane().getServerName()
-                                                                                                      + "_"
-                                                                                                      + parent.getParentPane().getParentPane().getApplicationName()
-                                                                                                      + "_"
-                                                                                                      + parent.getDatabaseName()
-                                                                                                      + "_"
-                                                                                                      + sqlScriptName
-                                                                                                      + "_"
-                                                                                                      + event.getActionCommand() );
-      TextField mappingValueField = (TextField) ApplicationDatabaseSqlScriptWindow.this.getComponent( "mappingvalue_"
-                                                                                                        + parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-                                                                                                        + "_"
-                                                                                                        + parent.getParentPane().getParentPane().getServerName()
-                                                                                                        + "_"
-                                                                                                        + parent.getParentPane().getParentPane().getApplicationName()
-                                                                                                        + "_"
-                                                                                                        + parent.getDatabaseName()
-                                                                                                        + "_"
-                                                                                                        + sqlScriptName
-                                                                                                        + "_"
-                                                                                                        + event.getActionCommand() );
-      // get fields value
-      String mappingKeyFieldValue = mappingKeyField.getText();
-      String mappingValueFieldValue = mappingValueField.getText();
-      // check fields
-      if ( mappingKeyFieldValue == null || mappingKeyFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.mandatory" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the mapping key, check if the key doesn't already
-      // exists
-      if ( !mappingKeyFieldValue.equals( event.getActionCommand() ) )
-      {
-        if ( sqlScript.getMapping( mappingKeyFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.exists" ),
-                                                                              parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the mapping object
-      Mapping mapping = sqlScript.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.notfound" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add change event
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Change SQL script " + sqlScript.getName() + " mapping " + mapping.getKey() );
-      // update the mapping
-      mapping.setKey( mappingKeyFieldValue );
-      mapping.setValue( mappingValueFieldValue );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // create mapping
-  private ActionListener createMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String newMappingKeyFieldValue = newMappingKeyField.getText();
-      String newMappingValueFieldValue = newMappingValueField.getText();
-      // check fields
-      if ( newMappingKeyFieldValue == null || newMappingKeyFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.mandatory" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the mapping object
-      Mapping mapping = new Mapping();
-      mapping.setKey( newMappingKeyFieldValue );
-      mapping.setValue( newMappingValueFieldValue );
-      try
-      {
-        sqlScript.addMapping( mapping );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.exists" ),
-                                                                            parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Add SQL script " + sqlScript.getName() + " mapping " + mapping.getKey() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( sqlScript.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof SqlScript ) )
-      {
-        return;
-      }
-      sqlScript = (SqlScript) copy;
-      sqlScriptName = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy mapping
-  private ActionListener copyMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the mapping object
-      Mapping mapping = sqlScript.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( mapping.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste mapping
-  private ActionListener pasteMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof Mapping ) )
-      {
-        return;
-      }
-      // update new field
-      newMappingKeyField.setText( ( (Mapping) copy ).getKey() );
-      newMappingValueField.setText( ( (Mapping) copy ).getValue() );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationDatabaseSqlScriptWindow</code>.
-   *
-   * @param parent        the parent <code>ApplicationDatabaseWindow</code>.
-   * @param sqlScriptName the original <code>SqlScript</code> name.
-   */
-  public ApplicationDatabaseSqlScriptWindow( ApplicationDatabaseWindow parent, String sqlScriptName )
-  {
-    super();
-
-    // update the parent pane
-    this.parent = parent;
-
-    // update the sql script name
-    this.sqlScriptName = sqlScriptName;
-
-    // update the sql script object from the parent pane
-    this.sqlScript = parent.getDatabase().getSqlScript( sqlScriptName );
-    if ( this.sqlScript == null )
-    {
-      this.sqlScript = new SqlScript();
-    }
-
-    if ( sqlScriptName == null )
-    {
-      setTitle( Messages.getString( "sql.script" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "sql.script" ) + " " + sqlScriptName );
-    }
-    setId( "sqlscriptwindow_"
-             + parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-             + parent.getParentPane().getParentPane().getServerName() + "_"
-             + parent.getParentPane().getParentPane().getApplicationName() + "_" + parent.getDatabaseName() + "_"
-             + sqlScriptName );
-    setStyleName( "default" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "tab.content" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setSelectedIndex( 0 );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( activeField );
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setSelectedIndex( 0 );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( blockerField );
-    Label forceLabel = new Label( Messages.getString( "force" ) );
-    forceLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( forceLabel );
-    forceField = new SelectField( MainScreen.LABELS );
-    forceField.setSelectedIndex( 0 );
-    forceField.setStyleName( "default" );
-    forceField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( forceField );
-    Label uriLabel = new Label( Messages.getString( "uri" ) );
-    uriLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( uriLabel );
-    uriField = new TextField();
-    uriField.setStyleName( "default" );
-    uriField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( uriField );
-
-    // add the mappings tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "mappings" ) );
-    ContentPane mappingsTabPane = new ContentPane();
-    mappingsTabPane.setStyleName( "tab.content" );
-    mappingsTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( mappingsTabPane );
-    mappingsGrid = new Grid( 3 );
-    mappingsGrid.setStyleName( "grid.border" );
-    mappingsGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    mappingsGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    mappingsGrid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    mappingsTabPane.add( mappingsGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the window.
-   */
-  public void update()
-  {
-    // update the sql script name field
-    nameField.setText( sqlScript.getName() );
-    // update the sql script active field
-    if ( sqlScript.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the sql script blocker field
-    if ( sqlScript.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the sql script force field
-    if ( sqlScript.isForce() )
-    {
-      forceField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      forceField.setSelectedIndex( 1 );
-    }
-    // update the sql script uri field
-    uriField.setText( sqlScript.getUri() );
-
-    // remove all mappings grid children
-    mappingsGrid.removeAll();
-    // add mappings grid header
-    Label mappingActionHeader = new Label( " " );
-    mappingActionHeader.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingActionHeader );
-    Label mappingKeyHeader = new Label( Messages.getString( "key" ) );
-    mappingKeyHeader.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingKeyHeader );
-    Label mappingValueHeader = new Label( Messages.getString( "value" ) );
-    mappingValueHeader.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingValueHeader );
-    // add mapping
-    for ( Iterator mappingIterator = sqlScript.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      mappingsGrid.add( row );
-      // mapping copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( mapping.getKey() );
-      copyButton.addActionListener( copyMapping );
-      row.add( copyButton );
-      // mapping delete / edit
-      if ( parent.getEnvironmentWindow().adminPermission || parent.getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        // mapping delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( mapping.getKey() );
-        deleteButton.addActionListener( deleteMapping );
-        row.add( deleteButton );
-        // mapping apply
-        Button applyButton = new Button( Styles.ACCEPT );
-        applyButton.setToolTipText( Messages.getString( "apply" ) );
-        applyButton.setActionCommand( mapping.getKey() );
-        applyButton.addActionListener( editMapping );
-        row.add( applyButton );
-      }
-      // mapping key
-      TextField mappingKeyField = new TextField();
-      mappingKeyField.setStyleName( "default" );
-      mappingKeyField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingKeyField.setId( "mappingkey_"
-                               + parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-                               + "_" + parent.getParentPane().getParentPane().getServerName() + "_"
-                               + parent.getParentPane().getParentPane().getApplicationName() + "_"
-                               + parent.getDatabaseName() + "_" + sqlScriptName + "_" + mapping.getKey() );
-      mappingKeyField.setText( mapping.getKey() );
-      mappingsGrid.add( mappingKeyField );
-      // mapping value
-      TextField mappingValueField = new TextField();
-      mappingValueField.setStyleName( "default" );
-      mappingValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingValueField.setId( "mappingvalue_"
-                                 + parent.getParentPane().getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-                                 + "_" + parent.getParentPane().getParentPane().getServerName() + "_"
-                                 + parent.getParentPane().getParentPane().getApplicationName() + "_"
-                                 + parent.getDatabaseName() + "_" + sqlScriptName + "_" + mapping.getKey() );
-      mappingValueField.setText( mapping.getValue() );
-      mappingsGrid.add( mappingValueField );
-    }
-    // add a new mapping
-    if ( parent.getEnvironmentWindow().adminPermission || parent.getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      mappingsGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteMapping );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( createMapping );
-      row.add( addButton );
-      // new mapping key
-      newMappingKeyField = new TextField();
-      newMappingKeyField.setStyleName( "default" );
-      newMappingKeyField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingsGrid.add( newMappingKeyField );
-      // new mapping value
-      newMappingValueField = new TextField();
-      newMappingValueField.setStyleName( "default" );
-      newMappingValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingsGrid.add( newMappingValueField );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabaseWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabaseWindow.java
deleted file mode 100644
index e13594e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabaseWindow.java
+++ /dev/null
@@ -1,1243 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.PasswordField;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.commons.lang.StringUtils;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Database;
-import org.apache.kalumet.model.JDBCConnectionPool;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.SqlScript;
-import org.apache.kalumet.ws.client.DatabaseClient;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * JEE application database window.
- */
-public class ApplicationDatabaseWindow
-  extends WindowPane
-{
-
-  private static String[] DRIVERS =
-    new String[]{ Messages.getString( "jdbc.driver.oracle.thin" ), Messages.getString( "jdbc.driver.ibm.db2" ),
-      Messages.getString( "jdbc.driver.mysql" ), Messages.getString( "jdbc.driver.postgresql" ) };
-
-  private String databaseName;
-
-  private Database database;
-
-  private ApplicationDatabasesPane parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextArea sqlCommandArea;
-
-  private SelectField driverField;
-
-  private TextField userField;
-
-  private PasswordField passwordField;
-
-  private PasswordField confirmPasswordField;
-
-  private TextField urlField;
-
-  private SelectField connectionPoolField;
-
-  private SelectField agentField;
-
-  private Grid sqlScriptsGrid;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent =
-          kalumet.getAgent( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        DatabaseClient client = new DatabaseClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName(),
-                       parent.getParentPane().getServerName(), parent.getParentPane().getApplicationName(),
-                       databaseName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getParentPane().getApplicationName() + " database " + databaseName
-          + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the database object
-      ApplicationDatabaseWindow.this.database = parent.getParentPane().getApplication().getDatabase( databaseName );
-      if ( ApplicationDatabaseWindow.this.database == null )
-      {
-        ApplicationDatabaseWindow.this.database = new Database();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ApplicationDatabaseWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the database
-            parent.getParentPane().getApplication().getDatabases().remove( database );
-            // add a change event
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete database " + database.getName() );
-            // change the updated flag
-            parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            ApplicationDatabaseWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String sqlCommandAreaValue = sqlCommandArea.getText();
-      int driverFieldIndex = driverField.getSelectedIndex();
-      String userFieldValue = userField.getText();
-      String passwordFieldValue = passwordField.getText();
-      String confirmPasswordFieldValue = confirmPasswordField.getText();
-      String urlFieldValue = urlField.getText();
-      String connectionPoolFieldValue = (String) connectionPoolField.getSelectedItem();
-      String agentFieldValue = (String) agentField.getSelectedItem();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      if ( !passwordFieldValue.equals( confirmPasswordFieldValue ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.password" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the database name, check if the new database name
-      // doesn't already exist
-      if ( databaseName == null || ( databaseName != null && !databaseName.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getParentPane().getApplication().getDatabase( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( databaseName != null )
-      {
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Change database " + database.getName() );
-      }
-      // update the database object
-      database.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        database.setActive( true );
-      }
-      else
-      {
-        database.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        database.setBlocker( true );
-      }
-      else
-      {
-        database.setBlocker( false );
-      }
-      if ( driverFieldIndex == 0 )
-      {
-        database.setDriver( "oracle.jdbc.driver.OracleDriver" );
-      }
-      if ( driverFieldIndex == 1 )
-      {
-        database.setDriver( "com.ibm.db2.jcc.DB2Driver" );
-      }
-      if ( driverFieldIndex == 2 )
-      {
-        database.setDriver( "com.mysql.jdbc.Driver" );
-      }
-      if ( driverFieldIndex == 3 )
-      {
-        database.setDriver( "org.postgresql.Driver" );
-      }
-      database.setSqlCommand( sqlCommandAreaValue );
-      database.setUser( userFieldValue );
-      database.setPassword( passwordFieldValue );
-      database.setJdbcurl( urlFieldValue );
-      database.setConnectionPool( connectionPoolFieldValue );
-      database.setAgent( agentFieldValue );
-      // add the database object if needed
-      if ( databaseName == null )
-      {
-        try
-        {
-          parent.getParentPane().getApplication().addDatabase( database );
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add database " + database.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "database" ) + " " + database.getName() );
-      setId(
-        "databasewindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + database.getName() );
-      databaseName = database.getName();
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the parent window
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // toggle active sql script
-  public ActionListener toggleActiveSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the sql script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sqlscript.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the sql script object state
-      if ( sqlScript.isActive() )
-      {
-        sqlScript.setActive( false );
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Disable SQL script " + sqlScript.getName() );
-      }
-      else
-      {
-        sqlScript.setActive( true );
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Enable SQL script " + sqlScript.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // toggle blocker sql script
-  public ActionListener toggleBlockerSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the sql script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sqlscript.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the sql script blocker state
-      if ( sqlScript.isBlocker() )
-      {
-        sqlScript.setBlocker( false );
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for SQL script " + sqlScript.getName() );
-      }
-      else
-      {
-        sqlScript.setBlocker( true );
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for SQL script " + sqlScript.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // toggle force sql script
-  public ActionListener toggleForceSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the sql script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sqlscript.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the sql script force state
-      if ( sqlScript.isForce() )
-      {
-        sqlScript.setForce( false );
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set not force for SQL script " + sqlScript.getName() );
-      }
-      else
-      {
-        sqlScript.setForce( true );
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set force for SQL script " + sqlScript.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // delete sql script
-  private ActionListener deleteSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the sql script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sqlscript.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // delete the sql script object
-      database.getSqlScripts().remove( sqlScript );
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Delete SQL script " + sqlScript.getName() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // edit sql script
-  private ActionListener editSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "sqlscriptwindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-          + databaseName + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ApplicationDatabaseSqlScriptWindow( ApplicationDatabaseWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create sql script
-  private ActionListener createSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ApplicationDatabaseSqlScriptWindow( ApplicationDatabaseWindow.this, null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( database.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof Database ) )
-      {
-        return;
-      }
-      database = (Database) copy;
-      databaseName = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + parent.getParentPane().getApplicationName() + " database " + databaseName
-                + " update in progress...",
-              parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + parent.getParentPane().getApplicationName() + " database " + databaseName
-                + " update in progress ..." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + parent.getParentPane().getApplicationName() + " database " + databaseName
-                        + " updated.",
-                      parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + parent.getParentPane().getApplicationName() + " database " + databaseName
-                        + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // copy sql script
-  private ActionListener copySqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the sql script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( sqlScript.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // up
-  private ActionListener up = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the SQL script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        return;
-      }
-      // get the SQL script index
-      int index = database.getSqlScripts().indexOf( sqlScript );
-      // if the SQL script index is the first one or the object is not found,
-      // do nothing, the size of the list must contains at leat 2 SQL scripts
-      if ( index == 0 || index == -1 || database.getSqlScripts().size() < 2 )
-      {
-        return;
-      }
-      // get the previous sql script
-      SqlScript previous = (SqlScript) database.getSqlScripts().get( index - 1 );
-      // switch the SQL scripts
-      database.getSqlScripts().set( index, previous );
-      database.getSqlScripts().set( index - 1, sqlScript );
-      // update the pane
-      update();
-    }
-  };
-
-  // down
-  private ActionListener down = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the SQL script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        return;
-      }
-      // get the SQL script index
-      int index = database.getSqlScripts().indexOf( sqlScript );
-      // if the SQL script index is the last one or the object is not found,
-      // the size of the list must contains at least 2 SQL scripts
-      if ( index == -1 || index == database.getSqlScripts().size() - 1 || database.getSqlScripts().size() < 2 )
-      {
-        return;
-      }
-      // get the next SQL script
-      SqlScript next = (SqlScript) database.getSqlScripts().get( index + 1 );
-      // switch the application
-      database.getSqlScripts().set( index + 1, sqlScript );
-      database.getSqlScripts().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationDatabaseWindow</code>.
-   *
-   * @param parent       the parent <code>ApplicationDatabasesPane</code>.
-   * @param databaseName the original <code>Database</code> name.
-   */
-  public ApplicationDatabaseWindow( ApplicationDatabasesPane parent, String databaseName )
-  {
-    super();
-
-    // update the parent pane
-    this.parent = parent;
-
-    // update the database name
-    this.databaseName = databaseName;
-
-    // update the database object from the parent pane
-    this.database = parent.getParentPane().getApplication().getDatabase( databaseName );
-    if ( this.database == null )
-    {
-      this.database = new Database();
-    }
-
-    if ( databaseName == null )
-    {
-      setTitle( Messages.getString( "database" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "database" ) + " " + databaseName );
-    }
-    setId( "databasewindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-             + parent.getParentPane().getServerName() + "_" + parent.getParentPane().getApplicationName() + "_"
-             + databaseName );
-    setStyleName( "default" );
-    setWidth( new Extent( 450, Extent.PX ) );
-    setHeight( new Extent( 300, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    // add the update button
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsUpdatePermission )
-    {
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "tab.content" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setSelectedIndex( 0 );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( activeField );
-    // blocker
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setSelectedIndex( 1 );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( blockerField );
-    // SQL command
-    Label sqlCommandLabel = new Label( Messages.getString( "sql.command" ) );
-    sqlCommandLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( sqlCommandLabel );
-    sqlCommandArea = new TextArea();
-    sqlCommandArea.setStyleName( "default" );
-    sqlCommandArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    sqlCommandArea.setHeight( new Extent( 5, Extent.EX ) );
-    generalLayoutGrid.add( sqlCommandArea );
-    // driver
-    Label driverLabel = new Label( Messages.getString( "driver" ) );
-    driverLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( driverLabel );
-    driverField = new SelectField( ApplicationDatabaseWindow.DRIVERS );
-    driverField.setSelectedIndex( 0 );
-    driverField.setStyleName( "default" );
-    driverField.setWidth( new Extent( 50, Extent.EX ) );
-    generalLayoutGrid.add( driverField );
-    // user
-    Label userLabel = new Label( Messages.getString( "user" ) );
-    userLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( userLabel );
-    userField = new TextField();
-    userField.setStyleName( "default" );
-    userField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( userField );
-    // password
-    Label passwordLabel = new Label( Messages.getString( "password" ) );
-    passwordLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( passwordLabel );
-    passwordField = new PasswordField();
-    passwordField.setStyleName( "default" );
-    passwordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( passwordField );
-    // confirm password
-    Label confirmPasswordLabel = new Label( Messages.getString( "password.confirm" ) );
-    confirmPasswordLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( confirmPasswordLabel );
-    confirmPasswordField = new PasswordField();
-    confirmPasswordField.setStyleName( "default" );
-    confirmPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( confirmPasswordField );
-    // URL
-    Label urlLabel = new Label( Messages.getString( "url" ) );
-    urlLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( urlLabel );
-    urlField = new TextField();
-    urlField.setStyleName( "default" );
-    urlField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( urlField );
-    // connection pool
-    Label connectionPoolLabel = new Label( Messages.getString( "connectionpool" ) );
-    connectionPoolLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( connectionPoolLabel );
-    connectionPoolField = new SelectField();
-    connectionPoolField.setStyleName( "default" );
-    connectionPoolField.setWidth( new Extent( 50, Extent.EX ) );
-    generalLayoutGrid.add( connectionPoolField );
-    // agent
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    generalLayoutGrid.add( agentField );
-
-    // add the sql scripts tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "sql.scripts" ) );
-    ContentPane sqlScriptsTabPane = new ContentPane();
-    sqlScriptsTabPane.setStyleName( "tab.content" );
-    sqlScriptsTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( sqlScriptsTabPane );
-    Column column = new Column();
-    sqlScriptsTabPane.add( column );
-    Button createButton = new Button( Messages.getString( "sql.script.add" ), Styles.ADD );
-    createButton.addActionListener( createSqlScript );
-    column.add( createButton );
-    sqlScriptsGrid = new Grid( 3 );
-    sqlScriptsGrid.setStyleName( "border.grid" );
-    sqlScriptsGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    column.add( sqlScriptsGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // update the database name field
-    nameField.setText( database.getName() );
-    // update the database active field
-    if ( database.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the database blocker field
-    if ( database.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the database system launcher
-    sqlCommandArea.setText( database.getSqlCommand() );
-    // update the database driver field
-    if ( StringUtils.containsIgnoreCase( database.getDriver(), "oracle" ) )
-    {
-      driverField.setSelectedIndex( 0 );
-    }
-    if ( StringUtils.containsIgnoreCase( database.getDriver(), "db2" ) )
-    {
-      driverField.setSelectedIndex( 1 );
-    }
-    if ( StringUtils.containsIgnoreCase( database.getDriver(), "mysql" ) )
-    {
-      driverField.setSelectedIndex( 2 );
-    }
-    if ( StringUtils.containsIgnoreCase( database.getDriver(), "postgre" ) )
-    {
-      driverField.setSelectedIndex( 3 );
-    }
-    // update the database user field
-    userField.setText( database.getUser() );
-    // update the database password field
-    passwordField.setText( database.getPassword() );
-    confirmPasswordField.setText( database.getPassword() );
-    // update the database url field
-    urlField.setText( database.getJdbcurl() );
-    // update agent field
-    List agents = new LinkedList();
-    // load Kalumet
-    try
-    {
-      Kalumet kalumet = ConfigurationManager.loadStore();
-      agents = kalumet.getAgents();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(), getEnvironmentWindow().getEnvironmentName() );
-    }
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    agentListModel.add( " " );
-    for ( Iterator agentIterator = agents.iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    agentField.setSelectedItem( database.getAgent() );
-    // update connection pool field
-    DefaultListModel connectionPoolListModel = (DefaultListModel) connectionPoolField.getModel();
-    connectionPoolListModel.removeAll();
-    connectionPoolListModel.add( "" );
-    for ( Iterator connectionPoolIterator =
-            getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              parent.getParentPane().getServerName() ).getJDBCConnectionPools().iterator();
-          connectionPoolIterator.hasNext(); )
-    {
-      JDBCConnectionPool connectionPool = (JDBCConnectionPool) connectionPoolIterator.next();
-      connectionPoolListModel.add( connectionPool.getName() );
-    }
-    connectionPoolField.setSelectedItem( database.getConnectionPool() );
-
-    // remove all sql scripts grid children
-    sqlScriptsGrid.removeAll();
-    // add sql scripts grid header
-    Label sqlScriptActionHeader = new Label( " " );
-    sqlScriptActionHeader.setStyleName( "grid.header" );
-    sqlScriptsGrid.add( sqlScriptActionHeader );
-    Label sqlScriptNameHeader = new Label( Messages.getString( "name" ) );
-    sqlScriptNameHeader.setStyleName( "grid.header" );
-    sqlScriptsGrid.add( sqlScriptNameHeader );
-    Label sqlScriptUriHeader = new Label( Messages.getString( "uri" ) );
-    sqlScriptUriHeader.setStyleName( "grid.header" );
-    sqlScriptsGrid.add( sqlScriptUriHeader );
-    // add sql script
-    for ( Iterator sqlScriptIterator = database.getSqlScripts().iterator(); sqlScriptIterator.hasNext(); )
-    {
-      SqlScript sqlScript = (SqlScript) sqlScriptIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      sqlScriptsGrid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( sqlScript.getName() );
-      copyButton.addActionListener( copySqlScript );
-      row.add( copyButton );
-      // sqlscript active
-      Button activeButton;
-      if ( sqlScript.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        activeButton.setActionCommand( sqlScript.getName() );
-        activeButton.addActionListener( toggleActiveSqlScript );
-      }
-      row.add( activeButton );
-      // sqlscript blocker
-      Button blockerButton;
-      if ( sqlScript.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        blockerButton.setActionCommand( sqlScript.getName() );
-        blockerButton.addActionListener( toggleBlockerSqlScript );
-      }
-      row.add( blockerButton );
-      // sqlscript force
-      Button forceButton;
-      if ( sqlScript.isForce() )
-      {
-        forceButton = new Button( Styles.DATABASE_GEAR );
-        forceButton.setToolTipText( Messages.getString( "switch.notforce" ) );
-      }
-      else
-      {
-        forceButton = new Button( Styles.DATABASE );
-        forceButton.setToolTipText( Messages.getString( "switch.force" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        forceButton.setActionCommand( sqlScript.getName() );
-        forceButton.addActionListener( toggleForceSqlScript );
-      }
-      row.add( forceButton );
-      // up / down / delete
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        // up button
-        Button upButton = new Button( Styles.ARROW_UP );
-        upButton.setToolTipText( Messages.getString( "up" ) );
-        upButton.setActionCommand( sqlScript.getName() );
-        upButton.addActionListener( up );
-        row.add( upButton );
-        // down button
-        Button downButton = new Button( Styles.ARROW_DOWN );
-        downButton.setToolTipText( Messages.getString( "down" ) );
-        downButton.setActionCommand( sqlScript.getName() );
-        downButton.addActionListener( down );
-        row.add( downButton );
-        // delete button
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( sqlScript.getName() );
-        deleteButton.addActionListener( deleteSqlScript );
-        row.add( deleteButton );
-      }
-      // sqlscript name
-      Button sqlScriptName = new Button( sqlScript.getName() );
-      sqlScriptName.setStyleName( "default" );
-      sqlScriptName.setActionCommand( sqlScript.getName() );
-      sqlScriptName.addActionListener( editSqlScript );
-      sqlScriptsGrid.add( sqlScriptName );
-      // sqlscript uri
-      Label sqlScriptUri = new Label( sqlScript.getUri() );
-      sqlScriptUri.setStyleName( "default" );
-      sqlScriptsGrid.add( sqlScriptUri );
-    }
-  }
-
-  /**
-   * Get the <code>Database</code>.
-   *
-   * @return the <code>Database</code>.
-   */
-  public Database getDatabase()
-  {
-    return this.database;
-  }
-
-  /**
-   * Get the <code>Database</code> name.
-   *
-   * @return the <code>Database</code> name.
-   */
-  public String getDatabaseName()
-  {
-    return this.databaseName;
-  }
-
-  /**
-   * Get the parent <code>ApplicationDatabasesPane</code>.
-   *
-   * @return the parent <code>ApplicationDatabasesPane</code>.
-   */
-  public ApplicationDatabasesPane getParentPane()
-  {
-    return parent;
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getParentPane().getParentPane().getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabasesPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabasesPane.java
deleted file mode 100644
index f140ffb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationDatabasesPane.java
+++ /dev/null
@@ -1,562 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Database;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.DatabaseClient;
-
-import java.util.Iterator;
-
-/**
- * JEE application databases pane.
- */
-public class ApplicationDatabasesPane
-  extends ContentPane
-{
-
-  private ApplicationWindow parent;
-
-  private Grid grid;
-
-  class UpdateThread
-    extends Thread
-  {
-
-    public String databaseName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        DatabaseClient client = new DatabaseClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getServerName(),
-                       parent.getApplicationName(), databaseName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + parent.getApplicationName() + " database " + databaseName + " update failed: "
-          + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the database object
-      Database database = parent.getApplication().getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.notfound" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the state and add a change event
-      if ( database.isActive() )
-      {
-        database.setActive( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( "Disable database " + database.getName() );
-      }
-      else
-      {
-        database.setActive( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( "Enable database " + database.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the database object
-      Database database = parent.getApplication().getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.notfound" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the blocker state and add a change event
-      if ( database.isBlocker() )
-      {
-        database.setBlocker( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for database " + database.getName() );
-      }
-      else
-      {
-        database.setBlocker( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for database " + database.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the database file object
-      final Database database = parent.getApplication().getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.notfound" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the database object
-            parent.getApplication().getDatabases().remove( database );
-            // add a change event
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete database " + database.getName() );
-            // change the updated flag
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "databasewindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getServerName() + "_" + parent.getApplicationName() + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ApplicationDatabaseWindow( ApplicationDatabasesPane.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ApplicationDatabaseWindow( ApplicationDatabasesPane.this, null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the database file object
-      Database database = parent.getApplication().getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( database.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getParentPane().getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.getParentPane().getEnvironmentWindow().adminPermission
-        && !parent.getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( parent.getParentPane().getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ),
-          parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      final String databaseName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message in the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + parent.getApplicationName() + " database " + databaseName
-                + " update in progress...", parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + parent.getApplicationName() + " database " + databaseName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.databaseName = databaseName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + parent.getApplicationName() + " database " + databaseName + " updated.",
-                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + parent.getApplicationName() + " database " + databaseName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationDatabasesPane</code>.
-   *
-   * @param parent the parent <code>ApplicationWindow</code>.
-   */
-  public ApplicationDatabasesPane( ApplicationWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout content
-    Column content = new Column();
-    add( content );
-
-    // add the create button
-    if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-      || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "database.add" ), Styles.ADD );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add the databases grid
-    grid = new Grid( 8 );
-    grid.setStyleName( "border.grid" );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // remove all databases grid children
-    grid.removeAll();
-    // add databases grid header
-    // action header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    // name header
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    // driver header
-    Label driverHeader = new Label( Messages.getString( "driver" ) );
-    driverHeader.setStyleName( "grid.header" );
-    grid.add( driverHeader );
-    // user header
-    Label userHeader = new Label( Messages.getString( "user" ) );
-    userHeader.setStyleName( "grid.header" );
-    grid.add( userHeader );
-    // URL header
-    Label urlHeader = new Label( Messages.getString( "url" ) );
-    urlHeader.setStyleName( "grid.header" );
-    grid.add( urlHeader );
-    // connection pool header
-    Label connectionPoolHeader = new Label( Messages.getString( "connectionpool" ) );
-    connectionPoolHeader.setStyleName( "grid.header" );
-    grid.add( connectionPoolHeader );
-    // SQL command header
-    Label sqlCommandHeader = new Label( Messages.getString( "sql.command" ) );
-    sqlCommandHeader.setStyleName( "grid.header" );
-    grid.add( sqlCommandHeader );
-    // agent header
-    Label agentHeader = new Label( Messages.getString( "agent" ) );
-    agentHeader.setStyleName( "grid.header" );
-    grid.add( agentHeader );
-    // add database
-    for ( Iterator databaseIterator = parent.getApplication().getDatabases().iterator(); databaseIterator.hasNext(); )
-    {
-      Database database = (Database) databaseIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( database.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( database.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        activeButton.setActionCommand( database.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( database.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        blockerButton.setActionCommand( database.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // update
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( database.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      // delete
-      if ( parent.getParentPane().getEnvironmentWindow().adminPermission
-        || parent.getParentPane().getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( database.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      Button databaseName = new Button( database.getName() );
-      databaseName.setStyleName( "default" );
-      databaseName.setActionCommand( database.getName() );
-      databaseName.addActionListener( edit );
-      grid.add( databaseName );
-      // driver
-      Label databaseDriver = new Label( database.getDriver() );
-      databaseDriver.setStyleName( "default" );
-      grid.add( databaseDriver );
-      // user
-      Label databaseUser = new Label( database.getUser() );
-      databaseUser.setStyleName( "default" );
-      grid.add( databaseUser );
-      // URL
-      Label databaseUrl = new Label( database.getJdbcurl() );
-      databaseUrl.setStyleName( "default" );
-      grid.add( databaseUrl );
-      // connection pool
-      Label connectionPool = new Label( database.getConnectionPool() );
-      connectionPool.setStyleName( "default" );
-      grid.add( connectionPool );
-      // SQL command
-      Label sqlCommand = new Label( database.getSqlCommand() );
-      sqlCommand.setStyleName( "default" );
-      grid.add( sqlCommand );
-      // agent
-      Label agent = new Label( database.getAgent() );
-      agent.setStyleName( "default" );
-      grid.add( agent );
-    }
-  }
-
-  /**
-   * Return the parent <code>ApplicationWindow</code>.
-   *
-   * @return the parent <code>ApplicationWindow</code>.
-   */
-  public ApplicationWindow getParentPane()
-  {
-    return parent;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationGeneralPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationGeneralPane.java
deleted file mode 100644
index 0d9b91d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationGeneralPane.java
+++ /dev/null
@@ -1,249 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-
-import java.util.Iterator;
-
-/**
- * JEE application general pane.
- */
-public class ApplicationGeneralPane
-  extends ContentPane
-{
-
-  private ApplicationWindow parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextField uriField;
-
-  private SelectField agentField;
-
-  // test URI
-  private ActionListener testUri = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String uri = FileManipulator.format( getUriField().getText() );
-      boolean exists = false;
-      FileManipulator fileManipulator = null;
-      try
-      {
-        fileManipulator = new FileManipulator();
-        exists = fileManipulator.exists( uri );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          "Can't check the URI " + uri + ": " + e.getMessage(), parent.getEnvironmentWindow().getEnvironmentName() );
-      }
-      finally
-      {
-        if ( fileManipulator != null )
-        {
-          fileManipulator.close();
-        }
-      }
-      if ( exists )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addConfirm( "URI " + uri + " exists.",
-                                                                            parent.getEnvironmentWindow().getEnvironmentName() );
-      }
-      else
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( "URI " + uri + " doesn't exists.",
-                                                                            parent.getEnvironmentWindow().getEnvironmentName() );
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationGeneralPane</code>.
-   *
-   * @param parent the parent <code>ApplicationWindow</code>.
-   */
-  public ApplicationGeneralPane( ApplicationWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // grid layout
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    add( layout );
-
-    // add application name field
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    layout.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( nameField );
-
-    // add the application active field
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    layout.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( activeField );
-
-    // add the application blocker field
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    layout.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( blockerField );
-
-    // add the application uri field)
-    Label uriLabel = new Label( Messages.getString( "uri" ) );
-    uriLabel.setStyleName( "grid.cell" );
-    layout.add( uriLabel );
-    Row uriRow = new Row();
-    layout.add( uriRow );
-    uriField = new TextField();
-    uriField.setWidth( new Extent( 500, Extent.PX ) );
-    uriField.setStyleName( "default" );
-    uriRow.add( uriField );
-    Button testUriButton = new Button( Styles.WORLD );
-    testUriButton.setToolTipText( Messages.getString( "uri.test" ) );
-    testUriButton.addActionListener( testUri );
-    uriRow.add( testUriButton );
-
-    // add the application agent field
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    layout.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    layout.add( agentField );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // update the application name field
-    nameField.setText( parent.getApplication().getName() );
-    // update the application active field
-    if ( parent.getApplication().isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the application blocker field
-    if ( parent.getApplication().isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the application uri field
-    uriField.setText( parent.getApplication().getUri() );
-    // update the application agent field
-    // load Kalumet configuration
-    Kalumet kalumet;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(),
-        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-      return;
-    }
-    // update the agent field model
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    agentListModel.add( "" );
-    for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    agentField.setSelectedItem( parent.getApplication().getAgent() );
-  }
-
-  public TextField getNameField()
-  {
-    return this.nameField;
-  }
-
-  public SelectField getActiveField()
-  {
-    return this.activeField;
-  }
-
-  public SelectField getBlockerField()
-  {
-    return this.blockerField;
-  }
-
-  public TextField getUriField()
-  {
-    return this.uriField;
-  }
-
-  public SelectField getAgentField()
-  {
-    return this.agentField;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerCachesPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerCachesPane.java
deleted file mode 100644
index 55616b7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerCachesPane.java
+++ /dev/null
@@ -1,364 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.model.Cache;
-
-import java.util.Iterator;
-
-/**
- * JEE application server caches pane.
- */
-public class ApplicationServerCachesPane
-  extends ContentPane
-{
-
-  private ApplicationServerWindow parent;
-
-  private Grid grid;
-
-  private TextField newPathField;
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationServersChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restrictied" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the cache path
-      final String cachePath = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // looking for the cache object
-            Cache cache = parent.getApplicationServer().getCache( cachePath );
-            if ( cache == null )
-            {
-              KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                Messages.getString( "cache.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-              return;
-            }
-            // remove the cache
-            parent.getApplicationServer().getCaches().remove( cache );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete cache " + cache.getPath() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationServersChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the cache path
-      String cachePath = event.getActionCommand();
-      // get the cache path field
-      TextField cachePathField = (TextField) ApplicationServerCachesPane.this.getComponent(
-        "pathfield_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + parent.getApplicationServerName()
-          + "_" + cachePath );
-      // get the cache path field value
-      String cachePathFieldValue = cachePathField.getText();
-      // check mandatory field
-      if ( cachePathFieldValue == null || cachePathFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "cache.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the cache path, check if the cache path doesn't
-      // already exist
-      if ( !cachePath.equals( cachePathFieldValue ) )
-      {
-        if ( parent.getApplicationServer().getCache( cachePathFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "cache.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the cache object
-      Cache cache = parent.getApplicationServer().getCache( cachePath );
-      if ( cache == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "cache.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Change cache " + cache.getPath() );
-      // update the cache object
-      cache.setPath( cachePathFieldValue );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationServersChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get cache path value
-      String newPathFieldValue = newPathField.getText();
-      // check mandatory field
-      if ( newPathFieldValue == null || newPathFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "cache.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create a new cache object
-      Cache cache = new Cache();
-      cache.setPath( newPathFieldValue );
-      try
-      {
-        parent.getApplicationServer().addCache( cache );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "cache.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Add cache " + cache.getPath() );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the cache object
-      Cache cache = parent.getApplicationServer().getCache( event.getActionCommand() );
-      if ( cache == null )
-      {
-        return;
-      }
-      try
-      {
-        // put the cache clone in the copy component
-        KalumetConsoleApplication.getApplication().setCopyComponent( cache.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the copy is correct
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof Cache ) )
-      {
-        return;
-      }
-      // update the new fields
-      newPathField.setText( ( (Cache) copy ).getPath() );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationServerCachesPane</code>.
-   *
-   * @param parent the parent <code>ApplicationServerWindow</code>.
-   */
-  public ApplicationServerCachesPane( ApplicationServerWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add the caches grid
-    grid = new Grid( 2 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // remove all caches grid children
-    grid.removeAll();
-    // action header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label pathHeader = new Label( Messages.getString( "path" ) );
-    pathHeader.setStyleName( "grid.header" );
-    grid.add( pathHeader );
-    // add cache
-    for ( Iterator cacheIterator = parent.getApplicationServer().getCaches().iterator(); cacheIterator.hasNext(); )
-    {
-      Cache cache = (Cache) cacheIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( cache.getPath() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // delete / edit
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationServersChangePermission)
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setActionCommand( cache.getPath() );
-        editButton.addActionListener( edit );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( cache.getPath() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // path
-      TextField cachePathField = new TextField();
-      cachePathField.setId(
-        "pathfield_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + parent.getApplicationServerName()
-          + "_" + cache.getPath() );
-      cachePathField.setStyleName( "default" );
-      cachePathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      cachePathField.setText( cache.getPath() );
-      grid.add( cachePathField );
-    }
-    // add cache adding row
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationServersChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.addActionListener( paste );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.addActionListener( create );
-      row.add( addButton );
-      // path
-      newPathField = new TextField();
-      newPathField.setStyleName( "default" );
-      newPathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newPathField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerGeneralPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerGeneralPane.java
deleted file mode 100644
index c4df519..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerGeneralPane.java
+++ /dev/null
@@ -1,403 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.PasswordField;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-
-import java.util.Iterator;
-
-/**
- * JEE application server general pane.
- */
-public class ApplicationServerGeneralPane
-  extends ContentPane
-{
-
-  private static String[] APPLICATIONSERVER_TYPES =
-    new String[]{ Messages.getString( "jboss4" ), Messages.getString( "jboss6" ), Messages.getString( "weblogic8" ),
-      Messages.getString( "websphere5" ) };
-
-  private ApplicationServerWindow parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private SelectField typeField;
-
-  private TextField jmxField;
-
-  private TextField adminUserField;
-
-  private PasswordField adminPasswordField;
-
-  private PasswordField adminConfirmPasswordField;
-
-  private SelectField agentField;
-
-  private SelectField updateRequireRestartField;
-
-  private SelectField updateRequireCachesClean;
-
-  private SelectField stopUsingJmx;
-
-  private TextArea startupCommandArea;
-
-  private TextArea shutdownCommandArea;
-
-  /**
-   * Create a new <code>ApplicationServerGeneralPane</code>.
-   *
-   * @param parent the parent <code>ApplicationServerWindow</code>.
-   */
-  public ApplicationServerGeneralPane( ApplicationServerWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add the general layout grid
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    layout.setInsets( new Insets( 2 ) );
-    add( layout );
-
-    // add the name field
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    layout.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( nameField );
-    // add the active select field
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    layout.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    activeField.setSelectedIndex( 0 );
-    layout.add( activeField );
-    // add the blocker select field
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    layout.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    blockerField.setSelectedIndex( 0 );
-    layout.add( blockerField );
-    // add the type select field
-    Label typeLabel = new Label( Messages.getString( "type" ) );
-    typeLabel.setStyleName( "grid.cell" );
-    layout.add( typeLabel );
-    typeField = new SelectField( ApplicationServerGeneralPane.APPLICATIONSERVER_TYPES );
-    typeField.setStyleName( "default" );
-    typeField.setSelectedIndex( 0 );
-    typeField.setWidth( new Extent( 50, Extent.EX ) );
-    layout.add( typeField );
-    // add the jmx url field
-    Label jmxLabel = new Label( Messages.getString( "jmx" ) );
-    jmxLabel.setStyleName( "grid.cell" );
-    layout.add( jmxLabel );
-    jmxField = new TextField();
-    jmxField.setStyleName( "default" );
-    jmxField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( jmxField );
-    // add the admin user field
-    Label adminUserLabel = new Label( Messages.getString( "user" ) );
-    adminUserLabel.setStyleName( "grid.cell" );
-    layout.add( adminUserLabel );
-    adminUserField = new TextField();
-    adminUserField.setStyleName( "default" );
-    adminUserField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( adminUserField );
-    // add the admin user password field
-    Label adminPasswordLabel = new Label( Messages.getString( "password" ) );
-    adminPasswordLabel.setStyleName( "grid.cell" );
-    layout.add( adminPasswordLabel );
-    adminPasswordField = new PasswordField();
-    adminPasswordField.setStyleName( "default" );
-    adminPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( adminPasswordField );
-    Label adminConfirmPasswordLabel = new Label( Messages.getString( "password.confirm" ) );
-    adminConfirmPasswordLabel.setStyleName( "grid.cell" );
-    layout.add( adminConfirmPasswordLabel );
-    adminConfirmPasswordField = new PasswordField();
-    adminConfirmPasswordField.setStyleName( "default" );
-    adminConfirmPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( adminConfirmPasswordField );
-    // add the agent field
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    layout.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    layout.add( agentField );
-    // add the update require restart field
-    Label updateRequireRestartLabel = new Label( Messages.getString( "update.require.restart" ) );
-    updateRequireRestartLabel.setStyleName( "grid.cell" );
-    layout.add( updateRequireRestartLabel );
-    updateRequireRestartField = new SelectField( MainScreen.LABELS );
-    updateRequireRestartField.setStyleName( "default" );
-    updateRequireRestartField.setSelectedIndex( 0 );
-    updateRequireRestartField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( updateRequireRestartField );
-    // add the update require cache cleaning field
-    Label updateRequireCachesCleaningLabel = new Label( Messages.getString( "update.require.caches.clean" ) );
-    updateRequireCachesCleaningLabel.setStyleName( "grid.cell" );
-    layout.add( updateRequireCachesCleaningLabel );
-    updateRequireCachesClean = new SelectField( MainScreen.LABELS );
-    updateRequireCachesClean.setStyleName( "default" );
-    updateRequireCachesClean.setSelectedIndex( 0 );
-    updateRequireCachesClean.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( updateRequireCachesClean );
-    // add the use jmx stop field
-    Label stopUsingJmxLabel = new Label( Messages.getString( "stop.using.jmx" ) );
-    stopUsingJmxLabel.setStyleName( "grid.cell" );
-    layout.add( stopUsingJmxLabel );
-    stopUsingJmx = new SelectField( MainScreen.LABELS );
-    stopUsingJmx.setStyleName( "default" );
-    stopUsingJmx.setSelectedIndex( 0 );
-    stopUsingJmx.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( stopUsingJmx );
-    // add the startup command area
-    Label startupCommandLabel = new Label( Messages.getString( "applicationserver.startup" ) );
-    startupCommandLabel.setStyleName( "grid.cell" );
-    layout.add( startupCommandLabel );
-    startupCommandArea = new TextArea();
-    startupCommandArea.setStyleName( "default" );
-    startupCommandArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    startupCommandArea.setHeight( new Extent( 20, Extent.EX ) );
-    layout.add( startupCommandArea );
-    // add the shutdown command area
-    Label serverShutdownCommandLabel = new Label( Messages.getString( "applicationserver.shutdown" ) );
-    serverShutdownCommandLabel.setStyleName( "grid.cell" );
-    layout.add( serverShutdownCommandLabel );
-    shutdownCommandArea = new TextArea();
-    shutdownCommandArea.setStyleName( "default" );
-    shutdownCommandArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    shutdownCommandArea.setHeight( new Extent( 20, Extent.EX ) );
-    layout.add( shutdownCommandArea );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // updae the JEE server name field
-    nameField.setText( parent.getApplicationServer().getName() );
-    // update the JEE server active field
-    if ( parent.getApplicationServer().isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the JEE server blocker field
-    if ( parent.getApplicationServer().isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the JEE application server type field
-    if ( parent.getApplicationServer().getClassname() != null )
-    {
-      if ( parent.getApplicationServer().getClassname().equals( ApplicationServerWindow.JBOSS4_CONTROLLER_CLASSNAME ) )
-      {
-        typeField.setSelectedIndex( 0 );
-      }
-      if ( parent.getApplicationServer().getClassname().equals( ApplicationServerWindow.JBOSS6_CONTROLLER_CLASSNAME ) )
-      {
-        typeField.setSelectedIndex( 1 );
-      }
-      if ( parent.getApplicationServer().getClassname().equals(
-        ApplicationServerWindow.WEBLOGIC_CONTROLLER_CLASSNAME ) )
-      {
-        typeField.setSelectedIndex( 2 );
-      }
-      if ( parent.getApplicationServer().getClassname().equals(
-        ApplicationServerWindow.WEBSPHERE_CONTROLLER_CLASSNAME ) )
-      {
-        typeField.setSelectedIndex( 3 );
-      }
-    }
-    // update the jee application server jmx field
-    jmxField.setText( parent.getApplicationServer().getJmxurl() );
-    // update the jee application server admin user field
-    adminUserField.setText( parent.getApplicationServer().getAdminuser() );
-    // update the jee application server admin password/confirm password
-    // fields
-    adminPasswordField.setText( parent.getApplicationServer().getAdminpassword() );
-    adminConfirmPasswordField.setText( parent.getApplicationServer().getAdminpassword() );
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-    // update the jee application server agent
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    agentListModel.add( "" );
-    for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    agentField.setSelectedItem( parent.getApplicationServer().getAgent() );
-    // update the jee application server update require restart field
-    if ( parent.getApplicationServer().isUpdateRequireRestart() )
-    {
-      updateRequireRestartField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      updateRequireRestartField.setSelectedIndex( 1 );
-    }
-    // update the jee application server update require caches cleaning field
-    if ( parent.getApplicationServer().isUpdateRequireCacheCleaning() )
-    {
-      updateRequireCachesClean.setSelectedIndex( 0 );
-    }
-    else
-    {
-      updateRequireCachesClean.setSelectedIndex( 1 );
-    }
-    // update the use jmx stop field
-    if ( parent.getApplicationServer().isUsejmxstop() )
-    {
-      stopUsingJmx.setSelectedIndex( 0 );
-    }
-    else
-    {
-      stopUsingJmx.setSelectedIndex( 1 );
-    }
-    // update the startup command area
-    startupCommandArea.setText( parent.getApplicationServer().getStartupcommand() );
-    // update the shutdown command area
-    shutdownCommandArea.setText( parent.getApplicationServer().getShutdowncommand() );
-  }
-
-  public TextField getNameField()
-  {
-    return this.nameField;
-  }
-
-  public SelectField getActiveField()
-  {
-    return this.activeField;
-  }
-
-  public SelectField getBlockerField()
-  {
-    return this.blockerField;
-  }
-
-  public SelectField getTypeField()
-  {
-    return this.typeField;
-  }
-
-  public TextField getJmxField()
-  {
-    return this.jmxField;
-  }
-
-  public TextField getAdminUserField()
-  {
-    return this.adminUserField;
-  }
-
-  public PasswordField getAdminPasswordField()
-  {
-    return this.adminPasswordField;
-  }
-
-  public PasswordField getAdminConfirmPasswordField()
-  {
-    return this.adminConfirmPasswordField;
-  }
-
-  public SelectField getUpdateRequireRestartField()
-  {
-    return this.updateRequireRestartField;
-  }
-
-  public SelectField getUpdateRequireCachesCleanField()
-  {
-    return this.updateRequireCachesClean;
-  }
-
-  public SelectField getStopUsingJmxField()
-  {
-    return this.stopUsingJmx;
-  }
-
-  public TextArea getStartupCommandArea()
-  {
-    return this.startupCommandArea;
-  }
-
-  public TextArea getShutdownCommandArea()
-  {
-    return this.shutdownCommandArea;
-  }
-
-  public SelectField getAgentField()
-  {
-    return this.agentField;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerWindow.java
deleted file mode 100644
index 2385453..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServerWindow.java
+++ /dev/null
@@ -1,933 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JEEApplicationServerClient;
-
-/**
- * JEE application server window.
- */
-public class ApplicationServerWindow
-  extends WindowPane
-{
-
-  private String serverName;
-
-  private JEEApplicationServer server = null;
-
-  private ApplicationServersPane parent;
-
-  private ApplicationServerGeneralPane generalPane;
-
-  private ApplicationServerCachesPane cachesPane;
-
-  public final static String JBOSS4_CONTROLLER_CLASSNAME = "org.apache.kalumet.controller.jboss.JBoss4Controller";
-
-  public final static String JBOSS6_CONTROLLER_CLASSNAME = "org.apache.kalumet.controller.jboss.JBoss6Controller";
-
-  public final static String WEBLOGIC_CONTROLLER_CLASSNAME =
-    "org.apache.kalumet.controller.weblogic.WeblogicController";
-
-  public final static String WEBSPHERE_CONTROLLER_CLASSNAME =
-    "org.apache.kalumet.controller.websphere.WebsphereController";
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JEEApplicationServerClient client = new JEEApplicationServerClient( agent.getHostname(), agent.getPort() );
-        message = client.status( parent.getEnvironmentWindow().getEnvironmentName(), serverName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application server " + serverName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JEEApplicationServerClient client = new JEEApplicationServerClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentWindow().getEnvironmentName(), serverName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application server " + serverName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // stop thread
-  class StopThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JEEApplicationServerClient client = new JEEApplicationServerClient( agent.getHostname(), agent.getPort() );
-        client.stop( parent.getEnvironmentWindow().getEnvironmentName(), serverName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application server " + serverName + " stop failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // start thread
-  class StartThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JEEApplicationServerClient client = new JEEApplicationServerClient( agent.getHostname(), agent.getPort() );
-        client.start( parent.getEnvironmentWindow().getEnvironmentName(), serverName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application server " + serverName + " start failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ApplicationServerWindow.this.userClose();
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for original application server object
-      server = parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        serverName );
-      if ( server == null )
-      {
-        server = new JEEApplicationServer();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationServersChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String nameFieldValue = generalPane.getNameField().getText();
-      int activeFieldIndex = generalPane.getActiveField().getSelectedIndex();
-      int blockerFieldIndex = generalPane.getBlockerField().getSelectedIndex();
-      int typeFieldIndex = generalPane.getTypeField().getSelectedIndex();
-      String jmxFieldValue = generalPane.getJmxField().getText();
-      String adminUserFieldValue = generalPane.getAdminUserField().getText();
-      String adminPasswordFieldValue = generalPane.getAdminPasswordField().getText();
-      String adminConfirmPasswordFieldValue = generalPane.getAdminConfirmPasswordField().getText();
-      int updateRequireRestartFieldIndex = generalPane.getUpdateRequireRestartField().getSelectedIndex();
-      int updateRequireCachesCleanFieldIndex = generalPane.getUpdateRequireCachesCleanField().getSelectedIndex();
-      int stopUsingJmxFieldIndex = generalPane.getStopUsingJmxField().getSelectedIndex();
-      String startupCommandAreaValue = generalPane.getStartupCommandArea().getText();
-      String shutdownCommandAreaValue = generalPane.getShutdownCommandArea().getText();
-      String agentFieldValue = (String) generalPane.getAgentField().getSelectedItem();
-      // check fields
-      // name and JMX are mandatory
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || jmxFieldValue == null
-        || jmxFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "applicationserver.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check password matching
-      if ( !adminPasswordFieldValue.equals( adminConfirmPasswordFieldValue ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "applicationserver.password.notmatch" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the JEE application server name, check if the
-      // JEE application server name doesn't already exist
-      if ( serverName == null || ( serverName != null && !serverName.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "applicationserver.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( serverName != null )
-      {
-        parent.getEnvironmentWindow().getChangeEvents().add( "Change JEE application server " + server.getName() );
-      }
-      // update the application server object
-      server.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        server.setActive( true );
-      }
-      else
-      {
-        server.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        server.setBlocker( true );
-      }
-      else
-      {
-        server.setBlocker( false );
-      }
-      if ( typeFieldIndex == 0 )
-      {
-        server.setClassname( ApplicationServerWindow.JBOSS4_CONTROLLER_CLASSNAME );
-      }
-      if ( typeFieldIndex == 1 )
-      {
-        server.setClassname( ApplicationServerWindow.JBOSS6_CONTROLLER_CLASSNAME );
-      }
-      if ( typeFieldIndex == 2 )
-      {
-        server.setClassname( ApplicationServerWindow.WEBLOGIC_CONTROLLER_CLASSNAME );
-      }
-      if ( typeFieldIndex == 3 )
-      {
-        server.setClassname( ApplicationServerWindow.WEBSPHERE_CONTROLLER_CLASSNAME );
-      }
-      server.setJmxurl( jmxFieldValue );
-      server.setAdminuser( adminUserFieldValue );
-      server.setAdminpassword( adminPasswordFieldValue );
-      if ( updateRequireRestartFieldIndex == 0 )
-      {
-        server.setUpdateRequireRestart( true );
-      }
-      else
-      {
-        server.setUpdateRequireRestart( false );
-      }
-      if ( updateRequireCachesCleanFieldIndex == 0 )
-      {
-        server.setUpdateRequireCacheCleaning( true );
-      }
-      else
-      {
-        server.setUpdateRequireCacheCleaning( false );
-      }
-      if ( stopUsingJmxFieldIndex == 0 )
-      {
-        server.setUsejmxstop( true );
-      }
-      else
-      {
-        server.setUsejmxstop( false );
-      }
-      server.setStartupcommand( startupCommandAreaValue );
-      server.setShutdowncommand( shutdownCommandAreaValue );
-      server.setAgent( agentFieldValue );
-      // add the application server object if needed
-      if ( serverName == null )
-      {
-        try
-        {
-          parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().addJEEApplicationServer( server );
-          parent.getEnvironmentWindow().getChangeEvents().add( "Add JEE application server " + server.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "applicationserver.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "applicationserver" ) + " " + server.getName() );
-      setId( "applicationserverwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + server.getName() );
-      serverName = server.getName();
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the whole environment window
-      parent.getEnvironmentWindow().update();
-      // update the window
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission || !getEnvironmentWindow().jeeApplicationServersChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the application server object
-            parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServers().remove(
-              server );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete JEE application server " + server.getName() );
-            // update the window
-            update();
-            // update the whole parent window
-            parent.getEnvironmentWindow().update();
-            // close the window
-            ApplicationServerWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        // put the application server clone in the copy component
-        KalumetConsoleApplication.getApplication().setCopyComponent( server.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the copy component is correct
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof JEEApplicationServer) )
-      {
-        return;
-      }
-      // update the application server object
-      server = (JEEApplicationServer) copy;
-      serverName = null;
-      // update the whole window
-      parent.getEnvironmentWindow().update();
-      // update the window
-      update();
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( parent.getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), parent.getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a message into the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JEE application server " + serverName + " status check in progress...",
-        parent.getEnvironmentWindow().getEnvironmentName() );
-      parent.getEnvironmentWindow().getChangeEvents().add(
-        "JEE application server " + serverName + " status check requested." );
-      // start status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentWindow().getEnvironmentName() );
-                                                                      parent.getEnvironmentWindow().getChangeEvents().add(
-                                                                        statusThread.message );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        "JEE application server " + serverName
-                                                                          + " status: " + statusThread.message,
-                                                                        parent.getEnvironmentWindow().getEnvironmentName() );
-                                                                      parent.getEnvironmentWindow().getChangeEvents().add(
-                                                                        "JEE application server " + serverName
-                                                                          + " status: " + statusThread.message );
-                                                                    }
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationServersUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application server " + serverName + " update in progress...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "JEE application server " + serverName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application server " + serverName + " updated.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application server " + serverName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // stop
-  private ActionListener stop = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationServersControlPermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application server " + serverName + " stop in progress...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "JEE application server " + serverName + " stop requested." );
-            // start the stop thread
-            final StopThread stopThread = new StopThread();
-            stopThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( stopThread.ended )
-                {
-                  if ( stopThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( stopThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( stopThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application server " + serverName + " stopped.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application server " + serverName + " stopped." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // start
-  private ActionListener start = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationServersControlPermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application server " + serverName + " start in progress...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "JEE application server " + serverName + " start requested." );
-            // start the start thread
-            final StartThread startThread = new StartThread();
-            startThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( startThread.ended )
-                {
-                  if ( startThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( startThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( startThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application server " + serverName + " started.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application server " + serverName + " started." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationServerWindow</code>.
-   *
-   * @param parent                the <code>ApplicationServersPane</code>.
-   * @param ApplicationServerName the original JEE application server name.
-   */
-  public ApplicationServerWindow( ApplicationServersPane parent, String ApplicationServerName )
-  {
-    super();
-
-    // update the parent tab pane
-    this.parent = parent;
-
-    // update the application server name
-    this.serverName = ApplicationServerName;
-
-    // update the application server object from the parent environment
-    this.server =
-      parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer( serverName );
-    if ( this.server == null )
-    {
-      this.server = new JEEApplicationServer();
-    }
-
-    if ( serverName == null )
-    {
-      setTitle( Messages.getString( "applicationserver" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "applicationserver" ) + " " + serverName );
-    }
-    setId( "applicationserverwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + serverName );
-    setStyleName( "default" );
-    setWidth( new Extent( 800, Extent.PX ) );
-    setHeight( new Extent( 600, Extent.PX ) );
-    setIcon( Styles.APPLICATION );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationServersChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-    }
-    // add the status button
-    Button statusButton = new Button( Messages.getString( "status" ), Styles.INFORMATION );
-    statusButton.setStyleName( "control" );
-    statusButton.addActionListener( status );
-    controlRow.add( statusButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationServersControlPermission)
-    {
-      // add the stop button
-      Button stopButton = new Button( Messages.getString( "stop" ), Styles.FLAG_RED );
-      stopButton.setStyleName( "control" );
-      stopButton.addActionListener( stop );
-      controlRow.add( stopButton );
-      // add the start button
-      Button startButton = new Button( Messages.getString( "start" ), Styles.FLAG_GREEN );
-      startButton.setStyleName( "control" );
-      startButton.addActionListener( start );
-      controlRow.add( startButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationServersUpdatePermission)
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationServersChangePermission)
-    {
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the jee application server general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    generalPane = new ApplicationServerGeneralPane( this );
-    generalPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalPane );
-
-    // add the jee application server caches tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "caches" ) );
-    cachesPane = new ApplicationServerCachesPane( this );
-    cachesPane.setLayoutData( tabLayoutData );
-    tabPane.add( cachesPane );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    generalPane.update();
-    cachesPane.update();
-  }
-
-  public JEEApplicationServer getApplicationServer()
-  {
-    return this.server;
-  }
-
-  public String getApplicationServerName()
-  {
-    return this.serverName;
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServersPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServersPane.java
deleted file mode 100644
index d7145bf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationServersPane.java
+++ /dev/null
@@ -1,926 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JEEApplicationServerClient;
-
-import java.util.Iterator;
-
-/**
- * Environment application servers pane.
- */
-public class ApplicationServersPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField topologyField;
-
-  private Grid serversGrid;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        JEEApplicationServerClient client = new JEEApplicationServerClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), serverName, false );
-      }
-      catch ( Exception e )
-      {
-        message = "JEE application server " + serverName + " update failed: " + e.getMessage();
-        failure = true;
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // stop thread
-  class StopThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        JEEApplicationServerClient client = new JEEApplicationServerClient( agent.getHostname(), agent.getPort() );
-        client.stop( parent.getEnvironmentName(), serverName );
-      }
-      catch ( Exception e )
-      {
-        message = "JEE application server " + serverName + " stop failed: " + e.getMessage();
-        failure = true;
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // start thread
-  class StartThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agnet
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        JEEApplicationServerClient client = new JEEApplicationServerClient( agent.getHostname(), agent.getPort() );
-        client.start( parent.getEnvironmentName(), serverName );
-      }
-      catch ( Exception e )
-      {
-        message = "JEE application server " + serverName + " start failed: " + e.getMessage();
-        failure = true;
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        JEEApplicationServerClient client = new JEEApplicationServerClient( agent.getHostname(), agent.getPort() );
-        message = client.status( parent.getEnvironmentName(), serverName );
-      }
-      catch ( Exception e )
-      {
-        message = "JEE application server " + serverName + " status failed: " + e.getMessage();
-        failure = true;
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // get JEE application server name
-      final String serverName = event.getActionCommand();
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission && !parent.jeeApplicationServersUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if no modification has been performed
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), parent.getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // put message in the log pane and in the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application server " + serverName + " update in progress...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "JEE application server " + serverName + " update requested." );
-            // launch async task
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.serverName = serverName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application server " + serverName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JEE application server " + serverName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // start
-  private ActionListener start = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // get JEE application server name
-      final String serverName = event.getActionCommand();
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission && !parent.jeeApplicationServersControlPermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if no modification has been performed
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), parent.getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // put message in the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application server " + serverName + " start in progress...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "JEE application server " + serverName + " start requested." );
-            // launch async task
-            final StartThread startThread = new StartThread();
-            startThread.serverName = serverName;
-            startThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( startThread.ended )
-                {
-                  if ( startThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( startThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( startThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application server " + serverName + " started.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JEE application server " + serverName + " started." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // stop
-  private ActionListener stop = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // get JEE application server name
-      final String serverName = event.getActionCommand();
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission && !parent.jeeApplicationServersControlPermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if no modification has been performed
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), parent.getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // put a message in the log pane and in the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application server " + serverName + " stop in progress...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "JEE application server " + serverName + " stop requested." );
-            // launch async task
-            final StopThread stopThread = new StopThread();
-            stopThread.serverName = serverName;
-            stopThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( stopThread.ended )
-                {
-                  if ( stopThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( stopThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( stopThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application server " + serverName + " stopped.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JEE application server " + serverName + " stopped." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), parent.getEnvironmentName() );
-        return;
-      }
-      // get JEE application server name
-      final String serverName = event.getActionCommand();
-      // put a message in the log pane and in the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JEE application server " + serverName + " status check in progress...", parent.getEnvironmentName() );
-      parent.getChangeEvents().add( "JEE application server " + serverName + " status check." );
-      // launch async task
-      final StatusThread statusThread = new StatusThread();
-      statusThread.serverName = serverName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                      parent.getChangeEvents().add(
-                                                                        statusThread.message );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        "JEE server " + serverName + " status: "
-                                                                          + statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                      parent.getChangeEvents().add(
-                                                                        "JEE server " + serverName + " status: "
-                                                                          + statusThread.message );
-                                                                    }
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission && !parent.jeeApplicationServersChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // looking for the application server object
-      final JEEApplicationServer applicationServer =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer( event.getActionCommand() );
-      if ( applicationServer == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "applicationserver.notfound" ), parent.getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the application server
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().remove( applicationServer );
-            // add change event
-            parent.getChangeEvents().add( "Delete JEE application server " + applicationServer.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the whole window
-            parent.update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "applicationserverwindow_" + parent.getEnvironmentName() + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ApplicationServerWindow( ApplicationServersPane.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ApplicationServerWindow( ApplicationServersPane.this, null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the application server object
-      JEEApplicationServer applicationServer =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer( event.getActionCommand() );
-      if ( applicationServer == null )
-      {
-        return;
-      }
-      try
-      {
-        // put the application server clone in the copy component
-        KalumetConsoleApplication.getApplication().setCopyComponent( applicationServer.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission && !parent.jeeApplicationServersChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // looking for the application server object
-      JEEApplicationServer server =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer( event.getActionCommand() );
-      if ( server == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "applicationserver.notfound" ), parent.getEnvironmentName() );
-        return;
-      }
-      // change the current server state
-      if ( server.isActive() )
-      {
-        server.setActive( false );
-        parent.getChangeEvents().add( "Disable JEE application server " + server.getName() );
-      }
-      else
-      {
-        server.setActive( true );
-        parent.getChangeEvents().add( "Enable JEE application server " + server.getName() );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the journal tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission && !parent.jeeApplicationServersChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // looking for the application server object
-      JEEApplicationServer server =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer( event.getActionCommand() );
-      if ( server == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "applicationserver.notfound" ), parent.getEnvironmentName() );
-        return;
-      }
-      // change the current blocker state
-      if ( server.isBlocker() )
-      {
-        server.setBlocker( false );
-      }
-      else
-      {
-        server.setBlocker( true );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the journal tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationServersPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public ApplicationServersPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // general grid layout
-    Grid grid = new Grid( 2 );
-    grid.setStyleName( "default" );
-    grid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    grid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( grid );
-
-    // add application servers topology
-    Label topologyLabel = new Label( Messages.getString( "topology" ) );
-    topologyLabel.setStyleName( "default" );
-    grid.add( topologyLabel );
-    Object[] labels = new Object[]{ Messages.getString( "standalone" ), Messages.getString( "cluster" ) };
-    topologyField = new SelectField( labels );
-    topologyField.setStyleName( "default" );
-    grid.add( topologyField );
-
-    // add the create application server button
-    if ( parent.adminPermission || parent.jeeApplicationServersChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "applicationserver.add" ), Styles.ADD );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add the JEE application servers grid
-    serversGrid = new Grid( 5 );
-    serversGrid.setStyleName( "border.grid" );
-    serversGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    serversGrid.setColumnWidth( 1, new Extent( 25, Extent.PERCENT ) );
-    serversGrid.setColumnWidth( 2, new Extent( 30, Extent.PERCENT ) );
-    serversGrid.setColumnWidth( 3, new Extent( 30, Extent.PERCENT ) );
-    serversGrid.setColumnWidth( 4, new Extent( 15, Extent.PERCENT ) );
-    content.add( serversGrid );
-
-    // update
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // update the topology select field
-    if ( parent.getEnvironment().getJEEApplicationServers().isCluster() )
-    {
-      topologyField.setSelectedIndex( 1 );
-    }
-    else
-    {
-      topologyField.setSelectedIndex( 0 );
-    }
-    // update the JEE application servers grid
-    // remove all grid children
-    serversGrid.removeAll();
-    // add header
-    Label serverActionsHeader = new Label( " " );
-    serverActionsHeader.setStyleName( "grid.header" );
-    serversGrid.add( serverActionsHeader );
-    Label serverNameHeader = new Label( Messages.getString( "name" ) );
-    serverNameHeader.setStyleName( "grid.header" );
-    serversGrid.add( serverNameHeader );
-    Label serverTypeHeader = new Label( Messages.getString( "type" ) );
-    serverTypeHeader.setStyleName( "grid.header" );
-    serversGrid.add( serverTypeHeader );
-    Label serverUrlHeader = new Label( Messages.getString( "jmx" ) );
-    serverUrlHeader.setStyleName( "grid.header" );
-    serversGrid.add( serverUrlHeader );
-    Label serverAgentHeader = new Label( Messages.getString( "agent" ) );
-    serverAgentHeader.setStyleName( "grid.header" );
-    serversGrid.add( serverAgentHeader );
-    // add application servers
-    for ( Iterator serverIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          serverIterator.hasNext(); )
-    {
-      JEEApplicationServer server = (JEEApplicationServer) serverIterator.next();
-      // application server name and actions
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      serversGrid.add( row );
-      // copy button
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( server.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active button
-      Button activeButton;
-      if ( server.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( parent.adminPermission || parent.jeeApplicationServersChangePermission)
-      {
-        activeButton.setActionCommand( server.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker button
-      Button blockerButton;
-      if ( server.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( parent.adminPermission || parent.jeeApplicationServersChangePermission)
-      {
-        blockerButton.setActionCommand( server.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // status button
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      statusButton.setActionCommand( server.getName() );
-      statusButton.addActionListener( status );
-      row.add( statusButton );
-      if ( parent.adminPermission || parent.jeeApplicationServersControlPermission)
-      {
-        // stop button
-        Button stopButton = new Button( Styles.FLAG_RED );
-        stopButton.setToolTipText( Messages.getString( "stop" ) );
-        stopButton.setActionCommand( server.getName() );
-        stopButton.addActionListener( stop );
-        row.add( stopButton );
-        // start button
-        Button startButton = new Button( Styles.FLAG_GREEN );
-        startButton.setToolTipText( Messages.getString( "start" ) );
-        startButton.setActionCommand( server.getName() );
-        startButton.addActionListener( start );
-        row.add( startButton );
-      }
-      if ( parent.adminPermission || parent.jeeApplicationServersUpdatePermission)
-      {
-        // update button
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( server.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      // delete button
-      if ( parent.adminPermission || parent.jeeApplicationServersChangePermission)
-      {
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( server.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // server name
-      Button serverName = new Button( server.getName() );
-      serverName.setStyleName( "default" );
-      serverName.setActionCommand( server.getName() );
-      serverName.addActionListener( edit );
-      serversGrid.add( serverName );
-      // server type
-      Label serverType = new Label( Messages.getString( "unknown" ) );
-      if ( server.getClassname().equals( ApplicationServerWindow.JBOSS4_CONTROLLER_CLASSNAME ) )
-      {
-        serverType = new Label( Messages.getString( "jboss4" ) );
-      }
-      if ( server.getClassname().equals( ApplicationServerWindow.JBOSS6_CONTROLLER_CLASSNAME ) )
-      {
-        serverType = new Label( Messages.getString( "jboss6" ) );
-      }
-      if ( server.getClassname().equals( ApplicationServerWindow.WEBLOGIC_CONTROLLER_CLASSNAME ) )
-      {
-        serverType = new Label( Messages.getString( "weblogic8" ) );
-      }
-      if ( server.getClassname().equals( ApplicationServerWindow.WEBSPHERE_CONTROLLER_CLASSNAME ) )
-      {
-        serverType = new Label( Messages.getString( "websphere5" ) );
-      }
-      serverType.setStyleName( "default" );
-      serversGrid.add( serverType );
-      // server JMX URL
-      Label serverNetwork = new Label( server.getJmxurl() );
-      serverNetwork.setStyleName( "default" );
-      serversGrid.add( serverNetwork );
-      // server agent
-      Label serverAgent = new Label( server.getAgent() );
-      serverAgent.setStyleName( "default" );
-      serversGrid.add( serverAgent );
-    }
-  }
-
-  /**
-   * Get the parent <code>EnvironmentWindow</code>
-   *
-   * @return the parent <code>EnvironmentWindow</code>
-   */
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-  public SelectField getTopologyField()
-  {
-    return this.topologyField;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationWindow.java
deleted file mode 100644
index a4097d6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationWindow.java
+++ /dev/null
@@ -1,560 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JEEApplicationClient;
-
-/**
- * JEE application window.
- */
-public class ApplicationWindow
-  extends WindowPane
-{
-
-  private String applicationName;
-
-  private String serverName;
-
-  private JEEApplication application = null;
-
-  private ApplicationsPane parent;
-
-  private ApplicationGeneralPane generalPane;
-
-  private ApplicationArchivesPane archivesPane;
-
-  private ApplicationContentManagersPane contentManagersPane;
-
-  private ApplicationConfigurationFilesPane configurationFilesPane;
-
-  private ApplicationDatabasesPane databasesPane;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JEEApplicationClient client = new JEEApplicationClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentWindow().getEnvironmentName(), serverName, applicationName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + applicationName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the JEE application object
-      ApplicationWindow.this.application =
-        parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          serverName ).getJEEApplication( applicationName );
-      if ( ApplicationWindow.this.application == null )
-      {
-        ApplicationWindow.this.application = new JEEApplication();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ApplicationWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the application
-            parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              serverName ).getJEEApplications().remove( application );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete JEE application " + application.getName() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            ApplicationWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = generalPane.getNameField().getText();
-      int activeFieldIndex = generalPane.getActiveField().getSelectedIndex();
-      int blockerFieldIndex = generalPane.getBlockerField().getSelectedIndex();
-      String uriFieldValue = generalPane.getUriField().getText();
-      String agentFieldValue = (String) generalPane.getAgentField().getSelectedItem();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "application.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the JEE application name, check if the name
-      // doesn't already exist
-      if ( applicationName == null || ( applicationName != null && !applicationName.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          serverName ).getJEEApplication( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "application.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( applicationName != null )
-      {
-        parent.getEnvironmentWindow().getChangeEvents().add( "Change JEE application " + application.getName() );
-      }
-      // update the application object
-      application.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        application.setActive( true );
-      }
-      else
-      {
-        application.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        application.setBlocker( true );
-      }
-      else
-      {
-        application.setBlocker( false );
-      }
-      application.setUri( uriFieldValue );
-      application.setAgent( agentFieldValue );
-      // add the application object if needed
-      if ( applicationName == null )
-      {
-        try
-        {
-          parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-            serverName ).addJEEApplication( application );
-          parent.getEnvironmentWindow().getChangeEvents().add( "Add JEE application " + application.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "application.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "application" ) + " " + application.getName() );
-      setId( "applicationwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + serverName + "_"
-               + application.getName() );
-      applicationName = application.getName();
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( application.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof JEEApplication) )
-      {
-        return;
-      }
-      application = (JEEApplication) copy;
-      applicationName = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + applicationName + " update in progress...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "JEE application " + applicationName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + applicationName + " updated.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "JEE application " + applicationName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationWindow</code>.
-   *
-   * @param parent                the parent <code>ApplicationsPane</code>.
-   * @param applicationServerName the original JEE application server name.
-   * @param applicationName       the original JEE application name.
-   */
-  public ApplicationWindow( ApplicationsPane parent, String applicationServerName, String applicationName )
-  {
-    super();
-
-    // update the parent tab pane
-    this.parent = parent;
-
-    // update the JEE application server name and JEE application name
-    this.serverName = applicationServerName;
-    this.applicationName = applicationName;
-
-    // update the application object from the parent environment
-    this.application =
-      parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        serverName ).getJEEApplication( this.applicationName );
-    if ( this.application == null )
-    {
-      this.application = new JEEApplication();
-    }
-
-    if ( this.applicationName == null )
-    {
-      setTitle( Messages.getString( "application" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "application" ) + " " + this.applicationName );
-    }
-    setId( "applicationwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + serverName + "_"
-             + this.applicationName );
-    setStyleName( "default" );
-    setWidth( new Extent( 600, Extent.PX ) );
-    setHeight( new Extent( 400, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsUpdatePermission )
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the JEE application general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    generalPane = new ApplicationGeneralPane( this );
-    generalPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalPane );
-
-    // add the JEE application archives tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "archives" ) );
-    archivesPane = new ApplicationArchivesPane( this );
-    archivesPane.setLayoutData( tabLayoutData );
-    tabPane.add( archivesPane );
-
-    // add the JEE application configuration files tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "configurationfiles" ) );
-    configurationFilesPane = new ApplicationConfigurationFilesPane( this );
-    configurationFilesPane.setLayoutData( tabLayoutData );
-    tabPane.add( configurationFilesPane );
-
-    // add the JEE application databases tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "databases" ) );
-    databasesPane = new ApplicationDatabasesPane( this );
-    databasesPane.setLayoutData( tabLayoutData );
-    tabPane.add( databasesPane );
-
-    // add the JEE application content managers tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "contentmanagers" ) );
-    contentManagersPane = new ApplicationContentManagersPane( this );
-    contentManagersPane.setLayoutData( tabLayoutData );
-    tabPane.add( contentManagersPane );
-  }
-
-  public JEEApplication getApplication()
-  {
-    return this.application;
-  }
-
-  public ApplicationsPane getParentPane()
-  {
-    return this.parent;
-  }
-
-  public String getServerName()
-  {
-    return this.serverName;
-  }
-
-  public String getApplicationName()
-  {
-    return this.applicationName;
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    generalPane.update();
-    archivesPane.update();
-    contentManagersPane.update();
-    configurationFilesPane.update();
-    databasesPane.update();
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationsPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationsPane.java
deleted file mode 100644
index f79f326..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ApplicationsPane.java
+++ /dev/null
@@ -1,841 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JEEApplicationClient;
-
-import java.util.Iterator;
-
-/**
- * Environment JEE applications pane.
- */
-public class ApplicationsPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField scopeField;
-
-  private Grid grid;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String applicationName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JEEApplicationClient client = new JEEApplicationClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), serverName, applicationName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JEE application " + applicationName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JEE application object
-      JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplication( event.getActionCommand() );
-      if ( application == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "application.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the JEE application state and add a change event
-      if ( application.isActive() )
-      {
-        application.setActive( false );
-        parent.getChangeEvents().add( "Disable JEE application " + application.getName() );
-      }
-      else
-      {
-        application.setActive( true );
-        parent.getChangeEvents().add( "Enable JEE application " + application.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the jee application object
-      JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplication( event.getActionCommand() );
-      if ( application == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "application.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the jee application blocker and add a change event
-      if ( application.isBlocker() )
-      {
-        application.setBlocker( false );
-        parent.getChangeEvents().add( "Set not blocker for JEE application " + application.getName() );
-      }
-      else
-      {
-        application.setBlocker( true );
-        parent.getChangeEvents().add( "Set blocker for JEE application " + application.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the jee application object
-      final JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplication( event.getActionCommand() );
-      if ( application == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "application.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the JEE application object
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              (String) scopeField.getSelectedItem() ).getJEEApplications().remove( application );
-            // add a change event
-            parent.getChangeEvents().add( "Delete JEE application " + application.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "applicationwindow_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_"
-          + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ApplicationWindow( ApplicationsPane.this, (String) scopeField.getSelectedItem(),
-                                 event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ApplicationWindow( ApplicationsPane.this, (String) scopeField.getSelectedItem(), null ) );
-    }
-  };
-
-  // up
-  private ActionListener up = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JEE application object
-      JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplication( event.getActionCommand() );
-      if ( application == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "application.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JEE application index
-      int index = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplications().indexOf( application );
-      // if the JEE application index is the first one or the object is not
-      // found, do nothing, the size of the list must constains at least 2
-      // JEE applications
-      if ( index == 0 || index == -1 || parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplications().size() < 2 )
-      {
-        return;
-      }
-      // get the previous application
-      JEEApplication previous =
-        (JEEApplication) parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJEEApplications().get( index - 1 );
-      // switch the application
-      parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplications().set( index, previous );
-      parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplications().set( index - 1, application );
-      // update the pane
-      update();
-    }
-  };
-
-  // down
-  private ActionListener down = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JEE application object
-      JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplication( event.getActionCommand() );
-      if ( application == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "application.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JEE application index
-      int index = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplications().indexOf( application );
-      // if the JEE application index is the last one or the object is not
-      // found, the size of the list must contains at least 2 JEE
-      // applications
-      if ( index == -1 || index == parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplications().size() - 1 ||
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJEEApplications().size() < 2 )
-      {
-        return;
-      }
-      // get the next application
-      JEEApplication next =
-        (JEEApplication) parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJEEApplications().get( index + 1 );
-      // switch the application
-      parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplications().set( index + 1, application );
-      parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplications().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the JEE application object
-      JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplication( event.getActionCommand() );
-      if ( application == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( application.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JEE application name
-      String name = event.getActionCommand();
-      // get the JEE application uri field
-      TextField uriField = (TextField) ApplicationsPane.this.getComponent(
-        "applicationuri_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      // get the URI field value
-      String uriValue = uriField.getText();
-      // looking for the JEE application object
-      JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJEEApplication( name );
-      if ( application == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "application.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change JEE application " + application.getName() + " URI to " + uriValue );
-      // change the JEE application object
-      application.setUri( uriValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the selected JEE server and application
-      final String serverName = (String) scopeField.getSelectedItem();
-      final String applicationName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JEE application " + applicationName + " update in progress...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "JEE application " + applicationName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.serverName = serverName;
-            updateThread.applicationName = applicationName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JEE application " + applicationName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JEE application " + applicationName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // test URI
-  private ActionListener testUri = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String name = event.getActionCommand();
-      TextField uriField = (TextField) ApplicationsPane.this.getComponent(
-        "applicationuri_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      String uri = FileManipulator.format( uriField.getText() );
-      boolean exists = false;
-      FileManipulator fileManipulator = null;
-      try
-      {
-        fileManipulator = new FileManipulator();
-        exists = fileManipulator.exists( uri );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          "Can't check the URI " + uri + ": " + e.getMessage(), parent.getEnvironmentName() );
-      }
-      finally
-      {
-        if ( fileManipulator != null )
-        {
-          fileManipulator.close();
-        }
-      }
-      if ( exists )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addConfirm( "URI " + uri + " exists.",
-                                                                            parent.getEnvironmentName() );
-      }
-      else
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( "URI " + uri + " doesn't exists.",
-                                                                            parent.getEnvironmentName() );
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>ApplicationsPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public ApplicationsPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add the scope field
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( layoutGrid );
-    Label scopeLabel = new Label( Messages.getString( "scope" ) );
-    layoutGrid.add( scopeLabel );
-    scopeField = new SelectField();
-    scopeField.addActionListener( scopeSelect );
-    scopeField.setStyleName( "default" );
-    layoutGrid.add( scopeField );
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    scopeListModel.removeAll();
-    // add application servers in the scope select field
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-    }
-    if ( scopeListModel.size() > 0 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-
-    // add the create button
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "application.add" ), Styles.ADD );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add JEE applications grid
-    grid = new Grid( 4 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 10, Extent.PERCENT ) );
-    grid.setColumnWidth( 2, new Extent( 80, Extent.PERCENT ) );
-    grid.setColumnWidth( 3, new Extent( 10, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    String applicationServerName = null;
-    // update the scope select field
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      applicationServerName = (String) scopeField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int scopeIndex = 0;
-    int found = -1;
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-      if ( applicationServer.getName().equals( applicationServerName ) )
-      {
-        found = scopeIndex;
-      }
-      scopeIndex++;
-    }
-    // remove all JEE applications grid children
-    grid.removeAll();
-    // check if at least one application server is present
-    if ( scopeListModel.size() < 1 )
-    {
-      return;
-    }
-    // update the scope select field selected index
-    if ( found == -1 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeField.setSelectedIndex( found );
-    }
-    // update the application server name from the scope (in case of
-    // application server deletion)
-    applicationServerName = (String) scopeField.getSelectedItem();
-
-    // add JEE applications grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    Label uriHeader = new Label( Messages.getString( "uri" ) );
-    uriHeader.setStyleName( "grid.header" );
-    grid.add( uriHeader );
-    Label agentHeader = new Label( Messages.getString( "agent" ) );
-    agentHeader.setStyleName( "grid.header" );
-    grid.add( agentHeader );
-    // add the JEE applications
-    for ( Iterator applicationIterator = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-      applicationServerName ).getJEEApplications().iterator(); applicationIterator.hasNext(); )
-    {
-      JEEApplication application = (JEEApplication) applicationIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( application.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( application.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        activeButton.setActionCommand( application.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( application.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        blockerButton.setActionCommand( application.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        // up
-        Button upButton = new Button( Styles.ARROW_UP );
-        upButton.setToolTipText( Messages.getString( "up" ) );
-        upButton.setActionCommand( application.getName() );
-        upButton.addActionListener( up );
-        row.add( upButton );
-        // down
-        Button downButton = new Button( Styles.ARROW_DOWN );
-        downButton.setToolTipText( Messages.getString( "down" ) );
-        downButton.setActionCommand( application.getName() );
-        downButton.addActionListener( down );
-        row.add( downButton );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsUpdatePermission )
-      {
-        // update
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( application.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeApplicationsChangePermission)
-      {
-        // apply
-        Button applyButton = new Button( Styles.ACCEPT );
-        applyButton.setToolTipText( Messages.getString( "apply" ) );
-        applyButton.setActionCommand( application.getName() );
-        applyButton.addActionListener( apply );
-        row.add( applyButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( application.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      Button nameField = new Button( application.getName() );
-      nameField.setStyleName( "default" );
-      nameField.setActionCommand( application.getName() );
-      nameField.addActionListener( edit );
-      grid.add( nameField );
-      // uri
-      Row uriRow = new Row();
-      grid.add( uriRow );
-      TextField uriField = new TextField();
-      uriField.setStyleName( "default" );
-      uriField.setWidth( new Extent( 500, Extent.PX ) );
-      uriField.setId(
-        "applicationuri_" + parent.getEnvironmentName() + "_" + applicationServerName + "_" + application.getName() );
-      uriField.setText( application.getUri() );
-      uriRow.add( uriField );
-      // test
-      Button testUriButton = new Button( Styles.WORLD );
-      testUriButton.setToolTipText( Messages.getString( "uri.test" ) );
-      testUriButton.setActionCommand( application.getName() );
-      testUriButton.addActionListener( testUri );
-      uriRow.add( testUriButton );
-      // agent
-      Label agent = new Label( application.getAgent() );
-      agent.setStyleName( "default" );
-      grid.add( agent );
-    }
-  }
-
-  /**
-   * Return the parent <code>EnvironmentWindow</code>.
-   *
-   * @return the parent <code>EnvironmentWindow</code>.
-   */
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return this.parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/CheckerPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/CheckerPane.java
deleted file mode 100644
index 22b3ade..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/CheckerPane.java
+++ /dev/null
@@ -1,1378 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.ws.client.*;
-import org.apache.kalumet.ws.client.JEEApplicationServerClient;
-
-import java.util.Iterator;
-
-// Version Thread
-class VersionThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private String version;
-
-  public VersionThread( String hostname, int port )
-  {
-    this.hostname = hostname;
-    this.port = port;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public String getVersion()
-  {
-    return this.version;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      AgentClient webServiceClient = new AgentClient( hostname, port );
-      version = webServiceClient.getVersion();
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-
-}
-
-// ApplicationServerStatusThread
-class ApplicationServerStatusThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private String status;
-
-  public ApplicationServerStatusThread( String hostname, int port, String environmentName,
-                                        String applicationServerName )
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public String getStatus()
-  {
-    return this.status;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      JEEApplicationServerClient webServiceClient = new JEEApplicationServerClient( hostname, port );
-      status = webServiceClient.status( environmentName, applicationServerName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-
-}
-
-// ConnectionPoolCheckThread
-class ConnectionPoolCheckThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private String connectionPoolName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private boolean uptodate;
-
-  public ConnectionPoolCheckThread( String hostname, int port, String environmentName, String applicationServerName,
-                                    String connectionPoolName )
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-    this.connectionPoolName = connectionPoolName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public boolean getUptodate()
-  {
-    return this.uptodate;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      JDBCConnectionPoolClient webServiceClient = new JDBCConnectionPoolClient( hostname, port );
-      uptodate = webServiceClient.check( environmentName, applicationServerName, connectionPoolName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-
-}
-
-// DataSourceCheckThread
-class DataSourceCheckThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private String dataSourceName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private boolean uptodate;
-
-  public DataSourceCheckThread( String hostname, int port, String environmentName, String applicationServerName,
-                                String dataSourceName )
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-    this.dataSourceName = dataSourceName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public boolean getUptodate()
-  {
-    return this.uptodate;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      JDBCDataSourceClient webServiceClient = new JDBCDataSourceClient( hostname, port );
-      uptodate = webServiceClient.check( environmentName, applicationServerName, dataSourceName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-
-}
-
-// JMSConnectionFactoryCheckThread
-class JMSConnectionFactoryCheckThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private String jmsConnectionFactoryName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private boolean uptodate;
-
-  public JMSConnectionFactoryCheckThread( String hostname, int port, String environmentName,
-                                          String applicationServerName, String jmsConnectionFactoryName )
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-    this.jmsConnectionFactoryName = jmsConnectionFactoryName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public boolean getUptodate()
-  {
-    return this.uptodate;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      JMSConnectionFactoryClient webServiceClient = new JMSConnectionFactoryClient( hostname, port );
-      uptodate = webServiceClient.check( environmentName, applicationServerName, jmsConnectionFactoryName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-
-}
-
-// JMSServerCheckThread
-class JMSServerCheckThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private String jmsServerName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private boolean uptodate;
-
-  public JMSServerCheckThread( String hostname, int port, String environmentName, String applicationServerName,
-                               String jmsServerName )
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-    this.jmsServerName = jmsServerName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public boolean getUptodate()
-  {
-    return this.uptodate;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      JMSServerClient webServiceClient = new JMSServerClient( hostname, port );
-      uptodate = webServiceClient.check( environmentName, applicationServerName, jmsServerName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-
-}
-
-// JNDIBindingCheckThread
-class JNDIBindingCheckThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private String nameSpaceBindingName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private boolean uptodate;
-
-  public JNDIBindingCheckThread( String hostname, int port, String environmentName, String applicationServerName,
-                                 String nameSpaceBindingName )
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-    this.nameSpaceBindingName = nameSpaceBindingName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public boolean getUptodate()
-  {
-    return this.uptodate;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      JNDIBindingClient webServiceClient = new JNDIBindingClient( hostname, port );
-      uptodate = webServiceClient.check( environmentName, applicationServerName, nameSpaceBindingName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-
-}
-
-// SharedLibraryCheckThread
-class SharedLibraryCheckThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private String sharedLibraryName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private boolean uptodate;
-
-  public SharedLibraryCheckThread( String hostname, int port, String environmentName, String applicationServerName,
-                                   String sharedLibraryName )
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-    this.sharedLibraryName = sharedLibraryName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public boolean getUptodate()
-  {
-    return this.uptodate;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      SharedLibraryClient webServiceClient = new SharedLibraryClient( hostname, port );
-      uptodate = webServiceClient.check( environmentName, applicationServerName, sharedLibraryName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-
-}
-
-// JEEApplicationArchiveCheckThread
-class JEEApplicationArchiveCheckThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private String applicationName;
-
-  private String archiveName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private boolean uptodate;
-
-  public JEEApplicationArchiveCheckThread(String hostname, int port, String environmentName,
-                                          String applicationServerName, String applicationName, String archiveName)
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-    this.applicationName = applicationName;
-    this.archiveName = archiveName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public boolean getUptodate()
-  {
-    return this.uptodate;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      ArchiveClient webServiceClient = new ArchiveClient( hostname, port );
-      uptodate = webServiceClient.check( environmentName, applicationServerName, applicationName, archiveName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-}
-
-// JEEApplicationConfigurationFileCheckThread
-class JEEApplicationConfigurationFileCheckThread
-  extends Thread
-{
-
-  private String hostname;
-
-  private int port;
-
-  private String environmentName;
-
-  private String applicationServerName;
-
-  private String applicationName;
-
-  private String configurationFileName;
-
-  private boolean completed = false;
-
-  private boolean failure = false;
-
-  private String errorMessage;
-
-  private boolean uptodate;
-
-  public JEEApplicationConfigurationFileCheckThread(String hostname, int port, String environmentName,
-                                                    String applicationServerName, String applicationName,
-                                                    String configurationFileName)
-  {
-    this.hostname = hostname;
-    this.port = port;
-    this.environmentName = environmentName;
-    this.applicationServerName = applicationServerName;
-    this.applicationName = applicationName;
-    this.configurationFileName = configurationFileName;
-  }
-
-  public boolean getCompleted()
-  {
-    return this.completed;
-  }
-
-  public boolean getFailure()
-  {
-    return this.failure;
-  }
-
-  public String getErrorMessage()
-  {
-    return this.errorMessage;
-  }
-
-  public boolean getUptodate()
-  {
-    return this.uptodate;
-  }
-
-  public void run()
-  {
-    try
-    {
-      // call the webservice
-      ConfigurationFileClient webServiceClient = new ConfigurationFileClient( hostname, port );
-      uptodate =
-        webServiceClient.check( environmentName, applicationServerName, applicationName, configurationFileName );
-      completed = true;
-    }
-    catch ( Exception e )
-    {
-      errorMessage = e.getMessage();
-      completed = true;
-      failure = true;
-    }
-  }
-}
-
-/**
- * Environment checker pane.
- */
-public class CheckerPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private Grid grid;
-
-  // launch
-  private ActionListener launch = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if no modifications are in progress
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.locked" ) );
-        return;
-      }
-      // get the agent for the environment
-      // load Kalumet configuration
-      Kalumet kalumet;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      // looking for the agent
-      Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-      if ( agent == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "agent.notfound" ) );
-        return;
-      }
-      // put message in the action log pane
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo( "Check in progress ..." );
-      // clean the results grid
-      grid.removeAll();
-      // agent check
-      Label agentCheck = new Label( "Kalumet agent check" );
-      agentCheck.setStyleName( "default" );
-      grid.add( agentCheck );
-      final Label agentVersionLabel = new Label();
-      agentVersionLabel.setStyleName( "default" );
-      grid.add( agentVersionLabel );
-      final Label agentButton = new Label();
-      grid.add( agentButton );
-      // launch the version thread
-      final VersionThread versionThread = new VersionThread( agent.getHostname(), agent.getPort() );
-      versionThread.start();
-      // launch the synchronization task for the agent version
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( versionThread.getCompleted() )
-                                                                  {
-                                                                    if ( versionThread.getFailure() )
-                                                                    {
-                                                                      agentVersionLabel.setText( "Agent error: "
-                                                                                                   + versionThread.getErrorMessage() );
-                                                                      agentButton.setIcon( Styles.EXCLAMATION );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      agentVersionLabel.setText(
-                                                                        versionThread.getVersion() );
-                                                                      agentButton.setIcon( Styles.ACCEPT );
-                                                                    }
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-      // application servers check
-      for ( Iterator applicationServerIterator =
-              parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-            applicationServerIterator.hasNext(); )
-      {
-        JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-        Label applicationServerLabel = new Label( "JEE server " + applicationServer.getName() + " check" );
-        applicationServerLabel.setStyleName( "default" );
-        grid.add( applicationServerLabel );
-        final Label applicationServerStatusLabel = new Label();
-        applicationServerStatusLabel.setStyleName( "default" );
-        grid.add( applicationServerStatusLabel );
-        final Label applicationServerStatusButton = new Label();
-        applicationServerStatusButton.setStyleName( "default" );
-        grid.add( applicationServerStatusButton );
-        // launch the application server status thread
-        final ApplicationServerStatusThread applicationServerStatusThread =
-          new ApplicationServerStatusThread( agent.getHostname(), agent.getPort(), parent.getEnvironmentName(),
-                                             applicationServer.getName() );
-        applicationServerStatusThread.start();
-        // launch the synchronisation status thread
-        KalumetConsoleApplication.getApplication().enqueueTask(
-          KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-        {
-          public void run()
-          {
-            if ( applicationServerStatusThread.getCompleted() )
-            {
-              if ( applicationServerStatusThread.getFailure() )
-              {
-                applicationServerStatusLabel.setText(
-                  "JEE application server error: " + applicationServerStatusThread.getErrorMessage() );
-                applicationServerStatusButton.setIcon( Styles.EXCLAMATION );
-              }
-              else
-              {
-                applicationServerStatusLabel.setText( applicationServerStatusThread.getStatus() );
-                applicationServerStatusButton.setIcon( Styles.ACCEPT );
-              }
-            }
-            else
-            {
-              KalumetConsoleApplication.getApplication().enqueueTask(
-                KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-            }
-          }
-        } );
-        // check connection pool
-        for ( Iterator connectionPoolIterator = applicationServer.getJDBCConnectionPools().iterator();
-              connectionPoolIterator.hasNext(); )
-        {
-          JDBCConnectionPool connectionPool = (JDBCConnectionPool) connectionPoolIterator.next();
-          Label connectionPoolLabel = new Label( " JDBC connection pool " + connectionPool.getName() + " check" );
-          connectionPoolLabel.setStyleName( "default" );
-          grid.add( connectionPoolLabel );
-          final Label connectionPoolStatusLabel = new Label();
-          connectionPoolStatusLabel.setStyleName( "default" );
-          grid.add( connectionPoolStatusLabel );
-          final Label connectionPoolButton = new Label();
-          grid.add( connectionPoolButton );
-          // launch the connection pool check thread
-          final ConnectionPoolCheckThread connectionPoolCheckThread =
-            new ConnectionPoolCheckThread( agent.getHostname(), agent.getPort(), parent.getEnvironmentName(),
-                                           applicationServer.getName(), connectionPool.getName() );
-          connectionPoolCheckThread.start();
-          // launch the synchronisation thread
-          KalumetConsoleApplication.getApplication().enqueueTask(
-            KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-          {
-            public void run()
-            {
-              if ( connectionPoolCheckThread.getCompleted() )
-              {
-                if ( connectionPoolCheckThread.getFailure() )
-                {
-                  connectionPoolStatusLabel.setText(
-                    "JDBC connection pool check error: " + connectionPoolCheckThread.getErrorMessage() );
-                  connectionPoolButton.setIcon( Styles.EXCLAMATION );
-                }
-                else
-                {
-                  if ( connectionPoolCheckThread.getUptodate() )
-                  {
-                    connectionPoolStatusLabel.setText( "OK" );
-                    connectionPoolButton.setIcon( Styles.ACCEPT );
-                  }
-                  else
-                  {
-                    connectionPoolStatusLabel.setText( "JDBC Connection Pool is not deployed or not up to date" );
-                    connectionPoolButton.setIcon( Styles.EXCLAMATION );
-                  }
-                }
-              }
-              else
-              {
-                KalumetConsoleApplication.getApplication().enqueueTask(
-                  KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-              }
-            }
-          } );
-        }
-        // check datasources
-        for ( Iterator dataSourceIterator = applicationServer.getJDBCDataSources().iterator();
-              dataSourceIterator.hasNext(); )
-        {
-          JDBCDataSource dataSource = (JDBCDataSource) dataSourceIterator.next();
-          Label dataSourceLabel = new Label( " JDBC data source " + dataSource.getName() + " check" );
-          dataSourceLabel.setStyleName( "default" );
-          grid.add( dataSourceLabel );
-          final Label dataSourceStatusLabel = new Label();
-          dataSourceStatusLabel.setStyleName( "Default" );
-          grid.add( dataSourceStatusLabel );
-          final Label dataSourceButton = new Label();
-          grid.add( dataSourceButton );
-          // launch the datasource check thread
-          final DataSourceCheckThread dataSourceCheckThread =
-            new DataSourceCheckThread( agent.getHostname(), agent.getPort(), parent.getEnvironmentName(),
-                                       applicationServer.getName(), dataSource.getName() );
-          dataSourceCheckThread.start();
-          // launch the synchronisation thread
-          KalumetConsoleApplication.getApplication().enqueueTask(
-            KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-          {
-            public void run()
-            {
-              if ( dataSourceCheckThread.getCompleted() )
-              {
-                if ( dataSourceCheckThread.getFailure() )
-                {
-                  dataSourceStatusLabel.setText(
-                    "JDBC data source check error: " + dataSourceCheckThread.getErrorMessage() );
-                  dataSourceButton.setIcon( Styles.EXCLAMATION );
-                }
-                else
-                {
-                  if ( dataSourceCheckThread.getUptodate() )
-                  {
-                    dataSourceStatusLabel.setText( "OK" );
-                    dataSourceButton.setIcon( Styles.ACCEPT );
-                  }
-                  else
-                  {
-                    dataSourceStatusLabel.setText( "JDBC data source is not deployed or not up to date." );
-                    dataSourceButton.setIcon( Styles.EXCLAMATION );
-                  }
-                }
-              }
-              else
-              {
-                KalumetConsoleApplication.getApplication().enqueueTask(
-                  KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-              }
-            }
-          } );
-        }
-        // check JMS connection factories
-        for ( Iterator jmsConnectionFactoryIterator = applicationServer.getJMSConnectionFactories().iterator();
-              jmsConnectionFactoryIterator.hasNext(); )
-        {
-          JMSConnectionFactory jmsConnectionFactory = (JMSConnectionFactory) jmsConnectionFactoryIterator.next();
-          Label jmsConnectionFactoryLabel =
-            new Label( " JMS connection factory " + jmsConnectionFactory.getName() + " check" );
-          jmsConnectionFactoryLabel.setStyleName( "Default" );
-          grid.add( jmsConnectionFactoryLabel );
-          final Label jmsConnectionFactoryStatusLabel = new Label();
-          jmsConnectionFactoryStatusLabel.setStyleName( "Default" );
-          grid.add( jmsConnectionFactoryStatusLabel );
-          final Label jmsConnectionFactoryButton = new Label();
-          grid.add( jmsConnectionFactoryButton );
-          // launch the jms connection factory check thread
-          final JMSConnectionFactoryCheckThread jmsConnectionFactoryCheckThread =
-            new JMSConnectionFactoryCheckThread( agent.getHostname(), agent.getPort(), parent.getEnvironmentName(),
-                                                 applicationServer.getName(), jmsConnectionFactory.getName() );
-          jmsConnectionFactoryCheckThread.start();
-          // launch the synchronisation thread
-          KalumetConsoleApplication.getApplication().enqueueTask(
-            KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-          {
-            public void run()
-            {
-              if ( jmsConnectionFactoryCheckThread.getCompleted() )
-              {
-                if ( jmsConnectionFactoryCheckThread.getFailure() )
-                {
-                  jmsConnectionFactoryStatusLabel.setText(
-                    "JMS connection factory check error: " + jmsConnectionFactoryCheckThread.getErrorMessage() );
-                  jmsConnectionFactoryButton.setIcon( Styles.EXCLAMATION );
-                }
-                else
-                {
-                  if ( jmsConnectionFactoryCheckThread.getUptodate() )
-                  {
-                    jmsConnectionFactoryStatusLabel.setText( "OK" );
-                    jmsConnectionFactoryButton.setIcon( Styles.ACCEPT );
-                  }
-                  else
-                  {
-                    jmsConnectionFactoryStatusLabel.setText(
-                      "JMS connection factory is not deployed or not up to date" );
-                    jmsConnectionFactoryButton.setIcon( Styles.EXCLAMATION );
-                  }
-                }
-              }
-              else
-              {
-                KalumetConsoleApplication.getApplication().enqueueTask(
-                  KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-              }
-            }
-          } );
-        }
-        // check JMS servers
-        for ( Iterator jmsServerIterator = applicationServer.getJMSServers().iterator(); jmsServerIterator.hasNext(); )
-        {
-          JMSServer jmsServer = (JMSServer) jmsServerIterator.next();
-          Label jmsServerLabel = new Label( " JMS server " + jmsServer.getName() + " check" );
-          jmsServerLabel.setStyleName( "Default" );
-          grid.add( jmsServerLabel );
-          final Label jmsServerStatusLabel = new Label();
-          jmsServerStatusLabel.setStyleName( "Default" );
-          grid.add( jmsServerStatusLabel );
-          final Label jmsServerButton = new Label();
-          grid.add( jmsServerButton );
-          // launch the jms server check thread
-          final JMSServerCheckThread jmsServerCheckThread =
-            new JMSServerCheckThread( agent.getHostname(), agent.getPort(), parent.getEnvironmentName(),
-                                      applicationServer.getName(), jmsServer.getName() );
-          jmsServerCheckThread.start();
-          // launch the synchronisation thread
-          KalumetConsoleApplication.getApplication().enqueueTask(
-            KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-          {
-            public void run()
-            {
-              if ( jmsServerCheckThread.getCompleted() )
-              {
-                if ( jmsServerCheckThread.getFailure() )
-                {
-                  jmsServerStatusLabel.setText( "JMS server check error: " + jmsServerCheckThread.getErrorMessage() );
-                  jmsServerButton.setIcon( Styles.EXCLAMATION );
-                }
-                else
-                {
-                  if ( jmsServerCheckThread.getUptodate() )
-                  {
-                    jmsServerStatusLabel.setText( "OK" );
-                    jmsServerButton.setIcon( Styles.ACCEPT );
-                  }
-                  else
-                  {
-                    jmsServerStatusLabel.setText( "JMS server is not deployed or not up to date" );
-                    jmsServerButton.setIcon( Styles.EXCLAMATION );
-                  }
-                }
-              }
-              else
-              {
-                KalumetConsoleApplication.getApplication().enqueueTask(
-                  KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-              }
-            }
-          } );
-        }
-        // check JNDI bindings
-        for ( Iterator jndiBindingIterator = applicationServer.getJNDIBindings().iterator();
-              jndiBindingIterator.hasNext(); )
-        {
-          JNDIBinding jndiBinding = (JNDIBinding) jndiBindingIterator.next();
-          Label nameSpaceBindingLabel = new Label( " JNDI binding " + jndiBinding.getName() + " check" );
-          nameSpaceBindingLabel.setStyleName( "Default" );
-          grid.add( nameSpaceBindingLabel );
-          final Label nameSpaceBindingStatusLabel = new Label();
-          nameSpaceBindingStatusLabel.setStyleName( "Default" );
-          grid.add( nameSpaceBindingStatusLabel );
-          final Label nameSpaceBindingButton = new Label();
-          grid.add( nameSpaceBindingButton );
-          // launch the name space binding check thread
-          final JNDIBindingCheckThread JNDIBindingCheckThread =
-            new JNDIBindingCheckThread( agent.getHostname(), agent.getPort(), parent.getEnvironmentName(),
-                                        applicationServer.getName(), jndiBinding.getName() );
-          JNDIBindingCheckThread.start();
-          // launch the synchronisation thread
-          KalumetConsoleApplication.getApplication().enqueueTask(
-            KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-          {
-            public void run()
-            {
-              if ( JNDIBindingCheckThread.getCompleted() )
-              {
-                if ( JNDIBindingCheckThread.getFailure() )
-                {
-                  nameSpaceBindingStatusLabel.setText(
-                    "JNDI binding check error: " + JNDIBindingCheckThread.getErrorMessage() );
-                  nameSpaceBindingButton.setIcon( Styles.EXCLAMATION );
-                }
-                else
-                {
-                  if ( JNDIBindingCheckThread.getUptodate() )
-                  {
-                    nameSpaceBindingStatusLabel.setText( "OK" );
-                    nameSpaceBindingButton.setIcon( Styles.ACCEPT );
-                  }
-                  else
-                  {
-                    nameSpaceBindingStatusLabel.setText( "JNDI binding is not deployed or not up to date" );
-                    nameSpaceBindingButton.setIcon( Styles.EXCLAMATION );
-                  }
-                }
-              }
-              else
-              {
-                KalumetConsoleApplication.getApplication().enqueueTask(
-                  KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-              }
-            }
-          } );
-        }
-        // check shared libraries
-        for ( Iterator sharedLibraryIterator = applicationServer.getSharedLibraries().iterator();
-              sharedLibraryIterator.hasNext(); )
-        {
-          SharedLibrary sharedLibrary = (SharedLibrary) sharedLibraryIterator.next();
-          Label sharedLibraryLabel = new Label( " Shared library " + sharedLibrary.getName() + " check" );
-          sharedLibraryLabel.setStyleName( "Default" );
-          grid.add( sharedLibraryLabel );
-          final Label sharedLibraryStatusLabel = new Label();
-          sharedLibraryStatusLabel.setStyleName( "Default" );
-          grid.add( sharedLibraryLabel );
-          final Label sharedLibraryButton = new Label();
-          grid.add( sharedLibraryButton );
-          // launch the shared library check thread
-          final SharedLibraryCheckThread sharedLibraryCheckThread =
-            new SharedLibraryCheckThread( agent.getHostname(), agent.getPort(), parent.getEnvironmentName(),
-                                          applicationServer.getName(), sharedLibrary.getName() );
-          sharedLibraryCheckThread.start();
-          // launch the synchronisation thread
-          KalumetConsoleApplication.getApplication().enqueueTask(
-            KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-          {
-            public void run()
-            {
-              if ( sharedLibraryCheckThread.getCompleted() )
-              {
-                if ( sharedLibraryCheckThread.getFailure() )
-                {
-                  sharedLibraryStatusLabel.setText(
-                    "Shared library check error: " + sharedLibraryCheckThread.getErrorMessage() );
-                  sharedLibraryButton.setIcon( Styles.EXCLAMATION );
-                }
-                else
-                {
-                  if ( sharedLibraryCheckThread.getUptodate() )
-                  {
-                    sharedLibraryStatusLabel.setText( "OK" );
-                    sharedLibraryButton.setIcon( Styles.ACCEPT );
-                  }
-                  else
-                  {
-                    sharedLibraryStatusLabel.setText( "Shared library is not deployed or not up to date" );
-                    sharedLibraryButton.setIcon( Styles.EXCLAMATION );
-                  }
-                }
-              }
-              else
-              {
-                KalumetConsoleApplication.getApplication().enqueueTask(
-                  KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-              }
-            }
-          } );
-        }
-        // check JEE applications
-        for ( Iterator applicationIterator = applicationServer.getJEEApplications().iterator();
-              applicationIterator.hasNext(); )
-        {
-          JEEApplication application = (JEEApplication) applicationIterator.next();
-          Label applicationLabel = new Label( " JEE application " + application.getName() + " check" );
-          applicationLabel.setStyleName( "Default" );
-          grid.add( applicationLabel );
-          Label blankLabel = new Label( " " );
-          grid.add( blankLabel );
-          blankLabel = new Label( " " );
-          grid.add( blankLabel );
-          // check JEE application archives
-          for ( Iterator archiveIterator = application.getArchives().iterator(); archiveIterator.hasNext(); )
-          {
-            Archive archive = (Archive) archiveIterator.next();
-            Label archiveLabel = new Label( " JEE application archive " + archive.getName() + " check" );
-            archiveLabel.setStyleName( "Default" );
-            grid.add( archiveLabel );
-            final Label archiveStatusLabel = new Label();
-            archiveStatusLabel.setStyleName( "Default" );
-            grid.add( archiveStatusLabel );
-            final Label archiveButton = new Label();
-            grid.add( archiveButton );
-            // launch the application archive check thread
-            final JEEApplicationArchiveCheckThread jeeApplicationArchiveCheckThread =
-              new JEEApplicationArchiveCheckThread( agent.getHostname(), agent.getPort(), parent.getEnvironmentName(),
-                                                     applicationServer.getName(), application.getName(),
-                                                     archive.getName() );
-            jeeApplicationArchiveCheckThread.start();
-            // launch the synchronisation thread
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( jeeApplicationArchiveCheckThread.getCompleted() )
-                {
-                  if ( jeeApplicationArchiveCheckThread.getFailure() )
-                  {
-                    archiveStatusLabel.setText(
-                      "JEE application archive check error: " + jeeApplicationArchiveCheckThread.getErrorMessage() );
-                    archiveButton.setIcon( Styles.EXCLAMATION );
-                  }
-                  else
-                  {
-                    if ( jeeApplicationArchiveCheckThread.getUptodate() )
-                    {
-                      archiveStatusLabel.setText( "OK" );
-                      archiveButton.setIcon( Styles.ACCEPT );
-                    }
-                    else
-                    {
-                      archiveStatusLabel.setText( "JEE application archive is not deployed or not up to date" );
-                      archiveButton.setIcon( Styles.EXCLAMATION );
-                    }
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-          // check JEE application configuration files
-          for ( Iterator configurationFileIterator = application.getConfigurationFiles().iterator();
-                configurationFileIterator.hasNext(); )
-          {
-            ConfigurationFile configurationFile = (ConfigurationFile) configurationFileIterator.next();
-            Label configurationFileLabel =
-              new Label( " JEE application configuration file " + configurationFile.getName() + " check" );
-            configurationFileLabel.setStyleName( "Default" );
-            grid.add( configurationFileLabel );
-            final Label configurationFileStatusLabel = new Label();
-            configurationFileStatusLabel.setStyleName( "Default" );
-            grid.add( configurationFileStatusLabel );
-            final Label configurationFileButton = new Label();
-            grid.add( configurationFileButton );
-            // launch the application configuration file check thread
-            final JEEApplicationConfigurationFileCheckThread jeeApplicationConfigurationFileCheckThread =
-              new JEEApplicationConfigurationFileCheckThread( agent.getHostname(), agent.getPort(),
-                                                               parent.getEnvironmentName(), applicationServer.getName(),
-                                                               application.getName(), configurationFile.getName() );
-            jeeApplicationConfigurationFileCheckThread.start();
-            // launch the synchronisation thread
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( jeeApplicationConfigurationFileCheckThread.getCompleted() )
-                {
-                  if ( jeeApplicationConfigurationFileCheckThread.getFailure() )
-                  {
-                    configurationFileStatusLabel.setText( "JEE application configuration file check error: "
-                                                            + jeeApplicationConfigurationFileCheckThread.getErrorMessage() );
-                    configurationFileButton.setIcon( Styles.EXCLAMATION );
-                  }
-                  else
-                  {
-                    if ( jeeApplicationConfigurationFileCheckThread.getUptodate() )
-                    {
-                      configurationFileStatusLabel.setText( "OK" );
-                      configurationFileButton.setIcon( Styles.ACCEPT );
-                    }
-                    else
-                    {
-                      configurationFileStatusLabel.setText( "JEE application configuration file is not up to date" );
-                      configurationFileButton.setIcon( Styles.EXCLAMATION );
-                    }
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        }
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>EnvironmentCheckerTabPane</code>
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>
-   */
-  public CheckerPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    content.setInsets( new Insets( 2 ) );
-    add( content );
-
-    // add the launch button
-    Button launchButton = new Button( Messages.getString( "status" ), Styles.INFORMATION );
-    launchButton.addActionListener( launch );
-    content.add( launchButton );
-
-    // add results grid
-    grid = new Grid( 3 );
-    grid.setStyleName( "border.grid" );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // nothing to do
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConfirmWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConfirmWindow.java
deleted file mode 100644
index 03c5033..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConfirmWindow.java
+++ /dev/null
@@ -1,88 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-
-/**
- * Confirm window to interact with the user.
- */
-public class ConfirmWindow
-  extends WindowPane
-{
-
-  public ConfirmWindow( final ActionListener callback )
-  {
-    super();
-
-    this.setStyleName( "default" );
-    this.setTitle( Messages.getString( "confirm" ) );
-    this.setWidth( new Extent( 220, Extent.PX ) );
-    this.setHeight( new Extent( 120, Extent.PX ) );
-    this.setModal( true );
-
-    SplitPane content = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    this.add( content );
-
-    // control row
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    content.add( controlRow );
-
-    // add yes button
-    Button yesButton = new Button( Messages.getString( "yes" ), Styles.ACCEPT );
-    yesButton.setStyleName( "control" );
-    yesButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        // call the callback
-        callback.actionPerformed( null );
-        // close the confirm window
-        ConfirmWindow.this.userClose();
-      }
-    } );
-    controlRow.add( yesButton );
-
-    // add the no button
-    Button noButton = new Button( Messages.getString( "no" ), Styles.CROSS );
-    noButton.setStyleName( "control" );
-    noButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        ConfirmWindow.this.userClose();
-      }
-    } );
-    controlRow.add( noButton );
-
-    // add the main label
-    Label mainLabel = new Label( Messages.getString( "sure.question" ) );
-    content.add( mainLabel );
-
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionFactoriesPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionFactoriesPane.java
deleted file mode 100644
index 4492067..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionFactoriesPane.java
+++ /dev/null
@@ -1,926 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.JMSConnectionFactory;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JMSConnectionFactoryClient;
-
-import java.util.Iterator;
-
-/**
- * Environment JMS connection factories pane.
- */
-public class ConnectionFactoriesPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField scopeField;
-
-  private Grid grid;
-
-  private boolean newIsActive = true;
-
-  private boolean newIsBlocker = false;
-
-  private TextField newNameField;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String connectionFactoryName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JMSConnectionFactoryClient client = new JMSConnectionFactoryClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate = client.check( parent.getEnvironmentName(), serverName, connectionFactoryName );
-        if ( uptodate )
-        {
-          message = "JMS connection factory " + connectionFactoryName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JMS connection factory " + connectionFactoryName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JMS connection factory " + connectionFactoryName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String connectionFactoryName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JMSConnectionFactoryClient client = new JMSConnectionFactoryClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), serverName, connectionFactoryName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JMS connection factory " + connectionFactoryName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check the user has the environment lock
-      if ( !getEnvironementWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironementWindow().adminPermission && !getEnvironementWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restrictied" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JMS connection factory name
-      String name = event.getActionCommand();
-      // get the JMS connection factory name field
-      TextField nameField = (TextField) ConnectionFactoriesPane.this.getComponent(
-        "cfname_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      String nameFieldValue = nameField.getText();
-      // check the field value
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionfactory.mandatory" ), getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // if the use change the JMS connection factory name, check if the name
-      // if not already in use
-      if ( !name.equals( nameFieldValue ) )
-      {
-        if ( parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJMSConnectionFactory( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "connectionfactory.exists" ), getEnvironementWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the JMS connection factory object
-      JMSConnectionFactory connectionFactory =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJMSConnectionFactory( name );
-      if ( connectionFactory == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionfactory.notfound" ), getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change JMS connection factory " + connectionFactory.getName() );
-      // update the JMS connection factory object
-      connectionFactory.setName( nameFieldValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironementWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironementWindow().adminPermission && !getEnvironementWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // get the new JMS connection factory name field value
-      String newNameFieldValue = newNameField.getText();
-      // check the mandatory field
-      if ( newNameFieldValue == null || newNameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionfactory.mandatory" ), getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // create a new JMS connection factory object
-      JMSConnectionFactory connectionFactory = new JMSConnectionFactory();
-      connectionFactory.setName( newNameFieldValue );
-      connectionFactory.setActive( newIsActive );
-      // add the JMS connection factory
-      try
-      {
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).addJMSConnectionFactory( connectionFactory );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionfactory.exists" ), getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Create JMS connection factory " + connectionFactory.getName() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironementWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironementWindow().adminPermission && !getEnvironementWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JMS connection factory name
-      final String name = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // looking for the JMS connection factory object
-            JMSConnectionFactory connectionFactory =
-              parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-                (String) scopeField.getSelectedItem() ).getJMSConnectionFactory( name );
-            if ( connectionFactory == null )
-            {
-              KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                Messages.getString( "connectionfactory.notfound" ), getEnvironementWindow().getEnvironmentName() );
-              return;
-            }
-            // delete the JMS connection factory
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              (String) scopeField.getSelectedItem() ).getJMSConnectionFactories().remove( connectionFactory );
-            // add a change event
-            parent.getChangeEvents().add( "Delete JMS connection factory " + connectionFactory.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update only the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironementWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironementWindow().adminPermission && !getEnvironementWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JMS connection factory object
-      JMSConnectionFactory connectionFactory =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJMSConnectionFactory( event.getActionCommand() );
-      if ( connectionFactory == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionfactory.notfound" ), getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // change the jms connection factory state and add a change event
-      if ( connectionFactory.isActive() )
-      {
-        connectionFactory.setActive( false );
-        parent.getChangeEvents().add( "Disable JMS connection factory " + connectionFactory.getName() );
-      }
-      else
-      {
-        connectionFactory.setActive( true );
-        parent.getChangeEvents().add( "Enable JMS connection factory " + connectionFactory.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironementWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironementWindow().adminPermission && !getEnvironementWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JMS connection factory object
-      JMSConnectionFactory connectionFactory =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJMSConnectionFactory( event.getActionCommand() );
-      if ( connectionFactory == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionfactory.notfound" ), getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // change the jms connection factory blocker state and add a change
-      // event
-      if ( connectionFactory.isBlocker() )
-      {
-        connectionFactory.setBlocker( false );
-        parent.getChangeEvents().add( "Set not blocker for JMS connection factory " + connectionFactory.getName() );
-      }
-      else
-      {
-        connectionFactory.setBlocker( true );
-        parent.getChangeEvents().add( "Set blocker for JMS connection factory " + connectionFactory.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // new toggle active
-  private ActionListener newToggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // toggle the state
-      if ( newIsActive )
-      {
-        newIsActive = false;
-      }
-      else
-      {
-        newIsActive = true;
-      }
-      // update the pane
-      update();
-    }
-  };
-
-  // new toggle blocker
-  private ActionListener newToggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // toggle the blocker state
-      if ( newIsBlocker )
-      {
-        newIsBlocker = false;
-      }
-      else
-      {
-        newIsBlocker = true;
-      }
-      // update the pane
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the JMS connection factory
-      JMSConnectionFactory connectionFactory =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJMSConnectionFactory( event.getActionCommand() );
-      if ( connectionFactory == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( connectionFactory.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy object is correct
-      if ( copy == null || !( copy instanceof JMSConnectionFactory ) )
-      {
-        return;
-      }
-      // update the new fields
-      newNameField.setText( ( (JMSConnectionFactory) copy ).getName() );
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some has not yet been saved
-      if ( getEnvironementWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // get the connection factory
-      String connectionFactoryName = event.getActionCommand();
-      String serverName = (String) scopeField.getSelectedItem();
-      // add a message into the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JMS connection factory " + connectionFactoryName + " status check in progress...",
-        parent.getEnvironmentName() );
-      parent.getChangeEvents().add( "JMS connection factory " + connectionFactoryName + " status check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.serverName = serverName;
-      statusThread.connectionFactoryName = connectionFactoryName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    parent.getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironementWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironementWindow().adminPermission && !getEnvironementWindow().jeeResourcesUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironementWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironementWindow().getEnvironmentName() );
-        return;
-      }
-      // get the connection factory and server name
-      final String serverName = (String) scopeField.getSelectedItem();
-      final String connectionFactoryName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JMS connection factory " + connectionFactoryName + " update in progress...",
-              parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "JMS connection factory " + connectionFactoryName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.serverName = serverName;
-            updateThread.connectionFactoryName = connectionFactoryName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JMS connection factory " + connectionFactoryName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JMS connection factory " + connectionFactoryName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>ConnectionFactoriesPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public ConnectionFactoriesPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add the scope select field
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( layoutGrid );
-    Label scopeLabel = new Label( Messages.getString( "scope" ) );
-    scopeLabel.setStyleName( "default" );
-    layoutGrid.add( scopeLabel );
-    scopeField = new SelectField();
-    scopeField.addActionListener( scopeSelect );
-    scopeField.setStyleName( "default" );
-    layoutGrid.add( scopeField );
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    scopeListModel.removeAll();
-    // add application servers in the scope select field
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-    }
-    if ( scopeListModel.size() > 0 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-
-    // add JMS connection factories grid
-    grid = new Grid( 2 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 100, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    String applicationServerName = null;
-    // update the scope select field
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      applicationServerName = (String) scopeField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int scopeIndex = 0;
-    int found = -1;
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-      if ( applicationServer.getName().equals( applicationServerName ) )
-      {
-        found = scopeIndex;
-      }
-      scopeIndex++;
-    }
-
-    // remove all JMS connection factories grid children
-    grid.removeAll();
-
-    if ( scopeListModel.size() < 1 )
-    {
-      // no application server present
-      return;
-    }
-    // update the scope select field selected index
-    if ( found == -1 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeField.setSelectedIndex( found );
-    }
-    // update the application server name from the scope (in case of
-    // application server deletion)
-    applicationServerName = (String) scopeField.getSelectedItem();
-
-    // add JMS connection factories grid header
-    Label connectionFactoryHeader = new Label( " " );
-    connectionFactoryHeader.setStyleName( "grid.header" );
-    grid.add( connectionFactoryHeader );
-    Label connectionFactoryNameHeader = new Label( Messages.getString( "name" ) );
-    connectionFactoryNameHeader.setStyleName( "grid.header" );
-    grid.add( connectionFactoryNameHeader );
-    // add the jms connection factories
-    for ( Iterator jmsConnectionFactoryIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              applicationServerName ).getJMSConnectionFactories().iterator(); jmsConnectionFactoryIterator.hasNext(); )
-    {
-      JMSConnectionFactory connectionFactory = (JMSConnectionFactory) jmsConnectionFactoryIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( connectionFactory.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( connectionFactory.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironementWindow().adminPermission || getEnvironementWindow().jeeResourcesChangePermission)
-      {
-        activeButton.setActionCommand( connectionFactory.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( connectionFactory.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironementWindow().adminPermission || getEnvironementWindow().jeeResourcesChangePermission)
-      {
-        blockerButton.setActionCommand( connectionFactory.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // status
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      statusButton.setActionCommand( connectionFactory.getName() );
-      statusButton.addActionListener( status );
-      row.add( statusButton );
-      if ( getEnvironementWindow().adminPermission || getEnvironementWindow().jeeResourcesUpdatePermission )
-      {
-        // update
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( connectionFactory.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      if ( getEnvironementWindow().adminPermission || getEnvironementWindow().jeeResourcesChangePermission)
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( connectionFactory.getName() );
-        editButton.addActionListener( edit );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( connectionFactory.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      TextField nameField = new TextField();
-      nameField.setId(
-        "cfname_" + parent.getEnvironmentName() + "_" + applicationServerName + "_" + connectionFactory.getName() );
-      nameField.setStyleName( "default" );
-      nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      nameField.setText( connectionFactory.getName() );
-      grid.add( nameField );
-    }
-
-    // add the blank row to create a new JMS connection factory
-    if ( getEnvironementWindow().adminPermission || getEnvironementWindow().jeeResourcesChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( paste );
-      row.add( pasteButton );
-      // active
-      Button activeButton;
-      if ( newIsActive )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      activeButton.addActionListener( newToggleActive );
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( newIsBlocker )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      blockerButton.addActionListener( newToggleBlocker );
-      row.add( blockerButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( create );
-      row.add( addButton );
-      // name
-      newNameField = new TextField();
-      newNameField.setStyleName( "default" );
-      newNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newNameField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironementWindow()
-  {
-    return parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolCapacityPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolCapacityPane.java
deleted file mode 100644
index a17a6b8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolCapacityPane.java
+++ /dev/null
@@ -1,121 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.TextField;
-
-/**
- * JDBC connection pool capacity tab pane.
- */
-public class ConnectionPoolCapacityPane
-  extends ContentPane
-{
-
-  private ConnectionPoolWindow parent;
-
-  private TextField initialField;
-
-  private TextField maximalField;
-
-  private TextField incrementField;
-
-  /**
-   * Create a new <code>JDBCConnectionPoolCapacityTabPane</code>.
-   *
-   * @param parent the parent <code>JDBCConnectionPoolWindow</code>.
-   */
-  public ConnectionPoolCapacityPane( ConnectionPoolWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add the capacity layout grid
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    add( layout );
-
-    // add the initial field
-    Label initialLabel = new Label( Messages.getString( "initial" ) );
-    initialLabel.setStyleName( "grid.cell" );
-    layout.add( initialLabel );
-    initialField = new TextField();
-    initialField.setStyleName( "default" );
-    initialField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( initialField );
-
-    // add the maximal field
-    Label maximalLabel = new Label( Messages.getString( "maximal" ) );
-    maximalLabel.setStyleName( "grid.cell" );
-    layout.add( maximalLabel );
-    maximalField = new TextField();
-    maximalField.setStyleName( "default" );
-    maximalField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( maximalField );
-
-    // add the increment field
-    Label incrementLabel = new Label( Messages.getString( "increment" ) );
-    incrementLabel.setStyleName( "grid.cell" );
-    layout.add( incrementLabel );
-    incrementField = new TextField();
-    incrementField.setStyleName( "default" );
-    incrementField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( incrementField );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // update the JDBC connection pool initial field
-    initialField.setText( new Integer( parent.getConnectionPool().getInitial() ).toString() );
-    // update the JDBC connection pool maximal field
-    maximalField.setText( new Integer( parent.getConnectionPool().getMaximal() ).toString() );
-    // update the JDBC connection pool increment field
-    incrementField.setText( new Integer( parent.getConnectionPool().getIncrement() ).toString() );
-  }
-
-  public TextField getInitialField()
-  {
-    return this.initialField;
-  }
-
-  public TextField getMaximalField()
-  {
-    return this.maximalField;
-  }
-
-  public TextField getIncrementField()
-  {
-    return this.incrementField;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolDatabasePane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolDatabasePane.java
deleted file mode 100644
index 0cf34e3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolDatabasePane.java
+++ /dev/null
@@ -1,140 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.PasswordField;
-import nextapp.echo2.app.TextField;
-
-/**
- * JDBC connection pool database tab <code>ContentPane</code>.
- */
-public class ConnectionPoolDatabasePane
-  extends ContentPane
-{
-
-  // attributes
-  private ConnectionPoolWindow parent;
-
-  private TextField urlField;
-
-  private TextField userField;
-
-  private PasswordField passwordField;
-
-  private PasswordField confirmPasswordField;
-
-  /**
-   * Create a new <code>JDBCConnectionPoolDatabaseTabPane</code>.<
-   *
-   * @param parent the parent <code>JDBCConnectionPoolWindow</code>.
-   */
-  public ConnectionPoolDatabasePane( ConnectionPoolWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add the database layout grid
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    add( layout );
-
-    // add the URL field
-    Label urlLabel = new Label( Messages.getString( "jdbc" ) );
-    urlLabel.setStyleName( "grid.cell" );
-    layout.add( urlLabel );
-    urlField = new TextField();
-    urlField.setStyleName( "default" );
-    urlField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( urlField );
-
-    // add the user field
-    Label userLabel = new Label( Messages.getString( "user" ) );
-    userLabel.setStyleName( "grid.cell" );
-    layout.add( userLabel );
-    userField = new TextField();
-    userField.setStyleName( "default" );
-    userField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( userField );
-
-    // add the password field
-    Label passwordLabel = new Label( Messages.getString( "password" ) );
-    passwordLabel.setStyleName( "grid.cell" );
-    layout.add( passwordLabel );
-    passwordField = new PasswordField();
-    passwordField.setStyleName( "default" );
-    passwordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( passwordField );
-
-    // add the confirm password field
-    Label confirmPasswordLabel = new Label( Messages.getString( "password.confirm" ) );
-    confirmPasswordLabel.setStyleName( "grid.cell" );
-    layout.add( confirmPasswordLabel );
-    confirmPasswordField = new PasswordField();
-    confirmPasswordField.setStyleName( "default" );
-    confirmPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( confirmPasswordField );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // update the JDBC connection pool URL field
-    urlField.setText( parent.getConnectionPool().getUrl() );
-    // update the JDBC connection pool user field
-    userField.setText( parent.getConnectionPool().getUser() );
-    // update the JDBC connection pool password field
-    passwordField.setText( parent.getConnectionPool().getPassword() );
-    confirmPasswordField.setText( parent.getConnectionPool().getPassword() );
-  }
-
-  public TextField getUrlField()
-  {
-    return this.urlField;
-  }
-
-  public TextField getUserField()
-  {
-    return this.userField;
-  }
-
-  public PasswordField getPasswordField()
-  {
-    return this.passwordField;
-  }
-
-  public PasswordField getConfirmPasswordField()
-  {
-    return this.confirmPasswordField;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolDriverPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolDriverPane.java
deleted file mode 100644
index 5f8a709..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolDriverPane.java
+++ /dev/null
@@ -1,165 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import org.apache.commons.lang.StringUtils;
-
-/**
- * JDBC connection pool driver tab <code>ContentPane</code>
- */
-public class ConnectionPoolDriverPane
-  extends ContentPane
-{
-
-  // constants
-  private static String[] DRIVERS =
-    new String[]{ Messages.getString( "jdbc.driver.oracle.thin" ), Messages.getString( "jdbc.driver.oracle.xa" ),
-      Messages.getString( "jdbc.driver.ibm.db2" ), Messages.getString( "jdbc.driver.mysql" ),
-      Messages.getString( "jdbc.driver.postgresql" ) };
-
-  private static String[] HELPERS = new String[]{ " ", Messages.getString( "jdbc.helper.websphere.generic" ),
-    Messages.getString( "jdbc.helper.websphere.oracle" ) };
-
-  // attributes
-  private ConnectionPoolWindow parent;
-
-  private SelectField driverField;
-
-  private SelectField helperField;
-
-  private TextField classpathField;
-
-  /**
-   * Create a new <code>JDBCConnectionPoolDriverTabPane</code>.
-   *
-   * @param parent the parent <code>JDBCConnectionPoolWindow</code>.
-   */
-  public ConnectionPoolDriverPane( ConnectionPoolWindow parent )
-  {
-    super();
-    setStyleName( "tab;content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add the driver layout grid
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    add( layout );
-
-    // add the driver field
-    Label driverLabel = new Label( Messages.getString( "jdbc.driver" ) );
-    driverLabel.setStyleName( "grid.cell" );
-    layout.add( driverLabel );
-    driverField = new SelectField( ConnectionPoolDriverPane.DRIVERS );
-    driverField.setStyleName( "default" );
-    driverField.setWidth( new Extent( 50, Extent.EX ) );
-    driverField.setSelectedIndex( 0 );
-    layout.add( driverField );
-
-    // add the helper field
-    Label helperLabel = new Label( Messages.getString( "jdbc.helper" ) );
-    helperLabel.setStyleName( "grid.cell" );
-    layout.add( helperLabel );
-    helperField = new SelectField( ConnectionPoolDriverPane.HELPERS );
-    helperField.setStyleName( "default" );
-    helperField.setWidth( new Extent( 50, Extent.EX ) );
-    helperField.setSelectedIndex( 0 );
-    layout.add( helperField );
-
-    // add the classpath field
-    Label classpathLabel = new Label( Messages.getString( "classpath" ) );
-    classpathLabel.setStyleName( "grid.cell" );
-    layout.add( classpathLabel );
-    classpathField = new TextField();
-    classpathField.setStyleName( "default" );
-    classpathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( classpathField );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // update the JDBC connection pool driver field
-    if ( StringUtils.containsIgnoreCase( parent.getConnectionPool().getDriver(), "oracle" ) )
-    {
-      if ( StringUtils.containsIgnoreCase( parent.getConnectionPool().getDriver(), "xa" ) )
-      {
-        driverField.setSelectedIndex( 1 );
-      }
-      else
-      {
-        driverField.setSelectedIndex( 0 );
-      }
-    }
-    if ( StringUtils.containsIgnoreCase( parent.getConnectionPool().getDriver(), "db2" ) )
-    {
-      driverField.setSelectedIndex( 2 );
-    }
-    if ( StringUtils.containsIgnoreCase( parent.getConnectionPool().getDriver(), "mysql" ) )
-    {
-      driverField.setSelectedIndex( 3 );
-    }
-    if ( StringUtils.containsIgnoreCase( parent.getConnectionPool().getDriver(), "postgres" ) )
-    {
-      driverField.setSelectedIndex( 4 );
-    }
-    // update the JDBC connection pool helper field
-    helperField.setSelectedIndex( 0 );
-    if ( StringUtils.containsIgnoreCase( parent.getConnectionPool().getHelperclass(), "generic" ) )
-    {
-      helperField.setSelectedIndex( 1 );
-    }
-    if ( StringUtils.containsIgnoreCase( parent.getConnectionPool().getHelperclass(), "oracle" ) )
-    {
-      helperField.setSelectedIndex( 2 );
-    }
-    // update the JDBC connection pool classpath field
-    classpathField.setText( parent.getConnectionPool().getClasspath() );
-  }
-
-  public SelectField getDriverField()
-  {
-    return this.driverField;
-  }
-
-  public SelectField getHelperField()
-  {
-    return this.helperField;
-  }
-
-  public TextField getClasspathField()
-  {
-    return this.classpathField;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolGeneralPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolGeneralPane.java
deleted file mode 100644
index 1249386..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolGeneralPane.java
+++ /dev/null
@@ -1,139 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-
-/**
- * JDBC connection pool general tab <code>ContentPane</code>.
- */
-public class ConnectionPoolGeneralPane
-  extends ContentPane
-{
-
-  // attributes
-  private ConnectionPoolWindow parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  /**
-   * Create a new <code>JDBCConnectionPoolGeneralTabPane</code>.
-   *
-   * @param parent the parent <code>JDBCConnectionPoolWindow</code>.
-   */
-  public ConnectionPoolGeneralPane( ConnectionPoolWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add the general grid layout
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    add( layout );
-
-    // add the name field
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    layout.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( nameField );
-
-    // add the active field
-    Label jdbcConnectionPoolActiveLabel = new Label( Messages.getString( "active" ) );
-    jdbcConnectionPoolActiveLabel.setStyleName( "grid.cell" );
-    layout.add( jdbcConnectionPoolActiveLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    activeField.setSelectedIndex( 0 );
-    layout.add( activeField );
-
-    // add the blocker field
-    Label jdbcConnectionPoolBlockerLabel = new Label( Messages.getString( "blocker" ) );
-    jdbcConnectionPoolBlockerLabel.setStyleName( "grid.cell" );
-    layout.add( jdbcConnectionPoolBlockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    blockerField.setSelectedIndex( 0 );
-    layout.add( blockerField );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // update the JDBC connection pool name field
-    nameField.setText( parent.getConnectionPool().getName() );
-    // update the JDBC connection pool active field
-    if ( parent.getConnectionPool().isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the JDBC connection pool blocker field
-    if ( parent.getConnectionPool().isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-  }
-
-  public TextField getNameField()
-  {
-    return this.nameField;
-  }
-
-  public SelectField getActiveField()
-  {
-    return this.activeField;
-  }
-
-  public SelectField getBlockerField()
-  {
-    return this.blockerField;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolWindow.java
deleted file mode 100644
index f0ba4ab..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolWindow.java
+++ /dev/null
@@ -1,729 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JDBCConnectionPool;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JDBCConnectionPoolClient;
-
-/**
- * JDBC connection pool window.
- */
-public class ConnectionPoolWindow
-  extends WindowPane
-{
-
-  private String connectionPoolName;
-
-  private String applicationServerName;
-
-  private JDBCConnectionPool connectionPool = null;
-
-  private ConnectionPoolsPane parent;
-
-  private ConnectionPoolGeneralPane generalPane;
-
-  private ConnectionPoolDriverPane driverPane;
-
-  private ConnectionPoolDatabasePane databasePane;
-
-  private ConnectionPoolCapacityPane capacityPane;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JDBCConnectionPoolClient client = new JDBCConnectionPoolClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate =
-          client.check( parent.getEnvironmentWindow().getEnvironmentName(), applicationServerName, connectionPoolName );
-        if ( uptodate )
-        {
-          message = "JDBC connection pool " + connectionPoolName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JDBC connection pool " + connectionPoolName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JDBC connection pool " + connectionPoolName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JDBCConnectionPoolClient client = new JDBCConnectionPoolClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentWindow().getEnvironmentName(), applicationServerName, connectionPoolName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JDBC connection pool " + connectionPoolName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ConnectionPoolWindow.this.userClose();
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for original JDBC connection pool object
-      connectionPool =
-        parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          applicationServerName ).getJDBCConnectionPool( connectionPoolName );
-      if ( connectionPool == null )
-      {
-        connectionPool = new JDBCConnectionPool();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the connection pool
-            parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              applicationServerName ).getJDBCConnectionPools().remove( connectionPool );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Delete JDBC connection pool " + connectionPool.getName() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the whole parent window
-            parent.getEnvironmentWindow().update();
-            // close the window
-            ConnectionPoolWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricited" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String nameFieldValue = generalPane.getNameField().getText();
-      int activeFieldIndex = generalPane.getActiveField().getSelectedIndex();
-      int blockerFieldIndex = generalPane.getBlockerField().getSelectedIndex();
-      int driverFieldIndex = driverPane.getDriverField().getSelectedIndex();
-      int helperFieldIndex = driverPane.getHelperField().getSelectedIndex();
-      String classpathFieldValue = driverPane.getClasspathField().getText();
-      String urlFieldValue = databasePane.getUrlField().getText();
-      String userFieldValue = databasePane.getUserField().getText();
-      String passwordFieldValue = databasePane.getPasswordField().getText();
-      String confirmPasswordFieldValue = databasePane.getConfirmPasswordField().getText();
-      String initialFieldValue = capacityPane.getInitialField().getText();
-      String maximalFieldValue = capacityPane.getMaximalField().getText();
-      String incrementFieldValue = capacityPane.getIncrementField().getText();
-      // check select fields
-      if ( activeFieldIndex < 0 || driverFieldIndex < 0 || helperFieldIndex < 0 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionpool.selected" ) );
-        return;
-      }
-      // check name, url, user are mandatory
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || urlFieldValue == null
-        || urlFieldValue.trim().length() < 1 || userFieldValue == null || userFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionpool.mandatory" ) );
-        return;
-      }
-      // check number value
-      int jdbcConnectionPoolInitialFieldNumber;
-      int jdbcConnectionPoolMaximalFieldNumber;
-      int jdbcConnectionPoolIncrementFieldNumber;
-      try
-      {
-        jdbcConnectionPoolInitialFieldNumber = new Integer( initialFieldValue ).intValue();
-        jdbcConnectionPoolMaximalFieldNumber = new Integer( maximalFieldValue ).intValue();
-        jdbcConnectionPoolIncrementFieldNumber = new Integer( incrementFieldValue ).intValue();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionpool.notinteger" ) );
-        return;
-      }
-      // check password matching
-      if ( !passwordFieldValue.equals( confirmPasswordFieldValue ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionpool.passwordmatch" ) );
-        return;
-      }
-      // if the user change the JDBC connection pool name, check if the JDBC
-      // connection pool name doesn't already exist
-      if ( connectionPoolName == null || ( connectionPoolName != null && !connectionPoolName.equals(
-        nameFieldValue ) ) )
-      {
-        if ( parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          applicationServerName ).getJDBCConnectionPool( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "connectionpool.exists" ) );
-          return;
-        }
-      }
-      // add a change event
-      if ( connectionPoolName != null )
-      {
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Change JDBC connection pool " + connectionPool.getName() );
-      }
-      // update the connection pool object
-      connectionPool.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        connectionPool.setActive( true );
-      }
-      else
-      {
-        connectionPool.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        connectionPool.setBlocker( true );
-      }
-      else
-      {
-        connectionPool.setBlocker( false );
-      }
-      if ( driverFieldIndex == 0 )
-      {
-        connectionPool.setDriver( "oracle.jdbc.driver.OracleDriver" );
-      }
-      if ( driverFieldIndex == 1 )
-      {
-        connectionPool.setDriver( "oracle.jdbc.xa.client.OracleXADataSource" );
-      }
-      if ( driverFieldIndex == 2 )
-      {
-        connectionPool.setDriver( "com.ibm.db2.jcc.DB2Driver" );
-      }
-      if ( driverFieldIndex == 3 )
-      {
-        connectionPool.setDriver( "com.mysql.jdbc.Driver" );
-      }
-      if ( driverFieldIndex == 4 )
-      {
-        connectionPool.setDriver( "org.postgresql.Driver" );
-      }
-      if ( helperFieldIndex == 0 )
-      {
-        connectionPool.setHelperclass( null );
-      }
-      if ( helperFieldIndex == 1 )
-      {
-        connectionPool.setHelperclass( "com.ibm.websphere.rsadapter.GenericDataStoreHelper" );
-      }
-      if ( helperFieldIndex == 2 )
-      {
-        connectionPool.setHelperclass( "com.ibm.websphere.rsadapter.OracleDataStoreHelper" );
-      }
-      connectionPool.setClasspath( classpathFieldValue );
-      connectionPool.setUrl( urlFieldValue );
-      connectionPool.setUser( userFieldValue );
-      connectionPool.setPassword( passwordFieldValue );
-      connectionPool.setInitial( jdbcConnectionPoolInitialFieldNumber );
-      connectionPool.setMaximal( jdbcConnectionPoolMaximalFieldNumber );
-      connectionPool.setIncrement( jdbcConnectionPoolIncrementFieldNumber );
-      // add the application server object if needed
-      if ( connectionPoolName == null )
-      {
-        try
-        {
-          parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-            applicationServerName ).addJDBCConnectionPool( connectionPool );
-          parent.getEnvironmentWindow().getChangeEvents().add( "Add JDBC connection pool " + connectionPool.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "connectionpool.exists" ) );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "connectionpool" ) + " " + connectionPool.getName() );
-      setId(
-        "connectionpoolwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + applicationServerName + "_"
-          + connectionPool.getName() );
-      connectionPoolName = connectionPool.getName();
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the window
-      update();
-      // update the whole environment window
-      parent.getEnvironmentWindow().update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( connectionPool.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the copy is correct
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof JDBCConnectionPool ) )
-      {
-        return;
-      }
-      connectionPool = (JDBCConnectionPool) copy;
-      connectionPoolName = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a message into the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JDBC connection pool " + connectionPoolName + " status check in progress...",
-        parent.getEnvironmentWindow().getEnvironmentName() );
-      parent.getEnvironmentWindow().getChangeEvents().add(
-        "JDBC connection pool " + connectionPoolName + " status check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    parent.getEnvironmentWindow().getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JDBC connection pool " + connectionPoolName + " update in progress...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "JDBC connection pool " + connectionPoolName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JDBC connection pool " + connectionPoolName + " updated.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "JDBC connection pool " + connectionPoolName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>ConnectionPoolWindow</code>.
-   *
-   * @param parent                the <code>ConnectionPoolsPane</code>.
-   * @param applicationServerName the original JEE application server name.
-   * @param connectionPoolName    the original JDBC connection pool name.
-   */
-  public ConnectionPoolWindow( ConnectionPoolsPane parent, String applicationServerName, String connectionPoolName )
-  {
-    super();
-
-    // update the parent tab pane
-    this.parent = parent;
-
-    // update the connection pool name
-    this.connectionPoolName = connectionPoolName;
-    this.applicationServerName = applicationServerName;
-
-    // update the connection pool object from the parent environment
-    this.connectionPool =
-      parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        this.applicationServerName ).getJDBCConnectionPool( connectionPoolName );
-    if ( this.connectionPool == null )
-    {
-      this.connectionPool = new JDBCConnectionPool();
-    }
-
-    if ( this.connectionPoolName == null )
-    {
-      setTitle( Messages.getString( "connectionpool" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "connectionpool" ) + " " + this.connectionPoolName );
-    }
-    setId(
-      "connectionpoolwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + this.applicationServerName
-        + "_" + this.connectionPoolName );
-    setStyleName( "default" );
-    setWidth( new Extent( 600, Extent.PX ) );
-    setHeight( new Extent( 400, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control button
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-    }
-    // add the status button
-    Button statusButton = new Button( Messages.getString( "status" ), Styles.INFORMATION );
-    statusButton.setStyleName( "control" );
-    statusButton.addActionListener( status );
-    controlRow.add( statusButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesUpdatePermission )
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    generalPane = new ConnectionPoolGeneralPane( this );
-    generalPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalPane );
-
-    // add the driver tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "driver" ) );
-    driverPane = new ConnectionPoolDriverPane( this );
-    driverPane.setLayoutData( tabLayoutData );
-    tabPane.add( driverPane );
-
-    // add the database tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "database" ) );
-    databasePane = new ConnectionPoolDatabasePane( this );
-    databasePane.setLayoutData( tabLayoutData );
-    tabPane.add( databasePane );
-
-    // add the capacity tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "capacity" ) );
-    capacityPane = new ConnectionPoolCapacityPane( this );
-    capacityPane.setLayoutData( tabLayoutData );
-    tabPane.add( capacityPane );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    generalPane.update();
-    driverPane.update();
-    databasePane.update();
-    capacityPane.update();
-  }
-
-  public JDBCConnectionPool getConnectionPool()
-  {
-    return this.connectionPool;
-  }
-
-  public String getConnectionPoolName()
-  {
-    return this.connectionPoolName;
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolsPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolsPane.java
deleted file mode 100644
index a8b0656..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ConnectionPoolsPane.java
+++ /dev/null
@@ -1,727 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.app.list.ListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.JDBCConnectionPool;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JDBCConnectionPoolClient;
-
-import java.util.Iterator;
-
-/**
- * Environment JDBC connection pools pane.
- */
-public class ConnectionPoolsPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField scopeField;
-
-  private Grid grid;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String connectionPoolName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the web service
-        JDBCConnectionPoolClient client = new JDBCConnectionPoolClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate =
-          client.check( parent.getEnvironmentName(), (String) scopeField.getSelectedItem(), connectionPoolName );
-        if ( uptodate )
-        {
-          message = "JDBC connection pool " + connectionPoolName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JDBC connection pool " + connectionPoolName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JDBC connection pool " + connectionPoolName + " status failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String connectionPoolName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the web service
-        JDBCConnectionPoolClient client = new JDBCConnectionPoolClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), (String) scopeField.getSelectedItem(), connectionPoolName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JDBC Connection pool " + connectionPoolName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JDBC connection pool object
-      final JDBCConnectionPool connectionPool =
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJDBCConnectionPool( event.getActionCommand() );
-      if ( connectionPool == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionpool.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the connection pool
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              (String) scopeField.getSelectedItem() ).getJDBCConnectionPools().remove( connectionPool );
-            // add change event and update the log pane
-            parent.getChangeEvents().add( "Delete JDBC connection pool " + connectionPool.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the whole window
-            parent.update();
-          }
-        } ) );
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get JDBC connection pool name
-      final String connectionPoolName = event.getActionCommand();
-      // put a message in the log pane and in the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JDBC connection pool " + connectionPoolName + " status check in progress...", parent.getEnvironmentName() );
-      parent.getChangeEvents().add( "JDBC connection pool " + connectionPoolName + " status check." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.connectionPoolName = connectionPoolName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    parent.getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the log
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricited" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if something has been changed
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get JDBC connection pool name
-      final String connectionPoolName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // put a message in the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JDBC connection pool " + connectionPoolName + " update in progress..." );
-            parent.getChangeEvents().add( "JDBC connection pool " + connectionPoolName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.connectionPoolName = connectionPoolName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JDBC connection pool " + connectionPoolName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JDBC connection pool " + connectionPoolName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "connectionpoolwindow_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_"
-          + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new ConnectionPoolWindow( ConnectionPoolsPane.this, (String) scopeField.getSelectedItem(),
-                                    event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ListModel listModel = scopeField.getModel();
-      if ( listModel.size() == 0 )
-      {
-        return;
-      }
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConnectionPoolWindow( ConnectionPoolsPane.this, (String) scopeField.getSelectedItem(), null ) );
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricited" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the connection pool object
-      JDBCConnectionPool connectionPool = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJDBCConnectionPool( event.getActionCommand() );
-      if ( connectionPool == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionpool.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the connection pool state and add a change event
-      if ( connectionPool.isActive() )
-      {
-        connectionPool.setActive( false );
-        parent.getChangeEvents().add( "Disable JDBC connection pool " + connectionPool.getName() );
-      }
-      else
-      {
-        connectionPool.setActive( true );
-        parent.getChangeEvents().add( "Enable JDBC connection pool " + connectionPool.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the connection pool object
-      JDBCConnectionPool connectionPool = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJDBCConnectionPool( event.getActionCommand() );
-      if ( connectionPool == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "connectionpool.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the connection pool blocker state and add a change event
-      if ( connectionPool.isBlocker() )
-      {
-        connectionPool.setBlocker( false );
-        parent.getChangeEvents().add( "Set not blocker for JDBC connection pool " + connectionPool.getName() );
-      }
-      else
-      {
-        connectionPool.setBlocker( true );
-        parent.getChangeEvents().add( "Set blocker for JDBC connection pool " + connectionPool.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the connection pool object
-      JDBCConnectionPool connectionPool = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJDBCConnectionPool( event.getActionCommand() );
-      if ( connectionPool == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( connectionPool.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>ConnectionPoolsPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public ConnectionPoolsPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add the scope select field
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( layoutGrid );
-    Label applicationServerScope = new Label( Messages.getString( "scope" ) );
-    applicationServerScope.setStyleName( "default" );
-    layoutGrid.add( applicationServerScope );
-    scopeField = new SelectField();
-    scopeField.addActionListener( scopeSelect );
-    scopeField.setStyleName( "default" );
-    layoutGrid.add( scopeField );
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    scopeListModel.removeAll();
-    // add application servers in the scope select field
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-    }
-    if ( scopeListModel.size() > 0 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-
-    // add the create button
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "connectionpool.add" ), Styles.ADD );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add JDBC connection pools grid
-    grid = new Grid( 5 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    content.add( grid );
-
-    // update
-    update();
-
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    String applicationServerName = null;
-    // update the scope select field
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      applicationServerName = (String) scopeField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int index = 0;
-    int found = -1;
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-      if ( applicationServer.getName().equals( applicationServerName ) )
-      {
-        found = index;
-      }
-      index++;
-    }
-    // remove all JDBC connection pools grid children
-    grid.removeAll();
-    if ( scopeListModel.size() < 1 )
-    {
-      return;
-    }
-    // update the scope select field selected index
-    if ( found == -1 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeField.setSelectedIndex( found );
-    }
-    // update the application server name from the scope (in case of
-    // application server deletion)
-    applicationServerName = (String) scopeField.getSelectedItem();
-    // add JDBC connection pools grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    Label typeHeader = new Label( Messages.getString( "type" ) );
-    typeHeader.setStyleName( "grid.header" );
-    grid.add( typeHeader );
-    Label userHeader = new Label( Messages.getString( "user" ) );
-    userHeader.setStyleName( "grid.header" );
-    grid.add( userHeader );
-    Label urlHeader = new Label( Messages.getString( "url" ) );
-    urlHeader.setStyleName( "grid.header" );
-    grid.add( urlHeader );
-
-    // add the jdbc connection pools
-    for ( Iterator jdbcConnectionPoolIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              applicationServerName ).getJDBCConnectionPools().iterator(); jdbcConnectionPoolIterator.hasNext(); )
-    {
-      JDBCConnectionPool connectionPool = (JDBCConnectionPool) jdbcConnectionPoolIterator.next();
-      // name and actions
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( connectionPool.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( connectionPool.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        activeButton.setActionCommand( connectionPool.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( connectionPool.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        blockerButton.setActionCommand( connectionPool.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // status
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      statusButton.setActionCommand( connectionPool.getName() );
-      statusButton.addActionListener( status );
-      row.add( statusButton );
-      // update
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( connectionPool.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      // delete
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( connectionPool.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      Button connectionPoolName = new Button( connectionPool.getName() );
-      connectionPoolName.setActionCommand( connectionPool.getName() );
-      connectionPoolName.addActionListener( edit );
-      grid.add( connectionPoolName );
-      // connection pool type (driver)
-      Label connectionPoolType = new Label( connectionPool.getDriver() );
-      connectionPoolType.setStyleName( "default" );
-      grid.add( connectionPoolType );
-      // connection pool user
-      Label connectionPoolUser = new Label( connectionPool.getUser() );
-      connectionPoolUser.setStyleName( "default" );
-      grid.add( connectionPoolUser );
-      // connection pool url
-      Label connectionPoolUrl = new Label( connectionPool.getUrl() );
-      connectionPoolUrl.setStyleName( "default" );
-      grid.add( connectionPoolUrl );
-    }
-  }
-
-  /**
-   * Get the environment window
-   *
-   * @return the parent <code>EnvironmentWindow</code>
-   */
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/DataSourcesPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/DataSourcesPane.java
deleted file mode 100644
index ffa89ab..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/DataSourcesPane.java
+++ /dev/null
@@ -1,980 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.app.list.ListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.JDBCConnectionPool;
-import org.apache.kalumet.model.JDBCDataSource;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JDBCDataSourceClient;
-
-import java.util.Iterator;
-
-/**
- * Environment JDBC data sources pane.
- */
-public class DataSourcesPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField scopeSelectField;
-
-  private Grid grid;
-
-  private boolean newIsActive = true;
-
-  private boolean newIsBlocker = false;
-
-  private TextField newNameField;
-
-  private SelectField newConnectionPoolField;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String datasourceName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalStateException( "agent not found." );
-        }
-        // call the web service
-        JDBCDataSourceClient client = new JDBCDataSourceClient( agent.getHostname(), agent.getPort() );
-        boolean ok =
-          client.check( parent.getEnvironmentName(), (String) scopeSelectField.getSelectedItem(), datasourceName );
-        if ( ok )
-        {
-          message = "JDBC data source " + datasourceName + " up to date.";
-        }
-        else
-        {
-          message = "JDBC data source " + datasourceName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JDBC data source " + datasourceName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String datasourceName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalStateException( "agent not found." );
-        }
-        // call the web service
-        JDBCDataSourceClient client = new JDBCDataSourceClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), (String) scopeSelectField.getSelectedItem(), datasourceName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JDBC data source " + datasourceName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the data source name
-      String dataSourceName = event.getActionCommand();
-      // get the field
-      TextField nameField = (TextField) DataSourcesPane.this.getComponent(
-        "dsname_" + parent.getEnvironmentName() + "_" + (String) scopeSelectField.getSelectedItem() + "_"
-          + dataSourceName );
-      SelectField connectionPoolField = (SelectField) DataSourcesPane.this.getComponent(
-        "dspool_" + parent.getEnvironmentName() + "_" + (String) scopeSelectField.getSelectedItem() + "_"
-          + dataSourceName );
-      // check if the user has selected a pool in the select field
-      if ( connectionPoolField.getSelectedIndex() < 0 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "datasource.noconnectionpool" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get values
-      String nameFieldValue = nameField.getText();
-      String connectionPoolFieldValue = (String) connectionPoolField.getSelectedItem();
-      // check mandatory fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || connectionPoolFieldValue == null
-        || connectionPoolFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "datasource.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the data source name, check if the data source
-      // name is not already in use
-      if ( !dataSourceName.equals( nameFieldValue ) )
-      {
-        if ( getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeSelectField.getSelectedItem() ).getJDBCDataSource( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "datasource.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the data source object
-      JDBCDataSource dataSource = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeSelectField.getSelectedItem() ).getJDBCDataSource( dataSourceName );
-      if ( dataSource == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "datasource.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change JDBC data source " + dataSource.getName() + " / " + dataSource.getPool() );
-      // change the data source object
-      dataSource.setName( nameFieldValue );
-      dataSource.setPool( connectionPoolFieldValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the use has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the pool is selected
-      ListModel listModel = newConnectionPoolField.getModel();
-      if ( listModel.size() == 0 || newConnectionPoolField.getSelectedIndex() < 0 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "datasource.noconnectionpool" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      String newConnectionPoolFieldValue = (String) newConnectionPoolField.getSelectedItem();
-      String newNameFieldValue = newNameField.getText();
-      // mandatory field
-      if ( newConnectionPoolFieldValue == null || newConnectionPoolFieldValue.trim().length() < 1
-        || newNameFieldValue == null || newNameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "datasource.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the new data source
-      JDBCDataSource dataSource = new JDBCDataSource();
-      dataSource.setName( newNameFieldValue );
-      dataSource.setPool( newConnectionPoolFieldValue );
-      dataSource.setActive( newIsActive );
-      // add the data source
-      try
-      {
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeSelectField.getSelectedItem() ).addJDBCDataSource( dataSource );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "datasource.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Create JDBC data source " + dataSource.getName() + " / " + dataSource.getPool() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the data source
-      final JDBCDataSource dataSource = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeSelectField.getSelectedItem() ).getJDBCDataSource( event.getActionCommand() );
-      if ( dataSource == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "datasource.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the data source
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              (String) scopeSelectField.getSelectedItem() ).getJDBCDataSources().remove( dataSource );
-            // add a change event
-            parent.getChangeEvents().add( "Delete JDBC data source " + dataSource.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update only the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get JDBC data source name
-      final String datasourceName = event.getActionCommand();
-      // put a message into the log panel and in the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JDBC data source " + datasourceName + " status check in progress...", parent.getEnvironmentName() );
-      parent.getChangeEvents().add( "JDBC data source " + datasourceName + " status check." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.datasourceName = datasourceName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    parent.getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if something has been changed
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the data source name
-      final String datasourceName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // put a message in the log pane and in the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JDBC data source " + datasourceName + " update in progress...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "JDBC data source " + datasourceName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.datasourceName = datasourceName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JDBC data source " + datasourceName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JDBC data source " + datasourceName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the data source object
-      JDBCDataSource dataSource = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeSelectField.getSelectedItem() ).getJDBCDataSource( event.getActionCommand() );
-      if ( dataSource == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "datasource.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the data source state and add a change event
-      if ( dataSource.isActive() )
-      {
-        dataSource.setActive( false );
-        parent.getChangeEvents().add( "Disable JDBC data source " + dataSource.getName() );
-      }
-      else
-      {
-        dataSource.setActive( true );
-        parent.getChangeEvents().add( "Enable JDBC data source " + dataSource.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the data source object
-      JDBCDataSource dataSource = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeSelectField.getSelectedItem() ).getJDBCDataSource( event.getActionCommand() );
-      if ( dataSource == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "datasource.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the data source blocker state and add a change event
-      if ( dataSource.isBlocker() )
-      {
-        dataSource.setBlocker( false );
-        parent.getChangeEvents().add( "Set Not blocker for JDBC data source " + dataSource.getName() );
-      }
-      else
-      {
-        dataSource.setBlocker( true );
-        parent.getChangeEvents().add( "Set blocker for JDBC data source " + dataSource.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // new toggle active
-  private ActionListener newToggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // toggle the state
-      if ( newIsActive )
-      {
-        newIsActive = false;
-      }
-      else
-      {
-        newIsActive = true;
-      }
-      // update the pane
-      update();
-    }
-  };
-
-  // new toggle blocker
-  private ActionListener newToggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // toggle the blocker state
-      if ( newIsBlocker )
-      {
-        newIsBlocker = false;
-      }
-      else
-      {
-        newIsBlocker = true;
-      }
-      // update the pane
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the connection pool object
-      JDBCDataSource dataSource = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeSelectField.getSelectedItem() ).getJDBCDataSource( event.getActionCommand() );
-      if ( dataSource == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( dataSource.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy object is correct
-      if ( copy == null || !( copy instanceof JDBCDataSource ) )
-      {
-        return;
-      }
-      // update the new fields
-      newNameField.setText( ( (JDBCDataSource) copy ).getName() );
-      DefaultListModel listModel = (DefaultListModel) newConnectionPoolField.getModel();
-      newConnectionPoolField.setSelectedIndex( 0 );
-      for ( int i = 0; i < listModel.size(); i++ )
-      {
-        String poolName = (String) listModel.get( i );
-        if ( ( (JDBCDataSource) copy ).getPool().equals( poolName ) )
-        {
-          newConnectionPoolField.setSelectedIndex( i );
-        }
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>DataSourcesPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public DataSourcesPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add the scope select field
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( layoutGrid );
-    Label scope = new Label( Messages.getString( "scope" ) );
-    scope.setStyleName( "default" );
-    layoutGrid.add( scope );
-    scopeSelectField = new SelectField();
-    scopeSelectField.addActionListener( scopeSelect );
-    scopeSelectField.setStyleName( "default" );
-    layoutGrid.add( scopeSelectField );
-    DefaultListModel scopeListModel = (DefaultListModel) scopeSelectField.getModel();
-    scopeListModel.removeAll();
-    // add application servers in the scope select field
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-    }
-    if ( scopeListModel.size() > 0 )
-    {
-      scopeSelectField.setSelectedIndex( 0 );
-    }
-
-    // add JDBC data sources grid
-    grid = new Grid( 3 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    grid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    String applicationServerName = null;
-    // update the scope select field
-    DefaultListModel scopeListModel = (DefaultListModel) scopeSelectField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      applicationServerName = (String) scopeSelectField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int scopeIndex = 0;
-    int found = -1;
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-      if ( applicationServer.getName().equals( applicationServerName ) )
-      {
-        found = scopeIndex;
-      }
-      scopeIndex++;
-    }
-
-    // remove all JDBC data sources grid children
-    grid.removeAll();
-    // check if at least one application server is present
-    if ( scopeListModel.size() < 1 )
-    {
-      return;
-    }
-    // update the scope select field selected index
-    if ( found == -1 )
-    {
-      scopeSelectField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeSelectField.setSelectedIndex( found );
-    }
-    // update the application server name from the scope (in case of
-    // application server deletion)
-    applicationServerName = (String) scopeSelectField.getSelectedItem();
-
-    Label dataSourceActionHeader = new Label( " " );
-    dataSourceActionHeader.setStyleName( "grid.header" );
-    grid.add( dataSourceActionHeader );
-    Label dataSourceNameHeader = new Label( Messages.getString( "name" ) );
-    dataSourceNameHeader.setStyleName( "grid.header" );
-    grid.add( dataSourceNameHeader );
-    Label dataSourcePoolHeader = new Label( Messages.getString( "connectionpool" ) );
-    dataSourcePoolHeader.setStyleName( "grid.header" );
-    grid.add( dataSourcePoolHeader );
-    // add the jdbc data sources
-    for ( Iterator jdbcDataSourceIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              applicationServerName ).getJDBCDataSources().iterator(); jdbcDataSourceIterator.hasNext(); )
-    {
-      JDBCDataSource dataSource = (JDBCDataSource) jdbcDataSourceIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( dataSource.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( dataSource.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        activeButton.setActionCommand( dataSource.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( dataSource.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        blockerButton.setActionCommand( dataSource.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // status
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      statusButton.setActionCommand( dataSource.getName() );
-      statusButton.addActionListener( status );
-      row.add( statusButton );
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        // update
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( dataSource.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( dataSource.getName() );
-        editButton.addActionListener( edit );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( dataSource.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      TextField dataSourceName = new TextField();
-      dataSourceName.setStyleName( "default" );
-      dataSourceName.setWidth( new Extent( 100, Extent.PERCENT ) );
-      dataSourceName.setId(
-        "dsname_" + parent.getEnvironmentName() + "_" + applicationServerName + "_" + dataSource.getName() );
-      dataSourceName.setText( dataSource.getName() );
-      grid.add( dataSourceName );
-      // data source pool
-      SelectField dataSourcePool = new SelectField();
-      dataSourcePool.setStyleName( "default" );
-      dataSourcePool.setWidth( new Extent( 100, Extent.PERCENT ) );
-      dataSourcePool.setId(
-        "dspool_" + parent.getEnvironmentName() + "_" + applicationServerName + "_" + dataSource.getName() );
-      DefaultListModel listModel = (DefaultListModel) dataSourcePool.getModel();
-      listModel.removeAll();
-      for ( Iterator poolIterator = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        applicationServerName ).getJDBCConnectionPools().iterator(); poolIterator.hasNext(); )
-      {
-        JDBCConnectionPool pool = (JDBCConnectionPool) poolIterator.next();
-        listModel.add( pool.getName() );
-      }
-      dataSourcePool.setSelectedItem( dataSource.getPool() );
-      grid.add( dataSourcePool );
-    }
-
-    // add create data source row in the JDBC data sources grid
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( paste );
-      row.add( pasteButton );
-      // active
-      Button activeButton;
-      if ( newIsActive )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      activeButton.addActionListener( newToggleActive );
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( newIsBlocker )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      blockerButton.addActionListener( newToggleBlocker );
-      row.add( blockerButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( create );
-      row.add( addButton );
-      // name
-      newNameField = new TextField();
-      newNameField.setStyleName( "default" );
-      newNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newNameField );
-      // connection pool
-      newConnectionPoolField = new SelectField();
-      newConnectionPoolField.setStyleName( "default" );
-      newConnectionPoolField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      DefaultListModel listModel = (DefaultListModel) newConnectionPoolField.getModel();
-      listModel.removeAll();
-      for ( Iterator poolIterator = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        applicationServerName ).getJDBCConnectionPools().iterator(); poolIterator.hasNext(); )
-      {
-        JDBCConnectionPool pool = (JDBCConnectionPool) poolIterator.next();
-        listModel.add( pool.getName() );
-      }
-      grid.add( newConnectionPoolField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/EnvironmentWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/EnvironmentWindow.java
deleted file mode 100644
index b191c6d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/EnvironmentWindow.java
+++ /dev/null
@@ -1,1182 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.commons.lang.time.FastDateFormat;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.log.Event;
-import org.apache.kalumet.model.log.Journal;
-import org.apache.kalumet.ws.client.EnvironmentClient;
-
-import java.util.Date;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Environment window.
- */
-public class EnvironmentWindow
-  extends WindowPane
-{
-
-  private String environmentName;
-
-  private Environment environment;
-
-  private LinkedList changeEvents;
-
-  private boolean updated = false;
-
-  private Button lockButton;
-
-  public boolean adminPermission = false;
-
-  public boolean updatePermission = false;
-
-  public boolean jeeApplicationServersChangePermission = false;
-
-  public boolean jeeApplicationServersUpdatePermission = false;
-
-  public boolean jeeApplicationServersControlPermission = false;
-
-  public boolean jeeResourcesChangePermission = false;
-
-  public boolean jeeResourcesUpdatePermission = false;
-
-  public boolean jeeApplicationsChangePermission = false;
-
-  public boolean jeeApplicationsUpdatePermission = false;
-
-  public boolean softwareChangePermission = false;
-
-  public boolean softwareUpdatePermission = false;
-
-  public boolean releasePermission = false;
-
-  public boolean shellPermission = false;
-
-  public boolean browserPermission = false;
-
-  public boolean homepagePermission = false;
-
-  private GeneralPane generalPane;
-
-  private SecurityPane securityPane;
-
-  private ApplicationServersPane applicationServersPane;
-
-  private ConnectionPoolsPane connectionPoolsPane;
-
-  private DataSourcesPane dataSourcesPane;
-
-  private ConnectionFactoriesPane connectionFactoriesPane;
-
-  private JmsServersPane jmsServersPane;
-
-  private NameSpaceBindingsPane nameSpaceBindingsPane;
-
-  private SharedLibrariesPane sharedLibrariesPane;
-
-  private ApplicationsPane applicationsPane;
-
-  private SoftwaresPane softwaresPane;
-
-  private JournalPane journalPane;
-
-  private NotifiersPane notifiersPane;
-
-  private PublishersPane publishersPane;
-
-  private ActionPane actionPane;
-
-  private CheckerPane checkerPane;
-
-  private ShellPane shellPane;
-
-  private LogViewerPane logViewerPane;
-
-  private FileBrowserPane fileBrowserane;
-
-  private StatisticsPane statisticsPane;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( environment.getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        EnvironmentClient client = new EnvironmentClient( agent.getHostname(), agent.getPort() );
-        client.update( environmentName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Environment " + environmentName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // if the user is only read-only
-      if ( environmentName == null || ( !adminPermission && !updatePermission && !jeeApplicationServersChangePermission
-        && !jeeApplicationServersUpdatePermission && !jeeApplicationServersControlPermission && !jeeResourcesChangePermission
-        && !jeeResourcesUpdatePermission && !jeeApplicationsChangePermission && !jeeApplicationsUpdatePermission
-        && !softwareChangePermission && !softwareUpdatePermission && !releasePermission && !homepagePermission ) )
-      {
-        // only close the window
-        EnvironmentWindow.this.userClose();
-        return;
-      }
-      // check if some changes has been made
-      if ( isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), environmentName );
-        return;
-      }
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage(), environmentName );
-        return;
-      }
-      // looking for the environment object (updated)
-      Environment current = kalumet.getEnvironment( environmentName );
-      // raise an error if the environment is not found
-      if ( current == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), environmentName );
-        return;
-      }
-      // check if the user has the lock
-      if ( current.getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        current.setLock( "" );
-        try
-        {
-          ConfigurationManager.writeStore( kalumet );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addError(
-            Messages.getString( "db.write" ) + ": " + e.getMessage(), environmentName );
-          return;
-        }
-      }
-      // close the window
-      EnvironmentWindow.this.userClose();
-    }
-  };
-
-  // toggle lock
-  private ActionListener toggleLock = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has been made
-      if ( isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), environmentName );
-        return;
-      }
-      // load Kalumet configuration
-      Kalumet kalumet;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage(), environmentName );
-        return;
-      }
-      // get the environment object (updated)
-      Environment current = kalumet.getEnvironment( environmentName );
-      // raise an error if the environment is not found
-      if ( current == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), environmentName );
-        return;
-      }
-      // if the lock is free, take it if I can
-      if ( ( adminPermission || updatePermission || jeeApplicationServersChangePermission || jeeApplicationServersUpdatePermission
-        || jeeApplicationServersControlPermission || jeeResourcesChangePermission || jeeResourcesUpdatePermission
-        || jeeApplicationsChangePermission || jeeApplicationsUpdatePermission || softwareChangePermission
-        || softwareUpdatePermission || releasePermission || homepagePermission ) && ( current.getLock() == null
-        || current.getLock().trim().length() < 1 ) )
-      {
-        current.setLock( KalumetConsoleApplication.getApplication().getUserid() );
-        environment = current;
-        EnvironmentWindow.this.setTitle(
-          Messages.getString( "environment" ) + " " + environmentName + " (" + Messages.getString( "locked.by" ) + " "
-            + environment.getLock() + ")" );
-        try
-        {
-          ConfigurationManager.writeStore( kalumet );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addError(
-            Messages.getString( "db.write" ) + ": " + e.getMessage(), environmentName );
-          return;
-        }
-        // update the view
-        update();
-        return;
-      }
-      // if the user has the lock, toggle to unlock
-      if ( KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) || current.getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        current.setLock( "" );
-        environment = current;
-        EnvironmentWindow.this.setTitle( Messages.getString( "environment" ) + " " + environmentName );
-        try
-        {
-          ConfigurationManager.writeStore( kalumet );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addError(
-            Messages.getString( "db.write" ) + ": " + e.getMessage(), environmentName );
-          return;
-        }
-        // update the view
-        update();
-        return;
-      }
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage(), environmentName );
-        return;
-      }
-      // looking for the environment in Kalumet
-      environment = kalumet.getEnvironment( environmentName );
-      if ( environment == null )
-      {
-        environment = new Environment();
-        environment.setLock( KalumetConsoleApplication.getApplication().getUserid() );
-      }
-      // change the updated flag
-      setUpdated( false );
-      // reinit the change events
-      changeEvents = new LinkedList();
-      // update the window
-      update();
-    }
-  };
-
-  // save
-  private ActionListener save = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !environment.getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            environmentName );
-        return;
-      }
-      // get fields value
-      String nameFieldValue = generalPane.getNameField().getText();
-      String groupFieldValue = generalPane.getGroupField().getText();
-      String tagFieldValue = (String) generalPane.getTagField().getSelectedItem();
-      String agentFieldValue = (String) generalPane.getAgentField().getSelectedItem();
-      int autoUpdateFieldIndex = generalPane.getAutoUpdateField().getSelectedIndex();
-      String notesAreaValue = generalPane.getNotesArea().getText();
-      String weblinksAreaValue = generalPane.getWeblinksArea().getText();
-      int applicationServersTopologyFieldIndex = applicationServersPane.getTopologyField().getSelectedIndex();
-      String notifierCountDownFieldValue = notifiersPane.getCountDownField().getText();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || groupFieldValue == null
-        || groupFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.mandatory" ), environmentName );
-        return;
-      }
-      // check if the count down is a integer
-      int notifierCountDownInt;
-      try
-      {
-        notifierCountDownInt = new Integer( notifierCountDownFieldValue ).intValue();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "notifier.warn.countdown" ), environmentName );
-        notifierCountDownInt = 0;
-      }
-      // load the journal
-      Journal journal = null;
-      try
-      {
-        journal = ConfigurationManager.loadEnvironmentJournal( environmentName );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "journal.warn.read" ) + ": " + e.getMessage(), environmentName );
-        return;
-      }
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage(), environmentName );
-        return;
-      }
-      // if the user change the environment name, check if the name is not
-      // already in used
-      if ( environmentName == null || ( environmentName != null && !environmentName.equals( nameFieldValue ) ) )
-      {
-        if ( kalumet.getEnvironment( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "environment.exists" ),
-                                                                            environmentName );
-          return;
-        }
-      }
-      // add a change event
-      if ( environmentName != null && !environmentName.equals( nameFieldValue ) )
-      {
-        getChangeEvents().add( "Change environment name." );
-      }
-      // update the environment
-      environment.setName( nameFieldValue );
-      environment.setGroup( groupFieldValue );
-      environment.setTag( tagFieldValue );
-      environment.setAgent( agentFieldValue );
-      if ( autoUpdateFieldIndex == 0 )
-      {
-        environment.setAutoupdate( true );
-      }
-      else
-      {
-        environment.setAutoupdate( false );
-      }
-      environment.setNotes( notesAreaValue );
-      environment.setWeblinks( weblinksAreaValue );
-      if ( applicationServersTopologyFieldIndex == 0 )
-      {
-        environment.getJEEApplicationServers().setCluster( false );
-      }
-      else
-      {
-        environment.getJEEApplicationServers().setCluster( true );
-      }
-      environment.getNotifiers().setCountdown( notifierCountDownInt );
-      // looking for the environment
-      Environment toupdate = kalumet.getEnvironment( environmentName );
-      if ( toupdate == null || environmentName == null )
-      {
-        // add the environment object if needed
-        try
-        {
-          kalumet.addEnvironment( environment );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "environment.exists" ), environmentName );
-          return;
-        }
-      }
-      else
-      {
-        // update the environment
-        int index = kalumet.getEnvironments().indexOf( toupdate );
-        kalumet.getEnvironments().set( index, environment );
-      }
-      // save the configuration
-      try
-      {
-        ConfigurationManager.writeStore( kalumet );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.write" ) + ": " + e.getMessage(), environmentName );
-        return;
-      }
-      // update the window definition
-      if ( environment.getLock() == null || environment.getLock().trim().length() < 1 )
-      {
-        setTitle( Messages.getString( "environment" ) + " " + environment.getName() );
-      }
-      else
-      {
-        setTitle(
-          Messages.getString( "environment" ) + " " + environment.getName() + " (" + Messages.getString( "locked.by" )
-            + " " + environment.getLock() + ")" );
-      }
-      setId( "environmentwindow_" + environment.getName() );
-      environmentName = environment.getName();
-      // add change events in the journal
-      for ( Iterator eventIterator = getChangeEvents().iterator(); eventIterator.hasNext(); )
-      {
-        String eventMessage = (String) eventIterator.next();
-        Event journalEvent = new Event();
-        journalEvent.setDate( ( (FastDateFormat) DateFormatUtils.ISO_DATETIME_FORMAT ).format( new Date() ) );
-        journalEvent.setSeverity( "INFO" );
-        journalEvent.setAuthor( KalumetConsoleApplication.getApplication().getUserid() );
-        journalEvent.setContent( eventMessage );
-        journal.addEvent( journalEvent );
-      }
-      // save the journal
-      try
-      {
-        journal.writeXMLFile( ConfigurationManager.getEnvironmentJournalFile( environmentName ) );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "journal.warn.save" ) + ": " + e.getMessage(), environmentName );
-        return;
-      }
-      // update the updated flag
-      setUpdated( false );
-      // update the change events
-      changeEvents = new LinkedList();
-      // update the environments pane
-      KalumetConsoleApplication.getApplication().getEnvironmentsPane().update();
-      // update the window
-      update();
-      // add a confirm
-      KalumetConsoleApplication.getApplication().getLogPane().addConfirm( Messages.getString( "environment.saved" ),
-                                                                          environmentName );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( environment.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check the copy object
-      if ( copy == null || !( copy instanceof Environment ) )
-      {
-        return;
-      }
-      environment = (Environment) copy;
-      environment.setLock( KalumetConsoleApplication.getApplication().getUserid() );
-      environmentName = null;
-      // update the window
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !environment.getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            environmentName );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // load Kalumet configuration
-            Kalumet kalumet = null;
-            try
-            {
-              kalumet = ConfigurationManager.loadStore();
-            }
-            catch ( Exception e )
-            {
-              KalumetConsoleApplication.getApplication().getLogPane().addError(
-                Messages.getString( "db.read" ) + ": " + e.getMessage(), environmentName );
-              return;
-            }
-            // looking for the delete object
-            Environment delete = kalumet.getEnvironment( environmentName );
-            kalumet.getEnvironments().remove( delete );
-            // save configuration
-            try
-            {
-              ConfigurationManager.writeStore( kalumet );
-            }
-            catch ( Exception e )
-            {
-              KalumetConsoleApplication.getApplication().getLogPane().addError(
-                Messages.getString( "db.write" ) + ": " + e.getMessage(), environmentName );
-              return;
-            }
-            // update the environments pane
-            KalumetConsoleApplication.getApplication().getEnvironmentsPane().update();
-            // close the window
-            EnvironmentWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !environment.getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "environment.locked" ),
-                                                                          environmentName );
-        return;
-      }
-      // check if something has not been saved
-      if ( isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "environment.notsaved" ),
-                                                                          environmentName );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Environment " + environmentName + " update in progress...", environmentName );
-            getChangeEvents().add( "Update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      environmentName );
-                    getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Environment " + environmentName + " updated.", environmentName );
-                    getChangeEvents().add( "Update completed successfully." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>EnvironmentWindow</code>.
-   *
-   * @param environmentName the environment name.
-   */
-  public EnvironmentWindow( String environmentName )
-  {
-    super();
-
-    this.environmentName = environmentName;
-
-    // init the change events
-    this.changeEvents = new LinkedList();
-
-    // init the updated flag
-    this.updated = false;
-
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-
-    // update the environment object from Kalumet
-    this.environment = kalumet.getEnvironment( environmentName );
-    if ( this.environment == null )
-    {
-      this.environment = new Environment();
-      this.environment.setLock( KalumetConsoleApplication.getApplication().getUserid() );
-      this.adminPermission = true;
-    }
-
-    // check if the user has access to the environment
-    if ( environmentName != null )
-    {
-      // update permission flags
-      adminPermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                          KalumetConsoleApplication.getApplication().getUserid(),
-                                                                          "admin" );
-      updatePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                           KalumetConsoleApplication.getApplication().getUserid(),
-                                                                           "update" );
-      jeeApplicationServersChangePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                               KalumetConsoleApplication.getApplication().getUserid(),
-                                                                               "jee_application_servers_change" );
-      jeeApplicationServersUpdatePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                                     KalumetConsoleApplication.getApplication().getUserid(),
-                                                                                     "jee_application_servers_update" );
-      jeeApplicationServersControlPermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                                      KalumetConsoleApplication.getApplication().getUserid(),
-                                                                                      "jee_application_servers_control" );
-      jeeResourcesChangePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                                 KalumetConsoleApplication.getApplication().getUserid(),
-                                                                                 "jee_resources_change" );
-      jeeResourcesUpdatePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                                       KalumetConsoleApplication.getApplication().getUserid(),
-                                                                                       "jee_resources_update" );
-      jeeApplicationsChangePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                                    KalumetConsoleApplication.getApplication().getUserid(),
-                                                                                    "jee_applications_change" );
-      jeeApplicationsUpdatePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                                          KalumetConsoleApplication.getApplication().getUserid(),
-                                                                                          "jee_applications_update" );
-      softwareChangePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                              KalumetConsoleApplication.getApplication().getUserid(),
-                                                                              "software_change" );
-      softwareUpdatePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                                    KalumetConsoleApplication.getApplication().getUserid(),
-                                                                                    "software_update" );
-      releasePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                            KalumetConsoleApplication.getApplication().getUserid(),
-                                                                            "release" );
-      shellPermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                          KalumetConsoleApplication.getApplication().getUserid(),
-                                                                          "shell" );
-      browserPermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                            KalumetConsoleApplication.getApplication().getUserid(),
-                                                                            "browser" );
-      homepagePermission = kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                                             KalumetConsoleApplication.getApplication().getUserid(),
-                                                                             "homepage" );
-
-      // check user permission on the environment
-      if ( !kalumet.getSecurity().checkEnvironmentUserAccess( this.environment,
-                                                              KalumetConsoleApplication.getApplication().getUserid(),
-                                                              null ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.restricted" ), this.environmentName );
-        return;
-      }
-    }
-    else
-    {
-      adminPermission = true;
-    }
-
-    // try to take the environment lock (if the user can)
-    if ( ( adminPermission || updatePermission || jeeApplicationServersChangePermission || jeeApplicationServersUpdatePermission
-      || jeeApplicationServersControlPermission || jeeResourcesChangePermission || jeeResourcesUpdatePermission
-      || jeeApplicationsChangePermission || jeeApplicationsUpdatePermission || softwareChangePermission
-      || softwareUpdatePermission || releasePermission || homepagePermission ) && ( this.environment.getLock() == null
-      || this.environment.getLock().trim().length() < 1 ) )
-    {
-      // lock the environment (but not yet saved)
-      this.environment.setLock( KalumetConsoleApplication.getApplication().getUserid() );
-      // save the lock if required
-      if ( environmentName != null )
-      {
-        try
-        {
-          ConfigurationManager.writeStore( kalumet );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addError(
-            Messages.getString( "db.write" ) + ": " + e.getMessage() );
-          return;
-        }
-      }
-    }
-
-    if ( environmentName == null )
-    {
-      setTitle( Messages.getString( "environment" ) );
-    }
-    else
-    {
-      if ( environment.getLock() == null || environment.getLock().trim().length() < 1 )
-      {
-        setTitle( Messages.getString( "environment" ) + " " + environmentName );
-      }
-      else
-      {
-        setTitle(
-          Messages.getString( "environment" ) + " " + environmentName + " (" + Messages.getString( "locked.by" ) + " "
-            + this.environment.getLock() + ")" );
-      }
-    }
-    setId( "environmentwindow_" + environmentName );
-    setIcon( Styles.APPLICATION );
-    setStyleName( "environment" );
-    setModal( false );
-
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    this.add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.setToolTipText( Messages.getString( "reload" ) );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.setToolTipText( Messages.getString( "copy" ) );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( this.adminPermission || this.jeeApplicationServersChangePermission || this.jeeResourcesChangePermission
-      || this.jeeApplicationsChangePermission || this.softwareChangePermission || this.releasePermission )
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-      // add the save button
-      Button saveButton = new Button( Messages.getString( "save" ), Styles.DATABASE_SAVE );
-      saveButton.setStyleName( "control" );
-      saveButton.setToolTipText( Messages.getString( "save" ) );
-      saveButton.addActionListener( save );
-      controlRow.add( saveButton );
-    }
-    // add the force unlock button if the user has the lock
-    if ( this.adminPermission || this.updatePermission || this.jeeApplicationServersChangePermission || this.jeeApplicationServersControlPermission
-      || this.jeeApplicationServersUpdatePermission || this.jeeResourcesChangePermission || this.jeeResourcesUpdatePermission
-      || this.jeeApplicationsChangePermission || this.jeeApplicationsUpdatePermission || this.softwareChangePermission
-      || this.softwareUpdatePermission || this.releasePermission || this.homepagePermission )
-    {
-      lockButton = new Button( Styles.LOCK );
-      lockButton.addActionListener( toggleLock );
-      updateLockButton();
-      lockButton.setStyleName( "control" );
-      controlRow.add( lockButton );
-    }
-    if ( this.adminPermission || this.updatePermission )
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setToolTipText( Messages.getString( "update" ) );
-      updateButton.addActionListener( update );
-      updateButton.setStyleName( "control" );
-      controlRow.add( updateButton );
-    }
-    if ( this.adminPermission )
-    {
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.APPLICATION_DELETE );
-      deleteButton.setToolTipText( Messages.getString( "delete" ) );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the environment general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    generalPane = new GeneralPane( this );
-    generalPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalPane );
-
-    // add the environment security tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "security" ) );
-    securityPane = new SecurityPane( this );
-    securityPane.setLayoutData( tabLayoutData );
-    tabPane.add( securityPane );
-
-    // add the environment jee application servers tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "applicationservers" ) );
-    applicationServersPane = new ApplicationServersPane( this );
-    applicationServersPane.setLayoutData( tabLayoutData );
-    tabPane.add( applicationServersPane );
-
-    // add the ressource tab pane
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "resources" ) );
-    TabPane resourcesPane = new TabPane();
-    resourcesPane.setStyleName( "default" );
-    resourcesPane.setLayoutData( tabLayoutData );
-    tabPane.add( resourcesPane );
-
-    // add the jdbc connection pools tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "connectionpools" ) );
-    connectionPoolsPane = new ConnectionPoolsPane( this );
-    connectionPoolsPane.setLayoutData( tabLayoutData );
-    resourcesPane.add( connectionPoolsPane );
-
-    // add the jdbc data sources tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "datasources" ) );
-    dataSourcesPane = new DataSourcesPane( this );
-    dataSourcesPane.setLayoutData( tabLayoutData );
-    resourcesPane.add( dataSourcesPane );
-
-    // add the jms connection factories tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "connectionfactories" ) );
-    connectionFactoriesPane = new ConnectionFactoriesPane( this );
-    connectionFactoriesPane.setLayoutData( tabLayoutData );
-    resourcesPane.add( connectionFactoriesPane );
-
-    // add the jms servers tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "jmsservers" ) );
-    jmsServersPane = new JmsServersPane( this );
-    jmsServersPane.setLayoutData( tabLayoutData );
-    resourcesPane.add( jmsServersPane );
-
-    // add the jndi name space bindings tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "namespacebindings" ) );
-    nameSpaceBindingsPane = new NameSpaceBindingsPane( this );
-    nameSpaceBindingsPane.setLayoutData( tabLayoutData );
-    resourcesPane.add( nameSpaceBindingsPane );
-
-    // add the shared librairies tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "sharedlibraries" ) );
-    sharedLibrariesPane = new SharedLibrariesPane( this );
-    sharedLibrariesPane.setLayoutData( tabLayoutData );
-    resourcesPane.add( sharedLibrariesPane );
-
-    // add the JEE applications tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "applications" ) );
-    applicationsPane = new ApplicationsPane( this );
-    applicationsPane.setLayoutData( tabLayoutData );
-    tabPane.add( applicationsPane );
-
-    // add the softwares tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "softwares" ) );
-    softwaresPane = new SoftwaresPane( this );
-    softwaresPane.setLayoutData( tabLayoutData );
-    tabPane.add( softwaresPane );
-
-    // add the journal log tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "journal" ) );
-    journalPane = new JournalPane( this );
-    journalPane.setLayoutData( tabLayoutData );
-    tabPane.add( journalPane );
-
-    // add the notifiers tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "notifier" ) );
-    notifiersPane = new NotifiersPane( this );
-    notifiersPane.setLayoutData( tabLayoutData );
-    tabPane.add( notifiersPane );
-
-    // add the publishers tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "publisher" ) );
-    publishersPane = new PublishersPane( this );
-    publishersPane.setLayoutData( tabLayoutData );
-    tabPane.add( publishersPane );
-
-    // add the actions tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "dashboard" ) );
-    TabPane dashboardPane = new TabPane();
-    dashboardPane.setStyleName( "default" );
-    dashboardPane.setLayoutData( tabLayoutData );
-    tabPane.add( dashboardPane );
-
-    // add the updater action tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "control" ) );
-    actionPane = new ActionPane( this );
-    actionPane.setLayoutData( tabLayoutData );
-    dashboardPane.add( actionPane );
-
-    // add the checker tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "check" ) );
-    checkerPane = new CheckerPane( this );
-    checkerPane.setLayoutData( tabLayoutData );
-    dashboardPane.add( checkerPane );
-
-    if ( adminPermission || shellPermission )
-    {
-      // add the system launcher tab
-      tabLayoutData = new TabPaneLayoutData();
-      tabLayoutData.setTitle( Messages.getString( "shell" ) );
-      shellPane = new ShellPane( this );
-      shellPane.setLayoutData( tabLayoutData );
-      dashboardPane.add( shellPane );
-    }
-
-    if ( adminPermission || browserPermission )
-    {
-      // add the file explorer tab
-      tabLayoutData = new TabPaneLayoutData();
-      tabLayoutData.setTitle( Messages.getString( "file.browser" ) );
-      fileBrowserane = new FileBrowserPane( this );
-      fileBrowserane.setLayoutData( tabLayoutData );
-      dashboardPane.add( fileBrowserane );
-    }
-
-    // add the log viewer tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "logs.viewer" ) );
-    logViewerPane = new LogViewerPane( this );
-    logViewerPane.setLayoutData( tabLayoutData );
-    dashboardPane.add( logViewerPane );
-
-    // add the statistics tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "stats" ) );
-    statisticsPane = new StatisticsPane( this );
-    statisticsPane.setLayoutData( tabLayoutData );
-    dashboardPane.add( statisticsPane );
-  }
-
-  /**
-   * Get the environment linked with the window
-   *
-   * @return the <code>Environment</code> linked with the window
-   */
-  public Environment getEnvironment()
-  {
-    return this.environment;
-  }
-
-  /**
-   * Get the environment name
-   *
-   * @return the current <code>Environment</code> name
-   */
-  public String getEnvironmentName()
-  {
-    return this.environmentName;
-  }
-
-  /**
-   * Get the change events list
-   *
-   * @return the change events list
-   */
-  public List getChangeEvents()
-  {
-    return this.changeEvents;
-  }
-
-  /**
-   * Get the updated flag
-   *
-   * @return the updated flag
-   */
-  public boolean isUpdated()
-  {
-    return this.updated;
-  }
-
-  /**
-   * Set the updated flag
-   *
-   * @param updated the new updated flag value
-   */
-  public void setUpdated( boolean updated )
-  {
-    this.updated = updated;
-  }
-
-  /**
-   * Update the lock button (display lock or unlock depending of the state)
-   */
-  public void updateLockButton()
-  {
-    // if the lock is taken by the user
-    if ( environmentName != null && (
-      environment.getLock().equals( KalumetConsoleApplication.getApplication().getUserid() )
-        || KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) ) )
-    {
-      lockButton.setText( Messages.getString( "unlock" ) );
-    }
-    else
-    {
-      lockButton.setText( Messages.getString( "lock" ) );
-    }
-  }
-
-  /**
-   * Update the complete <code>EnvironmentWindow</code> with all children tab.
-   */
-  public void update()
-  {
-    generalPane.update();
-    securityPane.update();
-    applicationServersPane.update();
-    connectionPoolsPane.update();
-    dataSourcesPane.update();
-    connectionFactoriesPane.update();
-    jmsServersPane.update();
-    nameSpaceBindingsPane.update();
-    sharedLibrariesPane.update();
-    applicationsPane.update();
-    checkerPane.update();
-    softwaresPane.update();
-    journalPane.update();
-    notifiersPane.update();
-    publishersPane.update();
-    actionPane.update();
-    logViewerPane.update();
-    this.updateLockButton();
-  }
-
-  /**
-   * Only update the <code>EnvironmentJournalLogTabPane</code>
-   */
-  public void updateJournalPane()
-  {
-    journalPane.update();
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/EnvironmentsPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/EnvironmentsPane.java
deleted file mode 100644
index 59fe0dd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/EnvironmentsPane.java
+++ /dev/null
@@ -1,128 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.AccordionPane;
-import nextapp.echo2.extras.app.layout.AccordionPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.Kalumet;
-
-import java.util.Collections;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Display the list of environments organized by groups.
- */
-public class EnvironmentsPane
-  extends ContentPane
-{
-
-  private AccordionPane mainPane;
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String environmentName = event.getActionCommand();
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "environmentwindow_" + environmentName ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new EnvironmentWindow( environmentName ) );
-      }
-    }
-  };
-
-  /**
-   * Create a new environments <code>AccordionPane</code>.
-   */
-  public EnvironmentsPane()
-  {
-    super();
-    mainPane = new AccordionPane();
-    mainPane.setStyleName( "environments" );
-    add( mainPane );
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-
-    // get user environments by groups
-    Map userEnvironments =
-      kalumet.getUserEnvironmentsByGroups( KalumetConsoleApplication.getApplication().getUserid() );
-
-    // remove all
-    mainPane.removeAll();
-
-    // render environment groups
-    List groups = new LinkedList( userEnvironments.keySet() );
-    Collections.sort( groups );
-    for ( Iterator groupIterator = groups.iterator(); groupIterator.hasNext(); )
-    {
-      String group = (String) groupIterator.next();
-      Column groupColumn = new Column();
-      groupColumn.setStyleName( "environments" );
-      AccordionPaneLayoutData layoutData = new AccordionPaneLayoutData();
-      // define the layoutData as the column layout
-      groupColumn.setLayoutData( layoutData );
-      // display the group
-      layoutData.setTitle( group );
-      // add the column to the pane
-      mainPane.add( groupColumn );
-      List environments = (List) userEnvironments.get( group );
-      Collections.sort( environments );
-      for ( Iterator environmentIterator = environments.iterator(); environmentIterator.hasNext(); )
-      {
-        Environment environment = (Environment) environmentIterator.next();
-        Button environmentButton = new Button( environment.getName() );
-        environmentButton.setStyleName( "default" );
-        environmentButton.setActionCommand( environment.getName() );
-        environmentButton.addActionListener( edit );
-        groupColumn.add( environmentButton );
-      }
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ErrorWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ErrorWindow.java
deleted file mode 100644
index 755ac2c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ErrorWindow.java
+++ /dev/null
@@ -1,85 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-
-/**
- * Error window.
- */
-public class ErrorWindow
-  extends WindowPane
-{
-
-  /**
-   * Create a new <code>WindowPane</code> with the error message and the
-   * exception stack trace.
-   *
-   * @param message the error message to display.
-   * @param details the error detailed message.
-   */
-  public ErrorWindow( String message, String details )
-  {
-    super();
-
-    setTitle( message );
-    setStyleName( "error" );
-    setIcon( Styles.EXCLAMATION );
-    setModal( true );
-
-    // define the split pane containing control row
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // define the control row
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-
-    // define the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent e )
-      {
-        ErrorWindow.this.userClose();
-      }
-    } );
-    controlRow.add( closeButton );
-
-    // define a content pane
-    ContentPane contentPane = new ContentPane();
-    splitPane.add( contentPane );
-
-    // define the details
-    Label detailsLabel = new Label( details );
-    detailsLabel.setStyleName( "error" );
-    contentPane.add( detailsLabel );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/FileBrowserPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/FileBrowserPane.java
deleted file mode 100644
index dc0f2d2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/FileBrowserPane.java
+++ /dev/null
@@ -1,236 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.FileClient;
-import org.apache.kalumet.ws.client.SimplifiedFileObject;
-
-import java.text.SimpleDateFormat;
-
-/**
- * File browser pane.
- */
-public class FileBrowserPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private TextField pathField;
-
-  private Grid grid;
-
-  // view
-  private ActionListener view = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String path = event.getActionCommand();
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ViewFileWindow( path, parent.getEnvironment().getAgent() ) );
-    }
-  };
-
-  // browse
-  private ActionListener browse = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( event != null && event.getActionCommand() != null )
-      {
-        pathField.setText( event.getActionCommand() );
-      }
-
-      update();
-    }
-  };
-
-  /**
-   * Create a new <code>FileBrowserPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public FileBrowserPane( EnvironmentWindow parent )
-  {
-    super();
-    this.setStyleName( "tab.content" );
-
-    // update the parent
-    this.parent = parent;
-
-    SplitPane content = new SplitPane( SplitPane.ORIENTATION_VERTICAL_TOP_BOTTOM, new Extent( 20 ) );
-    add( content );
-
-    Row browseRow = new Row();
-    browseRow.setCellSpacing( new Extent( 2 ) );
-    browseRow.setInsets( new Insets( 2 ) );
-    content.add( browseRow );
-    pathField = new TextField();
-    pathField.setStyleName( "default" );
-    pathField.setText( "/" );
-    pathField.addActionListener( browse );
-    browseRow.add( pathField );
-    Button browseButton = new Button( Messages.getString( "browse" ), Styles.ACCEPT );
-    browseButton.addActionListener( browse );
-    browseRow.add( browseButton );
-
-    grid = new Grid( 5 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    content.add( grid );
-
-    // empty header
-    // action header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    // name header
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    // path header
-    Label pathHeader = new Label( Messages.getString( "path" ) );
-    pathHeader.setStyleName( "grid.header" );
-    grid.add( pathHeader );
-    // permission header
-    Label fileModeHeader = new Label( Messages.getString( "size" ) );
-    fileModeHeader.setStyleName( "grid.header" );
-    grid.add( fileModeHeader );
-    // modification data header
-    Label fileModificationHeader = new Label( Messages.getString( "last.modification.date" ) );
-    fileModificationHeader.setStyleName( "grid.header" );
-    grid.add( fileModificationHeader );
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // check path file value
-    String path = pathField.getText();
-    if ( path == null || path.trim().length() < 1 )
-    {
-      return;
-    }
-
-    // cleanup the grid
-    grid.removeAll();
-    // action header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    // name header
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    // path header
-    Label pathHeader = new Label( Messages.getString( "path" ) );
-    pathHeader.setStyleName( "grid.header" );
-    grid.add( pathHeader );
-    // permission header
-    Label fileModeHeader = new Label( Messages.getString( "size" ) );
-    fileModeHeader.setStyleName( "grid.header" );
-    grid.add( fileModeHeader );
-    // modification data header
-    Label fileModificationHeader = new Label( Messages.getString( "last.modification.date" ) );
-    fileModificationHeader.setStyleName( "grid.header" );
-    grid.add( fileModificationHeader );
-
-    try
-    {
-      // load Kalumet configuration
-      Kalumet kalumet = ConfigurationManager.loadStore();
-      // looking for the agent
-      Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-      if ( agent == null )
-      {
-        throw new IllegalArgumentException( "agent not found." );
-      }
-      // call the WebService
-      FileClient client = new FileClient( agent.getHostname(), agent.getPort() );
-      SimplifiedFileObject[] files = client.browse( path );
-      for ( int i = 0; i < files.length; i++ )
-      {
-        SimplifiedFileObject file = files[i];
-        // actions
-        Row actionRow = new Row();
-        if ( file.isFile() )
-        {
-          Button viewButton = new Button( Styles.INFORMATION );
-          viewButton.setToolTipText( Messages.getString( "view" ) );
-          viewButton.setActionCommand( file.getPath() );
-          viewButton.addActionListener( view );
-          actionRow.add( viewButton );
-        }
-        else
-        {
-          Button browseButton = new Button( Styles.FOLDER_EXPLORE );
-          browseButton.setToolTipText( Messages.getString( "browse" ) );
-          browseButton.setActionCommand( file.getPath() );
-          browseButton.addActionListener( browse );
-          actionRow.add( browseButton );
-        }
-        grid.add( actionRow );
-        // file name
-        Button fileName = new Button( file.getName() );
-        fileName.setActionCommand( file.getPath() );
-        if ( file.isFile() )
-        {
-          fileName.addActionListener( view );
-        }
-        else
-        {
-          fileName.addActionListener( browse );
-        }
-        grid.add( fileName );
-        // file path
-        Label filePath = new Label( file.getPath() );
-        grid.add( filePath );
-        // file size
-        Label fileSize = new Label( file.getSize() + " bytes" );
-        grid.add( fileSize );
-        // file date
-        SimpleDateFormat dateFormatter = new SimpleDateFormat( "MM/dd/yyyy HH:mm" );
-        Label fileDate = new Label( dateFormatter.format( file.getLastModificationDate() ) );
-        grid.add( fileDate );
-      }
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        "Browsing " + path + " error: " + e.getMessage(), parent.getEnvironmentName() );
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/GeneralPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/GeneralPane.java
deleted file mode 100644
index cd9271d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/GeneralPane.java
+++ /dev/null
@@ -1,1710 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.FreeField;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.LogFile;
-import org.apache.kalumet.model.Variable;
-import org.apache.kalumet.ws.client.AgentClient;
-
-import java.util.Iterator;
-
-/**
- * Environment general pane.
- */
-public class GeneralPane
-  extends TabPane
-{
-
-  private EnvironmentWindow parent;
-
-  private TextField nameField;
-
-  private TextField groupField;
-
-  private SelectField agentField;
-
-  private SelectField tagField;
-
-  private SelectField autoUpdateField;
-
-  private TextArea notesArea;
-
-  private TextArea weblinksArea;
-
-  private Grid freeFieldsGrid;
-
-  private Grid variablesGrid;
-
-  private Grid logFilesGrid;
-
-  private TextField newFreeFieldNameField;
-
-  private TextField newFreeFieldContentField;
-
-  private TextField newVariableName;
-
-  private TextField newVariableValue;
-
-  private TextField newLogFileName;
-
-  private TextField newLogFilePath;
-
-  private SelectField newLogFileAgent;
-
-  // agent status thread
-  class AgentStatusThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( (String) agentField.getSelectedItem() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        AgentClient client = new AgentClient( agent.getHostname(), agent.getPort() );
-        message = "Agent " + agent.getId() + " version " + client.getVersion() + " started.";
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Agent status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // edit free field
-  private ActionListener editFreeField = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // edit free field
-      // get the free field name
-      String freeFieldName = event.getActionCommand();
-      // get the free field fields
-      String newFreeFieldNameValue = ( (TextField) GeneralPane.this.getComponent(
-        "ffname_" + parent.getEnvironmentName() + "_" + freeFieldName ) ).getText();
-      String newFreeFieldContentValue = ( (TextField) GeneralPane.this.getComponent(
-        "ffcontent_" + parent.getEnvironmentName() + "_" + freeFieldName ) ).getText();
-      // check if the mandatory fields are presents
-      if ( newFreeFieldNameValue == null || newFreeFieldNameValue.trim().length() < 1
-        || newFreeFieldContentValue == null || newFreeFieldContentValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "freefield.mandatory" ) );
-        return;
-      }
-      // check if the user try to change the free field name
-      if ( !freeFieldName.equals( newFreeFieldNameValue ) )
-      {
-        // if this case, check if the free field name is already in used
-        if ( parent.getEnvironment().getFreeField( newFreeFieldNameValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "freefield.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // get the freefield object in the parent environment
-      FreeField freeField = parent.getEnvironment().getFreeField( freeFieldName );
-      if ( freeField == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "freefield.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change free field " + freeField.getName() + " / " + freeField.getContent() );
-      // update the free field object
-      freeField.setName( newFreeFieldNameValue );
-      freeField.setContent( newFreeFieldContentValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // create free field
-  private ActionListener createFreeField = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the free field value
-      String newFreeFieldNameValue = newFreeFieldNameField.getText();
-      String newFreeFieldContentValue = newFreeFieldContentField.getText();
-      // check if the mandatory fields are presents
-      if ( newFreeFieldNameValue == null || newFreeFieldNameValue.trim().length() < 1
-        || newFreeFieldContentValue == null || newFreeFieldContentValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "freefield.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the new free field
-      FreeField freeField = new FreeField();
-      freeField.setName( newFreeFieldNameValue );
-      freeField.setContent( newFreeFieldContentValue );
-      // add the new free field
-      try
-      {
-        parent.getEnvironment().addFreeField( freeField );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "freefield.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Add free field " + freeField.getName() + " / " + freeField.getContent() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // delete free field
-  private ActionListener deleteFreeField = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      String freeFieldName = event.getActionCommand();
-      // looking for the free field object
-      FreeField freeField = parent.getEnvironment().getFreeField( freeFieldName );
-      if ( freeField == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      parent.getEnvironment().getFreeFields().remove( freeField );
-      // add a change event
-      parent.getChangeEvents().add( "Delete free field " + freeField.getName() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // copy free field
-  private ActionListener copyFreeField = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the free field object
-      FreeField freeField = parent.getEnvironment().getFreeField( event.getActionCommand() );
-      if ( freeField == null )
-      {
-        return;
-      }
-      try
-      {
-        // put the free field clone in the copy component
-        KalumetConsoleApplication.getApplication().setCopyComponent( freeField.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste free field
-  private ActionListener pasteFreeField = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the copy component is correct
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof FreeField ) )
-      {
-        return;
-      }
-      // update new field fields with the clone
-      newFreeFieldNameField.setText( ( (FreeField) copy ).getName() );
-      newFreeFieldContentField.setText( ( (FreeField) copy ).getContent() );
-    }
-  };
-
-  // up free field
-  private ActionListener upFreeField = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the freefield object
-      FreeField freefield = parent.getEnvironment().getFreeField( event.getActionCommand() );
-      if ( freefield == null )
-      {
-        return;
-      }
-      // get the freefield index
-      int index = parent.getEnvironment().getFreeFields().indexOf( freefield );
-      // if the index is the first one, or the freefield is not found
-      // or the freefields list doesn't contain at least two elements
-      // do nothing
-      if ( index == 0 || index == -1 || parent.getEnvironment().getFreeFields().size() < 2 )
-      {
-        return;
-      }
-      // get the previous freefield
-      FreeField previous = (FreeField) parent.getEnvironment().getFreeFields().get( index - 1 );
-      // switch the freefields
-      parent.getEnvironment().getFreeFields().set( index, previous );
-      parent.getEnvironment().getFreeFields().set( index - 1, freefield );
-      // update the pane
-      update();
-    }
-  };
-
-  // down free field
-  private ActionListener downFreeField = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the freefield object
-      FreeField freefield = parent.getEnvironment().getFreeField( event.getActionCommand() );
-      if ( freefield == null )
-      {
-        return;
-      }
-      // get the freefield index
-      int index = parent.getEnvironment().getFreeFields().indexOf( freefield );
-      // if the index is the last one, or the freefield is not found
-      // or the freefields list doesn't contain at least two elements
-      // do nothing
-      if ( index == -1 || index == parent.getEnvironment().getFreeFields().size() - 1
-        || parent.getEnvironment().getFreeFields().size() < 2 )
-      {
-        return;
-      }
-      // get the next freefield
-      FreeField next = (FreeField) parent.getEnvironment().getFreeFields().get( index + 1 );
-      // switch the freefields
-      parent.getEnvironment().getFreeFields().set( index + 1, freefield );
-      parent.getEnvironment().getFreeFields().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  // copy variable
-  private ActionListener copyVariable = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the variable object
-      Variable variable = parent.getEnvironment().getVariable( event.getActionCommand() );
-      if ( variable == null )
-      {
-        return;
-      }
-      try
-      {
-        // put the variable clone in the copy component
-        KalumetConsoleApplication.getApplication().setCopyComponent( variable.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste variable
-  private ActionListener pasteVariable = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the copy component is correct
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof Variable ) )
-      {
-        return;
-      }
-      // update new variable fields with the clone
-      newVariableName.setText( ( (Variable) copy ).getName() );
-      newVariableValue.setText( ( (Variable) copy ).getValue() );
-    }
-  };
-
-  // edit variable
-  private ActionListener editVariable = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // edit variable
-      // get the variable name
-      String variableName = event.getActionCommand();
-      // get the variable fields
-      String newVariableNameValue = ( (TextField) GeneralPane.this.getComponent(
-        "variablename_" + parent.getEnvironmentName() + "_" + variableName ) ).getText();
-      String newVariableValueValue = ( (TextField) GeneralPane.this.getComponent(
-        "variablevalue_" + parent.getEnvironmentName() + "_" + variableName ) ).getText();
-      // check if the mandatory fields are presents
-      if ( newVariableNameValue == null || newVariableNameValue.trim().length() < 1 || newVariableValueValue == null
-        || newVariableValueValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "variable.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user try to change the variable name
-      if ( !variableName.equals( newVariableNameValue ) )
-      {
-        // if this case, check if the variable name is already in used
-        if ( parent.getEnvironment().getVariable( newVariableNameValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "variable.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // get the variable object in the parent environment
-      Variable variable = parent.getEnvironment().getVariable( variableName );
-      if ( variable == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "variable.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change the variable " + variable.getName() + " / " + variable.getValue() );
-      // update the variable object
-      variable.setName( newVariableNameValue );
-      variable.setValue( newVariableValueValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // delete variable
-  private ActionListener deleteVariable = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      String variableName = event.getActionCommand();
-      // looking for the variable object
-      Variable variable = parent.getEnvironment().getVariable( variableName );
-      if ( variable == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "variable.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      parent.getEnvironment().getVariables().remove( variable );
-      // add a change event
-      parent.getChangeEvents().add( "Delete variable " + variable.getName() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // create variable
-  private ActionListener createVariable = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the variable fields value
-      String newVariableNameValue = newVariableName.getText();
-      String newVariableValueValue = newVariableValue.getText();
-      // check if the mandatory fields are presents
-      if ( newVariableNameValue == null || newVariableNameValue.trim().length() < 1 || newVariableValueValue == null
-        || newVariableValueValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "variable.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the new variable
-      Variable variable = new Variable();
-      variable.setName( newVariableNameValue );
-      variable.setValue( newVariableValueValue );
-      // add the new variable
-      try
-      {
-        parent.getEnvironment().addVariable( variable );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "variable.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Add variable " + variable.getName() + " / " + variable.getValue() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // up variable
-  private ActionListener upVariable = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the variable object
-      Variable variable = parent.getEnvironment().getVariable( event.getActionCommand() );
-      if ( variable == null )
-      {
-        return;
-      }
-      // get the variable index
-      int index = parent.getEnvironment().getVariables().indexOf( variable );
-      // if the index is the first one, or the variable is not found
-      // or the variables list doesn't contain at least two elements
-      // do nothing
-      if ( index == 0 || index == -1 || parent.getEnvironment().getVariables().size() < 2 )
-      {
-        return;
-      }
-      // get the previous variable
-      Variable previous = (Variable) parent.getEnvironment().getVariables().get( index - 1 );
-      // switch the variables
-      parent.getEnvironment().getVariables().set( index, previous );
-      parent.getEnvironment().getVariables().set( index - 1, variable );
-      // update the pane
-      update();
-    }
-  };
-
-  // down variable
-  private ActionListener downVariable = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the variable object
-      Variable variable = parent.getEnvironment().getVariable( event.getActionCommand() );
-      if ( variable == null )
-      {
-        return;
-      }
-      // get the variable index
-      int index = parent.getEnvironment().getVariables().indexOf( variable );
-      // if the index is the last one, or the variable is not found
-      // or the variables list doesn't contain at least two elements
-      // do nothing
-      if ( index == -1 || index == parent.getEnvironment().getVariables().size() - 1
-        || parent.getEnvironment().getVariables().size() < 2 )
-      {
-        return;
-      }
-      // get the next variable
-      Variable next = (Variable) parent.getEnvironment().getVariables().get( index + 1 );
-      // switch the variables
-      parent.getEnvironment().getVariables().set( index + 1, variable );
-      parent.getEnvironment().getVariables().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  // copy log file
-  private ActionListener copyLogFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the log file object
-      LogFile logFile = parent.getEnvironment().getLogFile( event.getActionCommand() );
-      if ( logFile == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( logFile.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // delete log file
-  private ActionListener deleteLogFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the log file object
-      LogFile logFile = parent.getEnvironment().getLogFile( event.getActionCommand() );
-      if ( logFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "logfile.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // delete the log file
-      parent.getEnvironment().getLogFiles().remove( logFile );
-      // add a journal event
-      parent.getChangeEvents().add( "Delete log file " + logFile.getName() );
-      // switch on the updated flag
-      parent.setUpdated( true );
-      // refresh the journal pane
-      parent.updateJournalPane();
-      // update this pane
-      update();
-    }
-  };
-
-  // edit log file
-  private ActionListener editLogFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the log file object
-      String logFileName = event.getActionCommand();
-      // get the fields value
-      String logFileNewName = ( (TextField) GeneralPane.this.getComponent(
-        "logfilename_" + parent.getEnvironmentName() + "_" + logFileName ) ).getText();
-      String logFileNewPath = ( (TextField) GeneralPane.this.getComponent(
-        "logfilepath_" + parent.getEnvironmentName() + "_" + logFileName ) ).getText();
-      String logFileNewAgent = (String) ( (SelectField) GeneralPane.this.getComponent(
-        "logfileagent_" + parent.getEnvironmentName() + "_" + logFileName ) ).getSelectedItem();
-      // check the fiels value
-      if ( logFileNewName == null || logFileNewName.trim().length() < 1 || logFileNewPath == null
-        || logFileNewPath.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "logfile.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user tries to change the log file name, check if the name is not already used
-      if ( !logFileNewName.equals( logFileName ) )
-      {
-        if ( parent.getEnvironment().getLogFile( logFileNewName ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "logfile.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the log file object
-      LogFile logFile = parent.getEnvironment().getLogFile( logFileName );
-      if ( logFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "logfile.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change log file " + logFile.getName() );
-      // update the log file object
-      logFile.setName( logFileNewName );
-      logFile.setPath( logFileNewPath );
-      logFile.setAgent( logFileNewAgent );
-      // switch on the update flag
-      parent.setUpdated( true );
-      // update the journal log pane
-      parent.updateJournalPane();
-      // update this pane
-      update();
-    }
-  };
-
-  // add log file
-  private ActionListener addLogFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the provided value
-      String newLogFileNameValue = newLogFileName.getText();
-      String newLogFilePathValue = newLogFilePath.getText();
-      String newLogFileAgentValue = (String) newLogFileAgent.getSelectedItem();
-      // check the provided value
-      if ( newLogFileNameValue == null || newLogFileNameValue.trim().length() < 1 || newLogFilePathValue == null
-        || newLogFilePathValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "logfile.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create a new log file
-      LogFile logFile = new LogFile();
-      logFile.setName( newLogFileNameValue );
-      logFile.setPath( newLogFilePathValue );
-      logFile.setAgent( newLogFileAgentValue );
-      // add the new log file
-      try
-      {
-        parent.getEnvironment().addLogFile( logFile );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "logfile.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Add log file " + logFile.getName() + " / " + logFile.getPath() );
-      // switch on the update flag
-      parent.setUpdated( true );
-      // update the journal log pane
-      parent.updateJournalPane();
-      // update this pane
-      update();
-    }
-  };
-
-  // paste log file
-  private ActionListener pasteLogFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the copied object is correct
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof LogFile ) )
-      {
-        return;
-      }
-      // update the new fields
-      newLogFileName.setText( ( (LogFile) copy ).getName() );
-      newLogFilePath.setText( ( (LogFile) copy ).getPath() );
-      newLogFileAgent.setSelectedItem( ( (LogFile) copy ).getAgent() );
-    }
-  };
-
-  // up log file
-  private ActionListener upLogFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the logfile object
-      LogFile logFile = getEnvironmentWindow().getEnvironment().getLogFile( event.getActionCommand() );
-      if ( logFile == null )
-      {
-        return;
-      }
-      // get the logfile index
-      int index = getEnvironmentWindow().getEnvironment().getLogFiles().indexOf( logFile );
-      // if the index is the first one, or the log file is not found
-      // or the logfiles list doesn't contain at least two elements
-      // do nothing
-      if ( index == 0 || index == -1 || getEnvironmentWindow().getEnvironment().getLogFiles().size() < 2 )
-      {
-        return;
-      }
-      // get the previous logfile
-      LogFile previous = (LogFile) getEnvironmentWindow().getEnvironment().getLogFiles().get( index - 1 );
-      // switch the logfiles
-      getEnvironmentWindow().getEnvironment().getLogFiles().set( index - 1, logFile );
-      getEnvironmentWindow().getEnvironment().getLogFiles().set( index, previous );
-      // update the pane
-      update();
-    }
-  };
-
-  // down log file
-  private ActionListener downLogFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the logfile object
-      LogFile logFile = getEnvironmentWindow().getEnvironment().getLogFile( event.getActionCommand() );
-      if ( logFile == null )
-      {
-        return;
-      }
-      // get the logfile index
-      int index = getEnvironmentWindow().getEnvironment().getLogFiles().indexOf( logFile );
-      // if the index is the last one, or the logfile is not found
-      // or the logfiles list doesn't contain at least two elements
-      // do nothing
-      if ( index == -1 || index == getEnvironmentWindow().getEnvironment().getLogFiles().size() - 1
-        || getEnvironmentWindow().getEnvironment().getLogFiles().size() < 2 )
-      {
-        return;
-      }
-      // get the next logfile
-      LogFile next = (LogFile) getEnvironmentWindow().getEnvironment().getLogFiles().get( index + 1 );
-      // switch the logfiles
-      getEnvironmentWindow().getEnvironment().getLogFiles().set( index + 1, logFile );
-      getEnvironmentWindow().getEnvironment().getLogFiles().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  // agent status
-  private ActionListener agentStatus = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // add an event
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo( "Agent check in progress ...",
-                                                                       parent.getEnvironmentName() );
-      // start the agent status thread
-      final AgentStatusThread agentStatusThread = new AgentStatusThread();
-      agentStatusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( agentStatusThread.ended )
-                                                                  {
-                                                                    if ( agentStatusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addError(
-                                                                        agentStatusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                                                                        agentStatusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // view log file
-  private ActionListener viewLogFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String logFileName = event.getActionCommand();
-      // looking for the log file
-      LogFile logFile = parent.getEnvironment().getLogFile( logFileName );
-      if ( logFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "logfile.notfound" ),
-                                                                          parent.getEnvironmentName() );
-        return;
-      }
-      // define which agent to use
-      String agentId;
-      if ( logFile.getAgent() != null && logFile.getAgent().trim().length() > 0 )
-      {
-        agentId = logFile.getAgent();
-      }
-      else
-      {
-        agentId = parent.getEnvironment().getAgent();
-      }
-      // open a view file window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ViewFileWindow( logFile.getPath(), agentId ) );
-    }
-  };
-
-  /**
-   * Create a new <code>GeneralPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public GeneralPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "default" );
-
-    // update parent
-    this.parent = parent;
-
-    // add the information tab pane
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "information" ) );
-    ContentPane informationPane = new ContentPane();
-    informationPane.setStyleName( "tab.content" );
-    informationPane.setLayoutData( tabLayoutData );
-    add( informationPane );
-
-    // info grid
-    Grid grid = new Grid( 2 );
-    grid.setStyleName( "default" );
-    grid.setWidth( new Extent( 100, Extent.PERCENT ) );
-    grid.setColumnWidth( 0, new Extent( 10, Extent.PERCENT ) );
-    grid.setColumnWidth( 1, new Extent( 90, Extent.PERCENT ) );
-    informationPane.add( grid );
-
-    // add environment name field
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    grid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    grid.add( nameField );
-
-    // add environment group field
-    Label groupLabel = new Label( Messages.getString( "group" ) );
-    groupLabel.setStyleName( "grid.cell" );
-    grid.add( groupLabel );
-    groupField = new TextField();
-    groupField.setStyleName( "default" );
-    groupField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    grid.add( groupField );
-
-    // add the tag select field
-    Label tagLabel = new Label( Messages.getString( "tag" ) );
-    tagLabel.setStyleName( "grid.cell" );
-    grid.add( tagLabel );
-    Object[] tags = new Object[]{ Messages.getString( "production" ), Messages.getString( "preproduction" ),
-      Messages.getString( "staging" ), Messages.getString( "testing" ), Messages.getString( "unstable" ),
-      Messages.getString( "other" ) };
-    tagField = new SelectField( tags );
-    tagField.setStyleName( "default" );
-    tagField.setWidth( new Extent( 50, Extent.EX ) );
-    grid.add( tagField );
-
-    // add the agent select field
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    grid.add( agentLabel );
-    Row agentRow = new Row();
-    agentRow.setCellSpacing( new Extent( 2 ) );
-    grid.add( agentRow );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    agentRow.add( agentField );
-    Button agentButton = new Button( Styles.INFORMATION );
-    agentButton.setToolTipText( Messages.getString( "status" ) );
-    agentButton.addActionListener( agentStatus );
-    agentRow.add( agentButton );
-
-    // add the auto update select field
-    Label autoUpdateLabel = new Label( Messages.getString( "autoupdate" ) );
-    autoUpdateLabel.setStyleName( "grid.cell" );
-    grid.add( autoUpdateLabel );
-    autoUpdateField = new SelectField( MainScreen.LABELS );
-    autoUpdateField.setStyleName( "default" );
-    autoUpdateField.setWidth( new Extent( 10, Extent.EX ) );
-    grid.add( autoUpdateField );
-
-    // add the notes area
-    Label environmentNotesLabel = new Label( Messages.getString( "notes" ) );
-    environmentNotesLabel.setStyleName( "grid.cell" );
-    grid.add( environmentNotesLabel );
-    notesArea = new TextArea();
-    notesArea.setStyleName( "default" );
-    notesArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    notesArea.setHeight( new Extent( 200, Extent.PX ) );
-    grid.add( notesArea );
-
-    // add the weblinks area
-    Label environmentWeblinksLabel = new Label( Messages.getString( "weblinks" ) );
-    environmentWeblinksLabel.setStyleName( "grid.cell" );
-    grid.add( environmentWeblinksLabel );
-    weblinksArea = new TextArea();
-    weblinksArea.setStyleName( "default" );
-    weblinksArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    weblinksArea.setHeight( new Extent( 200, Extent.PX ) );
-    grid.add( weblinksArea );
-
-    // free fields tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "freefields" ) );
-    ContentPane freeFieldPane = new ContentPane();
-    freeFieldPane.setStyleName( "tab.content" );
-    freeFieldPane.setLayoutData( tabLayoutData );
-    add( freeFieldPane );
-
-    // free fields grid
-    freeFieldsGrid = new Grid( 3 );
-    freeFieldsGrid.setStyleName( "border.grid" );
-    freeFieldsGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    freeFieldsGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    freeFieldsGrid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    freeFieldPane.add( freeFieldsGrid );
-
-    // add the variable tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "variables" ) );
-    ContentPane variablePane = new ContentPane();
-    variablePane.setStyleName( "tab.content" );
-    variablePane.setLayoutData( tabLayoutData );
-    add( variablePane );
-
-    variablesGrid = new Grid( 3 );
-    variablesGrid.setStyleName( "border.grid" );
-    variablesGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    variablesGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    variablesGrid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    variablePane.add( variablesGrid );
-
-    // add the log files tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "logfiles" ) );
-    ContentPane logFilePane = new ContentPane();
-    logFilePane.setStyleName( "tab.content" );
-    logFilePane.setLayoutData( tabLayoutData );
-    add( logFilePane );
-
-    logFilesGrid = new Grid( 4 );
-    logFilesGrid.setStyleName( "border.grid" );
-    logFilesGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    logFilesGrid.setColumnWidth( 1, new Extent( 33, Extent.PERCENT ) );
-    logFilesGrid.setColumnWidth( 2, new Extent( 33, Extent.PERCENT ) );
-    logFilesGrid.setColumnWidth( 3, new Extent( 33, Extent.PERCENT ) );
-    logFilePane.add( logFilesGrid );
-
-    // update field
-    update();
-  }
-
-  /**
-   * Update fields/grids
-   */
-  protected void update()
-  {
-    // set environment name
-    nameField.setText( parent.getEnvironment().getName() );
-    // set environment group
-    groupField.setText( parent.getEnvironment().getGroup() );
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-    // select field model
-    DefaultListModel agentModelList = (DefaultListModel) agentField.getModel();
-    agentModelList.removeAll();
-    agentModelList.add( "" );
-    for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentModelList.add( agent.getId() );
-    }
-    agentField.setSelectedItem( parent.getEnvironment().getAgent() );
-    // tag
-    if ( parent.getEnvironment().getTag() == null )
-    {
-      tagField.setSelectedIndex( 5 );
-    }
-    else
-    {
-      if ( parent.getEnvironment().getTag().equals( Messages.getString( "production" ) ) )
-      {
-        tagField.setSelectedIndex( 0 );
-      }
-      else if ( parent.getEnvironment().getTag().equals( Messages.getString( "preproduction" ) ) )
-      {
-        tagField.setSelectedIndex( 1 );
-      }
-      else if ( parent.getEnvironment().getTag().equals( Messages.getString( "staging" ) ) )
-      {
-        tagField.setSelectedIndex( 2 );
-      }
-      else if ( parent.getEnvironment().getTag().equals( Messages.getString( "testing" ) ) )
-      {
-        tagField.setSelectedIndex( 3 );
-      }
-      else if ( parent.getEnvironment().getTag().equals( Messages.getString( "unstable" ) ) )
-      {
-        tagField.setSelectedIndex( 4 );
-      }
-      else
-      {
-        tagField.setSelectedIndex( 5 );
-      }
-    }
-    // auto update flag
-    if ( parent.getEnvironment().isAutoupdate() )
-    {
-      autoUpdateField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      autoUpdateField.setSelectedIndex( 1 );
-    }
-    // update the environment notes area
-    notesArea.setText( parent.getEnvironment().getNotes() );
-    // update the environment weblinks area
-    weblinksArea.setText( parent.getEnvironment().getWeblinks() );
-
-    // update the free fields grid
-    // remove all grid children
-    freeFieldsGrid.removeAll();
-    // add grid headers
-    Label freeFieldActionsHeader = new Label( " " );
-    freeFieldActionsHeader.setStyleName( "grid.header" );
-    freeFieldsGrid.add( freeFieldActionsHeader );
-    Label freeFieldNameHeader = new Label( Messages.getString( "name" ) );
-    freeFieldNameHeader.setStyleName( "grid.header" );
-    freeFieldsGrid.add( freeFieldNameHeader );
-    Label freeFieldsContentHeader = new Label( Messages.getString( "content" ) );
-    freeFieldsContentHeader.setStyleName( "grid.header" );
-    freeFieldsGrid.add( freeFieldsContentHeader );
-    // add free fields
-    for ( Iterator freeFieldIterator = parent.getEnvironment().getFreeFields().iterator();
-          freeFieldIterator.hasNext(); )
-    {
-      FreeField current = (FreeField) freeFieldIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      freeFieldsGrid.add( row );
-      // free field copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( current.getName() );
-      copyButton.addActionListener( copyFreeField );
-      row.add( copyButton );
-      if ( getEnvironmentWindow().adminPermission )
-      {
-        // up
-        Button upButton = new Button( Styles.ARROW_UP );
-        upButton.setToolTipText( Messages.getString( "up" ) );
-        upButton.setActionCommand( current.getName() );
-        upButton.addActionListener( upFreeField );
-        row.add( upButton );
-        // down
-        Button downButton = new Button( Styles.ARROW_DOWN );
-        downButton.setToolTipText( Messages.getString( "down" ) );
-        downButton.setActionCommand( current.getName() );
-        downButton.addActionListener( downFreeField );
-        row.add( downButton );
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( current.getName() );
-        editButton.addActionListener( editFreeField );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( current.getName() );
-        deleteButton.addActionListener( deleteFreeField );
-        row.add( deleteButton );
-      }
-      // free field name
-      TextField freeFieldName = new TextField();
-      freeFieldName.setStyleName( "default" );
-      freeFieldName.setWidth( new Extent( 100, Extent.PERCENT ) );
-      freeFieldName.setText( current.getName() );
-      freeFieldName.setId( "ffname_" + parent.getEnvironment().getName() + "_" + current.getName() );
-      freeFieldsGrid.add( freeFieldName );
-      // free field content
-      TextField freeFieldContent = new TextField();
-      freeFieldContent.setStyleName( "default" );
-      freeFieldContent.setWidth( new Extent( 100, Extent.PERCENT ) );
-      freeFieldContent.setText( current.getContent() );
-      freeFieldContent.setId( "ffcontent_" + parent.getEnvironment().getName() + "_" + current.getName() );
-      freeFieldsGrid.add( freeFieldContent );
-    }
-    // add blank free field to add
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      freeFieldsGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteFreeField );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.addActionListener( createFreeField );
-      row.add( addButton );
-      // new name field
-      newFreeFieldNameField = new TextField();
-      newFreeFieldNameField.setStyleName( "default" );
-      newFreeFieldNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      freeFieldsGrid.add( newFreeFieldNameField );
-      // new content field
-      newFreeFieldContentField = new TextField();
-      newFreeFieldContentField.setStyleName( "default" );
-      newFreeFieldContentField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      freeFieldsGrid.add( newFreeFieldContentField );
-    }
-
-    // update the variables grid
-    // remove all grid children
-    variablesGrid.removeAll();
-    // add grid headers
-    Label variableActionsHeader = new Label( " " );
-    variableActionsHeader.setStyleName( "grid.header" );
-    variablesGrid.add( variableActionsHeader );
-    Label variableNameHeader = new Label( Messages.getString( "name" ) );
-    variableNameHeader.setStyleName( "grid.header" );
-    variablesGrid.add( variableNameHeader );
-    Label variableValueHeader = new Label( Messages.getString( "value" ) );
-    variableValueHeader.setStyleName( "grid.header" );
-    variablesGrid.add( variableValueHeader );
-    // add variables fields
-    for ( Iterator variableIterator = parent.getEnvironment().getVariables().iterator(); variableIterator.hasNext(); )
-    {
-      Variable current = (Variable) variableIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      variablesGrid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( current.getName() );
-      copyButton.addActionListener( copyVariable );
-      row.add( copyButton );
-      if ( getEnvironmentWindow().adminPermission )
-      {
-        // up
-        Button upButton = new Button( Styles.ARROW_UP );
-        upButton.setToolTipText( Messages.getString( "up" ) );
-        upButton.setActionCommand( current.getName() );
-        upButton.addActionListener( upVariable );
-        row.add( upButton );
-        // down
-        Button downButton = new Button( Styles.ARROW_DOWN );
-        downButton.setToolTipText( Messages.getString( "down" ) );
-        downButton.setActionCommand( current.getName() );
-        downButton.addActionListener( downVariable );
-        row.add( downButton );
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( current.getName() );
-        editButton.addActionListener( editVariable );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( current.getName() );
-        deleteButton.addActionListener( deleteVariable );
-        row.add( deleteButton );
-      }
-      // variable name
-      TextField variableName = new TextField();
-      variableName.setStyleName( "default" );
-      variableName.setWidth( new Extent( 100, Extent.PERCENT ) );
-      variableName.setText( current.getName() );
-      variableName.setId( "variablename_" + parent.getEnvironment().getName() + "_" + current.getName() );
-      variablesGrid.add( variableName );
-      // variable value
-      TextField variableContent = new TextField();
-      variableContent.setStyleName( "default" );
-      variableContent.setWidth( new Extent( 100, Extent.PERCENT ) );
-      variableContent.setText( current.getValue() );
-      variableContent.setId( "variablevalue_" + parent.getEnvironment().getName() + "_" + current.getName() );
-      variablesGrid.add( variableContent );
-    }
-    // add blank variable to add
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      variablesGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteVariable );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( createVariable );
-      row.add( addButton );
-      // new name
-      newVariableName = new TextField();
-      newVariableName.setStyleName( "default" );
-      newVariableName.setWidth( new Extent( 100, Extent.PERCENT ) );
-      variablesGrid.add( newVariableName );
-      // new value 
-      newVariableValue = new TextField();
-      newVariableValue.setStyleName( "default" );
-      newVariableValue.setWidth( new Extent( 100, Extent.PERCENT ) );
-      variablesGrid.add( newVariableValue );
-    }
-
-    // update the log files grid
-    logFilesGrid.removeAll();
-    // add headers
-    Label logFilesActionsHeader = new Label( " " );
-    logFilesActionsHeader.setStyleName( "grid.header" );
-    logFilesGrid.add( logFilesActionsHeader );
-    Label logFilesNameHeader = new Label( Messages.getString( "name" ) );
-    logFilesNameHeader.setStyleName( "grid.header" );
-    logFilesGrid.add( logFilesNameHeader );
-    Label logFilesPathHeader = new Label( Messages.getString( "path" ) );
-    logFilesPathHeader.setStyleName( "grid.header" );
-    logFilesGrid.add( logFilesPathHeader );
-    Label logFilesAgentHeader = new Label( Messages.getString( "agent" ) );
-    logFilesAgentHeader.setStyleName( "grid.header" );
-    logFilesGrid.add( logFilesAgentHeader );
-    // log files fields
-    for ( Iterator logFileIterator = parent.getEnvironment().getLogFiles().iterator(); logFileIterator.hasNext(); )
-    {
-      LogFile logFile = (LogFile) logFileIterator.next();
-      // action row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      logFilesGrid.add( row );
-      // copy button
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( logFile.getName() );
-      copyButton.addActionListener( copyLogFile );
-      row.add( copyButton );
-      // view button
-      Button viewButton = new Button( Styles.INFORMATION );
-      viewButton.setToolTipText( Messages.getString( "view" ) );
-      viewButton.setActionCommand( logFile.getName() );
-      viewButton.addActionListener( viewLogFile );
-      row.add( viewButton );
-      if ( getEnvironmentWindow().adminPermission )
-      {
-        // up button
-        Button upButton = new Button( Styles.ARROW_UP );
-        upButton.setToolTipText( Messages.getString( "up" ) );
-        upButton.setActionCommand( logFile.getName() );
-        upButton.addActionListener( upLogFile );
-        row.add( upButton );
-        // down button
-        Button downButton = new Button( Styles.ARROW_DOWN );
-        downButton.setToolTipText( Messages.getString( "down" ) );
-        downButton.setActionCommand( logFile.getName() );
-        downButton.addActionListener( downLogFile );
-        row.add( downButton );
-        // edit button
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( logFile.getName() );
-        editButton.addActionListener( editLogFile );
-        row.add( editButton );
-        // delete button
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( logFile.getName() );
-        deleteButton.addActionListener( deleteLogFile );
-        row.add( deleteButton );
-      }
-      // add the log file name field
-      TextField logFileNameField = new TextField();
-      logFileNameField.setStyleName( "default" );
-      logFileNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      logFileNameField.setId( "logfilename_" + parent.getEnvironmentName() + "_" + logFile.getName() );
-      logFileNameField.setText( logFile.getName() );
-      logFilesGrid.add( logFileNameField );
-      // add the log file path field
-      TextField logFilePathField = new TextField();
-      logFilePathField.setStyleName( "default" );
-      logFilePathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      logFilePathField.setId( "logfilepath_" + parent.getEnvironmentName() + "_" + logFile.getName() );
-      logFilePathField.setText( logFile.getPath() );
-      logFilesGrid.add( logFilePathField );
-      // add the log file agent field
-      SelectField logFileAgentField = new SelectField();
-      logFileAgentField.setStyleName( "default" );
-      logFileAgentField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      logFileAgentField.setId( "logfileagent_" + parent.getEnvironmentName() + "_" + logFile.getName() );
-      logFilesGrid.add( logFileAgentField );
-      // populate the agent field
-      DefaultListModel logFileAgentListModel = (DefaultListModel) logFileAgentField.getModel();
-      logFileAgentListModel.removeAll();
-      // add the blank agent
-      logFileAgentListModel.add( "" );
-      // add the agents
-      for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-      {
-        Agent agent = (Agent) agentIterator.next();
-        logFileAgentListModel.add( agent.getId() );
-      }
-      // select the correct item
-      logFileAgentField.setSelectedItem( logFile.getAgent() );
-    }
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // action row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      logFilesGrid.add( row );
-      // paste button
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteLogFile );
-      row.add( pasteButton );
-      // add button
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( addLogFile );
-      row.add( addButton );
-      // add the new log file name field
-      newLogFileName = new TextField();
-      newLogFileName.setStyleName( "default" );
-      newLogFileName.setWidth( new Extent( 100, Extent.PERCENT ) );
-      logFilesGrid.add( newLogFileName );
-      // add the new log file path field
-      newLogFilePath = new TextField();
-      newLogFilePath.setStyleName( "default" );
-      newLogFilePath.setWidth( new Extent( 100, Extent.PERCENT ) );
-      logFilesGrid.add( newLogFilePath );
-      // add the new agents fields
-      newLogFileAgent = new SelectField();
-      newLogFileAgent.setStyleName( "default" );
-      newLogFileAgent.setWidth( new Extent( 100, Extent.PERCENT ) );
-      logFilesGrid.add( newLogFileAgent );
-      DefaultListModel newLogFileAgentModel = (DefaultListModel) newLogFileAgent.getModel();
-      newLogFileAgentModel.removeAll();
-      newLogFileAgentModel.add( " " );
-      for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-      {
-        Agent agent = (Agent) agentIterator.next();
-        newLogFileAgentModel.add( agent.getId() );
-      }
-      newLogFileAgent.setSelectedIndex( 0 );
-    }
-  }
-
-  public TextField getNameField()
-  {
-    return this.nameField;
-  }
-
-  public TextField getGroupField()
-  {
-    return this.groupField;
-  }
-
-  public SelectField getTagField()
-  {
-    return this.tagField;
-  }
-
-  public SelectField getAgentField()
-  {
-    return this.agentField;
-  }
-
-  public SelectField getAutoUpdateField()
-  {
-    return this.autoUpdateField;
-  }
-
-  public TextArea getNotesArea()
-  {
-    return this.notesArea;
-  }
-
-  public TextArea getWeblinksArea()
-  {
-    return this.weblinksArea;
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/HomePageWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/HomePageWindow.java
deleted file mode 100644
index 5fd8808..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/HomePageWindow.java
+++ /dev/null
@@ -1,256 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.model.Archive;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.model.JEEApplicationServer;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.InputStreamReader;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-import java.util.Iterator;
-
-/**
- * Environment home page window.
- */
-public class HomePageWindow
-  extends WindowPane
-{
-
-  private static final String TEMPLATE_LOCATION =
-    "/org/apache/kalumet/console/app/resources/templates/environment-homepage.html";
-
-  private EnvironmentWindow parent;
-
-  private TextArea area;
-
-  private TextField locationField;
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      HomePageWindow.this.update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      HomePageWindow.this.userClose();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // get the home page location
-      String homePageLocation = locationField.getText();
-      if ( homePageLocation == null || homePageLocation.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "homepage.warn.mandatory" ) );
-        return;
-      }
-      FileManipulator fileManipulator = null;
-      try
-      {
-        // init a file manipulator
-        fileManipulator = new FileManipulator();
-        // write the homepage area in the output stream
-        PrintWriter writer = new PrintWriter( fileManipulator.write( homePageLocation ) );
-        writer.print( area.getText() );
-        writer.flush();
-        writer.close();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "homepage.warn.error" ) + ": " + e.getMessage() );
-        return;
-      }
-      finally
-      {
-        if ( fileManipulator != null )
-        {
-          fileManipulator.close();
-        }
-      }
-      KalumetConsoleApplication.getApplication().getLogPane().addConfirm( Messages.getString( "homepage.generated" ) );
-    }
-  };
-
-  /**
-   * Create environment home page window.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public HomePageWindow( EnvironmentWindow parent )
-  {
-    super();
-
-    // update parent
-    this.parent = parent;
-
-    setTitle( parent.getEnvironmentName() + " " + Messages.getString( "homepage" ) );
-    setId( "homepagewindow_" + parent.getEnvironmentName() );
-    setStyleName( "default" );
-    setWidth( new Extent( 800, Extent.PX ) );
-    setHeight( new Extent( 600, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control button
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add split pane content
-    SplitPane content = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 20 ) );
-    splitPane.add( content );
-
-    // add the row location
-    Row locationRow = new Row();
-    locationRow.setInsets( new Insets( 2 ) );
-    locationRow.setCellSpacing( new Extent( 2 ) );
-    content.add( locationRow );
-    // add the copy location label
-    Label copyLocationLabel = new Label( Messages.getString( "location" ) );
-    copyLocationLabel.setStyleName( "default" );
-    locationRow.add( copyLocationLabel );
-    // add the environment homepage location field
-    locationField = new TextField();
-    locationField.setStyleName( "default" );
-    locationField.addActionListener( copy );
-    locationRow.add( locationField );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.ACCEPT );
-    copyButton.addActionListener( copy );
-    locationRow.add( copyButton );
-
-    // add the text area
-    area = new TextArea();
-    area.setStyleName( "default" );
-    area.setWidth( new Extent( 98, Extent.PERCENT ) );
-    area.setHeight( new Extent( 98, Extent.PERCENT ) );
-    content.add( area );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  protected void update()
-  {
-    // generate replace strings
-    String applications = null;
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      for ( Iterator applicationIterator = applicationServer.getJEEApplications().iterator();
-            applicationIterator.hasNext(); )
-      {
-        JEEApplication application = (JEEApplication) applicationIterator.next();
-        for ( Iterator archiveIterator = application.getArchives().iterator(); archiveIterator.hasNext(); )
-        {
-          Archive archive = (Archive) archiveIterator.next();
-          applications =
-            applications + "&nbsp; &nbsp; <a href=\"" + archive.getContext() + "\">" + archive.getName() + "</a>";
-        }
-      }
-    }
-    // change the values in the template
-    BufferedReader templateBufferedReader = new BufferedReader(
-      new InputStreamReader( HomePageWindow.class.getResourceAsStream( HomePageWindow.TEMPLATE_LOCATION ) ) );
-    StringWriter writer = new StringWriter();
-    BufferedWriter buffer = new BufferedWriter( writer );
-    try
-    {
-      String templateLine = templateBufferedReader.readLine();
-      while ( templateLine != null )
-      {
-        buffer.write( templateLine );
-        buffer.newLine();
-        templateLine = templateBufferedReader.readLine();
-      }
-      buffer.flush();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-        Messages.getString( "homepage.error" ) + ": " + e.getMessage() );
-      return;
-    }
-    String template = writer.toString();
-    template = template.replaceAll( "ENVIRONMENT_NAME", parent.getEnvironmentName() );
-    if ( applications != null )
-    {
-      template = template.replaceAll( "ENVIRONMENT_APPLICATIONS", applications );
-    }
-    if ( parent.getEnvironment().getWeblinks() != null )
-    {
-      template = template.replaceAll( "ENVIRONMENT_WEBLINKS", parent.getEnvironment().getWeblinks() );
-    }
-    if ( parent.getEnvironment().getNotes() != null )
-    {
-      template = template.replaceAll( "ENVIRONMENT_NOTES", parent.getEnvironment().getNotes() );
-    }
-    // update the environment homepage area
-    area.setText( template );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/InfoWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/InfoWindow.java
deleted file mode 100644
index 66cc5cd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/InfoWindow.java
+++ /dev/null
@@ -1,78 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-
-/**
- * Info screen <code>WindowPane</code>
- */
-public class InfoWindow
-  extends WindowPane
-{
-
-  /**
-   * Create a new <code>WindowPane</code> with the information message
-   *
-   * @param message the info message to display
-   */
-  public InfoWindow( String message )
-  {
-    super();
-
-    setTitle( Messages.getString( "InfoWindow.Title" ) );
-    setStyleName( "InfoWindow" );
-    setModal( true );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // define a row with the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "ControlPane" );
-    splitPane.add( controlRow );
-    // define the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "ControlPane.Button" );
-    closeButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent e )
-      {
-        InfoWindow.this.userClose();
-      }
-    } );
-    controlRow.add( closeButton );
-
-    // define the info message label
-    Label infoMessageLabel = new Label( message );
-    infoMessageLabel.setStyleName( "InfoWindow.MessageLabel" );
-    splitPane.add( infoMessageLabel );
-
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsQueuesPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsQueuesPane.java
deleted file mode 100644
index c85ef9b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsQueuesPane.java
+++ /dev/null
@@ -1,312 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.model.JMSQueue;
-
-import java.util.Iterator;
-
-/**
- * JMS server queues pane.
- */
-public class JmsQueuesPane
-  extends ContentPane
-{
-
-  private JmsServerWindow parent;
-
-  private Grid grid;
-
-  private TextField newQueueNameField;
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the jms queue object
-      final JMSQueue jmsQueue = parent.getJMSServer().getJMSQueue( event.getActionCommand() );
-      if ( jmsQueue == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsqueue.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the jms queue
-            parent.getJMSServer().getJMSQueues().remove( jmsQueue );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete JMS queue " + jmsQueue.getName() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the whole environnment window
-            parent.getEnvironmentWindow().update();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the field
-      TextField queueNameField = (TextField) JmsQueuesPane.this.getComponent(
-        "queuename_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + parent.getServerName() + "_"
-          + parent.getJMSServerName() + "_" + event.getActionCommand() );
-      // get the field value
-      String queueNameFieldValue = queueNameField.getText();
-      // check field
-      if ( queueNameFieldValue == null || queueNameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsqueue.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JMS queue object
-      JMSQueue jmsQueue = parent.getJMSServer().getJMSQueue( event.getActionCommand() );
-      if ( jmsQueue == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsqueue.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the JMS queue name, check if the JMS queue name
-      // doesn't already exist
-      if ( !queueNameFieldValue.equals( jmsQueue.getName() ) )
-      {
-        if ( parent.getJMSServer().getJMSQueue( queueNameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsqueue.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Change JMS queue " + jmsQueue.getName() );
-      // update the jms queue object
-      jmsQueue.setName( queueNameFieldValue );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the whole parent window
-      parent.getEnvironmentWindow().update();
-      // update the pane
-      update();
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the field value
-      String newQueueNameFieldValue = newQueueNameField.getText();
-      // check the field
-      if ( newQueueNameFieldValue == null || newQueueNameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsqueue.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the jms queue object
-      JMSQueue jmsQueue = new JMSQueue();
-      jmsQueue.setName( newQueueNameFieldValue );
-      // add the jms queue in the jms server
-      try
-      {
-        parent.getJMSServer().addJMSQueue( jmsQueue );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsqueue.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Add JMS queue " + jmsQueue.getName() );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the whole window
-      parent.getEnvironmentWindow().update();
-      // update the pane
-      update();
-    }
-  };
-
-  /**
-   * Create a new <code>JMSQueuesPane</code>.
-   *
-   * @param parent the parent <code>JmsServerWindow</code>.
-   */
-  public JmsQueuesPane( JmsServerWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add queues grid
-    grid = new Grid( 2 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // remove queues grid children
-    grid.removeAll();
-    // add queues header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    // add the queue
-    for ( Iterator queueIterator = parent.getJMSServer().getJMSQueues().iterator(); queueIterator.hasNext(); )
-    {
-      JMSQueue queue = (JMSQueue) queueIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( queue.getName() );
-        editButton.addActionListener( edit );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( queue.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      TextField nameField = new TextField();
-      nameField.setStyleName( "default" );
-      nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      nameField.setId(
-        "queuename_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + parent.getServerName() + "_"
-          + parent.getJMSServerName() + "_" + queue.getName() );
-      nameField.setText( queue.getName() );
-      grid.add( nameField );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      // add
-      Button createButton = new Button( Styles.ADD );
-      createButton.setToolTipText( Messages.getString( "add" ) );
-      createButton.addActionListener( create );
-      row.add( createButton );
-      // name
-      newQueueNameField = new TextField();
-      newQueueNameField.setStyleName( "default" );
-      newQueueNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newQueueNameField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServerGeneralPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServerGeneralPane.java
deleted file mode 100644
index b2d346a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServerGeneralPane.java
+++ /dev/null
@@ -1,138 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-
-/**
- * JMS server general tab <code>ContentPane</code>.
- */
-public class JmsServerGeneralPane
-  extends ContentPane
-{
-
-  private JmsServerWindow parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  /**
-   * Create a new <code>JMSServerGeneralTabPane</code>.
-   *
-   * @param parent the parent <code>JMSServerWindow</code>.
-   */
-  public JmsServerGeneralPane( JmsServerWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // grid layout
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    add( layout );
-
-    // add name field
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    layout.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( nameField );
-
-    // add active field
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    layout.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setSelectedIndex( 0 );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( activeField );
-
-    // add blocker field
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    layout.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setSelectedIndex( 0 );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( blockerField );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // update the name field
-    nameField.setText( parent.getJMSServer().getName() );
-    // update the active field
-    if ( parent.getJMSServer().isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the blocker field
-    if ( parent.getJMSServer().isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-  }
-
-  public TextField getNameField()
-  {
-    return this.nameField;
-  }
-
-  public SelectField getActiveField()
-  {
-    return this.activeField;
-  }
-
-  public SelectField getBlockerField()
-  {
-    return this.blockerField;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServerWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServerWindow.java
deleted file mode 100644
index 8ed9a50..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServerWindow.java
+++ /dev/null
@@ -1,639 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JMSServer;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JMSServerClient;
-
-/**
- * JMS server window.
- */
-public class JmsServerWindow
-  extends WindowPane
-{
-
-  private String jmsServerName;
-
-  private String serverName;
-
-  private JMSServer jmsServer = null;
-
-  private JmsServersPane parent;
-
-  private JmsServerGeneralPane generalPane;
-
-  private JmsQueuesPane jmsQueuesPane;
-
-  private JmsTopicsPane jmsTopicsPane;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JMSServerClient client = new JMSServerClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate =
-          client.check( parent.getEnvironmentWindow().getEnvironmentName(), serverName, jmsServerName );
-        if ( uptodate )
-        {
-          message = "JMS server " + jmsServerName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JMS server " + jmsServerName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JMS server " + jmsServerName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JMSServerClient client = new JMSServerClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentWindow().getEnvironmentName(), serverName, jmsServerName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JMS server " + jmsServerName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      JmsServerWindow.this.userClose();
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for original JMS server object
-      jmsServer = parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        serverName ).getJMSServer( jmsServerName );
-      if ( jmsServer == null )
-      {
-        jmsServer = new JMSServer();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the jms server
-            parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              serverName ).getJMSServers().remove( jmsServer );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete JMS server " + jmsServer.getName() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            JmsServerWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String nameFieldValue = generalPane.getNameField().getText();
-      int activeFieldIndex = generalPane.getActiveField().getSelectedIndex();
-      int blockerFieldIndex = generalPane.getBlockerField().getSelectedIndex();
-      // check name field
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsserver.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the JMS server name, check if the JMS server name
-      // doesn't already exist
-      if ( jmsServerName == null || ( jmsServerName != null && !jmsServerName.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          serverName ).getJMSServer( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsserver.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( jmsServerName != null )
-      {
-        parent.getEnvironmentWindow().getChangeEvents().add( "Change JMS server " + jmsServer.getName() );
-      }
-      // update the jms server object
-      jmsServer.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        jmsServer.setActive( true );
-      }
-      else
-      {
-        jmsServer.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        jmsServer.setBlocker( true );
-      }
-      else
-      {
-        jmsServer.setBlocker( false );
-      }
-      // add the jms server object if needed
-      if ( jmsServerName == null )
-      {
-        try
-        {
-          parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-            serverName ).addJMSServer( jmsServer );
-          parent.getEnvironmentWindow().getChangeEvents().add(
-            "Add JMS server (name [ " + nameFieldValue + " ]) in the JEE application server " + serverName );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsserver.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "jmsserver" ) + " " + jmsServer.getName() );
-      setId( "jmsserverwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + serverName + "_"
-               + jmsServer.getName() );
-      jmsServerName = jmsServer.getName();
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the parent tab
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( jmsServer.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the copy is correct
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof JMSServer ) )
-      {
-        return;
-      }
-      jmsServer = (JMSServer) copy;
-      jmsServerName = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a message in the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JMS server " + jmsServerName + " status check in progress...",
-        parent.getEnvironmentWindow().getEnvironmentName() );
-      parent.getEnvironmentWindow().getChangeEvents().add( "JMS server " + jmsServerName + " status check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentWindow().getEnvironmentName() );
-                                                                    }
-                                                                    parent.getEnvironmentWindow().getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message in the log pane and journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JMS server " + jmsServerName + " update in progress...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add( "JMS server " + jmsServerName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JMS server " + jmsServerName + " updated.", parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( "JMS server " + jmsServerName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>JmsServerWindow</code>.
-   *
-   * @param parent                the <code>JmsServersPane</code>.
-   * @param applicationServerName the original JEE application server name.
-   * @param jmsServerName         the original JMS server name.
-   */
-  public JmsServerWindow( JmsServersPane parent, String applicationServerName, String jmsServerName )
-  {
-    super();
-
-    // update the parent tab pane
-    this.parent = parent;
-
-    // update the application server name and jms server name
-    this.serverName = applicationServerName;
-    this.jmsServerName = jmsServerName;
-
-    // update the jms server object from the parent environment
-    this.jmsServer =
-      parent.getEnvironmentWindow().getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        serverName ).getJMSServer( jmsServerName );
-    if ( this.jmsServer == null )
-    {
-      this.jmsServer = new JMSServer();
-    }
-
-    if ( jmsServerName == null )
-    {
-      setTitle( Messages.getString( "jmsserver" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "jmsserver" ) + " " + jmsServerName );
-    }
-    setId( "jmsserverwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + serverName + "_"
-             + jmsServerName );
-    setStyleName( "default" );
-    setWidth( new Extent( 600, Extent.PX ) );
-    setHeight( new Extent( 400, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control button
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    // add the status button
-    Button statusButton = new Button( Messages.getString( "status" ), Styles.INFORMATION );
-    statusButton.setStyleName( "status" );
-    statusButton.addActionListener( status );
-    controlRow.add( statusButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesUpdatePermission )
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the jms server general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    generalPane = new JmsServerGeneralPane( this );
-    generalPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalPane );
-
-    // add the jms server queues tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "jmsqueues" ) );
-    jmsQueuesPane = new JmsQueuesPane( this );
-    jmsQueuesPane.setLayoutData( tabLayoutData );
-    tabPane.add( jmsQueuesPane );
-
-    // add the jms server topics tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "jmstopics" ) );
-    jmsTopicsPane = new JmsTopicsPane( this );
-    jmsTopicsPane.setLayoutData( tabLayoutData );
-    tabPane.add( jmsTopicsPane );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the window.
-   */
-  public void update()
-  {
-    generalPane.update();
-    jmsQueuesPane.update();
-    jmsTopicsPane.update();
-  }
-
-  public JMSServer getJMSServer()
-  {
-    return this.jmsServer;
-  }
-
-  public String getJMSServerName()
-  {
-    return this.jmsServerName;
-  }
-
-  public String getServerName()
-  {
-    return this.serverName;
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServersPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServersPane.java
deleted file mode 100644
index dccb9f1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsServersPane.java
+++ /dev/null
@@ -1,741 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.app.list.ListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.ws.client.JMSServerClient;
-
-import java.util.Iterator;
-
-/**
- * Environment JMS servers pane.
- */
-public class JmsServersPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField scopeField;
-
-  private Grid grid;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String jmsServerName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JMSServerClient client = new JMSServerClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate = client.check( parent.getEnvironmentName(), serverName, jmsServerName );
-        if ( uptodate )
-        {
-          message = "JMS server " + jmsServerName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JMS server " + jmsServerName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JMS server " + jmsServerName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String jmsServerName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JMSServerClient client = new JMSServerClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), serverName, jmsServerName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JMS server " + jmsServerName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JMS server object
-      JMSServer jmsServer = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJMSServer( event.getActionCommand() );
-      if ( jmsServer == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "jmsserver.warn.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the jms server state and add a change event
-      if ( jmsServer.isActive() )
-      {
-        jmsServer.setActive( false );
-        parent.getChangeEvents().add( "Disable JMS server " + jmsServer.getName() );
-      }
-      else
-      {
-        jmsServer.setActive( true );
-        parent.getChangeEvents().add( "Enable JMS server " + jmsServer.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JMS server object
-      JMSServer jmsServer = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJMSServer( event.getActionCommand() );
-      if ( jmsServer == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsserver.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the jms server blocker state and add a change event
-      if ( jmsServer.isBlocker() )
-      {
-        jmsServer.setBlocker( false );
-        parent.getChangeEvents().add( "Set not blocker for JMS server " + jmsServer.getName() );
-      }
-      else
-      {
-        jmsServer.setBlocker( true );
-        parent.getChangeEvents().add( "Set blocker for JMS server " + jmsServer.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the jms server object
-      final JMSServer jmsServer = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJMSServer( event.getActionCommand() );
-      if ( jmsServer == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmsserver.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the jms server object
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              (String) scopeField.getSelectedItem() ).getJMSServers().remove( jmsServer );
-            // add a change event
-            parent.getChangeEvents().add( "Delete JMS server " + jmsServer.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "jmsserverwindow_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_"
-          + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new JmsServerWindow( JmsServersPane.this, (String) scopeField.getSelectedItem(), event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ListModel listModel = scopeField.getModel();
-      if ( listModel.size() == 0 )
-      {
-        return;
-      }
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new JmsServerWindow( JmsServersPane.this, (String) scopeField.getSelectedItem(), null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the jms server object
-      JMSServer jmsServer = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJMSServer( event.getActionCommand() );
-      if ( jmsServer == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( jmsServer.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JEE server and JMS server name
-      final String serverName = (String) scopeField.getSelectedItem();
-      final String jmsServerName = event.getActionCommand();
-      // add a message in the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JMS server " + jmsServerName + " status check in progress...", parent.getEnvironmentName() );
-      parent.getChangeEvents().add( "JMS server " + jmsServerName + " status check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.serverName = serverName;
-      statusThread.jmsServerName = jmsServerName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    parent.getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JEE server and JMS server name
-      final String serverName = (String) scopeField.getSelectedItem();
-      final String jmsServerName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message in the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JMS server " + jmsServerName + " update in progress...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "JMS server " + jmsServerName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.serverName = serverName;
-            updateThread.jmsServerName = jmsServerName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JMS server " + jmsServerName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JMS server " + jmsServerName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>JmsServersPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public JmsServersPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add the scope select field
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( layoutGrid );
-    Label scopeLabel = new Label( Messages.getString( "scope" ) );
-    scopeLabel.setStyleName( "default" );
-    layoutGrid.add( scopeLabel );
-    scopeField = new SelectField();
-    scopeField.addActionListener( scopeSelect );
-    scopeField.setStyleName( "default" );
-    layoutGrid.add( scopeField );
-    // populate the scope field
-    DefaultListModel scopeModel = (DefaultListModel) scopeField.getModel();
-    scopeModel.removeAll();
-    for ( Iterator serversIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          serversIterator.hasNext(); )
-    {
-      JEEApplicationServer server = (JEEApplicationServer) serversIterator.next();
-      scopeModel.add( server.getName() );
-    }
-    if ( scopeModel.size() > 0 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-
-    // add the create button
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "jmsserver.add" ), Styles.ADD );
-      createButton.setStyleName( "default" );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add JMS servers grid
-    grid = new Grid( 4 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 33, Extent.PERCENT ) );
-    grid.setColumnWidth( 2, new Extent( 33, Extent.PERCENT ) );
-    grid.setColumnWidth( 3, new Extent( 33, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    String applicationServerName = null;
-    // update the scope field
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      applicationServerName = (String) scopeField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int scopeIndex = 0;
-    int found = -1;
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-      if ( applicationServer.getName().equals( applicationServerName ) )
-      {
-        found = scopeIndex;
-      }
-      scopeIndex++;
-    }
-
-    // remove all JMS servers grid children
-    grid.removeAll();
-
-    // check if at least one application server is present
-    if ( scopeListModel.size() < 1 )
-    {
-      return;
-    }
-    // update the scope field selected index
-    if ( found == -1 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeField.setSelectedIndex( found );
-    }
-    // update the application server name from the scope (in case of
-    // application server deletion)
-    applicationServerName = (String) scopeField.getSelectedItem();
-
-    // add JMS servers grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    Label queuesHeader = new Label( Messages.getString( "jmsqueues" ) );
-    queuesHeader.setStyleName( "grid.header" );
-    grid.add( queuesHeader );
-    Label topicsHeader = new Label( Messages.getString( "jmstopics" ) );
-    topicsHeader.setStyleName( "grid.header" );
-    grid.add( topicsHeader );
-    // add the jms servers
-    for ( Iterator jmsServerIterator = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-      applicationServerName ).getJMSServers().iterator(); jmsServerIterator.hasNext(); )
-    {
-      JMSServer jmsServer = (JMSServer) jmsServerIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( jmsServer.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( jmsServer.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        activeButton.setActionCommand( jmsServer.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( jmsServer.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        blockerButton.setActionCommand( jmsServer.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // status
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      statusButton.setActionCommand( jmsServer.getName() );
-      statusButton.addActionListener( status );
-      row.add( statusButton );
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        // update
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( jmsServer.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( jmsServer.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      Button jmsServerName = new Button( jmsServer.getName() );
-      jmsServerName.setActionCommand( jmsServer.getName() );
-      jmsServerName.addActionListener( edit );
-      jmsServerName.setStyleName( "default" );
-      grid.add( jmsServerName );
-      // queues
-      Column queuesColumn = new Column();
-      grid.add( queuesColumn );
-      for ( Iterator queueIterator = jmsServer.getJMSQueues().iterator(); queueIterator.hasNext(); )
-      {
-        JMSQueue queue = (JMSQueue) queueIterator.next();
-        Label queueName = new Label( queue.getName() );
-        queueName.setStyleName( "default" );
-        queuesColumn.add( queueName );
-      }
-      // topics
-      Column topicsColumn = new Column();
-      grid.add( topicsColumn );
-      for ( Iterator topicIterator = jmsServer.getJMSTopics().iterator(); topicIterator.hasNext(); )
-      {
-        JMSTopic topic = (JMSTopic) topicIterator.next();
-        Label topicName = new Label( topic.getName() );
-        topicName.setStyleName( "default" );
-        topicsColumn.add( topicName );
-      }
-    }
-  }
-
-  /**
-   * Return the parent <code>EnvironmentWindow</code>.
-   *
-   * @return the parent <code>EnvironmentWindow</code>.
-   */
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsTopicsPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsTopicsPane.java
deleted file mode 100644
index 86c698f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JmsTopicsPane.java
+++ /dev/null
@@ -1,312 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.model.JMSTopic;
-
-import java.util.Iterator;
-
-/**
- * JMS topics pane.
- */
-public class JmsTopicsPane
-  extends ContentPane
-{
-
-  private JmsServerWindow parent;
-
-  private Grid grid;
-
-  private TextField newTopicNameField;
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the jms topic object
-      final JMSTopic jmsTopic = parent.getJMSServer().getJMSTopic( event.getActionCommand() );
-      if ( jmsTopic == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmstopic.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the jms topic
-            parent.getJMSServer().getJMSTopics().remove( jmsTopic );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete JMS topic " + jmsTopic.getName() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the whole environment window
-            parent.getEnvironmentWindow().update();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the field
-      TextField topicNameField = (TextField) JmsTopicsPane.this.getComponent(
-        "jmsTopicNameField_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + parent.getServerName() + "_"
-          + parent.getJMSServerName() + "_" + event.getActionCommand() );
-      // get the field value
-      String topicNameFieldValue = topicNameField.getText();
-      // check field
-      if ( topicNameFieldValue == null || topicNameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmstopic.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the JMS topic object
-      JMSTopic jmsTopic = parent.getJMSServer().getJMSTopic( event.getActionCommand() );
-      if ( jmsTopic == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmstopic.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the JMS topic name, check if the JMS topic name
-      // doesn't already exist
-      if ( !topicNameFieldValue.equals( jmsTopic.getName() ) )
-      {
-        if ( parent.getJMSServer().getJMSTopic( topicNameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmstopic.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Change JMS topic " + jmsTopic.getName() );
-      // update the jms topic object
-      jmsTopic.setName( topicNameFieldValue );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the whole parent window
-      parent.getEnvironmentWindow().update();
-      // update the pane
-      update();
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the field value
-      String newTopicNameFieldValue = newTopicNameField.getText();
-      // check the field
-      if ( newTopicNameFieldValue == null || newTopicNameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmstopic.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the jms topic object
-      JMSTopic jmsTopic = new JMSTopic();
-      jmsTopic.setName( newTopicNameFieldValue );
-      // add the jms topic in the jms server
-      try
-      {
-        parent.getJMSServer().addJMSTopic( jmsTopic );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "jmstopic.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Add JMS topic " + jmsTopic.getName() );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the whole window
-      parent.getEnvironmentWindow().update();
-      // update the pane
-      update();
-    }
-  };
-
-  /**
-   * Create a new <code>JmsTopicsPane</code>.
-   *
-   * @param parent the parent <code>JmsServerWindow</code>.
-   */
-  public JmsTopicsPane( JmsServerWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // add topics grid
-    grid = new Grid( 2 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // remove topics grid children
-    grid.removeAll();
-    // add topics header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    // add topic
-    for ( Iterator topicIterator = parent.getJMSServer().getJMSTopics().iterator(); topicIterator.hasNext(); )
-    {
-      JMSTopic topic = (JMSTopic) topicIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        // add edit button
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( topic.getName() );
-        editButton.addActionListener( edit );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( topic.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      TextField nameField = new TextField();
-      nameField.setStyleName( "default" );
-      nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      nameField.setId(
-        "topicname_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + parent.getServerName() + "_"
-          + parent.getJMSServerName() + "_" + topic.getName() );
-      nameField.setText( topic.getName() );
-      grid.add( nameField );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      grid.add( row );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( create );
-      row.add( addButton );
-      // name
-      newTopicNameField = new TextField();
-      newTopicNameField.setStyleName( "default" );
-      newTopicNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newTopicNameField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JournalPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JournalPane.java
deleted file mode 100644
index a50a97b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/JournalPane.java
+++ /dev/null
@@ -1,393 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.commons.collections.iterators.ReverseListIterator;
-import org.apache.commons.lang.StringUtils;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.log.Event;
-import org.apache.kalumet.model.log.Journal;
-
-import java.util.Iterator;
-
-/**
- * Environment journal pane.
- */
-public class JournalPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private TextField filterField;
-
-  private SelectField rowLimitField;
-
-  private TextField newEventField;
-
-  private Grid journalGrid;
-
-  private Grid currentGrid;
-
-  // row limit
-  private ActionListener rowLimit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      JournalPane.this.update();
-    }
-  };
-
-  // filter
-  private ActionListener filter = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      JournalPane.this.update();
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the event message
-      String eventMessage = newEventField.getText();
-      // check field
-      if ( eventMessage == null || eventMessage.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "journal.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add the message
-      parent.getChangeEvents().add( eventMessage );
-      // update the pane
-      update();
-    }
-  };
-
-  // purge
-  private ActionListener purge = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create a confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // create a new empty journal
-            Journal journal = new Journal();
-            try
-            {
-              journal.writeXMLFile( ConfigurationManager.getEnvironmentJournalFile( parent.getEnvironmentName() ) );
-            }
-            catch ( Exception e )
-            {
-              KalumetConsoleApplication.getApplication().getLogPane().addError(
-                Messages.getString( "journal.write" ) + ": " + e.getMessage(),
-                getEnvironmentWindow().getEnvironmentName() );
-              return;
-            }
-            // update the pane
-            update();
-          }
-        } ) );
-
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // create a confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-
-            // get the index
-            int index = new Integer( event.getActionCommand() ).intValue();
-            if ( index == -1 )
-            {
-              return;
-            }
-            // remove
-            parent.getChangeEvents().remove( index );
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>JournalPane</code>
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public JournalPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add filter layout grid
-    Grid filterGrid = new Grid( 2 );
-    filterGrid.setStyleName( "default" );
-    content.add( filterGrid );
-
-    // add row limit field
-    Label rowLimitLabel = new Label( Messages.getString( "rows" ) );
-    rowLimitLabel.setStyleName( "default" );
-    filterGrid.add( rowLimitLabel );
-    String[] labels = new String[]{ "10", "25", "50", "100", "200", Messages.getString( "all" ) };
-    rowLimitField = new SelectField( labels );
-    rowLimitField.setStyleName( "default" );
-    rowLimitField.setSelectedIndex( 0 );
-    rowLimitField.addActionListener( rowLimit );
-    filterGrid.add( rowLimitField );
-
-    // add filter field
-    Label filterLabel = new Label( Messages.getString( "filter" ) );
-    filterLabel.setStyleName( "default" );
-    filterGrid.add( filterLabel );
-    Row filterRow = new Row();
-    filterGrid.add( filterRow );
-    filterField = new TextField();
-    filterField.setStyleName( "default" );
-    filterField.addActionListener( filter );
-    filterRow.add( filterField );
-    Button filterApplyButton = new Button( Styles.ACCEPT );
-    filterApplyButton.setStyleName( "default" );
-    filterApplyButton.addActionListener( filter );
-    filterRow.add( filterApplyButton );
-
-    // add purge button
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      Row purgeRow = new Row();
-      content.add( purgeRow );
-      Button purgeButton = new Button( Messages.getString( "purge" ), Styles.DELETE );
-      purgeButton.addActionListener( purge );
-      purgeRow.add( purgeButton );
-    }
-
-    // add journal log grid
-    journalGrid = new Grid( 4 );
-    journalGrid.setStyleName( "border.grid" );
-    content.add( journalGrid );
-
-    // add the current log grid
-    currentGrid = new Grid( 2 );
-    currentGrid.setStyleName( "border.grid" );
-    currentGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    content.add( currentGrid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    // update journal log grid
-    // remove all log grid children
-    journalGrid.removeAll();
-    // add log grid header
-    Label dateHeader = new Label( Messages.getString( "date" ) );
-    dateHeader.setStyleName( "grid.header" );
-    journalGrid.add( dateHeader );
-    Label severityHeader = new Label( Messages.getString( "severity" ) );
-    severityHeader.setStyleName( "grid.header" );
-    journalGrid.add( severityHeader );
-    Label authorHeader = new Label( Messages.getString( "author" ) );
-    authorHeader.setStyleName( "grid.header" );
-    journalGrid.add( authorHeader );
-    Label messageHeader = new Label( Messages.getString( "message" ) );
-    messageHeader.setStyleName( "grid.header" );
-    journalGrid.add( messageHeader );
-    // load the journal log
-    Journal journal = null;
-    try
-    {
-      journal = ConfigurationManager.loadEnvironmentJournal( parent.getEnvironmentName() );
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "journal.read" ) + ": " + e.getMessage() );
-      return;
-    }
-    // get the limit
-    int rowLimit = -1;
-    if ( rowLimitField.getSelectedIndex() == 0 )
-    {
-      rowLimit = 10;
-    }
-    if ( rowLimitField.getSelectedIndex() == 1 )
-    {
-      rowLimit = 25;
-    }
-    if ( rowLimitField.getSelectedIndex() == 2 )
-    {
-      rowLimit = 50;
-    }
-    if ( rowLimitField.getSelectedIndex() == 3 )
-    {
-      rowLimit = 100;
-    }
-    if ( rowLimitField.getSelectedIndex() == 4 )
-    {
-      rowLimit = 200;
-    }
-    int index = 0;
-    for ( ReverseListIterator eventIterator = new ReverseListIterator( journal.getEvents() ); eventIterator.hasNext(); )
-    {
-      Event event = (Event) eventIterator.next();
-      if ( filterField.getText() == null || filterField.getText().trim().length() < 1 || ( filterField.getText() != null
-        && ( StringUtils.containsIgnoreCase( event.getDate(), filterField.getText() ) || StringUtils.containsIgnoreCase(
-        event.getSeverity(), filterField.getText() ) || StringUtils.containsIgnoreCase( event.getAuthor(),
-                                                                                        filterField.getText() )
-        || StringUtils.containsIgnoreCase( event.getContent(), filterField.getText() ) ) ) )
-      {
-        Label eventDate = new Label( event.getDate() );
-        eventDate.setStyleName( "default" );
-        journalGrid.add( eventDate );
-        Label eventSeverity = new Label( event.getSeverity() );
-        eventSeverity.setStyleName( "default" );
-        journalGrid.add( eventSeverity );
-        Label eventAuthor = new Label( event.getAuthor() );
-        eventAuthor.setStyleName( "default" );
-        journalGrid.add( eventAuthor );
-        Label eventContent = new Label( event.getContent() );
-        eventContent.setStyleName( "default" );
-        journalGrid.add( eventContent );
-      }
-      if ( rowLimit != -1 && index >= rowLimit )
-      {
-        break;
-      }
-      index++;
-    }
-    // update the current log grid
-    // remove all current log grid children
-    currentGrid.removeAll();
-    // add current log grid header
-    Label currentEventAction = new Label( " " );
-    currentEventAction.setStyleName( "grid.header" );
-    currentGrid.add( currentEventAction );
-    Label currentEventContent = new Label( Messages.getString( "message" ) );
-    currentEventContent.setStyleName( "grid.header" );
-    currentGrid.add( currentEventContent );
-    // add new event row
-    Row row = new Row();
-    row.setInsets( new Insets( 2 ) );
-    row.setCellSpacing( new Extent( 2 ) );
-    currentGrid.add( row );
-    Button createButton = new Button( Styles.ADD );
-    createButton.addActionListener( create );
-    row.add( createButton );
-    newEventField = new TextField();
-    newEventField.setStyleName( "default" );
-    newEventField.setWidth( new Extent( 500, Extent.PX ) );
-    currentGrid.add( newEventField );
-    // add current event
-    for ( Iterator currentEventIterator = new ReverseListIterator( parent.getChangeEvents() );
-          currentEventIterator.hasNext(); )
-    {
-      String message = (String) currentEventIterator.next();
-      // row
-      Row currentRow = new Row();
-      currentRow.setCellSpacing( new Extent( 2 ) );
-      currentRow.setInsets( new Insets( 2 ) );
-      currentGrid.add( row );
-      // delete
-      Button deleteButton = new Button( Styles.DELETE );
-      deleteButton.setToolTipText( Messages.getString( "delete" ) );
-      deleteButton.setActionCommand( new Integer( parent.getChangeEvents().indexOf( message ) ).toString() );
-      deleteButton.addActionListener( delete );
-      currentRow.add( deleteButton );
-      // message field
-      TextField messageField = new TextField();
-      messageField.setStyleName( "default" );
-      messageField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      messageField.setId(
-        "journalmessage_" + parent.getEnvironmentName() + "_" + parent.getChangeEvents().indexOf( message ) );
-      messageField.setText( message );
-      currentGrid.add( messageField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/KalumetConsoleApplication.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/KalumetConsoleApplication.java
deleted file mode 100644
index 744a343..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/KalumetConsoleApplication.java
+++ /dev/null
@@ -1,233 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ApplicationInstance;
-import nextapp.echo2.app.TaskQueueHandle;
-import nextapp.echo2.app.Window;
-import nextapp.echo2.webcontainer.ContainerContext;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.console.utils.LdapUtils;
-import org.apache.kalumet.console.utils.StackTraceUtils;
-import org.apache.kalumet.model.Kalumet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * This is the Kalumet Console Echo2 application.
- */
-public class KalumetConsoleApplication
-  extends ApplicationInstance
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( KalumetConsoleApplication.class );
-
-  // the user logged in
-  private String userid;
-
-  // the environments pane of the current user
-  private EnvironmentsPane environmentsPane;
-
-  // the log pane of the current user
-  private LogPane logPane;
-
-  // the current copy object
-  private Object copyComponent = null;
-
-  // the task queue handle to manage asynchronous task
-  private TaskQueueHandle taskQueue;
-
-  // define the async update interval (60 sec.).
-  private final static int ASYNC_UPDATE_INTERVAL = 60000;
-
-  /**
-   * Convenience method to return the active Kalumet Console application as
-   * <code>KalumetConsoleApplication</code>.
-   *
-   * @return the active <code>KalumetConsoleApplication</code>.
-   */
-  public static KalumetConsoleApplication getApplication()
-  {
-    return (KalumetConsoleApplication) getActive();
-  }
-
-  public String getUserid()
-  {
-    return this.userid;
-  }
-
-  public void setEnvironmentsPane( EnvironmentsPane environmentsPane )
-  {
-    this.environmentsPane = environmentsPane;
-  }
-
-  public EnvironmentsPane getEnvironmentsPane()
-  {
-    return this.environmentsPane;
-  }
-
-  public void setLogPane( LogPane logPane )
-  {
-    this.logPane = logPane;
-  }
-
-  public LogPane getLogPane()
-  {
-    return this.logPane;
-  }
-
-  public void setCopyComponent( Object copyComponent )
-  {
-    this.copyComponent = copyComponent;
-  }
-
-  public Object getCopyComponent()
-  {
-    return this.copyComponent;
-  }
-
-  public TaskQueueHandle getTaskQueue()
-  {
-    return this.taskQueue;
-  }
-
-  /**
-   * Authenticate an user into Kalumet Console and display the main screen if success.
-   *
-   * @param userid   the user name.
-   * @param password the user password.
-   * @return true if the user is identified, false else.
-   */
-  public boolean connect( String userid, String password )
-  {
-    // check the userid and password
-    if ( userid == null || userid.trim().length() < 1 || password == null || password.trim().length() < 1 )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ErrorWindow( Messages.getString( "error.authentication" ),
-                         Messages.getString( "error.authentication.badpassword" ) ) );
-      return false;
-    }
-    // load the Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ErrorWindow( Messages.getString( "db.read" ),
-                         e.getMessage() + "\n\n" + StackTraceUtils.toString( e.getStackTrace() ) ) );
-      return false;
-    }
-
-    try
-    {
-      boolean authenticated = false;
-      if ( userid.equals( "admin" ) )
-      {
-        // if the user is the admin look for the authentication is Kalumet only
-        if ( kalumet.getSecurity().identifyUser( userid, password ) )
-        {
-          authenticated = true;
-        }
-      }
-      else
-      {
-        // it's a "normal" user, check if I need to use a LDAP or not
-        if ( kalumet.getProperty( "LdapAuthentication" ).getValue().equals( "true" ) )
-        {
-          // bind on a LDAP
-          if ( LdapUtils.bind( userid, password ) )
-          {
-            authenticated = true;
-          }
-        }
-        else
-        {
-          // use Kalumet internal authentication
-          if ( kalumet.getSecurity().identifyUser( userid, password ) )
-          {
-            authenticated = true;
-          }
-        }
-      }
-      if ( authenticated )
-      {
-        // store the userid
-        this.userid = userid;
-        // display the main screen
-        this.getDefaultWindow().setContent( new MainScreen() );
-        // init the application task handler
-        this.taskQueue = this.createTaskQueue();
-        // define the async update interval
-        ContainerContext containerContext =
-          (ContainerContext) getContextProperty( ContainerContext.CONTEXT_PROPERTY_NAME );
-        containerContext.setTaskQueueCallbackInterval( this.taskQueue, ASYNC_UPDATE_INTERVAL );
-        // the user is authenticated
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ErrorWindow( Messages.getString( "error.authentication" ),
-                         e.getMessage() + "\n\n" + StackTraceUtils.toString( e.getStackTrace() ) ) );
-      return false;
-    }
-    KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-      new ErrorWindow( Messages.getString( "error.authentication" ),
-                       Messages.getString( "error.authentication.badpassword" ) ) );
-    return false;
-  }
-
-  /**
-   * Disconnect the session and display the authentication screen.
-   */
-  public void disconnect()
-  {
-    this.userid = null;
-    this.copyComponent = null;
-    // delete the application task queue
-    this.removeTaskQueue( this.taskQueue );
-    getDefaultWindow().setContent( new LoginScreen() );
-  }
-
-  /**
-   * Initializes the Kalumet Console window.
-   *
-   * @return the login screen.
-   */
-  public Window init()
-  {
-    // load the default style sheet
-    setStyleSheet( Styles.DEFAULT_STYLE_SHEET );
-
-    // create the main window
-    Window window = new Window();
-    window.setTitle( Messages.getString( "kalumet.console" ) );
-
-    // load the login screen into the window
-    window.setContent( new LoginScreen() );
-
-    return window;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/KalumetConsoleServlet.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/KalumetConsoleServlet.java
deleted file mode 100644
index 1589da4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/KalumetConsoleServlet.java
+++ /dev/null
@@ -1,39 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ApplicationInstance;
-import nextapp.echo2.webcontainer.WebContainerServlet;
-
-/**
- * This is the echo-specific of a HttpServlet. This servlet is responsible for
- * processing all requests from the client-side Echo engine, including rendering
- * the initial HTML page, handling XML sync services, and sending graphic
- * images to the client. All such client interaction work is done behind the scene.
- */
-public class KalumetConsoleServlet
-  extends WebContainerServlet
-{
-
-  public ApplicationInstance newApplicationInstance()
-  {
-    return new KalumetConsoleApplication();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LogPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LogPane.java
deleted file mode 100644
index bdaab1d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LogPane.java
+++ /dev/null
@@ -1,176 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.SplitPane;
-
-import java.text.SimpleDateFormat;
-import java.util.Date;
-
-/**
- * Log <code>ContentPane</code>.
- */
-public class LogPane
-  extends ContentPane
-{
-
-  private Grid mainGrid;
-
-  /**
-   * Create a new <code>LogPane</code>.
-   */
-  public LogPane()
-  {
-    super();
-
-    // define a title pane
-    SplitPane titlePane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_TOP_BOTTOM, new Extent( 20 ) );
-    titlePane.setResizable( false );
-    add( titlePane );
-    Label titleLabel = new Label( Messages.getString( "log" ) );
-    titleLabel.setStyleName( "log" );
-    titlePane.add( titleLabel );
-
-    // define the main pane
-    mainGrid = new Grid( 4 );
-    mainGrid.setStyleName( "log" );
-    mainGrid.setColumnWidth( 0, new Extent( 10, Extent.PX ) );
-    mainGrid.setColumnWidth( 1, new Extent( 10, Extent.PERCENT ) );
-    mainGrid.setColumnWidth( 2, new Extent( 10, Extent.PERCENT ) );
-    mainGrid.setColumnWidth( 3, new Extent( 80, Extent.PERCENT ) );
-    titlePane.add( mainGrid );
-  }
-
-  /**
-   * Add a generic event into the log pane.
-   *
-   * @param message the event message.
-   * @param scope   the event scope.
-   */
-  private void addEvent( String message, String scope )
-  {
-    SimpleDateFormat dateFormatter = new SimpleDateFormat( "MM/dd/yyyy HH:mm" );
-    Label dateLabel = new Label( dateFormatter.format( new Date() ) );
-    dateLabel.setStyleName( "default" );
-    mainGrid.add( dateLabel, 1 );
-    Label scopeLabel = new Label( scope );
-    scopeLabel.setStyleName( "default" );
-    mainGrid.add( scopeLabel, 2 );
-    Label messageLabel = new Label( message );
-    messageLabel.setStyleName( "default" );
-    mainGrid.add( messageLabel, 3 );
-  }
-
-  /**
-   * Add a confirmation message on a given scope.
-   *
-   * @param message the confirmation message.
-   * @param scope   the confirmation scope.
-   */
-  public void addConfirm( String message, String scope )
-  {
-    Label iconLabel = new Label( Styles.ACCEPT );
-    mainGrid.add( iconLabel, 0 );
-    addEvent( message, scope );
-  }
-
-  /**
-   * Add a confirmation message.
-   *
-   * @param message
-   */
-  public void addConfirm( String message )
-  {
-    this.addConfirm( message, "" );
-  }
-
-  /**
-   * Add an info into the log pane on a given scope.
-   *
-   * @param message the info message.
-   * @param scope   the info scope.
-   */
-  public void addInfo( String message, String scope )
-  {
-    Label iconLabel = new Label( Styles.INFORMATION );
-    mainGrid.add( iconLabel, 0 );
-    addEvent( message, scope );
-  }
-
-  /**
-   * Add an info into the log pane.
-   *
-   * @param message the info message.
-   */
-  public void addInfo( String message )
-  {
-    this.addInfo( message, "" );
-  }
-
-  /**
-   * Add a warning into the log pane on a given scope.
-   *
-   * @param message the warning message.
-   * @param scope   the warning scope.
-   */
-  public void addWarning( String message, String scope )
-  {
-    Label iconLabel = new Label( Styles.ERROR );
-    mainGrid.add( iconLabel, 0 );
-    addEvent( message, scope );
-  }
-
-  /**
-   * Add a warning into the log pane.
-   *
-   * @param message the warning message.
-   */
-  public void addWarning( String message )
-  {
-    this.addWarning( message, "" );
-  }
-
-  /**
-   * Add an error into the log pane on a given scope.
-   *
-   * @param message the error message.
-   * @param scope   the error scope.
-   */
-  public void addError( String message, String scope )
-  {
-    Label iconLabel = new Label( Styles.EXCLAMATION );
-    mainGrid.add( iconLabel, 0 );
-    addEvent( message, scope );
-  }
-
-  /**
-   * Add an error into the log pane.
-   *
-   * @param message the error message.
-   */
-  public void addError( String message )
-  {
-    this.addError( message, "" );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LogViewerPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LogViewerPane.java
deleted file mode 100644
index 5f4d93d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LogViewerPane.java
+++ /dev/null
@@ -1,130 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.model.LogFile;
-
-import java.util.Iterator;
-
-/**
- * Environment log viewer pane.
- */
-public class LogViewerPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private Grid grid;
-
-  // view
-  private ActionListener view = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String logFileName = event.getActionCommand();
-      // looking for the log file
-      LogFile logFile = parent.getEnvironment().getLogFile( logFileName );
-      if ( logFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "logfile.notfound" ),
-                                                                          parent.getEnvironmentName() );
-        return;
-      }
-      // define which agent to use
-      String agentId;
-      if ( logFile.getAgent() != null && logFile.getAgent().trim().length() > 0 )
-      {
-        agentId = logFile.getAgent();
-      }
-      else
-      {
-        agentId = parent.getEnvironment().getAgent();
-      }
-      // open a view file window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ViewFileWindow( logFile.getPath(), agentId ) );
-    }
-  };
-
-  /**
-   * Create a new <code>LogViewerPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public LogViewerPane( EnvironmentWindow parent )
-  {
-    super();
-    this.setStyleName( "tab.content" );
-
-    // update the parent
-    this.parent = parent;
-
-    grid = new Grid( 3 );
-    grid.setStyleName( "border.grid" );
-    add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    grid.removeAll();
-    // add grid headers
-    // name header
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    // path header
-    Label pathHeader = new Label( Messages.getString( "path" ) );
-    pathHeader.setStyleName( "grid.header" );
-    grid.add( pathHeader );
-    // agent header
-    Label agentHeader = new Label( Messages.getString( "agent" ) );
-    agentHeader.setStyleName( "grid.header" );
-    grid.add( agentHeader );
-    // iterator in the log pane
-    for ( Iterator logFileIterator = parent.getEnvironment().getLogFiles().iterator(); logFileIterator.hasNext(); )
-    {
-      LogFile logFile = (LogFile) logFileIterator.next();
-      // name
-      Button name = new Button( logFile.getName() );
-      name.setActionCommand( logFile.getName() );
-      name.addActionListener( view );
-      grid.add( name );
-      // path
-      Label path = new Label( logFile.getPath() );
-      grid.add( path );
-      // agent
-      Label agent = new Label( logFile.getAgent() );
-      grid.add( agent );
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LoginScreen.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LoginScreen.java
deleted file mode 100644
index 85fd0d6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/LoginScreen.java
+++ /dev/null
@@ -1,177 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.PasswordField;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-
-/**
- * Login screen <code>ContentPane</code>.
- */
-public class LoginScreen
-  extends ContentPane
-{
-
-  private TextField usernameField;
-
-  private PasswordField passwordField;
-
-  // the menu listener
-  private ActionListener aboutButtonActionListener = new ActionListener()
-  {
-
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "about" ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new AboutWindow() );
-      }
-    }
-
-  };
-
-  /**
-   * Create a new <code>LoginScreen</code>.
-   */
-  public LoginScreen()
-  {
-    super();
-
-    // define a title pane
-    SplitPane titlePane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_TOP_BOTTOM, new Extent( 30, Extent.PX ) );
-    titlePane.setResizable( false );
-    add( titlePane );
-    Label titleLabel = new Label( Messages.getString( "kalumet.console" ) );
-    titleLabel.setStyleName( "title" );
-    titlePane.add( titleLabel );
-
-    // create a menu pane
-    SplitPane menuPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL, new Extent( 26 ) );
-    menuPane.setResizable( false );
-    titlePane.add( menuPane );
-
-    // create the menu row
-    Row menuRow = new Row();
-    menuRow.setStyleName( "menu" );
-    menuPane.add( menuRow );
-    Button aboutButton = new Button( Messages.getString( "about" ), Styles.INFORMATION );
-    aboutButton.setStyleName( "default" );
-    aboutButton.addActionListener( aboutButtonActionListener );
-    menuRow.add( aboutButton );
-
-    // create the split central pane
-    SplitPane mainPane = new SplitPane( SplitPane.ORIENTATION_HORIZONTAL_LEFT_RIGHT, new Extent( 200, Extent.PX ) );
-    menuPane.add( mainPane );
-    ContentPane leftPane = new ContentPane();
-    leftPane.setStyleName( "left" );
-    mainPane.add( leftPane );
-    ContentPane centralPane = new ContentPane();
-    centralPane.setStyleName( "central" );
-    mainPane.add( centralPane );
-
-    // create a new window for login fields
-    WindowPane loginWindow = new WindowPane();
-    loginWindow.setStyleName( "login" );
-    loginWindow.setTitle( Messages.getString( "login" ) );
-    loginWindow.setIcon( Styles.USER );
-    loginWindow.setDefaultCloseOperation( WindowPane.DO_NOTHING_ON_CLOSE );
-    add( loginWindow );
-
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    loginWindow.add( splitPane );
-
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-
-    Button button = new Button( Messages.getString( "continue" ), Styles.ACCEPT );
-    button.setStyleName( "control" );
-    button.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent e )
-      {
-        processLogin();
-      }
-    } );
-    controlRow.add( button );
-
-    Grid layoutGrid = new Grid();
-    layoutGrid.setStyleName( "login" );
-    splitPane.add( layoutGrid );
-
-    Label label = new Label( Messages.getString( "username" ) );
-    label.setStyleName( "default" );
-    layoutGrid.add( label );
-
-    usernameField = new TextField();
-    usernameField.setStyleName( "default" );
-    usernameField.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent e )
-      {
-        KalumetConsoleApplication.getApplication().setFocusedComponent( passwordField );
-      }
-    } );
-    layoutGrid.add( usernameField );
-
-    label = new Label( Messages.getString( "password" ) );
-    label.setStyleName( "default" );
-    layoutGrid.add( label );
-
-    passwordField = new PasswordField();
-    passwordField.setStyleName( "default" );
-    layoutGrid.add( passwordField );
-    passwordField.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent e )
-      {
-        processLogin();
-      }
-    } );
-
-    KalumetConsoleApplication.getApplication().setFocusedComponent( usernameField );
-  }
-
-  /**
-   * Process a user log-in request
-   */
-  private void processLogin()
-  {
-
-    String userid = usernameField.getText();
-    String password = passwordField.getText();
-
-    usernameField.setText( "" );
-    passwordField.setText( "" );
-    KalumetConsoleApplication.getApplication().setFocusedComponent( usernameField );
-
-    KalumetConsoleApplication.getApplication().connect( userid, password );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/MainScreen.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/MainScreen.java
deleted file mode 100644
index b9d3f5c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/MainScreen.java
+++ /dev/null
@@ -1,239 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-
-/**
- * Main screen <code>ContentPane</code>.
- */
-public class MainScreen
-  extends ContentPane
-{
-
-  // general constants
-  public static String[] LABELS = new String[]{ Messages.getString( "yes" ), Messages.getString( "no" ) };
-
-  /**
-   * Create a new <code>MainScreen</code>.
-   */
-  public MainScreen()
-  {
-    super();
-
-    // define the title pane
-    SplitPane titlePane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_TOP_BOTTOM, new Extent( 30, Extent.PX ) );
-    titlePane.setResizable( false );
-    add( titlePane );
-    Label titleLabel = new Label( Messages.getString( "kalumet.console" ) );
-    titleLabel.setStyleName( "title" );
-    titlePane.add( titleLabel );
-
-    // create the menu pane
-    SplitPane menuPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL, new Extent( 26 ) );
-    menuPane.setResizable( false );
-    titlePane.add( menuPane );
-    Row menuRow = new Row();
-    menuRow.setStyleName( "menu" );
-    menuPane.add( menuRow );
-    // new environment menu option
-    Button newEnvironmentButton = new Button( Messages.getString( "environment.add" ), Styles.APPLICATION_ADD );
-    newEnvironmentButton.setStyleName( "default" );
-    newEnvironmentButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        // display a new environment window
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new EnvironmentWindow( null ) );
-      }
-    } );
-    menuRow.add( newEnvironmentButton );
-    // refresh menu option
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "default" );
-    refreshButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        // refresh the environments pane
-        KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-          Messages.getString( "configuration" ) + " " + Messages.getString( "reloaded" ) );
-        KalumetConsoleApplication.getApplication().getEnvironmentsPane().update();
-      }
-    } );
-    menuRow.add( refreshButton );
-    // add admin menu options
-    if ( KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      // configuration menu option
-      Button configurationButton = new Button( Messages.getString( "configuration" ), Styles.COMPUTER_EDIT );
-      configurationButton.setStyleName( "default" );
-      configurationButton.addActionListener( new ActionListener()
-      {
-        public void actionPerformed( ActionEvent event )
-        {
-          // display the configuration window
-          if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "configurationwindow" )
-            == null )
-          {
-            KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-              new AdminConfigurationWindow() );
-          }
-        }
-      } );
-      menuRow.add( configurationButton );
-      // agents menu option
-      Button agentButton = new Button( Messages.getString( "agents" ), Styles.COG );
-      agentButton.setStyleName( "default" );
-      agentButton.addActionListener( new ActionListener()
-      {
-        public void actionPerformed( ActionEvent event )
-        {
-          // display the agents window
-          if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "agentswindow" ) == null )
-          {
-            KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new AdminAgentsWindow() );
-          }
-        }
-      } );
-      menuRow.add( agentButton );
-      // users menu option
-      Button usersButton = new Button( Messages.getString( "users" ), Styles.USER );
-      usersButton.setStyleName( "default" );
-      usersButton.addActionListener( new ActionListener()
-      {
-        public void actionPerformed( ActionEvent event )
-        {
-          // display the users window
-          if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "userswindow" ) == null )
-          {
-            KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new AdminUsersWindow() );
-          }
-        }
-      } );
-      menuRow.add( usersButton );
-      // groups menu option
-      Button groupsButton = new Button( Messages.getString( "groups" ), Styles.GROUP );
-      groupsButton.setStyleName( "default" );
-      groupsButton.addActionListener( new ActionListener()
-      {
-        public void actionPerformed( ActionEvent event )
-        {
-          // display the groups window
-          if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "groupswindow" ) == null )
-          {
-            KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new AdminGroupsWindow() );
-          }
-        }
-      } );
-      menuRow.add( groupsButton );
-    }
-    // stats menu option
-    Button statsButton = new Button( Messages.getString( "stats" ), Styles.CHART_BAR );
-    statsButton.setStyleName( "default" );
-    statsButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        // display the stats window
-        if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "statswindow" ) == null )
-        {
-          KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new StatsWindow() );
-        }
-      }
-    } );
-    menuRow.add( statsButton );
-    // preference menu option
-    Button preferenceButton = new Button( Messages.getString( "preferences" ), Styles.WRENCH );
-    preferenceButton.setStyleName( "default" );
-    preferenceButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        // display the preferences window
-        if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "preferenceswindow" ) == null )
-        {
-          KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new PreferencesWindow() );
-        }
-      }
-    } );
-    menuRow.add( preferenceButton );
-    // about menu option
-    Button aboutButton = new Button( Messages.getString( "about" ), Styles.INFORMATION );
-    aboutButton.setStyleName( "default" );
-    aboutButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        // display the about window
-        if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getComponent( "aboutwindow" ) == null )
-        {
-          KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add( new AboutWindow() );
-        }
-      }
-    } );
-    menuRow.add( aboutButton );
-    // disconnect menu option
-    Button disconnectButton = new Button( Messages.getString( "disconnect" ), Styles.DISCONNECT );
-    disconnectButton.setStyleName( "default" );
-    disconnectButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        // disconnect the user
-        KalumetConsoleApplication.getApplication().disconnect();
-      }
-    } );
-    menuRow.add( disconnectButton );
-
-    // create the split central pane
-    SplitPane mainPane = new SplitPane( SplitPane.ORIENTATION_HORIZONTAL_LEFT_RIGHT, new Extent( 200, Extent.PX ) );
-    mainPane.setStyleName( "default" );
-    menuPane.add( mainPane );
-    // add the left environments pane
-    EnvironmentsPane environmentsPane = new EnvironmentsPane();
-    KalumetConsoleApplication.getApplication().setEnvironmentsPane( environmentsPane );
-    mainPane.add( environmentsPane );
-
-    // add a split central pane
-    SplitPane centralPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 100, Extent.PX ) );
-    centralPane.setStyleName( "default" );
-    mainPane.add( centralPane );
-
-    // add the log pane and register in the WAD application
-    LogPane logPane = new LogPane();
-    KalumetConsoleApplication.getApplication().setLogPane( logPane );
-    centralPane.add( logPane );
-    // add an info in the log pane
-    logPane.addInfo( Messages.getString( "welcome" ) + " " + KalumetConsoleApplication.getApplication().getUserid() );
-
-    // add the workspace pane
-    ContentPane workspacePane = new ContentPane();
-    workspacePane.setStyleName( "central" );
-    centralPane.add( workspacePane );
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/Messages.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/Messages.java
deleted file mode 100644
index d0a41c1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/Messages.java
+++ /dev/null
@@ -1,110 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ApplicationInstance;
-
-import java.text.DateFormat;
-import java.text.MessageFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-import java.util.MissingResourceException;
-import java.util.ResourceBundle;
-
-/**
- * A utility class that provides resources for obtaining localized messages.
- */
-public class Messages
-{
-
-    private static final String BUNDLE_NAME = "org.apache.kalumet.console.app.locales.Messages";
-
-    // a map which contains DateFormat objects for various locales.
-    private static final Map DATE_FORMAT_MEDIUM_MAP = new HashMap();
-
-    /**
-     * Formats a date with the specified locale.
-     *
-     * @param date the date to be formatted.
-     * @return a localized String representation of the date.
-     */
-    public static final String formatDateTimeMedium( Date date )
-    {
-        Locale locale = getLocale();
-        DateFormat df = (DateFormat) DATE_FORMAT_MEDIUM_MAP.get( locale );
-        if ( df == null )
-        {
-            df = DateFormat.getDateTimeInstance( DateFormat.MEDIUM, DateFormat.MEDIUM, locale );
-            DATE_FORMAT_MEDIUM_MAP.put( locale, df );
-        }
-        return date == null ? null : df.format( date );
-    }
-
-    /**
-     * Returns a localized formatted message. This method conveniently wraps a
-     * call to a MessageFormat object.
-     *
-     * @param key       the key of the message to be returned.
-     * @param arguments an array of arguments to be inserted into the message.
-     */
-    public static String getFormattedString( String key, Object[] arguments )
-    {
-        Locale locale = getLocale();
-        String template = getString( key );
-        MessageFormat messageFormat = new MessageFormat( template );
-        messageFormat.setLocale( locale );
-        return messageFormat.format( arguments, new StringBuffer(), null ).toString();
-    }
-
-    /**
-     * Returns localized text.
-     *
-     * @param key the key of the text to be returned.
-     * @return the appropriate localized text (if the key is not defined, the string "!key!" is returned).
-     */
-    public static String getString( String key )
-    {
-        try
-        {
-            Locale locale = getLocale();
-
-            ResourceBundle resource = ResourceBundle.getBundle( BUNDLE_NAME, locale );
-            return resource.getString( key );
-        }
-        catch ( MissingResourceException e )
-        {
-            return '!' + key + '!';
-        }
-    }
-
-    private static Locale getLocale()
-    {
-        return ApplicationInstance.getActive() == null ? Locale.ENGLISH : ApplicationInstance.getActive().getLocale();
-    }
-
-    /**
-     * Non-instantiable class.
-     */
-    private Messages()
-    {
-    }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NameSpaceBindingsPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NameSpaceBindingsPane.java
deleted file mode 100644
index 6ea4455..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NameSpaceBindingsPane.java
+++ /dev/null
@@ -1,1001 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.JNDIBinding;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.JNDIBindingClient;
-
-import java.util.Iterator;
-
-/**
- * Environment JNDI name space bindings pane.
- */
-public class NameSpaceBindingsPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField scopeField;
-
-  private Grid grid;
-
-  private boolean newIsActive = true;
-
-  private boolean newIsBlocker = false;
-
-  private TextField newNameField;
-
-  private TextField newJndiNameField;
-
-  private TextField newJndiAliasField;
-
-  private TextField newProviderUrlField;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String nameSpaceBindingName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JNDIBindingClient client = new JNDIBindingClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate = client.check( parent.getEnvironmentName(), serverName, nameSpaceBindingName );
-        if ( uptodate )
-        {
-          message = "JNDI binding " + nameSpaceBindingName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "JNDI binding " + nameSpaceBindingName + " is not up to date.";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JNDI binding " + nameSpaceBindingName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String nameSpaceBindingName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice
-        JNDIBindingClient client = new JNDIBindingClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), serverName, nameSpaceBindingName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "JNDI binding " + nameSpaceBindingName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the name space binding object
-      JNDIBinding nameSpaceBinding = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJNDIBinding( event.getActionCommand() );
-      if ( nameSpaceBinding == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "namespacebinding.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // update the state
-      if ( nameSpaceBinding.isActive() )
-      {
-        nameSpaceBinding.setActive( false );
-        // add a change event
-        parent.getChangeEvents().add( "Disable JNDI binding " + nameSpaceBinding.getName() );
-      }
-      else
-      {
-        nameSpaceBinding.setActive( true );
-        parent.getChangeEvents().add( "Enable JNDI binding " + nameSpaceBinding.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the name space binding object
-      JNDIBinding nameSpaceBinding = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJNDIBinding( event.getActionCommand() );
-      if ( nameSpaceBinding == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "namespacebinding.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // update the blocker state and add a change event
-      if ( nameSpaceBinding.isBlocker() )
-      {
-        nameSpaceBinding.setBlocker( false );
-        parent.getChangeEvents().add( "Set not blocker for JNDI binding " + nameSpaceBinding.getName() );
-      }
-      else
-      {
-        nameSpaceBinding.setBlocker( true );
-        parent.getChangeEvents().add( "Set blocker JNDI binding " + nameSpaceBinding.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // new toggle active
-  private ActionListener newToggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // toggle the state
-      if ( newIsActive )
-      {
-        newIsActive = false;
-      }
-      else
-      {
-        newIsActive = true;
-      }
-      // update the pane
-      update();
-    }
-  };
-
-  // new toggle blocker
-  private ActionListener newToggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // toggle the blocker state
-      if ( newIsBlocker )
-      {
-        newIsBlocker = false;
-      }
-      else
-      {
-        newIsBlocker = true;
-      }
-      // update the pane
-      update();
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the name space binding name
-      String name = event.getActionCommand();
-      // get the fields
-      TextField nameField = (TextField) NameSpaceBindingsPane.this.getComponent(
-        "nsbname_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      TextField jndiNameField = (TextField) NameSpaceBindingsPane.this.getComponent(
-        "nsbjndiname_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      TextField jndiAliasField = (TextField) NameSpaceBindingsPane.this.getComponent(
-        "nsbjndialias_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      TextField providerUrlField = (TextField) NameSpaceBindingsPane.this.getComponent(
-        "nsbproviderurl_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      // get values
-      String nameFieldValue = nameField.getText();
-      String jndiNameFieldValue = jndiNameField.getText();
-      String jndiAliasFieldValue = jndiAliasField.getText();
-      String providerUrlFieldValue = providerUrlField.getText();
-      // check value
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || jndiNameFieldValue == null
-        || jndiNameFieldValue.trim().length() < 1 || jndiAliasFieldValue == null
-        || jndiAliasFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "namespacebinding.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the name space binding name, check if the name
-      // space binding name is not already in use
-      if ( !name.equals( nameFieldValue ) )
-      {
-        if ( parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getJNDIBinding( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "namespacebinding.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the name space binding object
-      JNDIBinding nameSpaceBinding = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJNDIBinding( name );
-      if ( nameSpaceBinding == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "namespacebinding.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change JNDI binding " + nameSpaceBinding.getName() );
-      // change the name space binding object
-      nameSpaceBinding.setName( nameFieldValue );
-      nameSpaceBinding.setJndiname( jndiNameFieldValue );
-      nameSpaceBinding.setJndialias( jndiAliasFieldValue );
-      nameSpaceBinding.setProviderurl( providerUrlFieldValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the name space binding
-      final JNDIBinding nameSpaceBinding = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJNDIBinding( event.getActionCommand() );
-      if ( nameSpaceBinding == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "namespacebinding.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the name space binding
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              (String) scopeField.getSelectedItem() ).getJNDIBindings().remove( nameSpaceBinding );
-            // add a change event
-            parent.getChangeEvents().add( "Delete JNDI binding " + nameSpaceBinding.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update only the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get values
-      String nameFieldValue = newNameField.getText();
-      String jndiNameFieldValue = newJndiNameField.getText();
-      String jndiAliasFieldValue = newJndiAliasField.getText();
-      String providerUrlFieldValue = newProviderUrlField.getText();
-      // mandatory field
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || jndiNameFieldValue == null
-        || jndiNameFieldValue.trim().length() < 1 || jndiAliasFieldValue == null
-        || jndiAliasFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "namespacebinding.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the new name space binding object
-      JNDIBinding nameSpaceBinding = new JNDIBinding();
-      nameSpaceBinding.setName( nameFieldValue );
-      nameSpaceBinding.setJndiname( jndiNameFieldValue );
-      nameSpaceBinding.setJndialias( jndiAliasFieldValue );
-      nameSpaceBinding.setProviderurl( providerUrlFieldValue );
-      nameSpaceBinding.setActive( newIsActive );
-      nameSpaceBinding.setBlocker( newIsBlocker );
-      // add the name space binding
-      try
-      {
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).addJNDIBinding( nameSpaceBinding );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "namespacebinding.exists" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change events
-      parent.getChangeEvents().add( "Add JNDI binding " + nameSpaceBinding.getName() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the pane
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for name space binding object
-      JNDIBinding jndiBinding = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getJNDIBinding( event.getActionCommand() );
-      if ( jndiBinding == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( jndiBinding );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy object is correct
-      if ( copy == null || !( copy instanceof JNDIBinding ) )
-      {
-        return;
-      }
-      // update the new fields
-      newNameField.setText( ( (JNDIBinding) copy ).getName() );
-      newJndiNameField.setText( ( (JNDIBinding) copy ).getJndiname() );
-      newJndiAliasField.setText( ( (JNDIBinding) copy ).getJndialias() );
-      newProviderUrlField.setText( ( (JNDIBinding) copy ).getProviderurl() );
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JEE application server and JNDI name space binding name
-      final String serverName = (String) scopeField.getSelectedItem();
-      final String nameSpaceBindingName = event.getActionCommand();
-      // add a message in the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "JNDI binding " + nameSpaceBindingName + " status check in progress...", parent.getEnvironmentName() );
-      parent.getChangeEvents().add( "JNDI binding " + nameSpaceBindingName + " status check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.serverName = serverName;
-      statusThread.nameSpaceBindingName = nameSpaceBindingName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    parent.getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the look
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the server and name space binding name
-      final String serverName = (String) scopeField.getSelectedItem();
-      final String nameSpaceBindingName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message in the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "JNDI binding " + nameSpaceBindingName + " update in progress...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "JNDI binding " + nameSpaceBindingName + " update in progress..." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.serverName = serverName;
-            updateThread.nameSpaceBindingName = nameSpaceBindingName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "JNDI binding " + nameSpaceBindingName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "JNDI binding " + nameSpaceBindingName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>NameSpaceBindingsPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public NameSpaceBindingsPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add the scope select field
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( layoutGrid );
-    Label scopeLabel = new Label( Messages.getString( "scope" ) );
-    scopeLabel.setStyleName( "default" );
-    layoutGrid.add( scopeLabel );
-    scopeField = new SelectField();
-    scopeField.addActionListener( scopeSelect );
-    scopeField.setStyleName( "default" );
-    layoutGrid.add( scopeField );
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    scopeListModel.removeAll();
-    // add application servers in the scope select field
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-    }
-    if ( scopeListModel.size() > 0 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-
-    // add JNDI bindings grid
-    grid = new Grid( 5 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 25, Extent.PERCENT ) );
-    grid.setColumnWidth( 2, new Extent( 25, Extent.PERCENT ) );
-    grid.setColumnWidth( 3, new Extent( 25, Extent.PERCENT ) );
-    grid.setColumnWidth( 4, new Extent( 25, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane
-   */
-  public void update()
-  {
-    String applicationServerName = null;
-    // update the scope select field
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      applicationServerName = (String) scopeField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int scopeIndex = 0;
-    int found = -1;
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-      if ( applicationServer.getName().equals( applicationServerName ) )
-      {
-        found = scopeIndex;
-      }
-      scopeIndex++;
-    }
-
-    // remove all JNDI bindings grid children
-    grid.removeAll();
-
-    // check if at least one application server is present
-    if ( scopeListModel.size() < 1 )
-    {
-      return;
-    }
-    // update the scope select field selected index
-    if ( found == -1 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeField.setSelectedIndex( found );
-    }
-    // update the application server name from the scope (in case of
-    // application server deletion)
-    applicationServerName = (String) scopeField.getSelectedItem();
-
-    // add JNDI name space bindings grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    Label jndiNameHeader = new Label( Messages.getString( "jndi.name" ) );
-    jndiNameHeader.setStyleName( "grid.header" );
-    grid.add( jndiNameHeader );
-    Label jndiAliasHeader = new Label( Messages.getString( "jndi.alias" ) );
-    jndiAliasHeader.setStyleName( "grid.header" );
-    grid.add( jndiAliasHeader );
-    Label providerUrlHeader = new Label( Messages.getString( "provider.url" ) );
-    providerUrlHeader.setStyleName( "grid.header" );
-    grid.add( providerUrlHeader );
-    // add the jndi name space bindings
-    for ( Iterator jndiNameSpaceBindingIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              applicationServerName ).getJNDIBindings().iterator(); jndiNameSpaceBindingIterator.hasNext(); )
-    {
-      JNDIBinding nameSpaceBinding = (JNDIBinding) jndiNameSpaceBindingIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( nameSpaceBinding.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( nameSpaceBinding.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        activeButton.setActionCommand( nameSpaceBinding.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( nameSpaceBinding.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        blockerButton.setActionCommand( nameSpaceBinding.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // status
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      statusButton.setActionCommand( nameSpaceBinding.getName() );
-      statusButton.addActionListener( status );
-      row.add( statusButton );
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        // update
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( nameSpaceBinding.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( nameSpaceBinding.getName() );
-        editButton.addActionListener( edit );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( nameSpaceBinding.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      TextField nameField = new TextField();
-      nameField.setStyleName( "default" );
-      nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      nameField.setId(
-        "nsbname_" + parent.getEnvironmentName() + "_" + applicationServerName + "_" + nameSpaceBinding.getName() );
-      nameField.setText( nameSpaceBinding.getName() );
-      grid.add( nameField );
-      // jndi name
-      TextField jndiNameField = new TextField();
-      jndiNameField.setStyleName( "default" );
-      jndiNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      jndiNameField.setId(
-        "nsbjndiname_" + parent.getEnvironmentName() + "_" + applicationServerName + "_" + nameSpaceBinding.getName() );
-      jndiNameField.setText( nameSpaceBinding.getJndiname() );
-      grid.add( jndiNameField );
-      // jndi alias
-      TextField jndiAliasField = new TextField();
-      jndiAliasField.setStyleName( "default" );
-      jndiAliasField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      jndiAliasField.setId( "nsbjndialias_" + parent.getEnvironmentName() + "_" + applicationServerName + "_"
-                              + nameSpaceBinding.getName() );
-      jndiAliasField.setText( nameSpaceBinding.getJndialias() );
-      grid.add( jndiAliasField );
-      // provider url
-      TextField providerUrlField = new TextField();
-      providerUrlField.setStyleName( "default" );
-      providerUrlField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      providerUrlField.setId( "nsbproviderurl_" + parent.getEnvironmentName() + "_" + applicationServerName + "_"
-                                + nameSpaceBinding.getName() );
-      providerUrlField.setText( nameSpaceBinding.getProviderurl() );
-      grid.add( providerUrlField );
-    }
-
-    // add create name space binding row in the name space bindings grid
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( paste );
-      row.add( pasteButton );
-      // active
-      Button activeButton;
-      if ( newIsActive )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      activeButton.addActionListener( newToggleActive );
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( newIsBlocker )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      blockerButton.addActionListener( newToggleBlocker );
-      row.add( blockerButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( create );
-      row.add( addButton );
-      // name
-      newNameField = new TextField();
-      newNameField.setStyleName( "default" );
-      newNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newNameField );
-      // jndi name
-      newJndiNameField = new TextField();
-      newJndiNameField.setStyleName( "default" );
-      newJndiNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newJndiNameField );
-      // jndi alias
-      newJndiAliasField = new TextField();
-      newJndiAliasField.setStyleName( "default" );
-      newJndiAliasField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newJndiAliasField );
-      // provider url
-      newProviderUrlField = new TextField();
-      newProviderUrlField.setStyleName( "default" );
-      newProviderUrlField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newProviderUrlField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NotifierWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NotifierWindow.java
deleted file mode 100644
index 7874855..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NotifierWindow.java
+++ /dev/null
@@ -1,667 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.model.Destination;
-import org.apache.kalumet.model.Email;
-
-import java.util.Iterator;
-
-/**
- * Notifier window.
- */
-public class NotifierWindow
-  extends WindowPane
-{
-
-  private String mailhost;
-
-  private Email email;
-
-  private NotifiersPane parent;
-
-  private TextField mailhostField;
-
-  private TextField fromField;
-
-  private Grid destinationsGrid;
-
-  private TextField newDestinationField;
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      NotifierWindow.this.userClose();
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the original email notifier object
-      email = parent.getEnvironmentWindow().getEnvironment().getNotifiers().getNotifier( mailhost );
-      if ( email == null )
-      {
-        email = new Email();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the notifier email object
-            parent.getEnvironmentWindow().getEnvironment().getNotifiers().getNotifiers().remove( email );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete e-mail notifier " + mailhost );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            NotifierWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String mailhostFieldValue = mailhostField.getText();
-      String fromFieldValue = fromField.getText();
-      // check fields
-      if ( mailhostFieldValue == null || mailhostFieldValue.trim().length() < 1 || fromFieldValue == null
-        || fromFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "notifier.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the email mailhost, check if the email mailhost
-      // doesn't already exist
-      if ( mailhost == null || ( mailhost != null && !mailhost.equals( mailhostFieldValue ) ) )
-      {
-        if ( parent.getEnvironmentWindow().getEnvironment().getNotifiers().getNotifier( mailhostFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "notifier.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( mailhost != null )
-      {
-        parent.getEnvironmentWindow().getChangeEvents().add( "Change e-mail notifier " + email.getMailhost() );
-      }
-      // update the email notifier object
-      email.setMailhost( mailhostFieldValue );
-      email.setFrom( fromFieldValue );
-      // add the email notifier object if needed
-      if ( mailhost == null )
-      {
-        try
-        {
-          parent.getEnvironmentWindow().getEnvironment().getNotifiers().addNotifier( email );
-          parent.getEnvironmentWindow().getChangeEvents().add( "Add notifier " + email.getMailhost() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "notifier.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "notifier" ) + " " + email.getMailhost() );
-      setId( "notifierwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + email.getMailhost() );
-      mailhost = email.getMailhost();
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // delete destination
-  private ActionListener deleteDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the destination object
-      final Destination destination = email.getDestination( event.getActionCommand() );
-      if ( destination == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "destination.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the destination object
-            email.getDestinations().remove( destination );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Delete notifier destination " + destination.getAddress() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // update the window
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit destination
-  private ActionListener editDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get field
-      TextField destinationAddressField = (TextField) NotifierWindow.this.getComponent(
-        "destination_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + mailhost + "_"
-          + event.getActionCommand() );
-      // get field value
-      String destinationAddressFieldValue = destinationAddressField.getText();
-      // check field value
-      if ( destinationAddressFieldValue == null || destinationAddressFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "destination.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the destination address, check if the address is
-      // not already in use
-      if ( !destinationAddressFieldValue.equals( event.getActionCommand() ) )
-      {
-        if ( email.getDestination( destinationAddressFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "destination.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the destination object
-      Destination destination = email.getDestination( event.getActionCommand() );
-      if ( destination == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "destination.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Change destination " + destination.getAddress() );
-      // update the destination object
-      destination.setAddress( destinationAddressFieldValue );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // add destination
-  private ActionListener addDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get field value
-      String newDestinationFieldValue = newDestinationField.getText();
-      // check field
-      if ( newDestinationFieldValue == null || newDestinationFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "destination.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create a new destination object
-      Destination destination = new Destination();
-      destination.setAddress( newDestinationFieldValue );
-      // add the destination
-      try
-      {
-        email.addDestination( destination );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "destination.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Add destination " + destination.getAddress() );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( email.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check the copy object
-      if ( copy == null || !( copy instanceof Email ) )
-      {
-        return;
-      }
-      // update
-      email = (Email) copy;
-      mailhost = null;
-      // update the window
-      update();
-    }
-  };
-
-  // copy destination
-  private ActionListener copyDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the destination object
-      Destination destination = email.getDestination( event.getActionCommand() );
-      if ( destination == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( destination.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste destination
-  private ActionListener pasteDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check the copy object
-      if ( copy == null || !( copy instanceof Destination ) )
-      {
-        return;
-      }
-      // update the new fields
-      newDestinationField.setText( ( (Destination) copy ).getAddress() );
-    }
-  };
-
-  /**
-   * Create a new <code>NotifierWindow</code>.
-   *
-   * @param parent   the parent <code>NotifiersPane</code>.
-   * @param mailhost the original mailhost.
-   */
-  public NotifierWindow( NotifiersPane parent, String mailhost )
-  {
-    super();
-
-    // update the parent tab pane
-    this.parent = parent;
-
-    // update the email mailhost
-    this.mailhost = mailhost;
-
-    // update the email object from the parent environment
-    this.email = parent.getEnvironmentWindow().getEnvironment().getNotifiers().getNotifier( mailhost );
-    if ( this.email == null )
-    {
-      this.email = new Email();
-    }
-
-    if ( mailhost == null )
-    {
-      setTitle( Messages.getString( "notifier" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "notifier" ) + " " + mailhost );
-    }
-    setId( "notifierwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + mailhost );
-    setStyleName( "default" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "default" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // mailhost
-    Label emailMailhostLabel = new Label( Messages.getString( "mailhost" ) );
-    emailMailhostLabel.setStyleName( "default" );
-    generalLayoutGrid.add( emailMailhostLabel );
-    mailhostField = new TextField();
-    mailhostField.setStyleName( "default" );
-    mailhostField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( mailhostField );
-    // from
-    Label emailFromLabel = new Label( Messages.getString( "from" ) );
-    emailFromLabel.setStyleName( "default" );
-    generalLayoutGrid.add( emailFromLabel );
-    fromField = new TextField();
-    fromField.setStyleName( "default" );
-    fromField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( fromField );
-
-    // add the destinations tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "destinations" ) );
-    ContentPane destinationsTabPane = new ContentPane();
-    destinationsTabPane.setStyleName( "default" );
-    destinationsTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( destinationsTabPane );
-    destinationsGrid = new Grid( 2 );
-    destinationsGrid.setStyleName( "border.grid" );
-    destinationsTabPane.add( destinationsGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // update the email mailhost field
-    mailhostField.setText( email.getMailhost() );
-    // update the email from field
-    fromField.setText( email.getFrom() );
-    // update the destinations grid
-    // remove all destinations grid children
-    destinationsGrid.removeAll();
-    // add action header
-    Label actionHeader = new Label( "" );
-    actionHeader.setStyleName( "grid.header" );
-    destinationsGrid.add( actionHeader );
-    // add destinations grid header
-    Label destinationAddressHeader = new Label( Messages.getString( "address" ) );
-    destinationAddressHeader.setStyleName( "grid.header" );
-    destinationsGrid.add( destinationAddressHeader );
-    // add the destinations e-mails
-    for ( Iterator destinationIterator = email.getDestinations().iterator(); destinationIterator.hasNext(); )
-    {
-      Destination destination = (Destination) destinationIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      destinationsGrid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setActionCommand( destination.getAddress() );
-      copyButton.addActionListener( copyDestination );
-      row.add( copyButton );
-      if ( getEnvironmentWindow().adminPermission )
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setActionCommand( destination.getAddress() );
-        editButton.addActionListener( editDestination );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setActionCommand( destination.getAddress() );
-        deleteButton.addActionListener( deleteDestination );
-        row.add( deleteButton );
-      }
-      // destination
-      TextField destinationAddressField = new TextField();
-      destinationAddressField.setId(
-        "destination_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + mailhost + "_"
-          + destination.getAddress() );
-      destinationAddressField.setStyleName( "default" );
-      destinationAddressField.setText( destination.getAddress() );
-      destinationsGrid.add( destinationAddressField );
-    }
-    // add create destination row in the destinations grid
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      destinationsGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.addActionListener( pasteDestination );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.addActionListener( addDestination );
-      row.add( addButton );
-      // new destination
-      newDestinationField = new TextField();
-      newDestinationField.setStyleName( "default" );
-      destinationsGrid.add( newDestinationField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NotifiersPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NotifiersPane.java
deleted file mode 100644
index ed38cda..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/NotifiersPane.java
+++ /dev/null
@@ -1,617 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.model.Destination;
-import org.apache.kalumet.model.Email;
-
-import java.util.Iterator;
-
-/**
- * Environment notifiers pane.
- */
-public class NotifiersPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private TextField countDownField;
-
-  private SelectField scopeField;
-
-  private Grid grid;
-
-  private TextField newDestinationField;
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // edit destination
-  private ActionListener editDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the destination address
-      String destinationAddress = event.getActionCommand();
-      // get field
-      TextField destinationAddressField = (TextField) NotifiersPane.this.getComponent(
-        "notifierdestination_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_"
-          + destinationAddress );
-      String destinationAddressFieldValue = destinationAddressField.getText();
-      // check the field value
-      if ( destinationAddressFieldValue == null || destinationAddressFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "notifier.destination.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the destination address, check if the address is
-      // not already in use
-      if ( !destinationAddress.equals( destinationAddressFieldValue ) )
-      {
-        if ( parent.getEnvironment().getNotifiers().getNotifier( (String) scopeField.getSelectedItem() ).getDestination(
-          destinationAddressFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "notifier.destination.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the destination object
-      Destination destination =
-        parent.getEnvironment().getNotifiers().getNotifier( (String) scopeField.getSelectedItem() ).getDestination(
-          destinationAddress );
-      if ( destination == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "notifier.destination.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change notifier destination to " + destination.getAddress() );
-      // update the destination address object
-      destination.setAddress( destinationAddressFieldValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the tab
-      update();
-    }
-  };
-
-  // create destination
-  private ActionListener createDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the new destination address field value
-      String newDestinationAddressFieldValue = newDestinationField.getText();
-      // check mandatory field
-      if ( newDestinationAddressFieldValue == null || newDestinationAddressFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "notifier.destination.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create a new destination object
-      Destination destination = new Destination();
-      destination.setAddress( newDestinationAddressFieldValue );
-      // add the destination
-      try
-      {
-        parent.getEnvironment().getNotifiers().getNotifier( (String) scopeField.getSelectedItem() ).addDestination(
-          destination );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "notifier.destination.exists" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Create notifier destination " + destination.getAddress() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update only the tab
-      update();
-    }
-  };
-
-  // delete destination
-  private ActionListener deleteDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the destination address
-      String destinationAddress = event.getActionCommand();
-      // looking for the destination object
-      final Destination destination =
-        parent.getEnvironment().getNotifiers().getNotifier( (String) scopeField.getSelectedItem() ).getDestination(
-          destinationAddress );
-      if ( destination == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "notifier.destination.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the destination
-            parent.getEnvironment().getNotifiers().getNotifier(
-              (String) scopeField.getSelectedItem() ).getDestinations().remove( destination );
-            // add a change event
-            parent.getChangeEvents().add( "Delete notifier destination " + destination.getAddress() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update only the tab
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // delete notifier
-  private ActionListener deleteNotifier = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the notifier object
-      final Email notifier =
-        parent.getEnvironment().getNotifiers().getNotifier( (String) scopeField.getSelectedItem() );
-      if ( notifier == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "notifier.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the notifier object
-            parent.getEnvironment().getNotifiers().getNotifiers().remove( notifier );
-            // add a change event
-            parent.getChangeEvents().add( "Delete notifier " + notifier.getMailhost() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit notifier
-  private ActionListener editNotifier = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "notifierwindow_" + parent.getEnvironmentName() + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new NotifierWindow( NotifiersPane.this, (String) scopeField.getSelectedItem() ) );
-      }
-    }
-  };
-
-  // create notifier
-  private ActionListener createNotifier = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new NotifierWindow( NotifiersPane.this, null ) );
-    }
-  };
-
-  // copy notifier
-  private ActionListener copyNotifier = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the notifier object
-      Email notifier = parent.getEnvironment().getNotifiers().getNotifier( (String) scopeField.getSelectedItem() );
-      if ( notifier == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( notifier.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // copy destination
-  private ActionListener copyDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the destination object
-      Destination destination =
-        parent.getEnvironment().getNotifiers().getNotifier( (String) scopeField.getSelectedItem() ).getDestination(
-          event.getActionCommand() );
-      if ( destination == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( destination.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste destination
-  private ActionListener pasteDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check the copy object
-      if ( copy == null || !( copy instanceof Destination ) )
-      {
-        return;
-      }
-      // update the new fields
-      newDestinationField.setText( ( (Destination) copy ).getAddress() );
-    }
-  };
-
-  /**
-   * Create a new <code>NotifiersPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public NotifiersPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setInsets( new Insets( 2 ) );
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // general grid
-    Grid generalGrid = new Grid( 2 );
-    generalGrid.setStyleName( "default" );
-    generalGrid.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( generalGrid );
-
-    // countdown field
-    Label countDownLabel = new Label( Messages.getString( "countdown" ) );
-    countDownLabel.setStyleName( "default" );
-    generalGrid.add( countDownLabel );
-    countDownField = new TextField();
-    countDownField.setStyleName( "default" );
-    countDownField.setWidth( new Extent( 50, Extent.EX ) );
-    generalGrid.add( countDownField );
-
-    // scope row
-    Row scopeRow = new Row();
-    scopeRow.setInsets( new Insets( 2 ) );
-    scopeRow.setCellSpacing( new Extent( 4 ) );
-    content.add( scopeRow );
-    // scope select field
-    scopeField = new SelectField();
-    scopeField.setStyleName( "default" );
-    scopeField.setWidth( new Extent( 50, Extent.EX ) );
-    scopeField.addActionListener( scopeSelect );
-    scopeRow.add( scopeField );
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    scopeListModel.removeAll();
-    // add notifiers in the scope select field
-    for ( Iterator notifierIterator = parent.getEnvironment().getNotifiers().getNotifiers().iterator();
-          notifierIterator.hasNext(); )
-    {
-      Email email = (Email) notifierIterator.next();
-      scopeListModel.add( email.getMailhost() );
-    }
-    if ( scopeListModel.size() > 0 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-
-    // copy notifier button
-    Button copyNotifierButton = new Button( Styles.PAGE_COPY );
-    copyNotifierButton.setToolTipText( Messages.getString( "copy" ) );
-    copyNotifierButton.addActionListener( copyNotifier );
-    scopeRow.add( copyNotifierButton );
-    // edit notifier button
-    Button editNotifierButton = new Button( Styles.ACCEPT );
-    editNotifierButton.setToolTipText( Messages.getString( "edit" ) );
-    editNotifierButton.addActionListener( editNotifier );
-    scopeRow.add( editNotifierButton );
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // delete
-      Button deleteNotifierButton = new Button( Styles.DELETE );
-      deleteNotifierButton.setToolTipText( Messages.getString( "delete" ) );
-      deleteNotifierButton.addActionListener( deleteNotifier );
-      scopeRow.add( deleteNotifierButton );
-      // add
-      Button createNotifierButton = new Button( Styles.ADD );
-      createNotifierButton.setToolTipText( Messages.getString( "notifier.add" ) );
-      createNotifierButton.addActionListener( createNotifier );
-      scopeRow.add( createNotifierButton );
-    }
-
-    // add the destinations grid
-    grid = new Grid( 2 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 100, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // update the count down field
-    countDownField.setText( new Integer( parent.getEnvironment().getNotifiers().getCountdown() ).toString() );
-
-    // update the scope select field
-    String notifierMailhost = null;
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      notifierMailhost = (String) scopeField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int scopeIndex = 0;
-    int found = -1;
-    for ( Iterator notifierIterator = parent.getEnvironment().getNotifiers().getNotifiers().iterator();
-          notifierIterator.hasNext(); )
-    {
-      Email notifier = (Email) notifierIterator.next();
-      scopeListModel.add( notifier.getMailhost() );
-      if ( notifier.getMailhost().equals( notifierMailhost ) )
-      {
-        found = scopeIndex;
-      }
-      scopeIndex++;
-    }
-
-    // remove all destinations grid children
-    grid.removeAll();
-    // check if at least one notifier is present
-    if ( scopeListModel.size() < 1 )
-    {
-      return;
-    }
-    if ( found == -1 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeField.setSelectedIndex( found );
-    }
-    // update the notifier from the scope (in case of deletion)
-    notifierMailhost = (String) scopeField.getSelectedItem();
-
-    // add destinations grid header
-    Label destinationActionHeader = new Label( " " );
-    destinationActionHeader.setStyleName( "grid.header" );
-    grid.add( destinationActionHeader );
-    Label destinationAddressHeader = new Label( Messages.getString( "destination" ) );
-    destinationAddressHeader.setStyleName( "grid.header" );
-    grid.add( destinationAddressHeader );
-    // add the destinations e-mails
-    for ( Iterator destinationIterator =
-            parent.getEnvironment().getNotifiers().getNotifier( notifierMailhost ).getDestinations().iterator();
-          destinationIterator.hasNext(); )
-    {
-      Destination destination = (Destination) destinationIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( destination.getAddress() );
-      copyButton.addActionListener( copyDestination );
-      row.add( copyButton );
-      if ( getEnvironmentWindow().adminPermission )
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( destination.getAddress() );
-        editButton.addActionListener( editDestination );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( destination.getAddress() );
-        deleteButton.addActionListener( deleteDestination );
-        row.add( deleteButton );
-      }
-      // destination
-      TextField destinationAddress = new TextField();
-      destinationAddress.setId( "notifierdestination_" + parent.getEnvironmentName() + "_" + notifierMailhost + "_"
-                                  + destination.getAddress() );
-      destinationAddress.setText( destination.getAddress() );
-      destinationAddress.setStyleName( "default" );
-      destinationAddress.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( destinationAddress );
-    }
-    // add create destination row in the destinations grid
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteDestination );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "destination.add" ) );
-      addButton.addActionListener( createDestination );
-      row.add( addButton );
-      // destination
-      newDestinationField = new TextField();
-      newDestinationField.setStyleName( "default" );
-      newDestinationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newDestinationField );
-    }
-  }
-
-  /**
-   * Get the parent <code>EnvironmentWindow</code>.
-   *
-   * @return the parent <code>EnvironmentWindow</code>.
-   */
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-  /**
-   * Get the count down <code>TextField</code>.
-   *
-   * @return the count down <code>TextField</code>.
-   */
-  public TextField getCountDownField()
-  {
-    return this.countDownField;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PreferencesWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PreferencesWindow.java
deleted file mode 100644
index 37deaba..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PreferencesWindow.java
+++ /dev/null
@@ -1,348 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.PasswordField;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.layout.SplitPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Group;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.User;
-
-import java.util.Iterator;
-
-/**
- * Preferences window.
- */
-public class PreferencesWindow
-  extends WindowPane
-{
-
-  // attributes
-  private TextField userIdField;
-
-  private TextField userNameField;
-
-  private TextField userEmailField;
-
-  private PasswordField userPasswordField;
-
-  private PasswordField userConfirmPasswordField;
-
-  // close button action listener
-  private ActionListener closeButtonActionListener = new ActionListener()
-  {
-
-    public void actionPerformed( ActionEvent event )
-    {
-      PreferencesWindow.this.userClose();
-    }
-
-  };
-
-  // refresh button action listener
-  private ActionListener refreshButtonActionListener = new ActionListener()
-  {
-
-    public void actionPerformed( ActionEvent event )
-    {
-      // load Kalumet configuration
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      User user = kalumet.getSecurity().getUser( KalumetConsoleApplication.getApplication().getUserid() );
-      if ( user == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "error.user.notfound" ) );
-        return;
-      }
-      userIdField.setText( user.getId() );
-      userNameField.setText( user.getName() );
-      userEmailField.setText( user.getEmail() );
-      userPasswordField.setText( null );
-      userConfirmPasswordField.setText( null );
-    }
-
-  };
-
-  // save button action listener
-  private ActionListener saveButtonActionListener = new ActionListener()
-  {
-
-    public void actionPerformed( ActionEvent event )
-    {
-      String userId = userIdField.getText().trim();
-      String userName = userNameField.getText().trim();
-      String userEmail = userEmailField.getText().trim();
-      String userPassword = userPasswordField.getText();
-      String userConfirmPassword = userConfirmPasswordField.getText();
-      Kalumet kalumet = null;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.read" ) + ": " + e.getMessage() );
-        return;
-      }
-      User user = kalumet.getSecurity().getUser( KalumetConsoleApplication.getApplication().getUserid() );
-      if ( user == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "error.user.notfound" ) );
-        return;
-      }
-      if ( userId.length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "preferences.warn.username" ) );
-        return;
-      }
-      if ( userPassword.length() > 0 && !userPassword.equals( userConfirmPassword ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "preferences.warn.password" ) );
-        return;
-      }
-      if ( !userId.equals( KalumetConsoleApplication.getApplication().getUserid() )
-        && KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "preferences.warn.admin" ) );
-        return;
-      }
-      if ( userPassword.length() > 0 )
-      {
-        try
-        {
-          user.setPassword( User.md5PasswordCrypt( userPassword ) );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "preferences.warn.crypt" ) + ": " + e.getMessage() );
-          return;
-        }
-      }
-      user.setEmail( userEmail );
-      user.setName( userName );
-      if ( !userId.equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        // update user group
-        for ( Iterator userGroupIterator = kalumet.getSecurity().getUserGroups( user.getId() ).iterator();
-              userGroupIterator.hasNext(); )
-        {
-          Group group = (Group) userGroupIterator.next();
-          for ( Iterator userIterator = group.getUsers().iterator(); userIterator.hasNext(); )
-          {
-            User current = (User) userIterator.next();
-            current.setId( userId );
-          }
-        }
-        // update the main user
-        user.setId( userId );
-        try
-        {
-          ConfigurationManager.writeStore( kalumet );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addError(
-            Messages.getString( "db.write" ) + ": " + e.getMessage() );
-          return;
-        }
-        KalumetConsoleApplication.getApplication().disconnect();
-        return;
-      }
-      try
-      {
-        ConfigurationManager.writeStore( kalumet );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "db.write" ) + ": " + e.getMessage() );
-        return;
-      }
-      KalumetConsoleApplication.getApplication().getLogPane().addConfirm( Messages.getString( "preferences.saved" ) );
-    }
-
-  };
-
-  /**
-   * Create a new <code>PreferencesWindow</code>.
-   */
-  public PreferencesWindow()
-  {
-    super();
-
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-
-    // identify the user
-    User user = kalumet.getSecurity().getUser( KalumetConsoleApplication.getApplication().getUserid() );
-    if ( user == null )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "error.user.notfound" ) );
-      return;
-    }
-
-    setTitle( Messages.getString( "preferences" ) );
-    setIcon( Styles.WRENCH );
-    setStyleName( "preferences" );
-    setModal( false );
-    setId( "preferenceswindow" );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.addActionListener( refreshButtonActionListener );
-    refreshButton.setStyleName( "control" );
-    controlRow.add( refreshButton );
-    // add the save button
-    Button saveButton = new Button( Messages.getString( "save" ), Styles.DATABASE_SAVE );
-    saveButton.addActionListener( saveButtonActionListener );
-    saveButton.setStyleName( "control" );
-    controlRow.add( saveButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.addActionListener( closeButtonActionListener );
-    closeButton.setStyleName( "control" );
-    controlRow.add( closeButton );
-
-    // define a grid layout
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    SplitPaneLayoutData layoutData = new SplitPaneLayoutData();
-    layoutData.setInsets( new Insets( 4 ) );
-    layoutGrid.setLayoutData( layoutData );
-    layoutGrid.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 0, new Extent( 15, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 85, Extent.PERCENT ) );
-    splitPane.add( layoutGrid );
-
-    // create the user id field
-    Label idLabel = new Label( Messages.getString( "username" ) );
-    idLabel.setStyleName( "grid.cell" );
-    layoutGrid.add( idLabel );
-    userIdField = new TextField();
-    userIdField.setText( user.getId() );
-    userIdField.setStyleName( "default" );
-    userIdField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    if ( KalumetConsoleApplication.getApplication().getUserid().equals( "admin" ) )
-    {
-      userIdField.setEnabled( false );
-    }
-    layoutGrid.add( userIdField );
-
-    // create the user name field
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    layoutGrid.add( nameLabel );
-    userNameField = new TextField();
-    userNameField.setText( user.getName() );
-    userNameField.setStyleName( "default" );
-    userNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userNameField );
-
-    // create the user e-mail field
-    Label emailLabel = new Label( Messages.getString( "email" ) );
-    emailLabel.setStyleName( "grid.cell" );
-    layoutGrid.add( emailLabel );
-    userEmailField = new TextField();
-    userEmailField.setText( user.getEmail() );
-    userEmailField.setStyleName( "default" );
-    userEmailField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userEmailField );
-
-    // create the user password field
-    Label passwordLabel = new Label( Messages.getString( "password" ) );
-    passwordLabel.setStyleName( "grid.cell" );
-    layoutGrid.add( passwordLabel );
-    userPasswordField = new PasswordField();
-    userPasswordField.setStyleName( "default" );
-    userPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userPasswordField );
-
-    // create the user confirm password field
-    Label passwordConfirmLabel = new Label( Messages.getString( "confirm" ) );
-    passwordConfirmLabel.setStyleName( "grid.cell" );
-    layoutGrid.add( passwordConfirmLabel );
-    userConfirmPasswordField = new PasswordField();
-    userConfirmPasswordField.setStyleName( "default" );
-    userConfirmPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layoutGrid.add( userConfirmPasswordField );
-
-    // display user groups
-    Label userGroupLabel = new Label( Messages.getString( "groups" ) );
-    userGroupLabel.setStyleName( "grid.cell" );
-    layoutGrid.add( userGroupLabel );
-    Column groupsColumn = new Column();
-    groupsColumn.setStyleName( "grid.action" );
-    layoutGrid.add( groupsColumn );
-    for ( Iterator userGroupIterator = kalumet.getSecurity().getUserGroups( user.getId() ).iterator();
-          userGroupIterator.hasNext(); )
-    {
-      Group group = (Group) userGroupIterator.next();
-      Label groupLabel = new Label( group.getName() );
-      groupLabel.setStyleName( "default" );
-      groupsColumn.add( groupLabel );
-    }
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublishReleaseWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublishReleaseWindow.java
deleted file mode 100644
index 00020d3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublishReleaseWindow.java
+++ /dev/null
@@ -1,613 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.CheckBox;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.commons.vfs.FileObject;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.model.*;
-import org.apache.kalumet.model.JEEApplication;
-import org.apache.kalumet.utils.VariableUtils;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-
-/**
- * Define an application checkbox.
- */
-class ApplicationCheckBox
-  extends CheckBox
-{
-
-  private String serverName;
-
-  private String applicationName;
-
-  public ApplicationCheckBox( String serverName, String applicationName )
-  {
-    super( applicationName );
-    this.serverName = serverName;
-    this.applicationName = applicationName;
-  }
-
-  public String getServerName()
-  {
-    return this.serverName;
-  }
-
-  public String getApplicationName()
-  {
-    return this.applicationName;
-  }
-
-}
-
-/**
- * Define an application archive checkbox.
- */
-class ArchiveCheckBox
-  extends CheckBox
-{
-
-  private String serverName;
-
-  private String applicationName;
-
-  private String archiveName;
-
-  public ArchiveCheckBox( String serverName, String applicationName, String archiveName )
-  {
-    super( archiveName );
-    this.serverName = serverName;
-    this.applicationName = applicationName;
-    this.archiveName = archiveName;
-  }
-
-  public String getServerName()
-  {
-    return this.serverName;
-  }
-
-  public String getApplicationName()
-  {
-    return this.applicationName;
-  }
-
-  public String getArchiveName()
-  {
-    return this.archiveName;
-  }
-
-}
-
-/**
- * Define an application configuration file checkbox.
- */
-class ConfigurationFileCheckBox
-  extends CheckBox
-{
-
-  private String serverName;
-
-  private String applicationName;
-
-  private String configurationFileName;
-
-  public ConfigurationFileCheckBox( String serverName, String applicationName, String configurationFileName )
-  {
-    super( configurationFileName );
-    this.serverName = serverName;
-    this.applicationName = applicationName;
-    this.configurationFileName = configurationFileName;
-  }
-
-  public String getServerName()
-  {
-    return this.serverName;
-  }
-
-  public String getApplicationName()
-  {
-    return this.applicationName;
-  }
-
-  public String getConfigurationFileName()
-  {
-    return this.configurationFileName;
-  }
-
-}
-
-/**
- * Define an application SQL script checkbox.
- */
-class SqlScriptCheckBox
-  extends CheckBox
-{
-
-  private String serverName;
-
-  private String applicationName;
-
-  private String databaseName;
-
-  private String sqlScriptName;
-
-  public SqlScriptCheckBox( String serverName, String applicationName, String databaseName, String sqlScriptName )
-  {
-    super( sqlScriptName );
-    this.serverName = serverName;
-    this.applicationName = applicationName;
-    this.databaseName = databaseName;
-    this.sqlScriptName = sqlScriptName;
-  }
-
-  public String getServerName()
-  {
-    return this.serverName;
-  }
-
-  public String getApplicationName()
-  {
-    return this.applicationName;
-  }
-
-  public String getDatabaseName()
-  {
-    return this.databaseName;
-  }
-
-  public String getSqlScriptName()
-  {
-    return this.sqlScriptName;
-  }
-
-}
-
-/**
- * Define a software checkbox.
- */
-class SoftwareCheckBox
-  extends CheckBox
-{
-
-  private String softwareName;
-
-  public SoftwareCheckBox( String softwareName )
-  {
-    super( softwareName );
-    this.softwareName = softwareName;
-  }
-
-  public String getSoftwareName()
-  {
-    return this.softwareName;
-  }
-
-}
-
-/**
- * Environment publish release window.
- */
-public class PublishReleaseWindow
-  extends WindowPane
-{
-
-  private EnvironmentWindow parent;
-
-  private TextField baseLocationField;
-
-  private TextField applicationLocationField;
-
-  private LinkedList applicationCheckBoxes = new LinkedList();
-
-  private TextField archiveLocationField;
-
-  private LinkedList archiveCheckBoxes = new LinkedList();
-
-  private TextField configurationFileLocationField;
-
-  private LinkedList configurationFileCheckBoxes = new LinkedList();
-
-  private TextField sqlScriptLocationField;
-
-  private LinkedList sqlScriptCheckBoxes = new LinkedList();
-
-  private TextField softwareLocationField;
-
-  private LinkedList softwareCheckBoxes = new LinkedList();
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      PublishReleaseWindow.this.userClose();
-    }
-  };
-
-  // publish
-  private ActionListener publish = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // get the locations
-      String baseLocation = baseLocationField.getText();
-      String applicationLocation = applicationLocationField.getText();
-      String archiveLocation = archiveLocationField.getText();
-      String configurationFileLocation = configurationFileLocationField.getText();
-      String sqlScriptLocation = sqlScriptLocationField.getText();
-      String softwareLocation = softwareLocationField.getText();
-      // check the locations
-      if ( baseLocation == null || baseLocation.trim().length() < 1 || applicationLocation == null
-        || applicationLocation.trim().length() < 1 || archiveLocation == null || archiveLocation.trim().length() < 1
-        || configurationFileLocation == null || configurationFileLocation.trim().length() < 1
-        || sqlScriptLocation == null || sqlScriptLocation.trim().length() < 1 || softwareLocation == null
-        || softwareLocation.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "publish.mandatory" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // update the environment location
-      parent.getEnvironment().setReleaseLocation( baseLocation );
-      parent.setUpdated( true );
-      FileManipulator fileManipulator = null;
-      try
-      {
-        // init file manipulator
-        fileManipulator = new FileManipulator();
-        // iterate in the application checkboxes
-        for ( Iterator applicationCheckBoxIterator = applicationCheckBoxes.iterator();
-              applicationCheckBoxIterator.hasNext(); )
-        {
-          ApplicationCheckBox checkBox = (ApplicationCheckBox) applicationCheckBoxIterator.next();
-          if ( checkBox.isSelected() )
-          {
-            JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              checkBox.getServerName() ).getJEEApplication( checkBox.getApplicationName() );
-            String applicationUri =
-              VariableUtils.replace( application.getUri(), parent.getEnvironment().getVariables() );
-            FileObject file = fileManipulator.resolveFile( applicationUri );
-            String fileName = file.getName().getBaseName();
-            fileManipulator.copy( applicationUri, baseLocation + "/" + applicationLocation + "/" + fileName );
-          }
-        }
-        // iterate in the archive checkboxes
-        for ( Iterator archiveCheckBoxIterator = archiveCheckBoxes.iterator(); archiveCheckBoxIterator.hasNext(); )
-        {
-          ArchiveCheckBox checkBox = (ArchiveCheckBox) archiveCheckBoxIterator.next();
-          if ( checkBox.isSelected() )
-          {
-            JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              checkBox.getServerName() ).getJEEApplication( checkBox.getApplicationName() );
-            Archive archive = application.getArchive( checkBox.getArchiveName() );
-            String archiveUri;
-            if ( FileManipulator.protocolExists( archive.getUri() ) )
-            {
-              archiveUri = VariableUtils.replace( archive.getUri(), parent.getEnvironment().getVariables() );
-            }
-            else
-            {
-              archiveUri = FileManipulator.format(
-                VariableUtils.replace( application.getUri(), parent.getEnvironment().getVariables() ) + "!/"
-                  + VariableUtils.replace( archive.getUri(), parent.getEnvironment().getVariables() ) );
-            }
-            FileObject file = fileManipulator.resolveFile( archiveUri );
-            String fileName = file.getName().getBaseName();
-            fileManipulator.copy( archiveUri, baseLocation + "/" + archiveLocation + "/" + fileName );
-          }
-        }
-        // iterate in the configuration file checkboxes
-        for ( Iterator configurationFileCheckBoxIterator = configurationFileCheckBoxes.iterator();
-              configurationFileCheckBoxIterator.hasNext(); )
-        {
-          ConfigurationFileCheckBox checkBox = (ConfigurationFileCheckBox) configurationFileCheckBoxIterator.next();
-          if ( checkBox.isSelected() )
-          {
-            JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              checkBox.getServerName() ).getJEEApplication( checkBox.getApplicationName() );
-            ConfigurationFile configurationFile =
-              application.getConfigurationFile( checkBox.getConfigurationFileName() );
-            String configurationFileUri;
-            if ( FileManipulator.protocolExists( configurationFile.getUri() ) )
-            {
-              configurationFileUri =
-                VariableUtils.replace( configurationFile.getUri(), parent.getEnvironment().getVariables() );
-            }
-            else
-            {
-              configurationFileUri = FileManipulator.format(
-                VariableUtils.replace( application.getUri(), parent.getEnvironment().getVariables() ) + "!/"
-                  + VariableUtils.replace( configurationFile.getUri(), parent.getEnvironment().getVariables() ) );
-            }
-            fileManipulator.copy( configurationFileUri,
-                                  baseLocation + "/" + configurationFileLocation + "/" + configurationFile.getName() );
-          }
-        }
-        // iterate in the SQL script checkboxes
-        for ( Iterator sqlScriptCheckBoxIterator = sqlScriptCheckBoxes.iterator();
-              sqlScriptCheckBoxIterator.hasNext(); )
-        {
-          SqlScriptCheckBox checkBox = (SqlScriptCheckBox) sqlScriptCheckBoxIterator.next();
-          if ( checkBox.isSelected() )
-          {
-            JEEApplication application = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              checkBox.getServerName() ).getJEEApplication( checkBox.getApplicationName() );
-            Database database = application.getDatabase( checkBox.getDatabaseName() );
-            SqlScript sqlScript = database.getSqlScript( checkBox.getSqlScriptName() );
-            String sqlScriptUri;
-            if ( FileManipulator.protocolExists( sqlScript.getUri() ) )
-            {
-              sqlScriptUri = VariableUtils.replace( sqlScript.getUri(), parent.getEnvironment().getVariables() );
-            }
-            else
-            {
-              sqlScriptUri = FileManipulator.format(
-                VariableUtils.replace( application.getUri(), parent.getEnvironment().getVariables() ) + "!/"
-                  + VariableUtils.replace( sqlScript.getUri(), parent.getEnvironment().getVariables() ) );
-            }
-            fileManipulator.copy( sqlScriptUri, baseLocation + "/" + sqlScriptLocation + "/" + sqlScript.getName() );
-          }
-        }
-        // iterate in the external checkboxes
-        for ( Iterator externalCheckBoxIterator = softwareCheckBoxes.iterator(); externalCheckBoxIterator.hasNext(); )
-        {
-          SoftwareCheckBox checkBox = (SoftwareCheckBox) externalCheckBoxIterator.next();
-          if ( checkBox.isSelected() )
-          {
-            Software software = parent.getEnvironment().getSoftware( checkBox.getSoftwareName() );
-            String softwareUri = VariableUtils.replace( software.getUri(), parent.getEnvironment().getVariables() );
-            FileObject file = fileManipulator.resolveFile( softwareUri );
-            String fileName = file.getName().getBaseName();
-            fileManipulator.copy( softwareUri, baseLocation + "/" + softwareLocation + "/" + fileName );
-          }
-        }
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError(
-          Messages.getString( "release.error" ) + ": " + e.getMessage(), parent.getEnvironmentName() );
-        return;
-      }
-      finally
-      {
-        if ( fileManipulator != null )
-        {
-          fileManipulator.close();
-        }
-      }
-      KalumetConsoleApplication.getApplication().getLogPane().addConfirm( Messages.getString( "release.published" ) );
-    }
-  };
-
-  /**
-   * Create a new <code>PublishReleaseWindow</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public PublishReleaseWindow( EnvironmentWindow parent )
-  {
-    super();
-
-    // update parent
-    this.parent = parent;
-
-    setTitle( parent.getEnvironmentName() + " " + Messages.getString( "release" ) );
-    setId( "publishreleasewindow_" + parent.getEnvironmentName() );
-    setModal( false );
-    setStyleName( "default" );
-    setWidth( new Extent( 600 ) );
-    setHeight( new Extent( 600 ) );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control button
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-    // add the publish button
-    Button publishButton = new Button( Messages.getString( "publish" ), Styles.ACCEPT );
-    publishButton.setStyleName( "control" );
-    publishButton.addActionListener( publish );
-    controlRow.add( publishButton );
-
-    // create the main column
-    Column column = new Column();
-    column.setStyleName( "default" );
-    column.setCellSpacing( new Extent( 2 ) );
-    column.setInsets( new Insets( 2 ) );
-    splitPane.add( column );
-
-    // add base location
-    Label baseLocationLabel = new Label( Messages.getString( "release.location" ) );
-    column.add( baseLocationLabel );
-    baseLocationField = new TextField();
-    baseLocationField.setStyleName( "default" );
-    baseLocationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    baseLocationField.setText( parent.getEnvironment().getReleaseLocation() );
-    column.add( baseLocationField );
-
-    // add applications
-    Label applicationsHeader = new Label( Messages.getString( "applications" ) );
-    column.add( applicationsHeader );
-    // add applications location
-    applicationLocationField = new TextField();
-    applicationLocationField.setStyleName( "default" );
-    applicationLocationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    applicationLocationField.setText( "/applications" );
-    column.add( applicationLocationField );
-    // add applications checkbox
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      for ( Iterator applicationIterator = applicationServer.getJEEApplications().iterator();
-            applicationIterator.hasNext(); )
-      {
-        JEEApplication application = (JEEApplication) applicationIterator.next();
-        ApplicationCheckBox checkBox = new ApplicationCheckBox( applicationServer.getName(), application.getName() );
-        checkBox.setStyleName( "default" );
-        applicationCheckBoxes.add( checkBox );
-        column.add( checkBox );
-      }
-    }
-
-    // add archives
-    Label archivesHeader = new Label( Messages.getString( "archives" ) );
-    column.add( archivesHeader );
-    // add archives location
-    archiveLocationField = new TextField();
-    archiveLocationField.setStyleName( "default" );
-    archiveLocationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    archiveLocationField.setText( "/archives" );
-    column.add( archiveLocationField );
-    // add archives checkbox
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      for ( Iterator applicationIterator = applicationServer.getJEEApplications().iterator();
-            applicationIterator.hasNext(); )
-      {
-        JEEApplication application = (JEEApplication) applicationIterator.next();
-        for ( Iterator archiveIterator = application.getArchives().iterator(); archiveIterator.hasNext(); )
-        {
-          Archive archive = (Archive) archiveIterator.next();
-          ArchiveCheckBox checkBox =
-            new ArchiveCheckBox( applicationServer.getName(), application.getName(), archive.getName() );
-          checkBox.setStyleName( "default" );
-          archiveCheckBoxes.add( checkBox );
-          column.add( checkBox );
-        }
-      }
-    }
-
-    // add configuration files
-    Label configurationFilesHeader = new Label( Messages.getString( "configurationfiles" ) );
-    column.add( configurationFilesHeader );
-    // add configuration files location
-    configurationFileLocationField = new TextField();
-    configurationFileLocationField.setStyleName( "default" );
-    configurationFileLocationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    configurationFileLocationField.setText( "/config" );
-    column.add( configurationFileLocationField );
-    // add configuration files checkbox
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      for ( Iterator applicationIterator = applicationServer.getJEEApplications().iterator();
-            applicationIterator.hasNext(); )
-      {
-        JEEApplication application = (JEEApplication) applicationIterator.next();
-        for ( Iterator configurationFileIterator = application.getConfigurationFiles().iterator();
-              configurationFileIterator.hasNext(); )
-        {
-          ConfigurationFile configurationFile = (ConfigurationFile) configurationFileIterator.next();
-          ConfigurationFileCheckBox checkBox =
-            new ConfigurationFileCheckBox( applicationServer.getName(), application.getName(),
-                                           configurationFile.getName() );
-          checkBox.setStyleName( "default" );
-          configurationFileCheckBoxes.add( checkBox );
-          column.add( checkBox );
-        }
-      }
-    }
-
-    // add SQL scripts
-    Label sqlScriptsHeader = new Label( Messages.getString( "sql.scripts" ) );
-    column.add( sqlScriptsHeader );
-    // add SQL scripts location
-    sqlScriptLocationField = new TextField();
-    sqlScriptLocationField.setStyleName( "default" );
-    sqlScriptLocationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    sqlScriptLocationField.setText( "/sql" );
-    column.add( sqlScriptLocationField );
-    // add SQL scripts checkbox
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      for ( Iterator applicationIterator = applicationServer.getJEEApplications().iterator();
-            applicationIterator.hasNext(); )
-      {
-        JEEApplication application = (JEEApplication) applicationIterator.next();
-        for ( Iterator databaseIterator = application.getDatabases().iterator(); databaseIterator.hasNext(); )
-        {
-          Database database = (Database) databaseIterator.next();
-          for ( Iterator sqlScriptIterator = database.getSqlScripts().iterator(); sqlScriptIterator.hasNext(); )
-          {
-            SqlScript sqlScript = (SqlScript) sqlScriptIterator.next();
-            SqlScriptCheckBox checkBox =
-              new SqlScriptCheckBox( applicationServer.getName(), application.getName(), database.getName(),
-                                     sqlScript.getName() );
-            checkBox.setStyleName( "default" );
-            sqlScriptCheckBoxes.add( checkBox );
-            column.add( checkBox );
-          }
-        }
-      }
-    }
-
-    // add external softwares
-    Label softwaresHeader = new Label( Messages.getString( "softwares" ) );
-    column.add( softwaresHeader );
-    // add external softwares location
-    softwareLocationField = new TextField();
-    softwareLocationField.setStyleName( "default" );
-    softwareLocationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    softwareLocationField.setText( "/contrib" );
-    column.add( softwareLocationField );
-    // add software checkbox
-    for ( Iterator softwareIterator = parent.getEnvironment().getSoftwares().iterator(); softwareIterator.hasNext(); )
-    {
-      Software software = (Software) softwareIterator.next();
-      SoftwareCheckBox checkBox = new SoftwareCheckBox( software.getName() );
-      checkBox.setStyleName( "default" );
-      softwareCheckBoxes.add( checkBox );
-      column.add( checkBox );
-    }
-
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublisherWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublisherWindow.java
deleted file mode 100644
index 1cd56a3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublisherWindow.java
+++ /dev/null
@@ -1,653 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.model.Destination;
-import org.apache.kalumet.model.Email;
-
-import java.util.Iterator;
-
-/**
- * Email publisher window.
- */
-public class PublisherWindow
-  extends WindowPane
-{
-
-  private String mailhost;
-
-  private Email email;
-
-  private PublishersPane parent;
-
-  private TextField mailhostField;
-
-  private TextField fromField;
-
-  private Grid destinationsGrid;
-
-  private TextField newDestinationField;
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      PublisherWindow.this.userClose();
-    }
-  };
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the original email publisher object
-      email = parent.getEnvironmentWindow().getEnvironment().getPublisher( mailhost );
-      if ( email == null )
-      {
-        email = new Email();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the publisher email object
-            parent.getEnvironmentWindow().getEnvironment().getPublishers().remove( email );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete publisher " + email.getMailhost() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            PublisherWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String mailhostFieldValue = mailhostField.getText();
-      String fromFieldValue = fromField.getText();
-      // check fields
-      if ( mailhostFieldValue == null || mailhostFieldValue.trim().length() < 1 || fromFieldValue == null
-        || fromFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "publisher.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      if ( mailhost != null )
-      {
-        parent.getEnvironmentWindow().getChangeEvents().add( "Change publisher " + email.getMailhost() );
-      }
-      // update the email publisher object
-      email.setMailhost( mailhostFieldValue );
-      email.setFrom( fromFieldValue );
-      // add the email publisher object if needed
-      if ( mailhost == null )
-      {
-        try
-        {
-          parent.getEnvironmentWindow().getEnvironment().addPublisher( email );
-          parent.getEnvironmentWindow().getChangeEvents().add( "Add publisher " + email.getMailhost() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "publisher.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "publisher" ) + " " + email.getMailhost() );
-      setId( "publisherwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + email.getMailhost() );
-      mailhost = email.getMailhost();
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // delete destination
-  private ActionListener deleteDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the destination object
-      final Destination destination = email.getDestination( event.getActionCommand() );
-      if ( destination == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "destination.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the destination object
-            email.getDestinations().remove( destination );
-            // add a change event
-            parent.getEnvironmentWindow().getChangeEvents().add( "Delete destination " + destination.getAddress() );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // update the window
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit destination
-  private ActionListener editDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get field
-      TextField destinationAddressField = (TextField) PublisherWindow.this.getComponent(
-        "destination_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + mailhost + "_"
-          + event.getActionCommand() );
-      // get field value
-      String destinationAddressFieldValue = destinationAddressField.getText();
-      // check field value
-      if ( destinationAddressFieldValue == null || destinationAddressFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "destination.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the destination address, check if the address is
-      // not already in user
-      if ( !destinationAddressFieldValue.equals( event.getActionCommand() ) )
-      {
-        if ( email.getDestination( destinationAddressFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "destination.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the destination object
-      Destination destination = email.getDestination( event.getActionCommand() );
-      if ( destination == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "destination.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Change destination " + destination.getAddress() );
-      // update the destination object
-      destination.setAddress( destinationAddressFieldValue );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // add destination
-  private ActionListener addDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get field value
-      String newDestinationFieldValue = newDestinationField.getText();
-      // check field
-      if ( newDestinationFieldValue == null || newDestinationFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "destination.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create a new destination object
-      Destination destination = new Destination();
-      destination.setAddress( newDestinationFieldValue );
-      // add the destination
-      try
-      {
-        email.addDestination( destination );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "destination.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getEnvironmentWindow().getChangeEvents().add( "Add destination " + destination.getAddress() );
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( email.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check the copy object
-      if ( copy == null || !( copy instanceof Email ) )
-      {
-        return;
-      }
-      // update
-      email = (Email) copy;
-      mailhost = null;
-      // update the window
-      update();
-    }
-  };
-
-  // copy destination
-  private ActionListener copyDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the destination object
-      Destination destination = email.getDestination( event.getActionCommand() );
-      if ( destination == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( destination.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste destination
-  private ActionListener pasteDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check the copy object
-      if ( copy == null || !( copy instanceof Destination ) )
-      {
-        return;
-      }
-      // update the new fields
-      newDestinationField.setText( ( (Destination) copy ).getAddress() );
-    }
-  };
-
-  /**
-   * Create a new <code>PublisherWindow</code>.
-   *
-   * @param parent   the parent <code>PublishersPane</code>.
-   * @param mailhost the original mailhost.
-   */
-  public PublisherWindow( PublishersPane parent, String mailhost )
-  {
-    super();
-
-    // update the parent tab pane
-    this.parent = parent;
-
-    // update the email mailhost
-    this.mailhost = mailhost;
-
-    // update the email object from the parent environment
-    this.email = parent.getEnvironmentWindow().getEnvironment().getPublisher( mailhost );
-    if ( this.email == null )
-    {
-      this.email = new Email();
-    }
-
-    if ( mailhost == null )
-    {
-      setTitle( Messages.getString( "publisher" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "publisher" ) + " " + mailhost );
-    }
-    setId( "publisherwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + mailhost );
-    setStyleName( "default" );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control button
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "default" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // mailhost
-    Label emailMailhostLabel = new Label( Messages.getString( "mailhost" ) );
-    emailMailhostLabel.setStyleName( "default" );
-    generalLayoutGrid.add( emailMailhostLabel );
-    mailhostField = new TextField();
-    mailhostField.setStyleName( "default" );
-    mailhostField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( mailhostField );
-    Label emailFromLabel = new Label( Messages.getString( "from" ) );
-    emailFromLabel.setStyleName( "default" );
-    generalLayoutGrid.add( emailFromLabel );
-    fromField = new TextField();
-    fromField.setStyleName( "default" );
-    fromField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( fromField );
-
-    // add the destinations tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "destinations" ) );
-    ContentPane destinationsTabPane = new ContentPane();
-    destinationsTabPane.setStyleName( "default" );
-    destinationsTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( destinationsTabPane );
-    destinationsGrid = new Grid( 2 );
-    destinationsGrid.setStyleName( "border.grid" );
-    destinationsTabPane.add( destinationsGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // update the email mailhost field
-    mailhostField.setText( email.getMailhost() );
-    // update the email from field
-    fromField.setText( email.getFrom() );
-    // update the destinations grid
-    // remove all destinations grid children
-    destinationsGrid.removeAll();
-    // add destinations grid header
-    Label actionHeader = new Label( "" );
-    actionHeader.setStyleName( "grid.header" );
-    destinationsGrid.add( actionHeader );
-    Label destinationAddressHeader = new Label( Messages.getString( "address" ) );
-    destinationAddressHeader.setStyleName( "grid.header" );
-    destinationsGrid.add( destinationAddressHeader );
-    // add the destinations e-mails
-    for ( Iterator destinationIterator = email.getDestinations().iterator(); destinationIterator.hasNext(); )
-    {
-      Destination destination = (Destination) destinationIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      destinationsGrid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setActionCommand( destination.getAddress() );
-      copyButton.addActionListener( copyDestination );
-      row.add( copyButton );
-      if ( getEnvironmentWindow().adminPermission )
-      {
-        // edit button
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setActionCommand( destination.getAddress() );
-        editButton.addActionListener( editDestination );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setActionCommand( destination.getAddress() );
-        deleteButton.addActionListener( deleteDestination );
-        row.add( deleteButton );
-      }
-      // destination
-      TextField destinationField = new TextField();
-      destinationField.setId( "destination_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + mailhost + "_"
-                                + destination.getAddress() );
-      destinationField.setStyleName( "default" );
-      destinationField.setText( destination.getAddress() );
-      destinationsGrid.add( destinationField );
-    }
-    // add create destination row in the destinations grid
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      destinationsGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.addActionListener( pasteDestination );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.addActionListener( addDestination );
-      row.add( addButton );
-      // destination
-      newDestinationField = new TextField();
-      newDestinationField.setStyleName( "default" );
-      destinationsGrid.add( newDestinationField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublishersPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublishersPane.java
deleted file mode 100644
index 1fe37a6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/PublishersPane.java
+++ /dev/null
@@ -1,579 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.model.Destination;
-import org.apache.kalumet.model.Email;
-
-import java.util.Iterator;
-
-/**
- * Environment publishers pane.
- */
-public class PublishersPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField scopeField;
-
-  private Grid grid;
-
-  private TextField newDestinationField;
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // edit destination
-  private ActionListener editDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the destination address
-      String address = event.getActionCommand();
-      // get field
-      TextField addressField = (TextField) PublishersPane.this.getComponent(
-        "publisherdestination_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_"
-          + address );
-      String addressFieldValue = addressField.getText();
-      // check the field value
-      if ( addressFieldValue == null || addressFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "publisher.destination.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the destination address, check if the address is
-      // not already in use
-      if ( !address.equals( addressFieldValue ) )
-      {
-        if ( parent.getEnvironment().getPublisher( (String) scopeField.getSelectedItem() ).getDestination(
-          addressFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "publisher.destination.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the destination object
-      Destination destination =
-        parent.getEnvironment().getPublisher( (String) scopeField.getSelectedItem() ).getDestination( address );
-      if ( destination == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "publisher.destination.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change publisher destination to " + destination.getAddress() );
-      // update the destination object
-      destination.setAddress( addressFieldValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // create destination
-  private ActionListener createDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the new destination address field value
-      String newAddressFieldValue = newDestinationField.getText();
-      // check mandatory field
-      if ( newAddressFieldValue == null || newAddressFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "publisher.destination.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create a new destination object
-      Destination destination = new Destination();
-      destination.setAddress( newAddressFieldValue );
-      // add the destination
-      try
-      {
-        parent.getEnvironment().getPublisher( (String) scopeField.getSelectedItem() ).addDestination( destination );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "publisher.destination.exists" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Add publisher destination " + destination.getAddress() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the tab
-      update();
-    }
-  };
-
-  // delete destination
-  private ActionListener deleteDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the destination address
-      String address = event.getActionCommand();
-      // looking for the destination object
-      final Destination destination =
-        parent.getEnvironment().getPublisher( (String) scopeField.getSelectedItem() ).getDestination( address );
-      if ( destination == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "publisher.destination.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the destination
-            parent.getEnvironment().getPublisher( (String) scopeField.getSelectedItem() ).getDestinations().remove(
-              destination );
-            // add a change event
-            parent.getChangeEvents().add( "Delete publisher destination " + destination.getAddress() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update the tab
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // delete publisher
-  private ActionListener deletePublisher = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the publisher object
-      final Email publisher = parent.getEnvironment().getPublisher( (String) scopeField.getSelectedItem() );
-      if ( publisher == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "publisher.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the publisher object
-            parent.getEnvironment().getPublishers().remove( publisher );
-            // add a change event
-            parent.getChangeEvents().add( "Delete publisher " + publisher.getMailhost() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal
-            parent.updateJournalPane();
-            // update this pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit publisher
-  private ActionListener editPublisher = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "publisherwindow_" + parent.getEnvironmentName() + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new PublisherWindow( PublishersPane.this, (String) scopeField.getSelectedItem() ) );
-      }
-    }
-  };
-
-  // create publisher
-  private ActionListener createPublisher = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new PublisherWindow( PublishersPane.this, null ) );
-    }
-  };
-
-  // copy publisher
-  private ActionListener copyPublisher = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the publisher
-      Email publisher = parent.getEnvironment().getPublisher( (String) scopeField.getSelectedItem() );
-      if ( publisher == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( publisher.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // copy destination
-  private ActionListener copyDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the destination object
-      Destination destination =
-        parent.getEnvironment().getPublisher( (String) scopeField.getSelectedItem() ).getDestination(
-          event.getActionCommand() );
-      if ( destination == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( destination.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste destination
-  private ActionListener pasteDestination = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check the copy object
-      if ( copy == null || !( copy instanceof Destination ) )
-      {
-        return;
-      }
-      // update the new field
-      newDestinationField.setText( ( (Destination) copy ).getAddress() );
-    }
-  };
-
-  /**
-   * Create a new <code>PublishersPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public PublishersPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setInsets( new Insets( 2 ) );
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // scope row
-    Row scopeRow = new Row();
-    scopeRow.setInsets( new Insets( 2 ) );
-    scopeRow.setCellSpacing( new Extent( 2 ) );
-    content.add( scopeRow );
-    // scope select field
-    scopeField = new SelectField();
-    scopeField.setStyleName( "default" );
-    scopeField.setWidth( new Extent( 50, Extent.EX ) );
-    scopeField.addActionListener( scopeSelect );
-    scopeRow.add( scopeField );
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    scopeListModel.removeAll();
-    // add publishers in the scope select field
-    for ( Iterator publisherIterator = parent.getEnvironment().getPublishers().iterator();
-          publisherIterator.hasNext(); )
-    {
-      Email email = (Email) publisherIterator.next();
-      scopeListModel.add( email.getMailhost() );
-    }
-    if ( scopeListModel.size() > 0 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    // copy publisher button
-    Button copyPublisherButton = new Button( Styles.PAGE_COPY );
-    copyPublisherButton.setToolTipText( Messages.getString( "copy" ) );
-    copyPublisherButton.addActionListener( copyPublisher );
-    scopeRow.add( copyPublisherButton );
-    // edit publisher
-    Button editPublisherButton = new Button( Styles.ACCEPT );
-    editPublisherButton.setToolTipText( Messages.getString( "edit" ) );
-    editPublisherButton.addActionListener( editPublisher );
-    scopeRow.add( editPublisherButton );
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // delete
-      Button deletePublisherButton = new Button( Styles.DELETE );
-      deletePublisherButton.setToolTipText( Messages.getString( "delete" ) );
-      deletePublisherButton.addActionListener( deletePublisher );
-      scopeRow.add( deletePublisherButton );
-      // create publisher
-      Button createPublisherButton = new Button( Styles.ADD );
-      createPublisherButton.setToolTipText( Messages.getString( "publisher.add" ) );
-      createPublisherButton.addActionListener( createPublisher );
-      scopeRow.add( createPublisherButton );
-    }
-
-    // add the destinations grid
-    grid = new Grid( 2 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 100, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // update the scope select field
-    String publisherMailhost = null;
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      publisherMailhost = (String) scopeField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int scopeIndex = 0;
-    int found = -1;
-    for ( Iterator publisherIterator = parent.getEnvironment().getPublishers().iterator();
-          publisherIterator.hasNext(); )
-    {
-      Email publisher = (Email) publisherIterator.next();
-      scopeListModel.add( publisher.getMailhost() );
-      if ( publisher.getMailhost().equals( publisherMailhost ) )
-      {
-        found = scopeIndex;
-      }
-      scopeIndex++;
-    }
-
-    // remove all destinations grid children
-    grid.removeAll();
-    // check if at least one publisher is present
-    if ( scopeListModel.size() < 1 )
-    {
-      return;
-    }
-    // update the scope index
-    if ( found == -1 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeField.setSelectedIndex( found );
-    }
-    // update the publisher mailhost from the scope field (in case of deletion)
-    publisherMailhost = (String) scopeField.getSelectedItem();
-
-    // add destinations grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label destinationHeader = new Label( Messages.getString( "destination" ) );
-    destinationHeader.setStyleName( "grid.header" );
-    grid.add( destinationHeader );
-    // add the destinations e-mails
-    for ( Iterator destinationIterator =
-            parent.getEnvironment().getPublisher( publisherMailhost ).getDestinations().iterator();
-          destinationIterator.hasNext(); )
-    {
-      Destination destination = (Destination) destinationIterator.next();
-      // row
-      Row row = new Row();
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setActionCommand( destination.getAddress() );
-      copyButton.addActionListener( copyDestination );
-      row.add( copyButton );
-      if ( getEnvironmentWindow().adminPermission )
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( destination.getAddress() );
-        editButton.addActionListener( editDestination );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( destination.getAddress() );
-        deleteButton.addActionListener( deleteDestination );
-        row.add( deleteButton );
-      }
-      // destination
-      TextField destinationAddress = new TextField();
-      destinationAddress.setId( "publisherdestination_" + parent.getEnvironmentName() + "_" + publisherMailhost + "_"
-                                  + destination.getAddress() );
-      destinationAddress.setText( destination.getAddress() );
-      destinationAddress.setStyleName( "default" );
-      destinationAddress.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( destinationAddress );
-    }
-
-    // add create destination row in the destinations grid
-    if ( getEnvironmentWindow().adminPermission )
-    {
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteDestination );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "destination.add" ) );
-      addButton.addActionListener( createDestination );
-      row.add( addButton );
-      // destination
-      newDestinationField = new TextField();
-      newDestinationField.setStyleName( "default" );
-      newDestinationField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newDestinationField );
-    }
-  }
-
-  /**
-   * Return the parent <code>EnvironmentWindow</code>.
-   *
-   * @return the parent <code>EnvironmentWindow</code>.
-   */
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SecurityPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SecurityPane.java
deleted file mode 100644
index bd80990..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SecurityPane.java
+++ /dev/null
@@ -1,1306 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Access;
-import org.apache.kalumet.model.Group;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Property;
-
-import java.util.Iterator;
-
-/**
- * Environment security pane.
- */
-public class SecurityPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private Grid accessesGrid;
-
-  private SelectField groupField;
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group id
-      String groupId = (String) groupField.getSelectedItem();
-      if ( groupId == null || groupId.trim().length() < 1 )
-      {
-        return;
-      }
-      // create the access
-      Access access = new Access();
-      access.setGroup( groupId );
-      // admin
-      Property property = new Property();
-      property.setName( "admin" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // update
-      property = new Property();
-      property.setName( "update" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // JEE servers
-      property = new Property();
-      property.setName( "jee_application_servers_change" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // JEE servers update
-      property = new Property();
-      property.setName( "jee_application_servers_update" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // JEE servers control
-      property = new Property();
-      property.setName( "jee_application_servers_control" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // JEE resources
-      property = new Property();
-      property.setName( "jee_resources_change" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // JEE resources update
-      property = new Property();
-      property.setName( "jee_resources_update" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // JEE applications
-      property = new Property();
-      property.setName( "jee_applications_change" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // JEE applications update
-      property = new Property();
-      property.setName( "jee_applications_update" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // softwares
-      property = new Property();
-      property.setName( "software_change" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // softwares update
-      property = new Property();
-      property.setName( "software_update" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // release
-      property = new Property();
-      property.setName( "release" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // shell
-      property = new Property();
-      property.setName( "shell" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // browser
-      property = new Property();
-      property.setName( "browser" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // homepage
-      property = new Property();
-      property.setName( "homepage" );
-      property.setValue( "false" );
-      access.getProperties().add( property );
-      // add the access
-      try
-      {
-        parent.getEnvironment().addAccess( access );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "access.exists" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Add ACLs for group " + groupId + "." );
-      // change the update flag
-      parent.setUpdated( true );
-      // update the journal
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      String groupId = event.getActionCommand();
-      // looking for the access object
-      final Access access = parent.getEnvironment().getAccess( groupId );
-      if ( access == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "access.notfound" ) );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            parent.getEnvironment().getAccesses().remove( access );
-            // add a change event
-            parent.getChangeEvents().add( "Delete ACLs for group " + access.getGroup() + "." );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update only the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // switch admin
-  private ActionListener switchAdmin = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "admin" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "admin" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "admin" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch update
-  private ActionListener switchUpdate = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "update" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "update" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "update" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch JEE application servers
-  private ActionListener switchJeeServers = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "jee_servers" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "jee_servers" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "jee_servers" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch JEE servers update
-  private ActionListener switchJeeServersUpdate = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "jee_servers_update" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "jee_servers_update" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "jee_servers_update" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch JEE servers control
-  private ActionListener switchJeeServersControl = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "jee_servers_control" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "jee_servers_control" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "jee_servers_control" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch JEE resources
-  private ActionListener switchJeeResources = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "jee_resources" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "jee_resources" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "jee_resources" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch JEE resources update
-  private ActionListener switchJeeResourcesUpdate = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "jee_resources_update" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "jee_resources_update" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "jee_resources_update" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch JEE applications
-  private ActionListener switchJeeApplications = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "jee_applications" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "jee_applications" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "jee_applications" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch JEE applications update
-  private ActionListener switchJeeApplicationsUpdate = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "jee_applications_update" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "jee_applications_update" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "jee_applications_update" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch softwares
-  private ActionListener switchSoftwares = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "softwares" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "softwares" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "softwares" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch softwares update
-  private ActionListener switchSoftwaresUpdate = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "software_update" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "software_update" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "software_update" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch release
-  private ActionListener switchRelease = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "release" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "release" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "release" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch shell
-  private ActionListener switchShell = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "shell" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "shell" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "shell" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch browser
-  private ActionListener switchBrowser = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "browser" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "browser" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "browser" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  // switch homepage
-  private ActionListener switchHomepage = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !parent.adminPermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            parent.getEnvironmentName() );
-        return;
-      }
-      // get the group access
-      Access access = parent.getEnvironment().getAccess( event.getActionCommand() );
-      if ( access == null )
-      {
-        return;
-      }
-      // switch admin ACL
-      if ( access.getProperty( "homepage" ).getValue().equals( "true" ) )
-      {
-        access.getProperty( "homepage" ).setValue( "false" );
-      }
-      else
-      {
-        access.getProperty( "homepage" ).setValue( "true" );
-      }
-      // change the update flag
-      parent.setUpdated( true );
-      // update the panel
-      update();
-    }
-  };
-
-  /**
-   * Create a new <code>SecurityPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public SecurityPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column columnLayout = new Column();
-    columnLayout.setStyleName( "default" );
-    columnLayout.setCellSpacing( new Extent( 2 ) );
-    columnLayout.setInsets( new Insets( 2 ) );
-    add( columnLayout );
-
-    if ( parent.adminPermission )
-    {
-      // add group
-      Row groupRow = new Row();
-      columnLayout.add( groupRow );
-      // add the select field
-      Kalumet kalumet;
-      try
-      {
-        kalumet = ConfigurationManager.loadStore();
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addError( Messages.getString( "kalumet.read" ),
-                                                                          parent.getEnvironmentName() );
-        return;
-      }
-      groupField = new SelectField();
-      DefaultListModel model = (DefaultListModel) groupField.getModel();
-      for ( Iterator groupIterator = kalumet.getSecurity().getGroups().iterator(); groupIterator.hasNext(); )
-      {
-        Group group = (Group) groupIterator.next();
-        model.add( group.getId() );
-      }
-      groupField.setStyleName( "default" );
-      groupField.setWidth( new Extent( 50, Extent.EX ) );
-      groupRow.add( groupField );
-      // add the add button
-      Button addButton = new Button( Styles.ADD );
-      addButton.setStyleName( "default" );
-      addButton.addActionListener( create );
-      groupRow.add( addButton );
-    }
-
-    // add accesses grid
-    accessesGrid = new Grid( 17 );
-    accessesGrid.setStyleName( "border.grid" );
-    // actions
-    accessesGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    // group id
-    // admin permission
-    // update permission
-    // JEE servers permission
-    // JEE servers update permission
-    // JEE servers control permission
-    // JEE resources permission
-    // JEE resources update permission
-    // JEE applications permission
-    // JEE applications update permission
-    // softwares permission
-    // softwares update permission
-    // release permission
-    // shell permission
-    // browser permission
-    // homepage permission
-    columnLayout.add( accessesGrid );
-
-    // update
-    update();
-  }
-
-  /**
-   * <p>
-   * Update the pane.
-   * </p>
-   */
-  public void update()
-  {
-    // update the accesses grid
-    // remove all grid children
-    accessesGrid.removeAll();
-    // add grid headers
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    accessesGrid.add( actionHeader );
-    // group Id header
-    Label accessGroupHeader = new Label( Messages.getString( "group" ) );
-    accessGroupHeader.setStyleName( "grid.header" );
-    accessesGrid.add( accessGroupHeader );
-    // admin permission header
-    Label adminPermHeader = new Label( "A" );
-    adminPermHeader.setToolTipText( Messages.getString( "permission.admin" ) );
-    adminPermHeader.setStyleName( "grid.header" );
-    accessesGrid.add( adminPermHeader );
-    // update permission header
-    Label updatePermHeader = new Label( "U" );
-    updatePermHeader.setToolTipText( Messages.getString( "permission.update" ) );
-    updatePermHeader.setStyleName( "grid.header" );
-    accessesGrid.add( updatePermHeader );
-    // JEE servers permission
-    Label jeeServersPermHeader = new Label( "JS" );
-    jeeServersPermHeader.setToolTipText( Messages.getString( "permission.jeeservers" ) );
-    jeeServersPermHeader.setStyleName( "grid.header" );
-    accessesGrid.add( jeeServersPermHeader );
-    // JEE servers update permission
-    Label jeeServersUpdateHeader = new Label( "JSU" );
-    jeeServersUpdateHeader.setToolTipText( Messages.getString( "permission.jeeserversupdate" ) );
-    jeeServersUpdateHeader.setStyleName( "grid.header" );
-    accessesGrid.add( jeeServersUpdateHeader );
-    // JEE servers control permission
-    Label jeeServersControlHeader = new Label( "JSC" );
-    jeeServersControlHeader.setToolTipText( Messages.getString( "permission.jeeserverscontrol" ) );
-    jeeServersControlHeader.setStyleName( "grid.header" );
-    accessesGrid.add( jeeServersControlHeader );
-    // JEE resources permission
-    Label jeeResourcesHeader = new Label( "JR" );
-    jeeResourcesHeader.setToolTipText( Messages.getString( "permission.jeeresources" ) );
-    jeeResourcesHeader.setStyleName( "grid.header" );
-    accessesGrid.add( jeeResourcesHeader );
-    // JEE resources update permission
-    Label jeeResourcesUpdateHeader = new Label( "JRU" );
-    jeeResourcesUpdateHeader.setToolTipText( Messages.getString( "permission.jeeresourcesupdate" ) );
-    jeeResourcesUpdateHeader.setStyleName( "grid.header" );
-    accessesGrid.add( jeeResourcesUpdateHeader );
-    // JEE applications permission
-    Label jeeApplicationsHeader = new Label( "JA" );
-    jeeApplicationsHeader.setToolTipText( Messages.getString( "permission.jeeapplications" ) );
-    jeeApplicationsHeader.setStyleName( "grid.header" );
-    accessesGrid.add( jeeApplicationsHeader );
-    // JEE applications update permission
-    Label jeeApplicationsUpdateHeader = new Label( "JAU" );
-    jeeApplicationsUpdateHeader.setToolTipText( Messages.getString( "permission.jeeapplicationsupdate" ) );
-    jeeApplicationsUpdateHeader.setStyleName( "grid.header" );
-    accessesGrid.add( jeeApplicationsUpdateHeader );
-    // softwares permission
-    Label softwaresHeader = new Label( "S" );
-    softwaresHeader.setToolTipText( Messages.getString( "permission.softwares" ) );
-    softwaresHeader.setStyleName( "grid.header" );
-    accessesGrid.add( softwaresHeader );
-    // softwares update permission
-    Label softwaresUpdateHeader = new Label( "SU" );
-    softwaresUpdateHeader.setToolTipText( Messages.getString( "permission.softwaresupdate" ) );
-    softwaresUpdateHeader.setStyleName( "grid.header" );
-    accessesGrid.add( softwaresUpdateHeader );
-    // release permission
-    Label releaseHeader = new Label( "Re" );
-    releaseHeader.setToolTipText( Messages.getString( "permission.release" ) );
-    releaseHeader.setStyleName( "grid.header" );
-    accessesGrid.add( releaseHeader );
-    // shell permission
-    Label shellHeader = new Label( "Sh" );
-    shellHeader.setToolTipText( Messages.getString( "permission.shell" ) );
-    shellHeader.setStyleName( "grid.header" );
-    accessesGrid.add( shellHeader );
-    // browser permission
-    Label browserHeader = new Label( "Br" );
-    browserHeader.setToolTipText( Messages.getString( "permission.browser" ) );
-    browserHeader.setStyleName( "grid.header" );
-    accessesGrid.add( browserHeader );
-    // homepage permission
-    Label homepageHeader = new Label( "Ho" );
-    homepageHeader.setToolTipText( Messages.getString( "permission.homepage" ) );
-    homepageHeader.setStyleName( "grid.header" );
-    accessesGrid.add( homepageHeader );
-    // load Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-    for ( Iterator accessIterator = parent.getEnvironment().getAccesses().iterator(); accessIterator.hasNext(); )
-    {
-      Access access = (Access) accessIterator.next();
-      // access group and action
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      accessesGrid.add( row );
-      if ( parent.adminPermission )
-      {
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( access.getGroup() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // group
-      Label group = new Label( access.getGroup() );
-      group.setStyleName( "default" );
-      accessesGrid.add( group );
-      // admin permission
-      Button adminButton;
-      if ( access.getProperty( "admin" ).getValue().equals( "true" ) )
-      {
-        adminButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        adminButton = new Button( Styles.DELETE );
-      }
-      adminButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        adminButton.setActionCommand( access.getGroup() );
-        adminButton.addActionListener( switchAdmin );
-      }
-      accessesGrid.add( adminButton );
-      // update permission
-      Button updateButton;
-      if ( access.getProperty( "update" ).getValue().equals( "true" ) )
-      {
-        updateButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        updateButton = new Button( Styles.DELETE );
-      }
-      updateButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        updateButton.setActionCommand( access.getGroup() );
-        updateButton.addActionListener( switchUpdate );
-      }
-      accessesGrid.add( updateButton );
-      // JEE servers permission
-      Button jeeServersButton;
-      if ( access.getProperty( "jee_servers" ).getValue().equals( "true" ) )
-      {
-        jeeServersButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        jeeServersButton = new Button( Styles.DELETE );
-      }
-      jeeServersButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        jeeServersButton.setActionCommand( access.getGroup() );
-        jeeServersButton.addActionListener( switchJeeServers );
-      }
-      accessesGrid.add( jeeServersButton );
-      // JEE servers update permission
-      Button jeeServersUpdateButton;
-      if ( access.getProperty( "jee_servers_update" ).getValue().equals( "true" ) )
-      {
-        jeeServersUpdateButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        jeeServersUpdateButton = new Button( Styles.DELETE );
-      }
-      jeeServersUpdateButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        jeeServersUpdateButton.setActionCommand( access.getGroup() );
-        jeeServersUpdateButton.addActionListener( switchJeeServersUpdate );
-      }
-      accessesGrid.add( jeeServersUpdateButton );
-      // JEE servers control permission
-      Button jeeServersControlButton;
-      if ( access.getProperty( "jee_servers_control" ).getValue().equals( "true" ) )
-      {
-        jeeServersControlButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        jeeServersControlButton = new Button( Styles.DELETE );
-      }
-      jeeServersControlButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        jeeServersControlButton.setActionCommand( access.getGroup() );
-        jeeServersControlButton.addActionListener( switchJeeServersControl );
-      }
-      accessesGrid.add( jeeServersControlButton );
-      // JEE resources permission
-      Button jeeResourcesButton;
-      if ( access.getProperty( "jee_resources" ).getValue().equals( "true" ) )
-      {
-        jeeResourcesButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        jeeResourcesButton = new Button( Styles.DELETE );
-      }
-      jeeResourcesButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        jeeResourcesButton.setActionCommand( access.getGroup() );
-        jeeResourcesButton.addActionListener( switchJeeResources );
-      }
-      accessesGrid.add( jeeResourcesButton );
-      // JEE resources update permission
-      Button jeeResourcesUpdateButton;
-      if ( access.getProperty( "jee_resources_update" ).getValue().equals( "true" ) )
-      {
-        jeeResourcesUpdateButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        jeeResourcesUpdateButton = new Button( Styles.DELETE );
-      }
-      jeeResourcesUpdateButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        jeeResourcesUpdateButton.setActionCommand( access.getGroup() );
-        jeeResourcesUpdateButton.addActionListener( switchJeeResourcesUpdate );
-      }
-      accessesGrid.add( jeeResourcesUpdateButton );
-      // JEE applications permission
-      Button jeeApplicationsButton;
-      if ( access.getProperty( "jee_applications" ).getValue().equals( "true" ) )
-      {
-        jeeApplicationsButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        jeeApplicationsButton = new Button( Styles.DELETE );
-      }
-      jeeApplicationsButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        jeeApplicationsButton.setActionCommand( access.getGroup() );
-        jeeApplicationsButton.addActionListener( switchJeeApplications );
-      }
-      accessesGrid.add( jeeApplicationsButton );
-      // JEE applications update permission
-      Button jeeApplicationsUpdateButton;
-      if ( access.getProperty( "jee_applications_update" ).getValue().equals( "true" ) )
-      {
-        jeeApplicationsUpdateButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        jeeApplicationsUpdateButton = new Button( Styles.DELETE );
-      }
-      jeeApplicationsUpdateButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        jeeApplicationsUpdateButton.setActionCommand( access.getGroup() );
-        jeeApplicationsUpdateButton.addActionListener( switchJeeApplicationsUpdate );
-      }
-      accessesGrid.add( jeeApplicationsUpdateButton );
-      // softwares permission
-      Button softwaresButton;
-      if ( access.getProperty( "softwares" ).getValue().equals( "true" ) )
-      {
-        softwaresButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        softwaresButton = new Button( Styles.DELETE );
-      }
-      softwaresButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        softwaresButton.setActionCommand( access.getGroup() );
-        softwaresButton.addActionListener( switchSoftwares );
-      }
-      accessesGrid.add( softwaresButton );
-      // softwares update permission
-      Button softwaresUpdateButton;
-      if ( access.getProperty( "softwares_update" ).getValue().equals( "true" ) )
-      {
-        softwaresUpdateButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        softwaresUpdateButton = new Button( Styles.DELETE );
-      }
-      softwaresUpdateButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        softwaresUpdateButton.setActionCommand( access.getGroup() );
-        softwaresUpdateButton.addActionListener( switchSoftwaresUpdate );
-      }
-      accessesGrid.add( softwaresUpdateButton );
-      // release permission
-      Button releaseButton;
-      if ( access.getProperty( "release" ).getValue().equals( "true" ) )
-      {
-        releaseButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        releaseButton = new Button( Styles.DELETE );
-      }
-      releaseButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        releaseButton.setActionCommand( access.getGroup() );
-        releaseButton.addActionListener( switchRelease );
-      }
-      accessesGrid.add( releaseButton );
-      // shell permission
-      Button shellButton;
-      if ( access.getProperty( "shell" ).getValue().equals( "true" ) )
-      {
-        shellButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        shellButton = new Button( Styles.DELETE );
-      }
-      shellButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        shellButton.setActionCommand( access.getGroup() );
-        shellButton.addActionListener( switchShell );
-      }
-      accessesGrid.add( shellButton );
-      // browser permission
-      Button browserButton;
-      if ( access.getProperty( "browser" ).getValue().equals( "true" ) )
-      {
-        browserButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        browserButton = new Button( Styles.DELETE );
-      }
-      browserButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        browserButton.setActionCommand( access.getGroup() );
-        browserButton.addActionListener( switchBrowser );
-      }
-      accessesGrid.add( browserButton );
-      // homepage permission
-      Button homepageButton;
-      if ( access.getProperty( "homepage" ).getValue().equals( "true" ) )
-      {
-        homepageButton = new Button( Styles.ACCEPT );
-      }
-      else
-      {
-        homepageButton = new Button( Styles.DELETE );
-      }
-      homepageButton.setStyleName( "default" );
-      if ( parent.adminPermission )
-      {
-        homepageButton.setActionCommand( access.getGroup() );
-        homepageButton.addActionListener( switchHomepage );
-      }
-      accessesGrid.add( homepageButton );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SharedLibrariesPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SharedLibrariesPane.java
deleted file mode 100644
index 46322c1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SharedLibrariesPane.java
+++ /dev/null
@@ -1,947 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.SharedLibrary;
-import org.apache.kalumet.ws.client.SharedLibraryClient;
-
-import java.util.Iterator;
-
-/**
- * Environment shared libraries pane.
- */
-public class SharedLibrariesPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private SelectField scopeField;
-
-  private Grid grid;
-
-  private boolean newIsActive = true;
-
-  private boolean newIsBlocker = false;
-
-  private TextField newNameField;
-
-  private TextField newClasspathField;
-
-  // status thread
-  class StatusThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String sharedLibraryName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice stub
-        SharedLibraryClient client = new SharedLibraryClient( agent.getHostname(), agent.getPort() );
-        boolean uptodate = client.check( parent.getEnvironmentName(), serverName, sharedLibraryName );
-        if ( uptodate )
-        {
-          message = "Shared library " + sharedLibraryName + " is up to date.";
-        }
-        else
-        {
-          failure = true;
-          message = "Shared library " + sharedLibraryName + " is not up to date";
-        }
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Shared library " + sharedLibraryName + " status check failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String serverName;
-
-    public String sharedLibraryName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the webservice stub
-        SharedLibraryClient client = new SharedLibraryClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), serverName, sharedLibraryName );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Shared library " + sharedLibraryName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // scope select
-  private ActionListener scopeSelect = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the shared library object
-      SharedLibrary sharedLibrary = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getSharedLibrary( event.getActionCommand() );
-      if ( sharedLibrary == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sharedlibrary.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // update the state
-      if ( sharedLibrary.isActive() )
-      {
-        sharedLibrary.setActive( false );
-        // add a change event
-        parent.getChangeEvents().add( "Disable shared library " + sharedLibrary.getName() );
-      }
-      else
-      {
-        sharedLibrary.setActive( true );
-        parent.getChangeEvents().add( "Enable shared library " + sharedLibrary.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the shared library object
-      SharedLibrary sharedLibrary = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getSharedLibrary( event.getActionCommand() );
-      if ( sharedLibrary == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sharedlibrary.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // update the blocker state and add a change event
-      if ( sharedLibrary.isBlocker() )
-      {
-        sharedLibrary.setBlocker( false );
-        parent.getChangeEvents().add( "Set not blocker for shared library " + sharedLibrary.getName() );
-      }
-      else
-      {
-        sharedLibrary.setBlocker( true );
-        parent.getChangeEvents().add( "Set blocker for shared library " + sharedLibrary.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // new toggle active
-  private ActionListener newToggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // toggle the state
-      if ( newIsActive )
-      {
-        newIsActive = false;
-      }
-      else
-      {
-        newIsActive = true;
-      }
-      // update the pane
-      update();
-    }
-  };
-
-  // new toggle blocker
-  private ActionListener newToggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // toggle the blocker state
-      if ( newIsBlocker )
-      {
-        newIsBlocker = false;
-      }
-      else
-      {
-        newIsBlocker = true;
-      }
-      // update the pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the shared library
-      final SharedLibrary sharedLibrary = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getSharedLibrary( event.getActionCommand() );
-      if ( sharedLibrary == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sharedlibrary.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // remove the shared library
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-              (String) scopeField.getSelectedItem() ).getSharedLibraries().remove( sharedLibrary );
-            // add a change event
-            parent.getChangeEvents().add( "Delete shared library " + sharedLibrary.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the journal log tab pane
-            parent.updateJournalPane();
-            // update only the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the shared library name
-      String name = event.getActionCommand();
-      // get the fields
-      TextField nameField = (TextField) SharedLibrariesPane.this.getComponent(
-        "slname_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      TextField classpathField = (TextField) SharedLibrariesPane.this.getComponent(
-        "slclasspath_" + parent.getEnvironmentName() + "_" + (String) scopeField.getSelectedItem() + "_" + name );
-      // get values
-      String nameFieldValue = nameField.getText();
-      String classpathFieldValue = classpathField.getText();
-      // check values
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || classpathFieldValue == null
-        || classpathFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sharedlibrary.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the shared library name, check if the shared
-      // library name is not already in use
-      if ( !name.equals( nameFieldValue ) )
-      {
-        if ( parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).getSharedLibrary( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "sharedlibrary.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the shared library object
-      SharedLibrary sharedLibrary = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getSharedLibrary( name );
-      if ( sharedLibrary == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sharedlibrary.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add(
-        "Change shared library " + sharedLibrary.getName() + " / " + sharedLibrary.getClasspath() );
-      // change the shared library object
-      sharedLibrary.setName( nameFieldValue );
-      sharedLibrary.setClasspath( classpathFieldValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get values
-      String newNameFieldValue = newNameField.getText();
-      String newClasspathFieldValue = newClasspathField.getText();
-      // mandatory field
-      if ( newNameFieldValue == null || newNameFieldValue.trim().length() < 1 || newClasspathFieldValue == null
-        || newClasspathFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sharedlibrary.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the new shared library object
-      SharedLibrary sharedLibrary = new SharedLibrary();
-      sharedLibrary.setName( newNameFieldValue );
-      sharedLibrary.setClasspath( newClasspathFieldValue );
-      sharedLibrary.setActive( newIsActive );
-      // add the shared library
-      try
-      {
-        parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-          (String) scopeField.getSelectedItem() ).addSharedLibrary( sharedLibrary );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sharedlibrary.exists" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add(
-        "Create shared library " + sharedLibrary.getName() + " / " + sharedLibrary.getClasspath() );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the shared library object
-      SharedLibrary sharedLibrary = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-        (String) scopeField.getSelectedItem() ).getSharedLibrary( event.getActionCommand() );
-      if ( sharedLibrary == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( sharedLibrary );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy object is correct
-      if ( copy == null || !( copy instanceof SharedLibrary ) )
-      {
-        return;
-      }
-      // update the new fields
-      newNameField.setText( ( (SharedLibrary) copy ).getName() );
-      newClasspathField.setText( ( (SharedLibrary) copy ).getClasspath() );
-    }
-  };
-
-  // status
-  private ActionListener status = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the server and shared library name
-      String serverName = (String) scopeField.getSelectedItem();
-      String sharedLibraryName = event.getActionCommand();
-      // add a message in the log pane and the journal
-      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-        "Shared library " + sharedLibraryName + " status check in progress...", parent.getEnvironmentName() );
-      parent.getChangeEvents().add( "Shared library " + sharedLibraryName + " status check requested." );
-      // start the status thread
-      final StatusThread statusThread = new StatusThread();
-      statusThread.serverName = serverName;
-      statusThread.sharedLibraryName = sharedLibraryName;
-      statusThread.start();
-      // sync with the client
-      KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                              new Runnable()
-                                                              {
-                                                                public void run()
-                                                                {
-                                                                  if ( statusThread.ended )
-                                                                  {
-                                                                    if ( statusThread.failure )
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    else
-                                                                    {
-                                                                      KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-                                                                        statusThread.message,
-                                                                        parent.getEnvironmentName() );
-                                                                    }
-                                                                    parent.getChangeEvents().add(
-                                                                      statusThread.message );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                      KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                      this );
-                                                                  }
-                                                                }
-                                                              } );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the JEE server and shared library name
-      final String serverName = (String) scopeField.getSelectedItem();
-      final String sharedLibraryName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message in the log pane and in the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Shared library " + sharedLibraryName + " update in progress ...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "Shared library " + sharedLibraryName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.serverName = serverName;
-            updateThread.sharedLibraryName = sharedLibraryName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Shared library " + sharedLibraryName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "Shared library " + sharedLibraryName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new <code>SharedLibrariesPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public SharedLibrariesPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add the scope select field
-    Grid layoutGrid = new Grid( 2 );
-    layoutGrid.setStyleName( "default" );
-    layoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    content.add( layoutGrid );
-    Label scopeLabel = new Label( Messages.getString( "scope" ) );
-    scopeLabel.setStyleName( "default" );
-    layoutGrid.add( scopeLabel );
-    scopeField = new SelectField();
-    scopeField.addActionListener( scopeSelect );
-    scopeField.setStyleName( "default" );
-    layoutGrid.add( scopeField );
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    scopeListModel.removeAll();
-    // add application servers in the scope select field
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-    }
-    if ( scopeListModel.size() > 0 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-
-    // add shared libraries grid
-    grid = new Grid( 3 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    grid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    String applicationServerName = null;
-    // update the scope select field
-    DefaultListModel scopeListModel = (DefaultListModel) scopeField.getModel();
-    if ( scopeListModel.size() > 0 )
-    {
-      applicationServerName = (String) scopeField.getSelectedItem();
-    }
-    scopeListModel.removeAll();
-    int scopeIndex = 0;
-    int found = -1;
-    for ( Iterator applicationServerIterator =
-            parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServers().iterator();
-          applicationServerIterator.hasNext(); )
-    {
-      JEEApplicationServer applicationServer = (JEEApplicationServer) applicationServerIterator.next();
-      scopeListModel.add( applicationServer.getName() );
-      if ( applicationServer.getName().equals( applicationServerName ) )
-      {
-        found = scopeIndex;
-      }
-      scopeIndex++;
-    }
-
-    // remove all shared libraries grid children
-    grid.removeAll();
-
-    // check if at least one application server is present
-    if ( scopeListModel.size() < 1 )
-    {
-      return;
-    }
-    // update the scope select field selected index
-    if ( found == -1 )
-    {
-      scopeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      scopeField.setSelectedIndex( found );
-    }
-    // update the application server name from the scope (in case of
-    // application server deletion)
-    applicationServerName = (String) scopeField.getSelectedItem();
-
-    // add shared libraries grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    Label classpathHeader = new Label( Messages.getString( "classpath" ) );
-    classpathHeader.setStyleName( "grid.header" );
-    grid.add( classpathHeader );
-    // add the shared libraries
-    for ( Iterator sharedLibraryIterator = parent.getEnvironment().getJEEApplicationServers().getJEEApplicationServer(
-      applicationServerName ).getSharedLibraries().iterator(); sharedLibraryIterator.hasNext(); )
-    {
-      SharedLibrary sharedLibrary = (SharedLibrary) sharedLibraryIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( sharedLibrary.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( sharedLibrary.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        activeButton.setActionCommand( sharedLibrary.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( sharedLibrary.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        blockerButton.setActionCommand( sharedLibrary.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      // status
-      Button statusButton = new Button( Styles.INFORMATION );
-      statusButton.setToolTipText( Messages.getString( "status" ) );
-      statusButton.setActionCommand( sharedLibrary.getName() );
-      statusButton.addActionListener( status );
-      row.add( statusButton );
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesUpdatePermission )
-      {
-        // update
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( sharedLibrary.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-      {
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( sharedLibrary.getName() );
-        editButton.addActionListener( edit );
-        row.add( editButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( sharedLibrary.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      TextField nameField = new TextField();
-      nameField.setStyleName( "default" );
-      nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      nameField.setId(
-        "slname_" + parent.getEnvironmentName() + "_" + applicationServerName + "_" + sharedLibrary.getName() );
-      nameField.setText( sharedLibrary.getName() );
-      grid.add( nameField );
-      // classpath
-      TextField classpathField = new TextField();
-      classpathField.setStyleName( "default" );
-      classpathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      classpathField.setId(
-        "slclasspath_" + parent.getEnvironmentName() + "_" + applicationServerName + "_" + sharedLibrary.getName() );
-      classpathField.setText( sharedLibrary.getClasspath() );
-      grid.add( classpathField );
-    }
-
-    // add create shared library row in the shared libraries grid
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().jeeResourcesChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // active
-      Button activeButton;
-      if ( newIsActive )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      activeButton.addActionListener( newToggleActive );
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( newIsBlocker )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      blockerButton.addActionListener( newToggleBlocker );
-      row.add( blockerButton );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( paste );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( create );
-      row.add( addButton );
-      // name
-      newNameField = new TextField();
-      newNameField.setStyleName( "default" );
-      newNameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newNameField );
-      // classpath
-      newClasspathField = new TextField();
-      newClasspathField.setStyleName( "default" );
-      newClasspathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      grid.add( newClasspathField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ShellPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ShellPane.java
deleted file mode 100644
index 53e467e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ShellPane.java
+++ /dev/null
@@ -1,154 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.layout.SplitPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.CommandClient;
-
-public class ShellPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private TextArea echoArea;
-
-  private TextField commandField;
-
-  // action listeners
-  // launch
-  private ActionListener launch = new ActionListener()
-  {
-
-    // system command execution timeout
-    private static final int EXECUTION_TIMEOUT_SECONDS = 120;
-
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !parent.getEnvironment().getLock().equals( KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.locked" ) );
-        return;
-      }
-      String command = commandField.getText();
-      if ( command == null || command.trim().length() < 1 )
-      {
-        return;
-      }
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the Kalumet agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        // check if the agent exist
-        if ( agent == null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "environment.shell.noagent" ) );
-          return;
-        }
-        // call the webservice
-        CommandClient client = new CommandClient( agent.getHostname(), agent.getPort() );
-        String result = client.execute( command );
-        // echo the command
-        StringBuffer buffer = new StringBuffer();
-        buffer.append( echoArea.getText() );
-        buffer.append( "$> " );
-        buffer.append( command );
-        buffer.append( "\n" );
-        buffer.append( result );
-        buffer.append( "\n" );
-        // update the main area
-        echoArea.setText( buffer.toString() );
-        // update the scroll
-        echoArea.setVerticalScroll( new Extent( buffer.length() + 10 ) );
-        // erase the main command field
-        commandField.setText( "" );
-      }
-      catch ( Exception exception )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "shell.warn.command" ) + ": " + exception.getMessage() );
-        return;
-      }
-    }
-
-  };
-
-  /**
-   * Create a new <code>ShellPane</code>
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public ShellPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // split pane content
-    SplitPane content = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 25 ) );
-    this.add( content );
-
-    // add the main command field and launch button
-    // command row container
-    Row commandRow = new Row();
-    SplitPaneLayoutData layoutData = new SplitPaneLayoutData();
-    layoutData.setInsets( new Insets( 4 ) );
-    commandRow.setLayoutData( layoutData );
-    commandRow.setCellSpacing( new Extent( 2 ) );
-    commandRow.setInsets( new Insets( 2 ) );
-    content.add( commandRow );
-    commandField = new TextField();
-    commandField.setStyleName( "default" );
-    commandField.addActionListener( launch );
-    commandRow.add( commandField );
-    Button launcherButton = new Button( Messages.getString( "execute" ), Styles.ACCEPT );
-    launcherButton.addActionListener( launch );
-    commandRow.add( launcherButton );
-
-    // add the main text area
-    echoArea = new TextArea();
-    echoArea.setStyleName( "default" );
-    echoArea.setLayoutData( layoutData );
-    echoArea.setEnabled( false );
-    echoArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    echoArea.setHeight( new Extent( 98, Extent.PERCENT ) );
-    content.add( echoArea );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareCommandWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareCommandWindow.java
deleted file mode 100644
index 4699e05..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareCommandWindow.java
+++ /dev/null
@@ -1,557 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Command;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.SoftwareClient;
-
-import java.util.Iterator;
-
-/**
- * Software command window.
- */
-public class SoftwareCommandWindow
-  extends WindowPane
-{
-
-  private String name;
-
-  private SoftwareWindow parent;
-
-  private Command command;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextArea commandArea;
-
-  private SelectField agentField;
-
-  // execute thread
-  class ExecuteThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.executeCommand( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getName(),
-                               name, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Software " + parent.getName() + " command " + name + " execution failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the location in the parent
-      command = parent.getSoftware().getCommand( name );
-      if ( command == null )
-      {
-        command = new Command();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( command.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof Command ) )
-      {
-        return;
-      }
-      command = (Command) copy;
-      name = null;
-      parent.update();
-      update();
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String commandAreaValue = commandArea.getText();
-      String agentFieldValue = (String) agentField.getSelectedItem();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || commandAreaValue == null
-        || commandAreaValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "command.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      command.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        command.setActive( true );
-      }
-      else
-      {
-        command.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        command.setBlocker( true );
-      }
-      else
-      {
-        command.setBlocker( false );
-      }
-      command.setCommand( commandAreaValue );
-      command.setAgent( agentFieldValue );
-      if ( name == null )
-      {
-        try
-        {
-          parent.getSoftware().addCommand( command );
-          parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add software " + parent.getName() + " command " + name );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addError(
-            Messages.getString( "software.component.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update window definition
-      setTitle( Messages.getString( "location" ) + " " + command.getName() );
-      setId( "softwarecommandwindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-               + parent.getName() + "_" + name );
-      name = command.getName();
-      // change the update flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update parent and window
-      parent.update();
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the location
-            parent.getSoftware().getUpdatePlan().remove( command );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete software " + parent.getName() + " command " + name );
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            parent.update();
-            SoftwareCommandWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      SoftwareCommandWindow.this.userClose();
-    }
-  };
-
-  // execute
-  private ActionListener execute = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + parent.getName() + " command " + name + " execution in progress ...",
-              parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Software " + parent.getName() + " command " + name + " execution requested." );
-            // start the execute thread
-            final ExecuteThread executeThread = new ExecuteThread();
-            executeThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( executeThread.ended )
-                {
-                  if ( executeThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( executeThread.message,
-                                                                                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( executeThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + parent.getName() + " command " + name + " executed.",
-                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "Software " + parent.getName() + " command " + name + " executed." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a software command window.
-   */
-  public SoftwareCommandWindow( SoftwareWindow parent, String name )
-  {
-    super();
-
-    // update parent and command name
-    this.parent = parent;
-    this.name = name;
-
-    // update the command from the parent
-    this.command = parent.getSoftware().getCommand( name );
-    if ( this.command == null )
-    {
-      this.command = new Command();
-    }
-
-    if ( name == null )
-    {
-      setTitle( Messages.getString( "command" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "command" ) + " " + name );
-    }
-    setId( "softwarecommandwindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-             + parent.getName() + "_" + name );
-    setStyleName( "default" );
-    setWidth( new Extent( 500, Extent.PX ) );
-    setHeight( new Extent( 400, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create the split pane
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control row
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // reload
-    Button reloadButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    reloadButton.setStyleName( "control" );
-    reloadButton.addActionListener( refresh );
-    controlRow.add( reloadButton );
-    // copy
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // paste
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-    {
-      // execute
-      Button executeButton = new Button( Messages.getString( "execute" ), Styles.COG );
-      executeButton.setStyleName( "control" );
-      executeButton.addActionListener( execute );
-      controlRow.add( executeButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // apply
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // delete
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // close
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main grid
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    splitPane.add( layout );
-
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    layout.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( nameField );
-
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    layout.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( activeField );
-
-    // blocker
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    layout.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( blockerField );
-
-    // command
-    Label commandLabel = new Label( Messages.getString( "command" ) );
-    commandLabel.setStyleName( "grid.cell" );
-    layout.add( commandLabel );
-    commandArea = new TextArea();
-    commandArea.setStyleName( "default" );
-    commandArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    commandArea.setHeight( new Extent( 10, Extent.EX ) );
-    layout.add( commandArea );
-
-    // agent
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    layout.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    layout.add( agentField );
-
-    // update
-    update();
-  }
-
-  /**
-   * Update the window.
-   */
-  public void update()
-  {
-    nameField.setText( command.getName() );
-    if ( command.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    if ( command.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    commandArea.setText( command.getCommand() );
-    // agent field update
-    Kalumet kalumet;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(),
-        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-      return;
-    }
-    // update agent list model
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    agentField.setSelectedItem( command.getAgent() );
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getParentPane().getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareConfigurationFileWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareConfigurationFileWindow.java
deleted file mode 100644
index 69603d0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareConfigurationFileWindow.java
+++ /dev/null
@@ -1,936 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.ConfigurationFile;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Mapping;
-import org.apache.kalumet.ws.client.SoftwareClient;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Software configuration file window.
- */
-public class SoftwareConfigurationFileWindow
-  extends WindowPane
-{
-
-  private String name;
-
-  private ConfigurationFile configurationFile;
-
-  private SoftwareWindow parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextField uriField;
-
-  private TextField pathField;
-
-  private SelectField agentField;
-
-  private Grid mappingsGrid;
-
-  private TextField newMappingKeyField;
-
-  private TextField newMappingValueField;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.updateConfigurationFile( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(),
-                                        parent.getName(), name, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Software " + parent.getName() + " configuration file " + name + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the configuration file object
-      SoftwareConfigurationFileWindow.this.configurationFile = parent.getSoftware().getConfigurationFile( name );
-      if ( SoftwareConfigurationFileWindow.this.configurationFile == null )
-      {
-        SoftwareConfigurationFileWindow.this.configurationFile = new ConfigurationFile();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      SoftwareConfigurationFileWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the configuration file
-            parent.getSoftware().getUpdatePlan().remove( configurationFile );
-            // add a change event
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete software " + parent.getName() + " configuration file " + configurationFile.getName() );
-            // change the updated flag
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            SoftwareConfigurationFileWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String uriFieldValue = uriField.getText();
-      String pathFieldValue = pathField.getText();
-      String agentFieldValue = (String) agentField.getSelectedItem();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || uriFieldValue == null
-        || uriFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the configuration file name, check if the new
-      // name doesn't already exist
-      if ( name == null || ( name != null && !name.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getSoftware().getConfigurationFile( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "software.component.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( name != null )
-      {
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Change software " + parent.getName() + " configuration file " + configurationFile.getName() );
-      }
-      // update the configuration file object
-      configurationFile.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        configurationFile.setActive( true );
-      }
-      else
-      {
-        configurationFile.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        configurationFile.setBlocker( true );
-      }
-      else
-      {
-        configurationFile.setBlocker( false );
-      }
-      configurationFile.setUri( uriFieldValue );
-      configurationFile.setPath( pathFieldValue );
-      configurationFile.setAgent( agentFieldValue );
-      // add the configuration file object if needed
-      if ( name == null )
-      {
-        try
-        {
-          parent.getSoftware().addConfigurationFile( configurationFile );
-          parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add software " + parent.getName() + " configuration file " + configurationFile.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "software.component.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "configurationfile" ) + " " + configurationFile.getName() );
-      setId(
-        "softwareconfigurationfilewindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getName() + "_" + configurationFile.getName() );
-      name = configurationFile.getName();
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the parent window
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // delete mapping
-  private ActionListener deleteMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the mapping object
-      Mapping mapping = configurationFile.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // delete the mapping object
-      configurationFile.getMappings().remove( mapping );
-      // add a change event
-      parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Delete software " + parent.getName() + " configuration file " + configurationFile.getName() + " mapping "
-          + mapping.getKey() );
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // edit mapping
-  private ActionListener editMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields
-      TextField keyField = (TextField) SoftwareConfigurationFileWindow.this.getComponent(
-        "softwareconfigurationfilemappingkey_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getName() + "_" + name + "_" + event.getActionCommand() );
-      TextField valueField = (TextField) SoftwareConfigurationFileWindow.this.getComponent(
-        "softwareconfigurationfilemappingvalue_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getName() + "_" + name + "_" + event.getActionCommand() );
-      // get fields value
-      String keyFieldValue = keyField.getText();
-      String valueFieldValue = valueField.getText();
-      // check fields
-      if ( keyFieldValue == null || keyFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the mapping key, check if the key doesn't already
-      // exist
-      if ( !keyFieldValue.equals( event.getActionCommand() ) )
-      {
-        if ( configurationFile.getMapping( keyFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the mapping object
-      Mapping mapping = configurationFile.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Change software " + parent.getName() + " configuration file " + configurationFile.getName() + " mapping "
-          + mapping.getKey() );
-      // update the mapping
-      mapping.setKey( keyFieldValue );
-      mapping.setValue( valueFieldValue );
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // create mapping
-  private ActionListener createMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String newMappingKeyFieldValue = newMappingKeyField.getText();
-      String newMappingValueFieldValue = newMappingValueField.getText();
-      // check fields
-      if ( newMappingKeyFieldValue == null || newMappingKeyFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the mapping object
-      Mapping mapping = new Mapping();
-      mapping.setKey( newMappingKeyFieldValue );
-      mapping.setValue( newMappingValueFieldValue );
-      try
-      {
-        configurationFile.addMapping( mapping );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Add software " + parent.getName() + " configuration file " + configurationFile.getName() + " mapping "
-          + mapping.getKey() );
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // copy button
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( configurationFile.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof ConfigurationFile ) )
-      {
-        return;
-      }
-      configurationFile = (ConfigurationFile) copy;
-      name = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy mapping
-  private ActionListener copyMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the mapping object
-      Mapping mapping = configurationFile.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( mapping.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste mapping
-  private ActionListener pasteMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof Mapping ) )
-      {
-        return;
-      }
-      // update new fields
-      newMappingKeyField.setText( ( (Mapping) copy ).getKey() );
-      newMappingValueField.setText( ( (Mapping) copy ).getValue() );
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display the confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + parent.getName() + " configuration file " + name + " update in progress ...",
-              parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Software " + parent.getName() + " configuration file " + name + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + parent.getName() + " configuration file " + name + " updated.",
-                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "Software " + parent.getName() + " configuration file " + name + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-
-  /**
-   * Create a software configuration file window.
-   *
-   * @param parent the parent software window.
-   * @param name   the linked configuration file name.
-   */
-  public SoftwareConfigurationFileWindow( SoftwareWindow parent, String name )
-  {
-    super();
-
-    // update the parent and name
-    this.parent = parent;
-    this.name = name;
-
-    // update configuration file from the parent
-    this.configurationFile = parent.getSoftware().getConfigurationFile( name );
-    if ( this.configurationFile == null )
-    {
-      this.configurationFile = new ConfigurationFile();
-    }
-
-    // update the window title
-    if ( name == null )
-    {
-      setTitle( Messages.getString( "configurationfile" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "configurationfile" ) + " " + name );
-    }
-    setId( "softwareconfigurationfilewindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-             + parent.getName() + "_" + name );
-    setStyleName( "default" );
-    setWidth( new Extent( 600, Extent.PX ) );
-    setHeight( new Extent( 400, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "tab.content" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    activeField.setSelectedIndex( 0 );
-    generalLayoutGrid.add( activeField );
-    // blocker
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    blockerField.setSelectedIndex( 1 );
-    generalLayoutGrid.add( blockerField );
-    // URI
-    Label uriLabel = new Label( Messages.getString( "uri" ) );
-    uriLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( uriLabel );
-    uriField = new TextField();
-    uriField.setStyleName( "default" );
-    uriField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( uriField );
-    // path
-    Label pathLabel = new Label( Messages.getString( "path" ) );
-    pathLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( pathLabel );
-    pathField = new TextField();
-    pathField.setStyleName( "default" );
-    pathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( pathField );
-    // agent
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( agentField );
-
-    // add the mappings tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "mappings" ) );
-    ContentPane mappingsTabPane = new ContentPane();
-    mappingsTabPane.setStyleName( "tab.content" );
-    mappingsTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( mappingsTabPane );
-    mappingsGrid = new Grid( 3 );
-    mappingsGrid.setStyleName( "border.grid" );
-    mappingsGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    mappingsGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    mappingsGrid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    mappingsTabPane.add( mappingsGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the window.
-   */
-  public void update()
-  {
-    // update the configuration file name field
-    nameField.setText( configurationFile.getName() );
-    // update the configuration file active field
-    if ( configurationFile.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the configuration file blocker field
-    if ( configurationFile.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the configuration file uri field
-    uriField.setText( configurationFile.getUri() );
-    // update the configuration file path field
-    pathField.setText( configurationFile.getPath() );
-    // update the agent field
-    List agentList = new LinkedList();
-    try
-    {
-      Kalumet kalumet = ConfigurationManager.loadStore();
-      agentList = kalumet.getAgents();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(),
-        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-    }
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    for ( Iterator agentIterator = agentList.iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    agentField.setSelectedItem( configurationFile.getAgent() );
-    // remove all mappings grid children
-    mappingsGrid.removeAll();
-    // add mappings grid header
-    Label mappingActionHeader = new Label( " " );
-    mappingActionHeader.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingActionHeader );
-    Label mappingKeyLabel = new Label( Messages.getString( "key" ) );
-    mappingKeyLabel.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingKeyLabel );
-    Label mappingValueLabel = new Label( Messages.getString( "value" ) );
-    mappingValueLabel.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingValueLabel );
-    // add mappings
-    for ( Iterator mappingIterator = configurationFile.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      mappingsGrid.add( row );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( mapping.getKey() );
-      copyButton.addActionListener( copyMapping );
-      row.add( copyButton );
-      // delete / edit
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( mapping.getKey() );
-        deleteButton.addActionListener( deleteMapping );
-        row.add( deleteButton );
-        // edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "apply" ) );
-        editButton.setActionCommand( mapping.getKey() );
-        editButton.addActionListener( editMapping );
-        row.add( editButton );
-      }
-      // mapping key
-      TextField mappingKeyField = new TextField();
-      mappingKeyField.setStyleName( "default" );
-      mappingKeyField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingKeyField.setId(
-        "softwareconfigurationfilemappingkey_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getName() + "_" + name + "_" + mapping.getKey() );
-      mappingKeyField.setText( mapping.getKey() );
-      mappingsGrid.add( mappingKeyField );
-      // mapping value
-      TextField mappingValueField = new TextField();
-      mappingValueField.setStyleName( "default" );
-      mappingValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingValueField.setId(
-        "softwareconfigurationfilemappingvalue_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getName() + "_" + name + "_" + mapping.getKey() );
-      mappingValueField.setText( mapping.getValue() );
-      mappingsGrid.add( mappingValueField );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      mappingsGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteMapping );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( createMapping );
-      row.add( addButton );
-      // key
-      newMappingKeyField = new TextField();
-      newMappingKeyField.setStyleName( "default" );
-      newMappingKeyField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingsGrid.add( newMappingKeyField );
-      // value
-      newMappingValueField = new TextField();
-      newMappingValueField.setStyleName( "default" );
-      newMappingValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingsGrid.add( newMappingValueField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getParentPane().getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareDatabaseSqlScriptWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareDatabaseSqlScriptWindow.java
deleted file mode 100644
index 2506861..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareDatabaseSqlScriptWindow.java
+++ /dev/null
@@ -1,756 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.model.Mapping;
-import org.apache.kalumet.model.SqlScript;
-
-import java.util.Iterator;
-
-/**
- * Software database SQL script window.
- */
-public class SoftwareDatabaseSqlScriptWindow
-  extends WindowPane
-{
-
-  private String name;
-
-  private SqlScript sqlScript;
-
-  private SoftwareDatabaseWindow parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextField uriField;
-
-  private Grid mappingsGrid;
-
-  private TextField newMappingKeyField;
-
-  private TextField newMappingValueField;
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the sql script object
-      SoftwareDatabaseSqlScriptWindow.this.sqlScript = parent.getDatabase().getSqlScript( name );
-      if ( SoftwareDatabaseSqlScriptWindow.this.sqlScript == null )
-      {
-        SoftwareDatabaseSqlScriptWindow.this.sqlScript = new SqlScript();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      SoftwareDatabaseSqlScriptWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the sql script
-            parent.getDatabase().getSqlScripts().remove( sqlScript );
-            // add a change event
-            parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete SQL script " + sqlScript.getName() );
-            // change the updated flag
-            parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            SoftwareDatabaseSqlScriptWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String uriFieldValue = uriField.getText();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || uriFieldValue == null
-        || uriFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "sql.script.mandatory" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the sql script name, check if the new name
-      // doesn't already exist
-      if ( name == null || ( name != null && !name.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getDatabase().getSqlScript( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sql.script.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( name != null )
-      {
-        parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Change SQL script " + sqlScript.getName() );
-      }
-      // update the sql script object
-      sqlScript.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        sqlScript.setActive( true );
-      }
-      else
-      {
-        sqlScript.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        sqlScript.setBlocker( true );
-      }
-      else
-      {
-        sqlScript.setBlocker( false );
-      }
-      sqlScript.setUri( uriFieldValue );
-      // add the sql script object if needed
-      if ( name == null )
-      {
-        try
-        {
-          parent.getDatabase().addSqlScript( sqlScript );
-          parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add SQL script " + sqlScript.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "sql.script.exists" ) );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "sql.script" ) + " " + sqlScript.getName() );
-      setId(
-        "softwaresqlscriptwindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getParentPane().getName() + "_" + parent.getName() + "_" + sqlScript.getName() );
-      name = sqlScript.getName();
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the parent window
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // delete mapping
-  public ActionListener deleteMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the mapping object
-      Mapping mapping = sqlScript.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // delete the mapping object
-      sqlScript.getMappings().remove( mapping );
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Delete SQL script " + sqlScript.getName() + " mapping " + mapping.getKey() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // edit mapping
-  private ActionListener editMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields
-      TextField mappingKeyField = (TextField) SoftwareDatabaseSqlScriptWindow.this.getComponent(
-        "softwaremappingkey_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getName() + "_" + parent.getName() + "_" + name + "_" + event.getActionCommand() );
-      TextField mappingValueField = (TextField) SoftwareDatabaseSqlScriptWindow.this.getComponent(
-        "softwaremappingvalue_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getParentPane().getName() + "_" + parent.getName() + "_" + name + "_"
-          + event.getActionCommand() );
-      // get fields value
-      String mappingKeyFieldValue = mappingKeyField.getText();
-      String mappingValueFieldValue = mappingValueField.getText();
-      // check fields
-      if ( mappingKeyFieldValue == null || mappingKeyFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the mapping key, check if the key doesn't already
-      // exists
-      if ( !mappingKeyFieldValue.equals( event.getActionCommand() ) )
-      {
-        if ( sqlScript.getMapping( mappingKeyFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // looking for the mapping object
-      Mapping mapping = sqlScript.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Change SQL script " + sqlScript.getName() + " mapping " + mapping.getKey() );
-      // update the mapping
-      mapping.setKey( mappingKeyFieldValue );
-      mapping.setValue( mappingValueFieldValue );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // create mapping
-  private ActionListener createMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get fields value
-      String newMappingKeyFieldValue = newMappingKeyField.getText();
-      String newMappingValueFieldValue = newMappingValueField.getText();
-      // check fields
-      if ( newMappingKeyFieldValue == null || newMappingKeyFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // create the mapping object
-      Mapping mapping = new Mapping();
-      mapping.setKey( newMappingKeyFieldValue );
-      mapping.setValue( newMappingValueFieldValue );
-      try
-      {
-        sqlScript.addMapping( mapping );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "mapping.exists" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getParentPane().getParentPane().getEnvironmentWindow().getChangeEvents().add(
-        "Add SQL script " + sqlScript.getName() + " mapping " + mapping.getKey() );
-      // change the updated flag
-      parent.getParentPane().getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( sqlScript.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof SqlScript ) )
-      {
-        return;
-      }
-      sqlScript = (SqlScript) copy;
-      name = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy mapping
-  private ActionListener copyMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the mapping object
-      Mapping mapping = sqlScript.getMapping( event.getActionCommand() );
-      if ( mapping == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( mapping.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste mapping
-  private ActionListener pasteMapping = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof Mapping ) )
-      {
-        return;
-      }
-      // update new field
-      newMappingKeyField.setText( ( (Mapping) copy ).getKey() );
-      newMappingValueField.setText( ( (Mapping) copy ).getValue() );
-    }
-  };
-
-  /**
-   * Create a new software database SQL script window.
-   *
-   * @param parent the <code>SoftwareDatabaseWindow</code> parent.
-   * @param name   the SQL script name.
-   */
-  public SoftwareDatabaseSqlScriptWindow( SoftwareDatabaseWindow parent, String name )
-  {
-    super();
-
-    // update the parent pane
-    this.parent = parent;
-    this.name = name;
-
-    // update the sql script object from the parent pane
-    this.sqlScript = parent.getDatabase().getSqlScript( name );
-    if ( this.sqlScript == null )
-    {
-      this.sqlScript = new SqlScript();
-    }
-
-    if ( name == null )
-    {
-      setTitle( Messages.getString( "sql.script" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "sqlscript" ) + " " + name );
-    }
-    setId(
-      "softwaresqlscriptwindow_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-        + "_" + parent.getParentPane().getName() + "_" + parent.getName() + "_" + name );
-    setStyleName( "default" );
-    setWidth( new Extent( 600, Extent.PX ) );
-    setHeight( new Extent( 400, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "tab.content" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setSelectedIndex( 0 );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( activeField );
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setSelectedIndex( 0 );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( blockerField );
-    Label uriLabel = new Label( Messages.getString( "uri" ) );
-    uriLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( uriLabel );
-    uriField = new TextField();
-    uriField.setStyleName( "default" );
-    uriField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( uriField );
-
-    // add the mappings tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "mappings" ) );
-    ContentPane mappingsTabPane = new ContentPane();
-    mappingsTabPane.setStyleName( "tab.content" );
-    mappingsTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( mappingsTabPane );
-    mappingsGrid = new Grid( 3 );
-    mappingsGrid.setStyleName( "grid.border" );
-    mappingsGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    mappingsGrid.setColumnWidth( 1, new Extent( 50, Extent.PERCENT ) );
-    mappingsGrid.setColumnWidth( 2, new Extent( 50, Extent.PERCENT ) );
-    mappingsTabPane.add( mappingsGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update this window.
-   */
-  public void update()
-  {
-    // update the sql script name field
-    nameField.setText( sqlScript.getName() );
-    // update the sql script active field
-    if ( sqlScript.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the sql script blocker field
-    if ( sqlScript.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the sql script uri field
-    uriField.setText( sqlScript.getUri() );
-
-    // remove all mappings grid children
-    mappingsGrid.removeAll();
-    // add mappings grid header
-    Label mappingKeyLabel = new Label( Messages.getString( "key" ) );
-    mappingKeyLabel.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingKeyLabel );
-    Label mappingValueLabel = new Label( Messages.getString( "value" ) );
-    mappingValueLabel.setStyleName( "grid.header" );
-    mappingsGrid.add( mappingValueLabel );
-    // add mapping
-    for ( Iterator mappingIterator = sqlScript.getMappings().iterator(); mappingIterator.hasNext(); )
-    {
-      Mapping mapping = (Mapping) mappingIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      mappingsGrid.add( row );
-      // mapping copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( mapping.getKey() );
-      copyButton.addActionListener( copyMapping );
-      row.add( copyButton );
-      // mapping delete / edit
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        // mapping delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( mapping.getKey() );
-        deleteButton.addActionListener( deleteMapping );
-        row.add( deleteButton );
-        // mapping edit
-        Button editButton = new Button( Styles.ACCEPT );
-        editButton.setToolTipText( Messages.getString( "edit" ) );
-        editButton.setActionCommand( mapping.getKey() );
-        editButton.addActionListener( editMapping );
-        row.add( editButton );
-      }
-      // mapping key
-      TextField mappingKeyField = new TextField();
-      mappingKeyField.setStyleName( "default" );
-      mappingKeyField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingKeyField.setId(
-        "softwaremappingkey_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getParentPane().getName() + "_" + parent.getName() + "_" + name + "_" + mapping.getKey() );
-      mappingKeyField.setText( mapping.getKey() );
-      mappingsGrid.add( mappingKeyField );
-      // mapping value
-      TextField mappingValueField = new TextField();
-      mappingValueField.setStyleName( "default" );
-      mappingValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingValueField.setId(
-        "softwaremappingvalue_" + parent.getParentPane().getParentPane().getEnvironmentWindow().getEnvironmentName()
-          + "_" + parent.getParentPane().getName() + "_" + parent.getName() + "_" + name + "_" + mapping.getKey() );
-      mappingValueField.setText( mapping.getValue() );
-      mappingsGrid.add( mappingValueField );
-    }
-    // add a new mapping
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      mappingsGrid.add( row );
-      // paste
-      Button pasteButton = new Button( Styles.PAGE_PASTE );
-      pasteButton.setToolTipText( Messages.getString( "paste" ) );
-      pasteButton.addActionListener( pasteMapping );
-      row.add( pasteButton );
-      // add
-      Button addButton = new Button( Styles.ADD );
-      addButton.setToolTipText( Messages.getString( "add" ) );
-      addButton.addActionListener( createMapping );
-      row.add( addButton );
-      // new mapping key
-      newMappingKeyField = new TextField();
-      newMappingKeyField.setStyleName( "default" );
-      newMappingKeyField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingsGrid.add( newMappingKeyField );
-      // new mapping value
-      newMappingValueField = new TextField();
-      newMappingValueField.setStyleName( "default" );
-      newMappingValueField.setWidth( new Extent( 100, Extent.PERCENT ) );
-      mappingsGrid.add( newMappingValueField );
-    }
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getParentPane().getParentPane().getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareDatabaseWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareDatabaseWindow.java
deleted file mode 100644
index 5fc620a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareDatabaseWindow.java
+++ /dev/null
@@ -1,1128 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.PasswordField;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.commons.lang.StringUtils;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Database;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.SqlScript;
-import org.apache.kalumet.ws.client.SoftwareClient;
-
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Software database window.
- */
-public class SoftwareDatabaseWindow
-  extends WindowPane
-{
-
-  private static String[] DRIVERS =
-    new String[]{ Messages.getString( "jdbc.driver.oracle.thin" ), Messages.getString( "jdbc.driver.ibm.db2" ),
-      Messages.getString( "jdbc.driver.mysql" ), Messages.getString( "jdbc.driver.postgresql" ) };
-
-  private String name;
-
-  private Database database;
-
-  private SoftwareWindow parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextArea sqlCommandArea;
-
-  private SelectField driverField;
-
-  private TextField userField;
-
-  private PasswordField passwordField;
-
-  private PasswordField confirmPasswordField;
-
-  private TextField urlField;
-
-  private SelectField agentField;
-
-  private Grid sqlScriptsGrid;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.updateDatabase( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getName(),
-                               name, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Software " + parent.getName() + " database " + name + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the database object
-      SoftwareDatabaseWindow.this.database = parent.getSoftware().getDatabase( name );
-      if ( SoftwareDatabaseWindow.this.database == null )
-      {
-        SoftwareDatabaseWindow.this.database = new Database();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      SoftwareDatabaseWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the database
-            parent.getSoftware().getUpdatePlan().remove( database );
-            // add a change event
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete software " + parent.getName() + " database " + database.getName() );
-            // change the updated flag
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the parent pane
-            parent.update();
-            // close the window
-            SoftwareDatabaseWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String sqlCommandAreaValue = sqlCommandArea.getText();
-      int driverFieldIndex = driverField.getSelectedIndex();
-      String userFieldValue = userField.getText();
-      String passwordFieldValue = passwordField.getText();
-      String confirmPasswordFieldValue = confirmPasswordField.getText();
-      String urlFieldValue = urlField.getText();
-      String agentFieldValue = (String) agentField.getSelectedItem();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      if ( !passwordFieldValue.equals( confirmPasswordFieldValue ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.password" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the database name, check if the new database name
-      // doesn't already exist
-      if ( name == null || ( name != null && !name.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getSoftware().getDatabase( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "software.component.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // add a change event
-      if ( name != null )
-      {
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Change software " + parent.getName() + " database " + database.getName() );
-      }
-      // update the database object
-      database.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        database.setActive( true );
-      }
-      else
-      {
-        database.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        database.setBlocker( true );
-      }
-      else
-      {
-        database.setBlocker( false );
-      }
-      if ( driverFieldIndex == 0 )
-      {
-        database.setDriver( "oracle.jdbc.driver.OracleDriver" );
-      }
-      if ( driverFieldIndex == 1 )
-      {
-        database.setDriver( "com.ibm.db2.jcc.DB2Driver" );
-      }
-      if ( driverFieldIndex == 2 )
-      {
-        database.setDriver( "com.mysql.jdbc.Driver" );
-      }
-      if ( driverFieldIndex == 3 )
-      {
-        database.setDriver( "org.postgresql.Driver" );
-      }
-      database.setSqlCommand( sqlCommandAreaValue );
-      database.setUser( userFieldValue );
-      database.setPassword( passwordFieldValue );
-      database.setJdbcurl( urlFieldValue );
-      database.setAgent( agentFieldValue );
-      // add the database object if needed
-      if ( name == null )
-      {
-        try
-        {
-          parent.getSoftware().addDatabase( database );
-          parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add software " + parent.getName() + " database " + database.getName() );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "database" ) + " " + database.getName() );
-      setId( "softwaredatabasewindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-               + parent.getName() + "_" + database.getName() );
-      name = database.getName();
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the parent window
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // toggle active sql script
-  public ActionListener toggleActiveSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the sql script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sqlscript.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the sql script object state
-      if ( sqlScript.isActive() )
-      {
-        sqlScript.setActive( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Disable SQL script " + sqlScript.getName() );
-      }
-      else
-      {
-        sqlScript.setActive( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Enable SQL script " + sqlScript.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // toggle blocker sql script
-  public ActionListener toggleBlockerSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the sql script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sqlscript.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the sql script blocker state
-      if ( sqlScript.isBlocker() )
-      {
-        sqlScript.setBlocker( false );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for SQL script " + sqlScript.getName() );
-      }
-      else
-      {
-        sqlScript.setBlocker( true );
-        parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for SQL script " + sqlScript.getName() );
-      }
-      // change the updated flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-      // update the window
-      update();
-    }
-  };
-
-  // delete sql script
-  private ActionListener deleteSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the sql script object
-      final SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "sqlscript.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the sql script object
-            database.getSqlScripts().remove( sqlScript );
-            // add a change event
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete SQL script " + sqlScript.getName() );
-            // change the updated flag
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            // update the window
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit sql script
-  private ActionListener editSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "softwaresqlscriptwindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-          + parent.getName() + "_" + name + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareDatabaseSqlScriptWindow( SoftwareDatabaseWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create sql script
-  private ActionListener createSqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new SoftwareDatabaseSqlScriptWindow( SoftwareDatabaseWindow.this, null ) );
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( database.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check if the copy is correct
-      if ( copy == null || !( copy instanceof Database ) )
-      {
-        return;
-      }
-      database = (Database) copy;
-      name = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy sql script
-  private ActionListener copySqlScript = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the sql script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( sqlScript.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // up
-  private ActionListener up = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the SQL script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        return;
-      }
-      // get the SQL script index
-      int index = database.getSqlScripts().indexOf( sqlScript );
-      // if the SQL script index is the first one or the object is not found,
-      // do nothing, the size of the list must contains at leat 2 SQL scripts
-      if ( index == 0 || index == -1 || database.getSqlScripts().size() < 2 )
-      {
-        return;
-      }
-      // get the previous sql script
-      SqlScript previous = (SqlScript) database.getSqlScripts().get( index - 1 );
-      // switch the SQL scripts
-      database.getSqlScripts().set( index, previous );
-      database.getSqlScripts().set( index - 1, sqlScript );
-      // update the pane
-      update();
-    }
-  };
-
-  // down
-  private ActionListener down = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the SQL script object
-      SqlScript sqlScript = database.getSqlScript( event.getActionCommand() );
-      if ( sqlScript == null )
-      {
-        return;
-      }
-      // get the SQL script index
-      int index = database.getSqlScripts().indexOf( sqlScript );
-      // if the SQL script index is the last one or the object is not found,
-      // the size of the list must contains at least 2 SQL scripts
-      if ( index == -1 || index == database.getSqlScripts().size() - 1 || database.getSqlScripts().size() < 2 )
-      {
-        return;
-      }
-      // get the next SQL script
-      SqlScript next = (SqlScript) database.getSqlScripts().get( index + 1 );
-      // switch the application
-      database.getSqlScripts().set( index + 1, sqlScript );
-      database.getSqlScripts().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display a confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + parent.getName() + " database " + name + " update in progress ...",
-              parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Software " + parent.getName() + " database " + name + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + parent.getName() + " database " + name + " updated.",
-                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "Software " + parent.getName() + " database " + name + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new software database window.
-   *
-   * @param parent the parent software window.
-   * @param name   the linked database name.
-   */
-  public SoftwareDatabaseWindow( SoftwareWindow parent, String name )
-  {
-    super();
-
-    // update the parent pane
-    this.parent = parent;
-    this.name = name;
-
-    // update the database object from the parent pane
-    this.database = parent.getSoftware().getDatabase( name );
-    if ( this.database == null )
-    {
-      this.database = new Database();
-    }
-
-    if ( name == null )
-    {
-      setTitle( Messages.getString( "database" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "database" ) + " " + name );
-    }
-    setId( "softwaredatabasewindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-             + parent.getName() + "_" + name );
-    setStyleName( "default" );
-    setWidth( new Extent( 400, Extent.PX ) );
-    setHeight( new Extent( 300, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general tab
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalTabPane = new ContentPane();
-    generalTabPane.setStyleName( "tab.content" );
-    generalTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalTabPane );
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalTabPane.add( generalLayoutGrid );
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setSelectedIndex( 0 );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( activeField );
-    // blocker
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setSelectedIndex( 1 );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( blockerField );
-    // SQL command
-    Label sqlCommandLabel = new Label( Messages.getString( "sql.command" ) );
-    sqlCommandLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( sqlCommandLabel );
-    sqlCommandArea = new TextArea();
-    sqlCommandArea.setStyleName( "default" );
-    sqlCommandArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    sqlCommandArea.setHeight( new Extent( 5, Extent.EX ) );
-    generalLayoutGrid.add( sqlCommandArea );
-    // driver
-    Label driverLabel = new Label( Messages.getString( "driver" ) );
-    driverLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( driverLabel );
-    driverField = new SelectField( SoftwareDatabaseWindow.DRIVERS );
-    driverField.setSelectedIndex( 0 );
-    driverField.setStyleName( "default" );
-    driverField.setWidth( new Extent( 50, Extent.EX ) );
-    generalLayoutGrid.add( driverField );
-    // user
-    Label userLabel = new Label( Messages.getString( "user" ) );
-    userLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( userLabel );
-    userField = new TextField();
-    userField.setStyleName( "default" );
-    userField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( userField );
-    // password
-    Label passwordLabel = new Label( Messages.getString( "password" ) );
-    passwordLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( passwordLabel );
-    passwordField = new PasswordField();
-    passwordField.setStyleName( "default" );
-    passwordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( passwordField );
-    // confirm password
-    Label confirmPasswordLabel = new Label( Messages.getString( "password.confirm" ) );
-    confirmPasswordLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( confirmPasswordLabel );
-    confirmPasswordField = new PasswordField();
-    confirmPasswordField.setStyleName( "default" );
-    confirmPasswordField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( confirmPasswordField );
-    // URL
-    Label urlLabel = new Label( Messages.getString( "url" ) );
-    urlLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( urlLabel );
-    urlField = new TextField();
-    urlField.setStyleName( "default" );
-    urlField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( urlField );
-    // agent
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    generalLayoutGrid.add( agentField );
-
-    // add the sql scripts tab
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "sql.scripts" ) );
-    ContentPane sqlScriptsTabPane = new ContentPane();
-    sqlScriptsTabPane.setStyleName( "tab.content" );
-    sqlScriptsTabPane.setLayoutData( tabLayoutData );
-    tabPane.add( sqlScriptsTabPane );
-    Column column = new Column();
-    sqlScriptsTabPane.add( column );
-    Button createButton = new Button( Messages.getString( "sql.script.add" ), Styles.ADD );
-    createButton.addActionListener( createSqlScript );
-    column.add( createButton );
-    sqlScriptsGrid = new Grid( 3 );
-    sqlScriptsGrid.setStyleName( "border.grid" );
-    sqlScriptsGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    column.add( sqlScriptsGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update the window.
-   */
-  public void update()
-  {
-    // update the database name field
-    nameField.setText( database.getName() );
-    // update the database active field
-    if ( database.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the database blocker field
-    if ( database.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    // update the database system launcher
-    sqlCommandArea.setText( database.getSqlCommand() );
-    // update the database driver field
-    if ( StringUtils.containsIgnoreCase( database.getDriver(), "oracle" ) )
-    {
-      driverField.setSelectedIndex( 0 );
-    }
-    if ( StringUtils.containsIgnoreCase( database.getDriver(), "db2" ) )
-    {
-      driverField.setSelectedIndex( 1 );
-    }
-    if ( StringUtils.containsIgnoreCase( database.getDriver(), "mysql" ) )
-    {
-      driverField.setSelectedIndex( 2 );
-    }
-    if ( StringUtils.containsIgnoreCase( database.getDriver(), "postgre" ) )
-    {
-      driverField.setSelectedIndex( 3 );
-    }
-    // update the database user field
-    userField.setText( database.getUser() );
-    // update the database password field
-    passwordField.setText( database.getPassword() );
-    confirmPasswordField.setText( database.getPassword() );
-    // update the database url field
-    urlField.setText( database.getJdbcurl() );
-    // update agent field
-    List agents = new LinkedList();
-    // load Kalumet configuration
-    try
-    {
-      Kalumet kalumet = ConfigurationManager.loadStore();
-      agents = kalumet.getAgents();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(),
-        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-    }
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    for ( Iterator agentIterator = agents.iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    agentField.setSelectedItem( database.getAgent() );
-
-    // remove all sql scripts grid children
-    sqlScriptsGrid.removeAll();
-    // add sql scripts grid header
-    Label sqlScriptActionHeader = new Label( " " );
-    sqlScriptActionHeader.setStyleName( "grid.header" );
-    sqlScriptsGrid.add( sqlScriptActionHeader );
-    Label sqlScriptNameHeader = new Label( Messages.getString( "name" ) );
-    sqlScriptNameHeader.setStyleName( "grid.header" );
-    sqlScriptsGrid.add( sqlScriptNameHeader );
-    Label sqlScriptUriHeader = new Label( Messages.getString( "uri" ) );
-    sqlScriptUriHeader.setStyleName( "grid.header" );
-    sqlScriptsGrid.add( sqlScriptUriHeader );
-    // add sql script
-    for ( Iterator sqlScriptIterator = database.getSqlScripts().iterator(); sqlScriptIterator.hasNext(); )
-    {
-      SqlScript sqlScript = (SqlScript) sqlScriptIterator.next();
-      // row
-      Row row = new Row();
-      row.setCellSpacing( new Extent( 2 ) );
-      row.setInsets( new Insets( 2 ) );
-      sqlScriptsGrid.add( row );
-      // sqlscript active
-      Button activeButton;
-      if ( sqlScript.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        activeButton.setActionCommand( sqlScript.getName() );
-        activeButton.addActionListener( toggleActiveSqlScript );
-      }
-      row.add( activeButton );
-      // sqlscript blocker
-      Button blockerButton;
-      if ( sqlScript.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        blockerButton.setActionCommand( sqlScript.getName() );
-        blockerButton.addActionListener( toggleBlockerSqlScript );
-      }
-      row.add( blockerButton );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( sqlScript.getName() );
-      copyButton.addActionListener( copySqlScript );
-      row.add( copyButton );
-      // up / down / delete
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        // up button
-        Button upButton = new Button( Styles.ARROW_UP );
-        upButton.setToolTipText( Messages.getString( "up" ) );
-        upButton.setActionCommand( sqlScript.getName() );
-        upButton.addActionListener( up );
-        row.add( upButton );
-        // down button
-        Button downButton = new Button( Styles.ARROW_DOWN );
-        downButton.setToolTipText( Messages.getString( "down" ) );
-        downButton.setActionCommand( sqlScript.getName() );
-        downButton.addActionListener( down );
-        row.add( downButton );
-        // delete button
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( sqlScript.getName() );
-        deleteButton.addActionListener( deleteSqlScript );
-        row.add( deleteButton );
-      }
-      // sqlscript name
-      Button sqlScriptName = new Button( sqlScript.getName() );
-      sqlScriptName.setStyleName( "default" );
-      sqlScriptName.setActionCommand( sqlScript.getName() );
-      sqlScriptName.addActionListener( editSqlScript );
-      sqlScriptsGrid.add( sqlScriptName );
-      // sqlscript uri
-      Label sqlScriptUri = new Label( sqlScript.getUri() );
-      sqlScriptUri.setStyleName( "default" );
-      sqlScriptsGrid.add( sqlScriptUri );
-    }
-  }
-
-  public SoftwareWindow getParentPane()
-  {
-    return this.parent;
-  }
-
-  public Database getDatabase()
-  {
-    return this.database;
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getParentPane().getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareLocationWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareLocationWindow.java
deleted file mode 100644
index 932abc8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareLocationWindow.java
+++ /dev/null
@@ -1,567 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.list.DefaultListModel;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Location;
-import org.apache.kalumet.ws.client.SoftwareClient;
-
-import java.util.Iterator;
-
-/**
- * Software location window.
- */
-public class SoftwareLocationWindow
-  extends WindowPane
-{
-
-  private String name;
-
-  private SoftwareWindow parent;
-
-  private Location location;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private TextField uriField;
-
-  private TextField pathField;
-
-  private SelectField agentField;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getParentPane().getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.updateLocation( parent.getParentPane().getEnvironmentWindow().getEnvironmentName(), parent.getName(),
-                               name, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Software " + parent.getName() + " location " + name + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the location in the parent
-      location = parent.getSoftware().getLocation( name );
-      if ( location == null )
-      {
-        location = new Location();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( location.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      if ( copy == null || !( copy instanceof Location ) )
-      {
-        return;
-      }
-      location = (Location) copy;
-      name = null;
-      parent.update();
-      update();
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      String uriFieldValue = uriField.getText();
-      String pathFieldValue = pathField.getText();
-      String agentFieldValue = (String) agentField.getSelectedItem();
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 || uriFieldValue == null
-        || uriFieldValue.trim().length() < 1 || pathFieldValue == null || pathFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "location.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      location.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        location.setActive( true );
-      }
-      else
-      {
-        location.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        location.setBlocker( true );
-      }
-      else
-      {
-        location.setBlocker( false );
-      }
-      location.setUri( uriFieldValue );
-      location.setPath( pathFieldValue );
-      location.setAgent( agentFieldValue );
-      if ( name == null )
-      {
-        try
-        {
-          parent.getSoftware().addLocation( location );
-          parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-            "Add software " + parent.getName() + " location " + name );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-            Messages.getString( "software.component.exists" ), getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update window definition
-      setTitle( Messages.getString( "location" ) + " " + location.getName() );
-      setId( "softwarelocationwindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-               + parent.getName() + "_" + name );
-      name = location.getName();
-      // change the update flag
-      parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-      // update parent and window
-      parent.update();
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the location
-            parent.getSoftware().getUpdatePlan().remove( location );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Delete software " + parent.getName() + " location " + name );
-            parent.getParentPane().getEnvironmentWindow().setUpdated( true );
-            parent.getParentPane().getEnvironmentWindow().updateJournalPane();
-            parent.update();
-            SoftwareLocationWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      SoftwareLocationWindow.this.userClose();
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display a confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log panel and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + parent.getName() + " location " + name + " update in progress ...",
-              parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-            parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-              "Software " + parent.getName() + " location " + name + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + parent.getName() + " location " + name + " updated.",
-                      parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-                    parent.getParentPane().getEnvironmentWindow().getChangeEvents().add(
-                      "Software " + parent.getName() + " location " + name + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  /**
-   * Create a new software location window.
-   *
-   * @param parent the parent software window.
-   * @param name   the linked location name.
-   */
-  public SoftwareLocationWindow( SoftwareWindow parent, String name )
-  {
-    super();
-
-    // update parent and location name
-    this.parent = parent;
-    this.name = name;
-
-    // update the location from the parent
-    this.location = parent.getSoftware().getLocation( name );
-    if ( this.location == null )
-    {
-      this.location = new Location();
-    }
-
-    if ( name == null )
-    {
-      setTitle( Messages.getString( "location" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "location" ) + " " + name );
-    }
-    setId( "softwarelocationwindow_" + parent.getParentPane().getEnvironmentWindow().getEnvironmentName() + "_"
-             + parent.getName() + "_" + name );
-    setStyleName( "default" );
-    setWidth( new Extent( 500, Extent.PX ) );
-    setHeight( new Extent( 400, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create the split pane
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control row
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // reload
-    Button reloadButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    reloadButton.setStyleName( "control" );
-    reloadButton.addActionListener( refresh );
-    controlRow.add( reloadButton );
-    // copy
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // paste
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-    {
-      // update
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // apply
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.ACCEPT );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // delete
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // close
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add the main grid
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    layout.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    layout.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    splitPane.add( layout );
-
-    // name
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    layout.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( nameField );
-
-    // active
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    layout.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( activeField );
-
-    // blocker
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    layout.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    layout.add( blockerField );
-
-    // uri
-    Label uriLabel = new Label( Messages.getString( "uri" ) );
-    uriLabel.setStyleName( "grid.cell" );
-    layout.add( uriLabel );
-    uriField = new TextField();
-    uriField.setStyleName( "default" );
-    uriField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( uriField );
-
-    // path
-    Label pathLabel = new Label( Messages.getString( "path" ) );
-    pathLabel.setStyleName( "grid.cell" );
-    layout.add( pathLabel );
-    pathField = new TextField();
-    pathField.setStyleName( "default" );
-    pathField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    layout.add( pathField );
-
-    // agent
-    Label agentLabel = new Label( Messages.getString( "agent" ) );
-    agentLabel.setStyleName( "grid.cell" );
-    layout.add( agentLabel );
-    agentField = new SelectField();
-    agentField.setStyleName( "default" );
-    agentField.setWidth( new Extent( 50, Extent.EX ) );
-    layout.add( agentField );
-
-    // update
-    update();
-  }
-
-  public void update()
-  {
-    nameField.setText( location.getName() );
-    if ( location.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    if ( location.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    uriField.setText( location.getUri() );
-    pathField.setText( location.getPath() );
-    // agent update
-    Kalumet kalumet;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage(),
-        parent.getParentPane().getEnvironmentWindow().getEnvironmentName() );
-      return;
-    }
-    // update agent list model
-    DefaultListModel agentListModel = (DefaultListModel) agentField.getModel();
-    agentListModel.removeAll();
-    for ( Iterator agentIterator = kalumet.getAgents().iterator(); agentIterator.hasNext(); )
-    {
-      Agent agent = (Agent) agentIterator.next();
-      agentListModel.add( agent.getId() );
-    }
-    agentField.setSelectedItem( location.getAgent() );
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getParentPane().getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareWindow.java
deleted file mode 100644
index ce2e6fe..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwareWindow.java
+++ /dev/null
@@ -1,2681 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SelectField;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.extras.app.TabPane;
-import nextapp.echo2.extras.app.layout.TabPaneLayoutData;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Command;
-import org.apache.kalumet.model.ConfigurationFile;
-import org.apache.kalumet.model.Database;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Location;
-import org.apache.kalumet.model.Software;
-import org.apache.kalumet.ws.client.SoftwareClient;
-
-import java.util.Iterator;
-
-/**
- * Software window.
- */
-public class SoftwareWindow
-  extends WindowPane
-{
-
-  private String name;
-
-  private Software software;
-
-  private SoftwaresPane parent;
-
-  private TextField nameField;
-
-  private SelectField activeField;
-
-  private SelectField blockerField;
-
-  private SelectField beforeJeeField;
-
-  private TextField uriField;
-
-  private SelectField updateUnitField;
-
-  private Grid updatePlanGrid;
-
-  private static String[] UPDATE_UNITS =
-    new String[]{ Messages.getString( "location" ), Messages.getString( "command" ),
-      Messages.getString( "configurationfile" ), Messages.getString( "database" ) };
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentWindow().getEnvironmentName(), name, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Software " + name + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // execute command thread
-  class ExecuteCommandThread
-    extends Thread
-  {
-
-    public String commandName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.executeCommand( parent.getEnvironmentWindow().getEnvironmentName(), name, commandName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Command " + commandName + " execution failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update location thread
-  class UpdateLocationThread
-    extends Thread
-  {
-
-    public String locationName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.updateLocation( parent.getEnvironmentWindow().getEnvironmentName(), name, locationName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Location " + locationName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update configuration file thread
-  class UpdateConfigurationFileThread
-    extends Thread
-  {
-
-    public String configurationFileName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.updateConfigurationFile( parent.getEnvironmentWindow().getEnvironmentName(), name, configurationFileName,
-                                        false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Configuration file " + configurationFileName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // update database thread
-  class UpdateDatabaseThread
-    extends Thread
-  {
-
-    public String databaseName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironmentWindow().getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.updateDatabase( parent.getEnvironmentWindow().getEnvironmentName(), name, databaseName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Database " + databaseName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the software object
-      SoftwareWindow.this.software = parent.getEnvironmentWindow().getEnvironment().getSoftware( name );
-      if ( SoftwareWindow.this.software == null )
-      {
-        SoftwareWindow.this.software = new Software();
-      }
-      // update the window
-      update();
-    }
-  };
-
-  // close
-  private ActionListener close = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      SoftwareWindow.this.userClose();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the software software
-            parent.getEnvironmentWindow().getEnvironment().getSoftwares().remove( software );
-            // change the updated flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal log tab pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the whole environment window
-            parent.getEnvironmentWindow().update();
-            // close the window
-            SoftwareWindow.this.userClose();
-          }
-        } ) );
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the fields value
-      String nameFieldValue = nameField.getText();
-      int activeFieldIndex = activeField.getSelectedIndex();
-      int blockerFieldIndex = blockerField.getSelectedIndex();
-      int beforeJeeFieldIndex = beforeJeeField.getSelectedIndex();
-      String uriFieldValue = uriField.getText();
-      // check fields
-      if ( nameFieldValue == null || nameFieldValue.trim().length() < 1 )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "software.mandatory" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // if the user change the software name, check if the name
-      // doesnt't already exist
-      if ( name == null || ( name != null && !name.equals( nameFieldValue ) ) )
-      {
-        if ( parent.getEnvironmentWindow().getEnvironment().getSoftware( nameFieldValue ) != null )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "software.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the software object
-      software.setName( nameFieldValue );
-      if ( activeFieldIndex == 0 )
-      {
-        software.setActive( true );
-      }
-      else
-      {
-        software.setActive( false );
-      }
-      if ( blockerFieldIndex == 0 )
-      {
-        software.setBlocker( true );
-      }
-      else
-      {
-        software.setBlocker( false );
-      }
-      if ( beforeJeeFieldIndex == 0 )
-      {
-        software.setBeforejee(true);
-      }
-      else
-      {
-        software.setBeforejee(false);
-      }
-      software.setUri( uriFieldValue );
-      // add the software object if needed
-      if ( name == null )
-      {
-        try
-        {
-          parent.getEnvironmentWindow().getEnvironment().addSoftware( software );
-        }
-        catch ( Exception e )
-        {
-          KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "software.exists" ),
-                                                                              getEnvironmentWindow().getEnvironmentName() );
-          return;
-        }
-      }
-      // update the window definition
-      setTitle( Messages.getString( "software" ) + " " + software.getName() );
-      setId( "softwarewindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + software.getName() );
-      name = software.getName();
-      // change the updated flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal log tab pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the whole environment window
-      parent.getEnvironmentWindow().update();
-      // update the window
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( software.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // paste
-  private ActionListener paste = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Object copy = KalumetConsoleApplication.getApplication().getCopyComponent();
-      // check the copy object
-      if ( copy == null || !( copy instanceof Software ) )
-      {
-        return;
-      }
-      // update the object
-      software = (Software) copy;
-      name = null;
-      // update the parent pane
-      parent.update();
-      // update the window
-      update();
-    }
-  };
-
-  // add update unit
-  private ActionListener addUpdateUnit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( updateUnitField.getSelectedIndex() == 0 )
-      {
-        // location
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareLocationWindow( SoftwareWindow.this, null ) );
-      }
-      if ( updateUnitField.getSelectedIndex() == 1 )
-      {
-        // command
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareCommandWindow( SoftwareWindow.this, null ) );
-      }
-      if ( updateUnitField.getSelectedIndex() == 2 )
-      {
-        // configuration file
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareConfigurationFileWindow( SoftwareWindow.this, null ) );
-      }
-      if ( updateUnitField.getSelectedIndex() == 3 )
-      {
-        // database
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareDatabaseWindow( SoftwareWindow.this, null ) );
-      }
-    }
-  };
-
-  // edit location
-  private ActionListener editLocation = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "softwarelocationwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + name + "_"
-          + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareLocationWindow( SoftwareWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // edit command
-  private ActionListener editCommand = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "softwarecommandwindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + name + "_"
-          + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareCommandWindow( SoftwareWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // edit configuration file
-  private ActionListener editConfigurationFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "softwareconfigurationfilewindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + name + "_"
-          + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareConfigurationFileWindow( SoftwareWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // edit database
-  private ActionListener editDatabase = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "softwaredatabasewindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + name + "_"
-          + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareDatabaseWindow( SoftwareWindow.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // toggle active location
-  private ActionListener toggleActiveLocation = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the location object
-      Location location = software.getLocation( event.getActionCommand() );
-      if ( location == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "location.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the state and add an event
-      if ( location.isActive() )
-      {
-        location.setActive( false );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Disable software " + name + " location " + location.getName() );
-      }
-      else
-      {
-        location.setActive( true );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Enable software " + name + " location " + location.getName() );
-      }
-      // change the update flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle active command
-  private ActionListener toggleActiveCommand = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the command object
-      Command command = software.getCommand( event.getActionCommand() );
-      if ( command == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "command.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the state and add an event
-      if ( command.isActive() )
-      {
-        command.setActive( false );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Disable software " + name + " command " + command.getName() );
-      }
-      else
-      {
-        command.setActive( true );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Enable software " + name + " command " + command.getName() );
-      }
-      // change the update flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle active configuration file
-  private ActionListener toggleActiveConfigurationFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the configuration file object
-      ConfigurationFile configurationFile = software.getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      if ( configurationFile.isActive() )
-      {
-        configurationFile.setActive( false );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Disable software " + name + " command " + configurationFile.getName() );
-      }
-      else
-      {
-        configurationFile.setActive( true );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Enable software " + name + " command " + configurationFile.getName() );
-      }
-      // change the update flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle active database
-  private ActionListener toggleActiveDatabase = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the database object
-      Database database = software.getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      if ( database.isActive() )
-      {
-        database.setActive( false );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Disable software " + name + " database " + database.getName() );
-      }
-      else
-      {
-        database.setActive( true );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Enable software " + name + " database " + database.getName() );
-      }
-      // change the update flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker command
-  private ActionListener toggleBlockerCommand = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the command object
-      Command command = software.getCommand( event.getActionCommand() );
-      if ( command == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "command.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      if ( command.isBlocker() )
-      {
-        command.setBlocker( false );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for software " + name + " command " + command.getName() );
-      }
-      else
-      {
-        command.setBlocker( true );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for software " + name + " command " + command.getName() );
-      }
-      // change the update flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker configuration file
-  private ActionListener toggleBlockerConfigurationFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the configuration file object
-      ConfigurationFile configurationFile = software.getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      if ( configurationFile.isBlocker() )
-      {
-        configurationFile.setBlocker( false );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for software " + name + " configuration file " + configurationFile.getName() );
-      }
-      else
-      {
-        configurationFile.setBlocker( true );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for software " + name + " configuration file " + configurationFile.getName() );
-      }
-      // change the update flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker database
-  private ActionListener toggleBlockerDatabase = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the database object
-      Database database = software.getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      if ( database.isBlocker() )
-      {
-        database.setBlocker( false );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for software " + name + " database " + database.getName() );
-      }
-      else
-      {
-        database.setBlocker( true );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for software " + name + " database " + database.getName() );
-      }
-      // change the update flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle blocker location
-  private ActionListener toggleBlockerLocation = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the location object
-      Location location = software.getLocation( event.getActionCommand() );
-      if ( location == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "location.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      if ( location.isBlocker() )
-      {
-        location.setBlocker( false );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Set not blocker for software " + name + " location " + location.getName() );
-      }
-      else
-      {
-        location.setBlocker( true );
-        parent.getEnvironmentWindow().getChangeEvents().add(
-          "Set blocker for software " + name + " location " + location.getName() );
-      }
-      // change the update flag
-      parent.getEnvironmentWindow().setUpdated( true );
-      // update the journal pane
-      parent.getEnvironmentWindow().updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // copy command
-  private ActionListener copyCommand = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Command command = software.getCommand( event.getActionCommand() );
-      if ( command == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( command.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // copy configuration file
-  private ActionListener copyConfigurationFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      ConfigurationFile configurationFile = software.getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( configurationFile.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // copy database
-  private ActionListener copyDatabase = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Database database = software.getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( database.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // copy location
-  private ActionListener copyLocation = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      Location location = software.getLocation( event.getActionCommand() );
-      if ( location == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( location.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // delete command
-  private ActionListener deleteCommand = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the command object
-      final Command command = software.getCommand( event.getActionCommand() );
-      if ( command == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "command.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the command
-            software.getUpdatePlan().remove( command );
-            // add an event
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Delete software " + name + " command " + command.getName() );
-            // set the update flag
-            parent.getEnvironmentWindow().setUpdated( true );
-            // update the journal pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // delete configuration file
-  private ActionListener deleteConfigurationFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the configuration file object
-      final ConfigurationFile configurationFile = software.getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "configurationfile.notfound" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the configuration file
-            software.getUpdatePlan().remove( configurationFile );
-            // add an event
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Delete software " + name + " configuration file " + configurationFile.getName() );
-            // update the journal pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // delete database
-  private ActionListener deleteDatabase = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the database object
-      final Database database = software.getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "database.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the database
-            software.getUpdatePlan().remove( database );
-            // add an event
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Delete software " + name + " database " + database.getName() );
-            // update the journal pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // delete location
-  private ActionListener deleteLocation = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the location object
-      final Location location = software.getLocation( event.getActionCommand() );
-      if ( location == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "location.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the location
-            software.getUpdatePlan().remove( location );
-            // add an event
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Delete software " + name + " location " + location.getName() );
-            // update the journal pane
-            parent.getEnvironmentWindow().updateJournalPane();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // up command
-  private ActionListener upCommand = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the command object
-      Command command = software.getCommand( event.getActionCommand() );
-      if ( command == null )
-      {
-        return;
-      }
-      // get the command index
-      int index = software.getUpdatePlan().indexOf( command );
-      if ( index == 0 || index == -1 || software.getUpdatePlan().size() < 2 )
-      {
-        return;
-      }
-      // get the previous update unit
-      Object previous = software.getUpdatePlan().get( index - 1 );
-      // switch the update unit
-      software.getUpdatePlan().set( index, previous );
-      software.getUpdatePlan().set( index - 1, command );
-      // update the pane
-      update();
-    }
-  };
-
-  // down command
-  private ActionListener downCommand = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the command object
-      Command command = software.getCommand( event.getActionCommand() );
-      if ( command == null )
-      {
-        return;
-      }
-      // get the command index
-      int index = software.getUpdatePlan().indexOf( command );
-      if ( index == ( software.getUpdatePlan().size() - 1 ) || index == -1 || software.getUpdatePlan().size() < 2 )
-      {
-        return;
-      }
-      // get the next update unit
-      Object next = software.getUpdatePlan().get( index + 1 );
-      // switch the update unit
-      software.getUpdatePlan().set( index + 1, command );
-      software.getUpdatePlan().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  // up configuration file
-  private ActionListener upConfigurationFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the configuration file object
-      ConfigurationFile configurationFile = software.getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        return;
-      }
-      // get the configuration file index
-      int index = software.getUpdatePlan().indexOf( configurationFile );
-      if ( index == 0 || index == -1 || software.getUpdatePlan().size() < 2 )
-      {
-        return;
-      }
-      // get the previous update unit
-      Object previous = software.getUpdatePlan().get( index - 1 );
-      // switch update unit
-      software.getUpdatePlan().set( index, previous );
-      software.getUpdatePlan().set( index - 1, configurationFile );
-      // update the pane
-      update();
-    }
-  };
-
-  // down configuration file
-  private ActionListener downConfigurationFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the configuration file object
-      ConfigurationFile configurationFile = software.getConfigurationFile( event.getActionCommand() );
-      if ( configurationFile == null )
-      {
-        return;
-      }
-      // get the configuration file index
-      int index = software.getUpdatePlan().indexOf( configurationFile );
-      if ( index == -1 || index == ( software.getUpdatePlan().size() - 1 ) || software.getUpdatePlan().size() < 2 )
-      {
-        return;
-      }
-      // get the next update unit
-      Object next = software.getUpdatePlan().get( index + 1 );
-      // switch update unit
-      software.getUpdatePlan().set( index, next );
-      software.getUpdatePlan().set( index + 1, configurationFile );
-      // update the pane
-      update();
-    }
-  };
-
-  // up database
-  private ActionListener upDatabase = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the database object
-      Database database = software.getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        return;
-      }
-      // get the database index
-      int index = software.getUpdatePlan().indexOf( database );
-      if ( index == -1 || index == 0 || software.getUpdatePlan().size() < 2 )
-      {
-        return;
-      }
-      // get the previous update unit
-      Object previous = software.getUpdatePlan().get( index - 1 );
-      // switch update unit
-      software.getUpdatePlan().set( index - 1, database );
-      software.getUpdatePlan().set( index, previous );
-      // update the pane
-      update();
-    }
-  };
-
-  // down database
-  private ActionListener downDatabase = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the database object
-      Database database = software.getDatabase( event.getActionCommand() );
-      if ( database == null )
-      {
-        return;
-      }
-      // get the database index
-      int index = software.getUpdatePlan().indexOf( database );
-      if ( index == -1 || index == ( software.getUpdatePlan().size() - 1 ) || software.getUpdatePlan().size() < 2 )
-      {
-        return;
-      }
-      // get the next update unit
-      Object next = software.getUpdatePlan().get( index + 1 );
-      // switch update unit
-      software.getUpdatePlan().set( index, next );
-      software.getUpdatePlan().set( index + 1, database );
-      // update the pane
-      update();
-    }
-  };
-
-  // up location
-  private ActionListener upLocation = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the location object
-      Location location = software.getLocation( event.getActionCommand() );
-      if ( location == null )
-      {
-        return;
-      }
-      // get the location index
-      int index = software.getUpdatePlan().indexOf( location );
-      if ( index == -1 || index == 0 || software.getUpdatePlan().size() < 2 )
-      {
-        return;
-      }
-      // get the previous update unit
-      Object previous = software.getUpdatePlan().get( index - 1 );
-      // switch the update units
-      software.getUpdatePlan().set( index - 1, location );
-      software.getUpdatePlan().set( index, previous );
-      // update the pane
-      update();
-    }
-  };
-
-  // down location
-  private ActionListener downLocation = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the location object
-      Location location = software.getLocation( event.getActionCommand() );
-      if ( location == null )
-      {
-        return;
-      }
-      // get the location index
-      int index = software.getUpdatePlan().indexOf( location );
-      if ( index == -1 || index == ( software.getUpdatePlan().size() - 1 ) || software.getUpdatePlan().size() < 2 )
-      {
-        return;
-      }
-      // get the next update unit
-      Object next = software.getUpdatePlan().get( index + 1 );
-      // switch the update units
-      software.getUpdatePlan().set( index, next );
-      software.getUpdatePlan().set( index + 1, location );
-      // update the pane
-      update();
-    }
-  };
-
-  // update
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + name + " update in progress ...", parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add( "Software " + name + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + name + " updated.", parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( "Software " + name + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // execute command
-  private ActionListener executeCommand = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      final String commandName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + name + " command " + commandName + " execution in progress ...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Software " + name + " command " + commandName + " execution requested." );
-            // start the execute command thread
-            final ExecuteCommandThread executeCommandThread = new ExecuteCommandThread();
-            executeCommandThread.commandName = commandName;
-            executeCommandThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( executeCommandThread.ended )
-                {
-                  if ( executeCommandThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( executeCommandThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( executeCommandThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + name + " command " + commandName + " executed.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "Software " + name + " command " + commandName + " executed." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // update configuration file
-  private ActionListener updateConfigurationFile = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not yet been saved
-      if ( parent.getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      final String configurationFileName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + name + " configuration file " + configurationFileName + " update in progress ...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Software " + name + " configuration file " + configurationFileName + " update requested." );
-            // start the update thread
-            final UpdateConfigurationFileThread updateThread = new UpdateConfigurationFileThread();
-            updateThread.configurationFileName = configurationFileName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + name + " configuration file " + configurationFileName + " updated.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "Software " + name + " configuration file " + configurationFileName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // update database
-  private ActionListener updateDatabase = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not yet been saved
-      if ( parent.getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the database name
-      final String databaseName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + name + " database " + databaseName + " update in progress ...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Software " + name + " database " + databaseName + " update requested." );
-            // start the update thread
-            final UpdateDatabaseThread updateThread = new UpdateDatabaseThread();
-            updateThread.databaseName = databaseName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + name + " database " + databaseName + " updated.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "Software " + name + " database " + databaseName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // update location
-  private ActionListener updateLocation = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not yet been saved
-      if ( getEnvironmentWindow().isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the location name
-      final String locationName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // add a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + name + " location " + locationName + " update in progress ...",
-              parent.getEnvironmentWindow().getEnvironmentName() );
-            parent.getEnvironmentWindow().getChangeEvents().add(
-              "Software " + name + " location " + locationName + " update requested." );
-            // start the update thread
-            final UpdateLocationThread updateThread = new UpdateLocationThread();
-            updateThread.locationName = locationName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + name + " location " + locationName + " updated.",
-                      parent.getEnvironmentWindow().getEnvironmentName() );
-                    parent.getEnvironmentWindow().getChangeEvents().add(
-                      "Software " + name + " location " + locationName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // test URI
-  private ActionListener testUri = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String uri = FileManipulator.format( uriField.getText() );
-      boolean exists = false;
-      FileManipulator fileManipulator = null;
-      try
-      {
-        fileManipulator = new FileManipulator();
-        exists = fileManipulator.exists( uri );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          "Can't check the URI " + uri + ": " + e.getMessage(), parent.getEnvironmentWindow().getEnvironmentName() );
-      }
-      finally
-      {
-        if ( fileManipulator != null )
-        {
-          fileManipulator.close();
-        }
-      }
-      if ( exists )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addConfirm( "URI " + uri + " exists.",
-                                                                            parent.getEnvironmentWindow().getEnvironmentName() );
-      }
-      else
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( "URI " + uri + " doesn't exists.",
-                                                                            parent.getEnvironmentWindow().getEnvironmentName() );
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>ExternalWindow</code>.
-   *
-   * @param parent       the parent <code>ExternalsPane</code>.
-   * @param softwareName the original <code>External</code> name.
-   */
-  public SoftwareWindow( SoftwaresPane parent, String softwareName )
-  {
-    super();
-
-    // update the parent tab pane
-    this.parent = parent;
-
-    // update the software name
-    this.name = softwareName;
-
-    // update the software object from the parent environment
-    this.software = parent.getEnvironmentWindow().getEnvironment().getSoftware( softwareName );
-    if ( this.software == null )
-    {
-      this.software = new Software();
-    }
-
-    if ( softwareName == null )
-    {
-      setTitle( Messages.getString( "software" ) );
-    }
-    else
-    {
-      setTitle( Messages.getString( "software" ) + " " + softwareName );
-    }
-    setId( "softwarewindow_" + parent.getEnvironmentWindow().getEnvironmentName() + "_" + softwareName );
-    setStyleName( "default" );
-    setWidth( new Extent( 800, Extent.PX ) );
-    setHeight( new Extent( 600, Extent.PX ) );
-    setModal( false );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-    // add the copy button
-    Button copyButton = new Button( Messages.getString( "copy" ), Styles.PAGE_COPY );
-    copyButton.setStyleName( "control" );
-    copyButton.addActionListener( copy );
-    controlRow.add( copyButton );
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // add the paste button
-      Button pasteButton = new Button( Messages.getString( "paste" ), Styles.PAGE_PASTE );
-      pasteButton.setStyleName( "control" );
-      pasteButton.addActionListener( paste );
-      controlRow.add( pasteButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-    {
-      // add the update button
-      Button updateButton = new Button( Messages.getString( "update" ), Styles.COG );
-      updateButton.setStyleName( "control" );
-      updateButton.addActionListener( update );
-      controlRow.add( updateButton );
-    }
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      // add the apply button
-      Button applyButton = new Button( Messages.getString( "apply" ), Styles.DATABASE_SAVE );
-      applyButton.setStyleName( "control" );
-      applyButton.addActionListener( apply );
-      controlRow.add( applyButton );
-      // add the delete button
-      Button deleteButton = new Button( Messages.getString( "delete" ), Styles.DELETE );
-      deleteButton.setStyleName( "control" );
-      deleteButton.addActionListener( delete );
-      controlRow.add( deleteButton );
-    }
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( close );
-    controlRow.add( closeButton );
-
-    // add a tab pane
-    TabPane tabPane = new TabPane();
-    tabPane.setStyleName( "default" );
-    splitPane.add( tabPane );
-
-    // add the general pane
-    TabPaneLayoutData tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "general" ) );
-    ContentPane generalPane = new ContentPane();
-    generalPane.setStyleName( "tab.content" );
-    generalPane.setLayoutData( tabLayoutData );
-    tabPane.add( generalPane );
-
-    // add the main grid
-    Grid generalLayoutGrid = new Grid( 2 );
-    generalLayoutGrid.setStyleName( "default" );
-    generalLayoutGrid.setColumnWidth( 0, new Extent( 20, Extent.PERCENT ) );
-    generalLayoutGrid.setColumnWidth( 1, new Extent( 80, Extent.PERCENT ) );
-    generalPane.add( generalLayoutGrid );
-
-    // add name field
-    Label nameLabel = new Label( Messages.getString( "name" ) );
-    nameLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( nameLabel );
-    nameField = new TextField();
-    nameField.setStyleName( "default" );
-    nameField.setWidth( new Extent( 100, Extent.PERCENT ) );
-    generalLayoutGrid.add( nameField );
-
-    // add active field
-    Label activeLabel = new Label( Messages.getString( "active" ) );
-    activeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( activeLabel );
-    activeField = new SelectField( MainScreen.LABELS );
-    activeField.setStyleName( "default" );
-    activeField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( activeField );
-
-    // add blocker field
-    Label blockerLabel = new Label( Messages.getString( "blocker" ) );
-    blockerLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( blockerLabel );
-    blockerField = new SelectField( MainScreen.LABELS );
-    blockerField.setStyleName( "default" );
-    blockerField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( blockerField );
-
-    // add before JEE field
-    Label beforeJeeLabel = new Label( Messages.getString( "before.jee" ) );
-    beforeJeeLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( beforeJeeLabel );
-    beforeJeeField = new SelectField( MainScreen.LABELS );
-    beforeJeeField.setStyleName( "default" );
-    beforeJeeField.setWidth( new Extent( 10, Extent.EX ) );
-    generalLayoutGrid.add( beforeJeeField );
-
-    // add uri field
-    Label uriLabel = new Label( Messages.getString( "uri" ) );
-    uriLabel.setStyleName( "grid.cell" );
-    generalLayoutGrid.add( uriLabel );
-    Row uriRow = new Row();
-    generalLayoutGrid.add( uriRow );
-    uriField = new TextField();
-    uriField.setStyleName( "default" );
-    uriField.setWidth( new Extent( 500, Extent.PX ) );
-    uriRow.add( uriField );
-    Button testUriButton = new Button( Styles.WORLD );
-    testUriButton.setToolTipText( Messages.getString( "uri.test" ) );
-    testUriButton.addActionListener( testUri );
-    uriRow.add( testUriButton );
-
-    // add the update plan tab
-    ContentPane updatePlanPane = new ContentPane();
-    updatePlanPane.setStyleName( "tab.content" );
-    tabLayoutData = new TabPaneLayoutData();
-    tabLayoutData.setTitle( Messages.getString( "update.plan" ) );
-    updatePlanPane.setLayoutData( tabLayoutData );
-    tabPane.add( updatePlanPane );
-
-    Column updatePlanContent = new Column();
-    updatePlanPane.add( updatePlanContent );
-
-    // add add update unit button
-    Row addRow = new Row();
-    addRow.setCellSpacing( new Extent( 2 ) );
-    addRow.setInsets( new Insets( 2 ) );
-    updatePlanContent.add( addRow );
-    updateUnitField = new SelectField( SoftwareWindow.UPDATE_UNITS );
-    updateUnitField.setStyleName( "default" );
-    updateUnitField.setWidth( new Extent( 50, Extent.EX ) );
-    addRow.add( updateUnitField );
-    Button addUpdateUnitButton = new Button( Messages.getString( "update.unit.add" ), Styles.ADD );
-    addUpdateUnitButton.addActionListener( addUpdateUnit );
-    addRow.add( addUpdateUnitButton );
-
-    // add a update plan grid
-    updatePlanGrid = new Grid( 4 );
-    updatePlanGrid.setStyleName( "border.grid" );
-    updatePlanGrid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    updatePlanContent.add( updatePlanGrid );
-
-    // update the window
-    update();
-  }
-
-  /**
-   * Update this window.
-   */
-  public void update()
-  {
-    // update the general pane
-    // update the name field
-    nameField.setText( software.getName() );
-    // update the active field
-    if ( software.isActive() )
-    {
-      activeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      activeField.setSelectedIndex( 1 );
-    }
-    // update the blocker field
-    if ( software.isBlocker() )
-    {
-      blockerField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      blockerField.setSelectedIndex( 1 );
-    }
-    uriField.setText( software.getUri() );
-    // update the before JEE field
-    if ( software.isBeforejee() )
-    {
-      beforeJeeField.setSelectedIndex( 0 );
-    }
-    else
-    {
-      beforeJeeField.setSelectedIndex( 1 );
-    }
-
-    // update the update plan grid
-    updatePlanGrid.removeAll();
-    // add the headers
-    Label actionHeader = new Label( "" );
-    actionHeader.setStyleName( "grid.header" );
-    updatePlanGrid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    updatePlanGrid.add( nameHeader );
-    Label typeHeader = new Label( Messages.getString( "type" ) );
-    typeHeader.setStyleName( "grid.header" );
-    updatePlanGrid.add( typeHeader );
-    Label agentHeader = new Label( Messages.getString( "agent" ) );
-    agentHeader.setStyleName( "grid.header" );
-    updatePlanGrid.add( agentHeader );
-    // iterate in the update plan items
-    for ( Iterator itemIterator = software.getUpdatePlan().iterator(); itemIterator.hasNext(); )
-    {
-      Object item = itemIterator.next();
-
-      if ( item instanceof Command )
-      {
-        // command
-        Command command = (Command) item;
-        // actions row
-        Row row = new Row();
-        row.setCellSpacing( new Extent( 2 ) );
-        row.setInsets( new Insets( 2 ) );
-        updatePlanGrid.add( row );
-        // copy
-        Button copyButton = new Button( Styles.PAGE_COPY );
-        copyButton.setToolTipText( Messages.getString( "copy" ) );
-        copyButton.setActionCommand( command.getName() );
-        copyButton.addActionListener( copyCommand );
-        row.add( copyButton );
-        // active
-        Button activeButton;
-        if ( command.isActive() )
-        {
-          activeButton = new Button( Styles.LIGHTBULB );
-          activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-        }
-        else
-        {
-          activeButton = new Button( Styles.LIGHTBULB_OFF );
-          activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          activeButton.setActionCommand( command.getName() );
-          activeButton.addActionListener( toggleActiveCommand );
-        }
-        row.add( activeButton );
-        // blocker
-        Button blockerButton;
-        if ( command.isBlocker() )
-        {
-          blockerButton = new Button( Styles.PLUGIN );
-          blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-        }
-        else
-        {
-          blockerButton = new Button( Styles.PLUGIN_DISABLED );
-          blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          blockerButton.setActionCommand( command.getName() );
-          blockerButton.addActionListener( toggleBlockerCommand );
-        }
-        row.add( blockerButton );
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          // up
-          Button upButton = new Button( Styles.ARROW_UP );
-          upButton.setToolTipText( Messages.getString( "up" ) );
-          upButton.setActionCommand( command.getName() );
-          upButton.addActionListener( upCommand );
-          row.add( upButton );
-          // down
-          Button downButton = new Button( Styles.ARROW_DOWN );
-          downButton.setToolTipText( Messages.getString( "down" ) );
-          downButton.setActionCommand( command.getName() );
-          downButton.addActionListener( downCommand );
-          row.add( downButton );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-        {
-          // execute command
-          Button executeButton = new Button( Styles.COG );
-          executeButton.setToolTipText( Messages.getString( "execute" ) );
-          executeButton.setActionCommand( command.getName() );
-          executeButton.addActionListener( executeCommand );
-          row.add( executeButton );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          // delete
-          Button deleteButton = new Button( Styles.DELETE );
-          deleteButton.setToolTipText( Messages.getString( "delete" ) );
-          deleteButton.setActionCommand( command.getName() );
-          deleteButton.addActionListener( deleteCommand );
-          row.add( deleteButton );
-        }
-        // name
-        Button name = new Button( command.getName() );
-        name.setActionCommand( command.getName() );
-        name.addActionListener( editCommand );
-        updatePlanGrid.add( name );
-        // type
-        Label type = new Label( Messages.getString( "command" ) );
-        updatePlanGrid.add( type );
-        // agent
-        Label agent = new Label( command.getAgent() );
-        updatePlanGrid.add( agent );
-      }
-
-      if ( item instanceof Location )
-      {
-        // location
-        Location location = (Location) item;
-        // actions row
-        Row row = new Row();
-        row.setCellSpacing( new Extent( 2 ) );
-        row.setInsets( new Insets( 2 ) );
-        updatePlanGrid.add( row );
-
-        // copy
-        Button copyButton = new Button( Styles.PAGE_COPY );
-        copyButton.setToolTipText( Messages.getString( "copy" ) );
-        copyButton.setActionCommand( location.getName() );
-        copyButton.addActionListener( copyLocation );
-        row.add( copyButton );
-        // active
-        Button activeButton;
-        if ( location.isActive() )
-        {
-          activeButton = new Button( Styles.LIGHTBULB );
-          activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-        }
-        else
-        {
-          activeButton = new Button( Styles.LIGHTBULB_OFF );
-          activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          activeButton.setActionCommand( location.getName() );
-          activeButton.addActionListener( toggleActiveLocation );
-        }
-        row.add( activeButton );
-        // blocker
-        Button blockerButton;
-        if ( location.isBlocker() )
-        {
-          blockerButton = new Button( Styles.PLUGIN );
-          blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-        }
-        else
-        {
-          blockerButton = new Button( Styles.PLUGIN_DISABLED );
-          blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          blockerButton.setActionCommand( location.getName() );
-          blockerButton.addActionListener( toggleBlockerLocation );
-        }
-        row.add( blockerButton );
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          // up
-          Button upButton = new Button( Styles.ARROW_UP );
-          upButton.setToolTipText( Messages.getString( "up" ) );
-          upButton.setActionCommand( location.getName() );
-          upButton.addActionListener( upLocation );
-          row.add( upButton );
-          // down
-          Button downButton = new Button( Styles.ARROW_DOWN );
-          downButton.setToolTipText( Messages.getString( "down" ) );
-          downButton.setActionCommand( location.getName() );
-          downButton.addActionListener( downLocation );
-          row.add( downButton );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-        {
-          // update
-          Button updateButton = new Button( Styles.COG );
-          updateButton.setToolTipText( Messages.getString( "update" ) );
-          updateButton.setActionCommand( location.getName() );
-          updateButton.addActionListener( updateLocation );
-          row.add( updateButton );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          // delete
-          Button deleteButton = new Button( Styles.DELETE );
-          deleteButton.setToolTipText( Messages.getString( "delete" ) );
-          deleteButton.setActionCommand( location.getName() );
-          deleteButton.addActionListener( deleteLocation );
-          row.add( deleteButton );
-        }
-        // name
-        Button name = new Button( location.getName() );
-        name.setActionCommand( location.getName() );
-        name.addActionListener( editLocation );
-        updatePlanGrid.add( name );
-        // type
-        Label type = new Label( Messages.getString( "location" ) );
-        updatePlanGrid.add( type );
-        // agent
-        Label agent = new Label( location.getAgent() );
-        updatePlanGrid.add( agent );
-      }
-
-      if ( item instanceof Database )
-      {
-        // database
-        Database database = (Database) item;
-        // actions row
-        Row row = new Row();
-        row.setCellSpacing( new Extent( 2 ) );
-        row.setInsets( new Insets( 2 ) );
-        updatePlanGrid.add( row );
-        // copy
-        Button copyButton = new Button( Styles.PAGE_COPY );
-        copyButton.setToolTipText( Messages.getString( "copy" ) );
-        copyButton.setActionCommand( database.getName() );
-        copyButton.addActionListener( copyDatabase );
-        row.add( copyButton );
-        // active
-        Button activeButton;
-        if ( database.isActive() )
-        {
-          activeButton = new Button( Styles.LIGHTBULB );
-          activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-        }
-        else
-        {
-          activeButton = new Button( Styles.LIGHTBULB_OFF );
-          activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          activeButton.setActionCommand( database.getName() );
-          activeButton.addActionListener( toggleActiveDatabase );
-        }
-        row.add( activeButton );
-        // blocker
-        Button blockerButton;
-        if ( database.isBlocker() )
-        {
-          blockerButton = new Button( Styles.PLUGIN );
-          blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-        }
-        else
-        {
-          blockerButton = new Button( Styles.PLUGIN_DISABLED );
-          blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          blockerButton.setActionCommand( database.getName() );
-          blockerButton.addActionListener( toggleBlockerDatabase );
-        }
-        row.add( blockerButton );
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          // up
-          Button upButton = new Button( Styles.ARROW_UP );
-          upButton.setToolTipText( Messages.getString( "up" ) );
-          upButton.setActionCommand( database.getName() );
-          upButton.addActionListener( upDatabase );
-          row.add( upButton );
-          // down
-          Button downButton = new Button( Styles.ARROW_DOWN );
-          downButton.setToolTipText( Messages.getString( "down" ) );
-          downButton.setActionCommand( database.getName() );
-          downButton.addActionListener( downDatabase );
-          row.add( downButton );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-        {
-          // update
-          Button updateButton = new Button( Styles.COG );
-          updateButton.setToolTipText( Messages.getString( "update" ) );
-          updateButton.setActionCommand( database.getName() );
-          updateButton.addActionListener( updateDatabase );
-          row.add( updateButton );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          // delete
-          Button deleteButton = new Button( Styles.DELETE );
-          deleteButton.setToolTipText( Messages.getString( "delete" ) );
-          deleteButton.setActionCommand( database.getName() );
-          deleteButton.addActionListener( deleteDatabase );
-          row.add( deleteButton );
-        }
-        // name
-        Button name = new Button( database.getName() );
-        name.setActionCommand( database.getName() );
-        name.addActionListener( editDatabase );
-        updatePlanGrid.add( name );
-        // type
-        Label type = new Label( Messages.getString( "database" ) );
-        updatePlanGrid.add( type );
-        // agent
-        Label agent = new Label( database.getAgent() );
-        updatePlanGrid.add( agent );
-      }
-
-      if ( item instanceof ConfigurationFile )
-      {
-        // configuration file
-        ConfigurationFile configurationFile = (ConfigurationFile) item;
-        // actions row
-        Row row = new Row();
-        row.setCellSpacing( new Extent( 2 ) );
-        row.setInsets( new Insets( 2 ) );
-        updatePlanGrid.add( row );
-        // copy
-        Button copyButton = new Button( Styles.PAGE_COPY );
-        copyButton.setToolTipText( Messages.getString( "copy" ) );
-        copyButton.setActionCommand( configurationFile.getName() );
-        copyButton.addActionListener( copyConfigurationFile );
-        row.add( copyButton );
-        // active
-        Button activeButton;
-        if ( configurationFile.isActive() )
-        {
-          activeButton = new Button( Styles.LIGHTBULB );
-          activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-        }
-        else
-        {
-          activeButton = new Button( Styles.LIGHTBULB_OFF );
-          activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          activeButton.setActionCommand( configurationFile.getName() );
-          activeButton.addActionListener( toggleActiveConfigurationFile );
-        }
-        row.add( activeButton );
-        // blocker
-        Button blockerButton;
-        if ( configurationFile.isBlocker() )
-        {
-          blockerButton = new Button( Styles.PLUGIN );
-          blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-        }
-        else
-        {
-          blockerButton = new Button( Styles.PLUGIN_DISABLED );
-          blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          blockerButton.setActionCommand( configurationFile.getName() );
-          blockerButton.addActionListener( toggleBlockerConfigurationFile );
-        }
-        row.add( blockerButton );
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          // up
-          Button upButton = new Button( Styles.ARROW_UP );
-          upButton.setToolTipText( Messages.getString( "up" ) );
-          upButton.setActionCommand( configurationFile.getName() );
-          upButton.addActionListener( upConfigurationFile );
-          row.add( upButton );
-          // down
-          Button downButton = new Button( Styles.ARROW_DOWN );
-          downButton.setToolTipText( Messages.getString( "down" ) );
-          downButton.setActionCommand( configurationFile.getName() );
-          downButton.addActionListener( downConfigurationFile );
-          row.add( downButton );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-        {
-          // update
-          Button updateButton = new Button( Styles.COG );
-          updateButton.setToolTipText( Messages.getString( "update" ) );
-          updateButton.setActionCommand( configurationFile.getName() );
-          updateButton.addActionListener( updateConfigurationFile );
-          row.add( updateButton );
-        }
-        if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-        {
-          // delete
-          Button deleteButton = new Button( Styles.DELETE );
-          deleteButton.setToolTipText( Messages.getString( "delete" ) );
-          deleteButton.setActionCommand( configurationFile.getName() );
-          deleteButton.addActionListener( deleteConfigurationFile );
-          row.add( deleteButton );
-        }
-        // name
-        Button name = new Button( configurationFile.getName() );
-        name.setActionCommand( configurationFile.getName() );
-        name.addActionListener( editConfigurationFile );
-        updatePlanGrid.add( name );
-        // type
-        Label type = new Label( Messages.getString( "configurationfile" ) );
-        updatePlanGrid.add( type );
-        // agent
-        Label agent = new Label( configurationFile.getAgent() );
-        updatePlanGrid.add( agent );
-      }
-    }
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public Software getSoftware()
-  {
-    return this.software;
-  }
-
-  public SoftwaresPane getParentPane()
-  {
-    return this.parent;
-  }
-
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent.getEnvironmentWindow();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwaresPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwaresPane.java
deleted file mode 100644
index 1f20040..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/SoftwaresPane.java
+++ /dev/null
@@ -1,792 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.TextField;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.Software;
-import org.apache.kalumet.ws.client.SoftwareClient;
-
-import java.util.Iterator;
-
-/**
- * Environment external manual applications pane.
- */
-public class SoftwaresPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private Grid grid;
-
-  // update thread
-  class UpdateThread
-    extends Thread
-  {
-
-    public String softwareName;
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( parent.getEnvironment().getAgent() );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent not found." );
-        }
-        // call the WebService
-        SoftwareClient client = new SoftwareClient( agent.getHostname(), agent.getPort() );
-        client.update( parent.getEnvironmentName(), softwareName, false );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Software " + softwareName + " update failed: " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-  }
-
-  // toggle blocker
-  private ActionListener toggleBlocker = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the external object
-      Software software = parent.getEnvironment().getSoftware( event.getActionCommand() );
-      if ( software == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "external.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the external state and add a change event
-      if ( software.isBlocker() )
-      {
-        software.setBlocker( false );
-        parent.getChangeEvents().add( "Set not blocker for software " + software.getName() );
-      }
-      else
-      {
-        software.setBlocker( true );
-        parent.getChangeEvents().add( "Set blocker for software " + software.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle active
-  private ActionListener toggleActive = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the software object
-      Software software = parent.getEnvironment().getSoftware( event.getActionCommand() );
-      if ( software == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "software.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // change the external state and add a change event
-      if ( software.isActive() )
-      {
-        software.setActive( false );
-        parent.getChangeEvents().add( "Disable software " + software.getName() );
-      }
-      else
-      {
-        software.setActive( true );
-        parent.getChangeEvents().add( "Enable software " + software.getName() );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log pane
-      parent.updateJournalPane();
-      // update the pane
-      update();
-    }
-  };
-
-  // toggle before
-  private ActionListener toggleBefore = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the software object
-      Software software = parent.getEnvironment().getSoftware( event.getActionCommand() );
-      if ( software == null )
-      {
-        return;
-      }
-      // change the external software order
-      if ( software.isBeforejee() )
-      {
-        software.setBeforejee(false);
-        parent.getChangeEvents().add( "Flag software " + software.getName() + " to be updated after JEE resources." );
-      }
-      else
-      {
-        software.setBeforejee(true);
-        parent.getChangeEvents().add( "Flag software " + software.getName() + " to be updated before JEE resources." );
-      }
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log pane
-      parent.updateJournalPane();
-      // update this pane
-      update();
-    }
-  };
-
-  // delete
-  private ActionListener delete = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the external object
-      final Software software = parent.getEnvironment().getSoftware( event.getActionCommand() );
-      if ( software == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "software.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // delete the external object
-            parent.getEnvironment().getSoftwares().remove( software );
-            // add a change event
-            parent.getChangeEvents().add( "Delete software " + software.getName() );
-            // change the updated flag
-            parent.setUpdated( true );
-            // update the whole environment window
-            parent.update();
-            // update the pane
-            update();
-          }
-        } ) );
-    }
-  };
-
-  // edit
-  private ActionListener edit = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      if ( KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().getComponent(
-        "softwarewindow_" + parent.getEnvironmentName() + "_" + event.getActionCommand() ) == null )
-      {
-        KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-          new SoftwareWindow( SoftwaresPane.this, event.getActionCommand() ) );
-      }
-    }
-  };
-
-  // create
-  private ActionListener create = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new SoftwareWindow( SoftwaresPane.this, null ) );
-    }
-  };
-
-  // up
-  private ActionListener up = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the external object
-      Software software = parent.getEnvironment().getSoftware( event.getActionCommand() );
-      if ( software == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "software.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the external index
-      int index = parent.getEnvironment().getSoftwares().indexOf( software );
-      // if the external index is the first one or the object is not found,
-      // do nothing, the list must contains at least 2 externals
-      if ( index == 0 || index == -1 || parent.getEnvironment().getSoftwares().size() < 2 )
-      {
-        return;
-      }
-      // get the previous external
-      Software previous = (Software) parent.getEnvironment().getSoftwares().get( index - 1 );
-      // switch external
-      parent.getEnvironment().getSoftwares().set( index, previous );
-      parent.getEnvironment().getSoftwares().set( index - 1, software );
-      // update the pane
-      update();
-    }
-  };
-
-  // down
-  private ActionListener down = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // looking for the software object
-      Software software = parent.getEnvironment().getSoftware( event.getActionCommand() );
-      if ( software == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "software.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the external index
-      int index = parent.getEnvironment().getSoftwares().indexOf( software );
-      // if the external index is the last one or the object is not found,
-      // the list must contains at least 2 externals
-      if ( index == -1 || index == parent.getEnvironment().getSoftwares().size() - 1
-        || parent.getEnvironment().getSoftwares().size() < 2 )
-      {
-        return;
-      }
-      // get the next external
-      Software next = (Software) parent.getEnvironment().getSoftwares().get( index + 1 );
-      // switch the external
-      parent.getEnvironment().getSoftwares().set( index + 1, software );
-      parent.getEnvironment().getSoftwares().set( index, next );
-      // update the pane
-      update();
-    }
-  };
-
-  // copy
-  private ActionListener copy = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // looking for the software object
-      Software software = parent.getEnvironment().getSoftware( event.getActionCommand() );
-      if ( software == null )
-      {
-        return;
-      }
-      try
-      {
-        KalumetConsoleApplication.getApplication().setCopyComponent( software.clone() );
-      }
-      catch ( Exception e )
-      {
-        return;
-      }
-    }
-  };
-
-  // apply
-  private ActionListener apply = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the environment lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareChangePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the external software name
-      String name = event.getActionCommand();
-      // get the external software URI textfield
-      TextField uriField =
-        (TextField) SoftwaresPane.this.getComponent( "softwareuri_" + parent.getEnvironmentName() + "_" + name );
-      // get the external software URI
-      String uriFieldValue = uriField.getText();
-      // looking for the software object
-      Software software = parent.getEnvironment().getSoftware( name );
-      if ( software == null )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "software.notfound" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // add a change event
-      parent.getChangeEvents().add( "Change software " + software.getName() + " URI to " + uriFieldValue );
-      // change the external software URI
-      software.setUri( uriFieldValue );
-      // change the updated flag
-      parent.setUpdated( true );
-      // update the journal log tab pane
-      parent.updateJournalPane();
-      // update this pane
-      update();
-    }
-  };
-
-  private ActionListener update = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      // check if the user has the lock
-      if ( !getEnvironmentWindow().getEnvironment().getLock().equals(
-        KalumetConsoleApplication.getApplication().getUserid() ) )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "environment.locked" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if the user can do it
-      if ( !getEnvironmentWindow().adminPermission && !getEnvironmentWindow().softwareUpdatePermission)
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( Messages.getString( "action.restricted" ),
-                                                                            getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // check if some change has not been saved
-      if ( parent.isUpdated() )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          Messages.getString( "environment.notsaved" ), getEnvironmentWindow().getEnvironmentName() );
-        return;
-      }
-      // get the software name
-      final String softwareName = event.getActionCommand();
-      // display confirm window
-      KalumetConsoleApplication.getApplication().getDefaultWindow().getContent().add(
-        new ConfirmWindow( new ActionListener()
-        {
-          public void actionPerformed( ActionEvent event )
-          {
-            // put a message into the log pane and the journal
-            KalumetConsoleApplication.getApplication().getLogPane().addInfo(
-              "Software " + softwareName + " update in progress ...", parent.getEnvironmentName() );
-            parent.getChangeEvents().add( "Software " + softwareName + " update requested." );
-            // start the update thread
-            final UpdateThread updateThread = new UpdateThread();
-            updateThread.softwareName = softwareName;
-            updateThread.start();
-            // sync with the client
-            KalumetConsoleApplication.getApplication().enqueueTask(
-              KalumetConsoleApplication.getApplication().getTaskQueue(), new Runnable()
-            {
-              public void run()
-              {
-                if ( updateThread.ended )
-                {
-                  if ( updateThread.failure )
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addError( updateThread.message,
-                                                                                      parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( updateThread.message );
-                  }
-                  else
-                  {
-                    KalumetConsoleApplication.getApplication().getLogPane().addConfirm(
-                      "Software " + softwareName + " updated.", parent.getEnvironmentName() );
-                    parent.getChangeEvents().add( "Software " + softwareName + " updated." );
-                  }
-                }
-                else
-                {
-                  KalumetConsoleApplication.getApplication().enqueueTask(
-                    KalumetConsoleApplication.getApplication().getTaskQueue(), this );
-                }
-              }
-            } );
-          }
-        } ) );
-    }
-  };
-
-  // test URI
-  private ActionListener testUri = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      String name = event.getActionCommand();
-      TextField uriField =
-        (TextField) SoftwaresPane.this.getComponent( "softwareuri_" + parent.getEnvironmentName() + "_" + name );
-      String uri = FileManipulator.format( uriField.getText() );
-      boolean exists = false;
-      FileManipulator fileManipulator = null;
-      try
-      {
-        fileManipulator = new FileManipulator();
-        exists = fileManipulator.exists( uri );
-      }
-      catch ( Exception e )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning(
-          "Can't check the URI " + uri + ": " + e.getMessage(), parent.getEnvironmentName() );
-      }
-      finally
-      {
-        if ( fileManipulator != null )
-        {
-          fileManipulator.close();
-        }
-      }
-      if ( exists )
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addConfirm( "URI " + uri + " exists.",
-                                                                            parent.getEnvironmentName() );
-      }
-      else
-      {
-        KalumetConsoleApplication.getApplication().getLogPane().addWarning( "URI " + uri + " doesn't exists.",
-                                                                            parent.getEnvironmentName() );
-      }
-    }
-  };
-
-  /**
-   * Create a new <code>ExternalsPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public SoftwaresPane( EnvironmentWindow parent )
-  {
-    super();
-    setStyleName( "tab.content" );
-
-    // update parent
-    this.parent = parent;
-
-    // column layout
-    Column content = new Column();
-    content.setCellSpacing( new Extent( 2 ) );
-    add( content );
-
-    // add the create button
-    if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-    {
-      Button createButton = new Button( Messages.getString( "software.add" ), Styles.ADD );
-      createButton.addActionListener( create );
-      content.add( createButton );
-    }
-
-    // add external softwares grid
-    grid = new Grid( 4 );
-    grid.setStyleName( "border.grid" );
-    grid.setColumnWidth( 0, new Extent( 50, Extent.PX ) );
-    grid.setColumnWidth( 1, new Extent( 20, Extent.PERCENT ) );
-    grid.setColumnWidth( 2, new Extent( 60, Extent.PERCENT ) );
-    grid.setColumnWidth( 3, new Extent( 20, Extent.PERCENT ) );
-    content.add( grid );
-
-    // update the pane
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-    // remove all softwares grid children
-    grid.removeAll();
-
-    // add softwares grid header
-    Label actionHeader = new Label( " " );
-    actionHeader.setStyleName( "grid.header" );
-    grid.add( actionHeader );
-    Label nameHeader = new Label( Messages.getString( "name" ) );
-    nameHeader.setStyleName( "grid.header" );
-    grid.add( nameHeader );
-    Label uriHeader = new Label( Messages.getString( "uri" ) );
-    uriHeader.setStyleName( "grid.header" );
-    grid.add( uriHeader );
-    Label agentHeader = new Label( Messages.getString( "agent" ) );
-    agentHeader.setStyleName( "grid.header" );
-    grid.add( agentHeader );
-    // add the softwares
-    for ( Iterator softwareIterator = parent.getEnvironment().getSoftwares().iterator(); softwareIterator.hasNext(); )
-    {
-      Software software = (Software) softwareIterator.next();
-      // row
-      Row row = new Row();
-      row.setInsets( new Insets( 2 ) );
-      row.setCellSpacing( new Extent( 2 ) );
-      grid.add( row );
-      // before JEE resources
-      Button orderButton;
-      if ( software.isBeforejee() )
-      {
-        orderButton = new Button( Styles.BOOK_PREVIOUS );
-        orderButton.setToolTipText( Messages.getString( "switch.afterjee" ) );
-      }
-      else
-      {
-        orderButton = new Button( Styles.BOOK_NEXT );
-        orderButton.setToolTipText( Messages.getString( "switch.beforejee" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        orderButton.setActionCommand( software.getName() );
-        orderButton.addActionListener( toggleBefore );
-      }
-      row.add( orderButton );
-      // copy
-      Button copyButton = new Button( Styles.PAGE_COPY );
-      copyButton.setToolTipText( Messages.getString( "copy" ) );
-      copyButton.setActionCommand( software.getName() );
-      copyButton.addActionListener( copy );
-      row.add( copyButton );
-      // active
-      Button activeButton;
-      if ( software.isActive() )
-      {
-        activeButton = new Button( Styles.LIGHTBULB );
-        activeButton.setToolTipText( Messages.getString( "switch.disable" ) );
-      }
-      else
-      {
-        activeButton = new Button( Styles.LIGHTBULB_OFF );
-        activeButton.setToolTipText( Messages.getString( "switch.enable" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        activeButton.setActionCommand( software.getName() );
-        activeButton.addActionListener( toggleActive );
-      }
-      row.add( activeButton );
-      // blocker
-      Button blockerButton;
-      if ( software.isBlocker() )
-      {
-        blockerButton = new Button( Styles.PLUGIN );
-        blockerButton.setToolTipText( Messages.getString( "switch.notblocker" ) );
-      }
-      else
-      {
-        blockerButton = new Button( Styles.PLUGIN_DISABLED );
-        blockerButton.setToolTipText( Messages.getString( "switch.blocker" ) );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        blockerButton.setActionCommand( software.getName() );
-        blockerButton.addActionListener( toggleBlocker );
-      }
-      row.add( blockerButton );
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        // up
-        Button upButton = new Button( Styles.ARROW_UP );
-        upButton.setToolTipText( Messages.getString( "up" ) );
-        upButton.setActionCommand( software.getName() );
-        upButton.addActionListener( up );
-        row.add( upButton );
-        // down
-        Button downButton = new Button( Styles.ARROW_DOWN );
-        downButton.setToolTipText( Messages.getString( "down" ) );
-        downButton.setActionCommand( software.getName() );
-        downButton.addActionListener( down );
-        row.add( downButton );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareUpdatePermission)
-      {
-        // update
-        Button updateButton = new Button( Styles.COG );
-        updateButton.setToolTipText( Messages.getString( "update" ) );
-        updateButton.setActionCommand( software.getName() );
-        updateButton.addActionListener( update );
-        row.add( updateButton );
-      }
-      if ( getEnvironmentWindow().adminPermission || getEnvironmentWindow().softwareChangePermission)
-      {
-        // apply
-        Button applyButton = new Button( Styles.ACCEPT );
-        applyButton.setToolTipText( Messages.getString( "apply" ) );
-        applyButton.setActionCommand( software.getName() );
-        applyButton.addActionListener( apply );
-        row.add( applyButton );
-        // delete
-        Button deleteButton = new Button( Styles.DELETE );
-        deleteButton.setToolTipText( Messages.getString( "delete" ) );
-        deleteButton.setActionCommand( software.getName() );
-        deleteButton.addActionListener( delete );
-        row.add( deleteButton );
-      }
-      // name
-      Button nameButton = new Button( software.getName() );
-      nameButton.setActionCommand( software.getName() );
-      nameButton.addActionListener( edit );
-      nameButton.setStyleName( "default" );
-      grid.add( nameButton );
-      // uri
-      Row uriRow = new Row();
-      grid.add( uriRow );
-      TextField uri = new TextField();
-      uri.setStyleName( "default" );
-      uri.setWidth( new Extent( 500, Extent.PX ) );
-      uri.setId( "softwareuri_" + parent.getEnvironmentName() + "_" + software.getName() );
-      uri.setText( software.getUri() );
-      uriRow.add( uri );
-      Button uriTestButton = new Button( Styles.WORLD );
-      uriTestButton.setToolTipText( Messages.getString( "uri.test" ) );
-      uriTestButton.setActionCommand( software.getName() );
-      uriTestButton.addActionListener( testUri );
-      uriRow.add( uriTestButton );
-      // agent
-      Label agent = new Label( software.getAgent() );
-      agent.setStyleName( "default" );
-      grid.add( agent );
-    }
-  }
-
-  /**
-   * Get the parent <code>EnvironmentWindow</code>.
-   *
-   * @return the parent <code>EnvironmentWindow</code>.
-   */
-  public EnvironmentWindow getEnvironmentWindow()
-  {
-    return parent;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/StatisticsPane.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/StatisticsPane.java
deleted file mode 100644
index a207352..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/StatisticsPane.java
+++ /dev/null
@@ -1,87 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ContentPane;
-import nextapp.echo2.app.Grid;
-import nextapp.echo2.app.Label;
-
-/**
- * Environment statistics pane.
- */
-public class StatisticsPane
-  extends ContentPane
-{
-
-  private EnvironmentWindow parent;
-
-  private Label updateCount;
-
-  private Label lastChangeDate;
-
-  private Label lastUpdateDate;
-
-
-  /**
-   * Create a new <code>StatisticsPane</code>.
-   *
-   * @param parent the parent <code>EnvironmentWindow</code>.
-   */
-  public StatisticsPane( EnvironmentWindow parent )
-  {
-    super();
-    this.setStyleName( "tab.content" );
-
-    // update the parent
-    this.parent = parent;
-
-    Grid layout = new Grid( 2 );
-    layout.setStyleName( "default" );
-    add( layout );
-
-    Label updateCountLabel = new Label( Messages.getString( "update.count" ) );
-    layout.add( updateCountLabel );
-
-    updateCount = new Label();
-    layout.add( updateCount );
-
-    Label lastChangeDateLabel = new Label( Messages.getString( "last.change.date" ) );
-    layout.add( lastChangeDateLabel );
-
-    lastChangeDate = new Label();
-    layout.add( lastChangeDate );
-
-    Label lastUpLabelLabel = new Label( Messages.getString( "last.update.date" ) );
-    layout.add( lastUpLabelLabel );
-
-    lastUpdateDate = new Label();
-    layout.add( lastUpLabelLabel );
-
-    update();
-  }
-
-  /**
-   * Update the pane.
-   */
-  public void update()
-  {
-
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/StatsWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/StatsWindow.java
deleted file mode 100644
index 442302b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/StatsWindow.java
+++ /dev/null
@@ -1,179 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Column;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Kalumet;
-
-/**
- * Stats window.
- */
-public class StatsWindow
-  extends WindowPane
-{
-
-  private Label agentsCount;
-
-  private Label environmentsCount;
-
-  private Label groupsCount;
-
-  private Label usersCount;
-
-  /**
-   * Create a new <code>StatsWindow</code>.
-   */
-  public StatsWindow()
-  {
-    super();
-
-    setTitle( Messages.getString( "stats" ) );
-    setId( "statswindow" );
-    setIcon( Styles.CHART_BAR );
-    setStyleName( "stats" );
-    setDefaultCloseOperation( WindowPane.DISPOSE_ON_CLOSE );
-
-    // create a split pane for the control buttons
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control pane
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        update();
-      }
-    } );
-    controlRow.add( refreshButton );
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        userClose();
-      }
-    } );
-    closeButton.setStyleName( "control" );
-    controlRow.add( closeButton );
-
-    // add the content pane
-    Column content = new Column();
-    content.setStyleName( "stats" );
-    splitPane.add( content );
-
-    // the agents count
-    Row agentsCountRow = new Row();
-    content.add( agentsCountRow );
-    Label agentsCountLabel = new Label( Messages.getString( "agents.count" ) + ": " );
-    agentsCountLabel.setStyleName( "default" );
-    agentsCountRow.add( agentsCountLabel );
-    agentsCount = new Label( " " );
-    agentsCount.setStyleName( "default" );
-    agentsCountRow.add( agentsCount );
-
-    // the environments count
-    Row environmentsCountRow = new Row();
-    content.add( environmentsCountRow );
-    Label environmentsCountLabel = new Label( Messages.getString( "environments.count" ) + ": " );
-    environmentsCountLabel.setStyleName( "default" );
-    environmentsCountRow.add( environmentsCountLabel );
-    environmentsCount = new Label( " " );
-    environmentsCount.setStyleName( "default" );
-    environmentsCountRow.add( environmentsCount );
-
-    // the groups count
-    Row groupsCountRow = new Row();
-    content.add( groupsCountRow );
-    Label groupsCountLabel = new Label( Messages.getString( "groups.count" ) + ": " );
-    groupsCountLabel.setStyleName( "default" );
-    groupsCountRow.add( groupsCountLabel );
-    groupsCount = new Label( " " );
-    groupsCount.setStyleName( "default" );
-    groupsCountRow.add( groupsCount );
-
-    // the users count
-    Row usersCountRow = new Row();
-    content.add( usersCountRow );
-    Label usersCountLabel = new Label( Messages.getString( "users.count" ) + ": " );
-    usersCountLabel.setStyleName( "default" );
-    usersCountRow.add( usersCountLabel );
-    usersCount = new Label( " " );
-    usersCount.setStyleName( "default" );
-    usersCountRow.add( usersCount );
-
-    // the reporting buttons
-    Row agentMapRow = new Row();
-    content.add( agentMapRow );
-    Button agentMap = new Button( Messages.getString( "stats.agents" ), Styles.COG );
-    agentMapRow.add( agentMap );
-
-    Row physicalMapRow = new Row();
-    content.add( physicalMapRow );
-    Button physicalMap = new Button( Messages.getString( "stats.physical" ), Styles.COMPUTER );
-    physicalMapRow.add( physicalMap );
-
-    Row middlewareMapRow = new Row();
-    content.add( middlewareMapRow );
-    Button middlewareMap = new Button( Messages.getString( "stats.middlewares" ), Styles.BUILDING );
-    middlewareMapRow.add( middlewareMap );
-
-    update();
-  }
-
-  /**
-   * Update the window content.
-   */
-  public void update()
-  {
-    // parse Kalumet configuration
-    Kalumet kalumet = null;
-    try
-    {
-      kalumet = ConfigurationManager.loadStore();
-    }
-    catch ( Exception e )
-    {
-      KalumetConsoleApplication.getApplication().getLogPane().addError(
-        Messages.getString( "db.read" ) + ": " + e.getMessage() );
-      return;
-    }
-    agentsCount.setText( new Integer( kalumet.getAgents().size() ).toString() );
-    environmentsCount.setText( new Integer( kalumet.getEnvironments().size() ).toString() );
-    groupsCount.setText( new Integer( kalumet.getSecurity().getGroups().size() ).toString() );
-    usersCount.setText( new Integer( kalumet.getSecurity().getUsers().size() ).toString() );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/Styles.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/Styles.java
deleted file mode 100644
index 7ceb120..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/Styles.java
+++ /dev/null
@@ -1,178 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.ImageReference;
-import nextapp.echo2.app.ResourceImageReference;
-import nextapp.echo2.app.StyleSheet;
-import nextapp.echo2.app.componentxml.ComponentXmlException;
-import nextapp.echo2.app.componentxml.StyleSheetLoader;
-
-/**
- * Define the look'n feel information.
- */
-public class Styles
-{
-
-  public static final String ICONS_PATH = "/org/apache/kalumet/console/app/icons/";
-
-  public static final String STYLE_PATH = "/org/apache/kalumet/console/app/style/";
-
-  // default style sheet.
-  public static final StyleSheet DEFAULT_STYLE_SHEET;
-
-  static
-  {
-    try
-    {
-      DEFAULT_STYLE_SHEET =
-        StyleSheetLoader.load( STYLE_PATH + "default.stylesheet", Thread.currentThread().getContextClassLoader() );
-    }
-    catch ( ComponentXmlException exception )
-    {
-      throw new RuntimeException( exception );
-    }
-  }
-
-  // icons
-  public static final ImageReference ACCEPT = new ResourceImageReference( ICONS_PATH + "accept.png" );
-
-  public static final ImageReference ADD = new ResourceImageReference( ICONS_PATH + "add.png" );
-
-  public static final ImageReference APPLICATION = new ResourceImageReference( ICONS_PATH + "application.png" );
-
-  public static final ImageReference APPLICATION_ADD = new ResourceImageReference( ICONS_PATH + "application_add.png" );
-
-  public static final ImageReference APPLICATION_DELETE =
-    new ResourceImageReference( ICONS_PATH + "application_delete.png" );
-
-  public static final ImageReference ARROW_DOWN = new ResourceImageReference( ICONS_PATH + "arrow_down.png" );
-
-  public static final ImageReference ARROW_LEFT = new ResourceImageReference( ICONS_PATH + "arrow_left.png" );
-
-  public static final ImageReference ARROW_RIGHT = new ResourceImageReference( ICONS_PATH + "arrow_right.png" );
-
-  public static final ImageReference ARROW_UP = new ResourceImageReference( ICONS_PATH + "arrow_up.png" );
-
-  public static final ImageReference CROSS = new ResourceImageReference( ICONS_PATH + "cross.png" );
-
-  public static final ImageReference BRICK = new ResourceImageReference( ICONS_PATH + "brick.png" );
-
-  public static final ImageReference BRICK_ADD = new ResourceImageReference( ICONS_PATH + "brick_add.png" );
-
-  public static final ImageReference BRICK_DELETE = new ResourceImageReference( ICONS_PATH + "brick_delete.png" );
-
-  public static final ImageReference BOOK_NEXT = new ResourceImageReference( ICONS_PATH + "book_next.png" );
-
-  public static final ImageReference BOOK_PREVIOUS = new ResourceImageReference( ICONS_PATH + "book_previous.png" );
-
-  public static final ImageReference BUILDING = new ResourceImageReference( ICONS_PATH + "building.png" );
-
-  public static final ImageReference CHART_BAR = new ResourceImageReference( ICONS_PATH + "chart_bar.png" );
-
-  public static final ImageReference COG = new ResourceImageReference( ICONS_PATH + "cog.png" );
-
-  public static final ImageReference COG_ADD = new ResourceImageReference( ICONS_PATH + "cog_add.png" );
-
-  public static final ImageReference COG_DELETE = new ResourceImageReference( ICONS_PATH + "cog_delete.png" );
-
-  public static final ImageReference COMPUTER = new ResourceImageReference( ICONS_PATH + "computer.png" );
-
-  public static final ImageReference COMPUTER_EDIT = new ResourceImageReference( ICONS_PATH + "computer_edit.png" );
-
-  public static final ImageReference DATABASE = new ResourceImageReference( ICONS_PATH + "database.png" );
-
-  public static final ImageReference DATABASE_ADD = new ResourceImageReference( ICONS_PATH + "database_add.png" );
-
-  public static final ImageReference DATABASE_GEAR = new ResourceImageReference( ICONS_PATH + "database_gear.png" );
-
-  public static final ImageReference DATABASE_GO = new ResourceImageReference( ICONS_PATH + "database_go.png" );
-
-  public static final ImageReference DATABASE_REFRESH =
-    new ResourceImageReference( ICONS_PATH + "database_refresh.png" );
-
-  public static final ImageReference DATABASE_SAVE = new ResourceImageReference( ICONS_PATH + "database_save.png" );
-
-  public static final ImageReference DELETE = new ResourceImageReference( ICONS_PATH + "delete.png" );
-
-  public static final ImageReference DISCONNECT = new ResourceImageReference( ICONS_PATH + "disconnect.png" );
-
-  public static final ImageReference DOOR_IN = new ResourceImageReference( ICONS_PATH + "door_in.png" );
-
-  public static final ImageReference DRIVE_WEB = new ResourceImageReference( ICONS_PATH + "drive_web.png" );
-
-  public static final ImageReference ERROR = new ResourceImageReference( ICONS_PATH + "error.png" );
-
-  public static final ImageReference EXCLAMATION = new ResourceImageReference( ICONS_PATH + "exclamation.png" );
-
-  public static final ImageReference FLAG_GREEN = new ResourceImageReference( ICONS_PATH + "flag_green.png" );
-
-  public static final ImageReference FLAG_RED = new ResourceImageReference( ICONS_PATH + "flag_red.png" );
-
-  public static final ImageReference FOLDER_EXPLORE = new ResourceImageReference( ICONS_PATH + "folder_explore.png" );
-
-  public static final ImageReference GROUP_ADD = new ResourceImageReference( ICONS_PATH + "group_add.png" );
-
-  public static final ImageReference GROUP_DELETE = new ResourceImageReference( ICONS_PATH + "group_delete.png" );
-
-  public static final ImageReference GROUP_EDIT = new ResourceImageReference( ICONS_PATH + "group_edit.png" );
-
-  public static final ImageReference GROUP = new ResourceImageReference( ICONS_PATH + "group.png" );
-
-  public static final ImageReference INFORMATION = new ResourceImageReference( ICONS_PATH + "information.png" );
-
-  public static final ImageReference LIGHTBULB = new ResourceImageReference( ICONS_PATH + "lightbulb.png" );
-
-  public static final ImageReference LIGHTBULB_OFF = new ResourceImageReference( ICONS_PATH + "lightbulb_off.png" );
-
-  public static final ImageReference LORRY = new ResourceImageReference( ICONS_PATH + "lorry.png" );
-
-  public static final ImageReference LOCK = new ResourceImageReference( ICONS_PATH + "lock.png" );
-
-  public static final ImageReference PAGE_COPY = new ResourceImageReference( ICONS_PATH + "page_copy.png" );
-
-  public static final ImageReference PAGE_PASTE = new ResourceImageReference( ICONS_PATH + "page_paste.png" );
-
-  public static final ImageReference PLUGIN = new ResourceImageReference( ICONS_PATH + "plugin.png" );
-
-  public static final ImageReference PLUGIN_DISABLED = new ResourceImageReference( ICONS_PATH + "plugin_disabled.png" );
-
-  public static final ImageReference SCRIPT = new ResourceImageReference( ICONS_PATH + "script.png" );
-
-  public static final ImageReference SERVER_ADD = new ResourceImageReference( ICONS_PATH + "server_add.png" );
-
-  public static final ImageReference SERVER_DELETE = new ResourceImageReference( ICONS_PATH + "server_delete.png" );
-
-  public static final ImageReference STOP = new ResourceImageReference( ICONS_PATH + "stop.png" );
-
-  public static final ImageReference TIME = new ResourceImageReference( ICONS_PATH + "time.png" );
-
-  public static final ImageReference USER_ADD = new ResourceImageReference( ICONS_PATH + "user_add.png" );
-
-  public static final ImageReference USER_DELETE = new ResourceImageReference( ICONS_PATH + "user_delete.png" );
-
-  public static final ImageReference USER_EDIT = new ResourceImageReference( ICONS_PATH + "user_edit.png" );
-
-  public static final ImageReference USER = new ResourceImageReference( ICONS_PATH + "user.png" );
-
-  public static final ImageReference WORLD = new ResourceImageReference( ICONS_PATH + "world.png" );
-
-  public static final ImageReference WRENCH = new ResourceImageReference( ICONS_PATH + "wrench.png" );
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ViewFileWindow.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ViewFileWindow.java
deleted file mode 100644
index 0819a1b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/app/ViewFileWindow.java
+++ /dev/null
@@ -1,217 +0,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.
- */
-package org.apache.kalumet.console.app;
-
-import nextapp.echo2.app.Button;
-import nextapp.echo2.app.Extent;
-import nextapp.echo2.app.Insets;
-import nextapp.echo2.app.Label;
-import nextapp.echo2.app.Row;
-import nextapp.echo2.app.SplitPane;
-import nextapp.echo2.app.TextArea;
-import nextapp.echo2.app.WindowPane;
-import nextapp.echo2.app.event.ActionEvent;
-import nextapp.echo2.app.event.ActionListener;
-import nextapp.echo2.app.layout.SplitPaneLayoutData;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Agent;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.ws.client.FileClient;
-
-/**
- * Window displaying the content of a file.
- */
-public class ViewFileWindow
-  extends WindowPane
-{
-
-  private String path;
-
-  private String agentId;
-
-  private Label statusLabel;
-
-  private TextArea contentArea;
-
-  // view thread
-  class ViewThread
-    extends Thread
-  {
-
-    public boolean ended = false;
-
-    public boolean failure = false;
-
-    public String path;
-
-    public String agentId;
-
-    public String message;
-
-    public void run()
-    {
-      try
-      {
-        // load Kalumet configuration
-        Kalumet kalumet = ConfigurationManager.loadStore();
-        // looking for the agent
-        Agent agent = kalumet.getAgent( agentId );
-        if ( agent == null )
-        {
-          throw new IllegalArgumentException( "agent " + agentId + " not found." );
-        }
-        // call the WebService
-        FileClient client = new FileClient( agent.getHostname(), agent.getPort() );
-        message = client.view( path );
-      }
-      catch ( Exception e )
-      {
-        failure = true;
-        message = "Can't view " + path + ": " + e.getMessage();
-      }
-      finally
-      {
-        ended = true;
-      }
-    }
-
-  }
-
-  // refresh
-  private ActionListener refresh = new ActionListener()
-  {
-    public void actionPerformed( ActionEvent event )
-    {
-      update();
-    }
-  };
-
-  /**
-   * Create a window to display the content of the given file.
-   *
-   * @param path    the file path to display content.
-   * @param agentId the agent id to use to view the file.
-   */
-  public ViewFileWindow( String path, String agentId )
-  {
-    super();
-
-    this.path = path;
-    this.agentId = agentId;
-
-    this.setStyleName( "default" );
-    this.setTitle( "View file " + path );
-    this.setIcon( Styles.SCRIPT );
-    this.setWidth( new Extent( 600, Extent.PX ) );
-    this.setHeight( new Extent( 400, Extent.PX ) );
-
-    // add the split pane
-    SplitPane splitPane = new SplitPane( SplitPane.ORIENTATION_VERTICAL_BOTTOM_TOP, new Extent( 32 ) );
-    add( splitPane );
-
-    // add the control row
-    Row controlRow = new Row();
-    controlRow.setStyleName( "control" );
-    splitPane.add( controlRow );
-
-    // add the refresh button
-    Button refreshButton = new Button( Messages.getString( "reload" ), Styles.DATABASE_REFRESH );
-    refreshButton.setStyleName( "control" );
-    refreshButton.addActionListener( refresh );
-    controlRow.add( refreshButton );
-
-    // add the close button
-    Button closeButton = new Button( Messages.getString( "close" ), Styles.CROSS );
-    closeButton.setStyleName( "control" );
-    closeButton.addActionListener( new ActionListener()
-    {
-      public void actionPerformed( ActionEvent event )
-      {
-        ViewFileWindow.this.userClose();
-      }
-    } );
-    controlRow.add( closeButton );
-
-    // add the content column
-    SplitPane content = new SplitPane( SplitPane.ORIENTATION_VERTICAL_TOP_BOTTOM, new Extent( 20 ) );
-    splitPane.add( content );
-
-    // add the status label
-    statusLabel = new Label();
-    statusLabel.setStyleName( "default" );
-    SplitPaneLayoutData layoutData = new SplitPaneLayoutData();
-    layoutData.setInsets( new Insets( 4 ) );
-    statusLabel.setLayoutData( layoutData );
-    content.add( statusLabel );
-
-    // add the file content area
-    contentArea = new TextArea();
-    contentArea.setStyleName( "default" );
-    contentArea.setLayoutData( layoutData );
-    contentArea.setWidth( new Extent( 100, Extent.PERCENT ) );
-    contentArea.setHeight( new Extent( 98, Extent.PERCENT ) );
-    contentArea.setEnabled( false );
-    content.add( contentArea );
-
-    // update the pane
-    update();
-  }
-
-  public void update()
-  {
-    statusLabel.setText( "Please wait ..." );
-    statusLabel.setIcon( Styles.ERROR );
-
-    // launch the view thread
-    final ViewThread viewThread = new ViewThread();
-    viewThread.agentId = agentId;
-    viewThread.path = path;
-    viewThread.start();
-
-    // sync with the client
-    KalumetConsoleApplication.getApplication().enqueueTask( KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                            new Runnable()
-                                                            {
-                                                              public void run()
-                                                              {
-                                                                if ( viewThread.ended )
-                                                                {
-                                                                  if ( viewThread.failure )
-                                                                  {
-                                                                    statusLabel.setText( viewThread.message );
-                                                                    statusLabel.setIcon( Styles.EXCLAMATION );
-                                                                  }
-                                                                  else
-                                                                  {
-                                                                    statusLabel.setText( "File loaded." );
-                                                                    statusLabel.setIcon( Styles.ACCEPT );
-                                                                    contentArea.setText( viewThread.message );
-                                                                  }
-                                                                }
-                                                                else
-                                                                {
-                                                                  KalumetConsoleApplication.getApplication().enqueueTask(
-                                                                    KalumetConsoleApplication.getApplication().getTaskQueue(),
-                                                                    this );
-                                                                }
-                                                              }
-                                                            } );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/ConfigurationManager.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/ConfigurationManager.java
deleted file mode 100644
index c680292..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/ConfigurationManager.java
+++ /dev/null
@@ -1,209 +0,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.
- */
-package org.apache.kalumet.console.configuration;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.kalumet.console.configuration.model.KalumetConsole;
-import org.apache.kalumet.console.configuration.model.Property;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.log.Journal;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.File;
-import java.util.Calendar;
-import java.util.Date;
-
-/**
- * Load and manipulate the Kalumet configuration store.
- */
-public class ConfigurationManager
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( ConfigurationManager.class );
-
-  private final static String KALUMET_CONSOLE_CONFIGURATION_FILE = "/kalumet-console-config.xml";
-
-  private final static String ENVIRONMENT_JOURNAL_FILE_EXTENSION = ".log";
-
-  private static KalumetConsole KALUMET_CONSOLE_CACHE = null;
-
-  private static Kalumet KALUMET_CACHE = null;
-
-  private static int KALUMET_CACHE_TIMEOUT_MINUTES = 5;
-
-  private static Date KALUMET_CACHE_DEPRECATION_DATE = null;
-
-  /**
-   * Load the Kalumet Console configuration.
-   *
-   * @return the Kalumet configuration object.
-   */
-  public final static KalumetConsole loadConfiguration()
-    throws Exception
-  {
-    if ( KALUMET_CONSOLE_CACHE == null )
-    {
-      LOGGER.debug( "Loading Apache Kalumet console configuration from {}", KALUMET_CONSOLE_CONFIGURATION_FILE );
-      String configurationFile = null;
-      try
-      {
-        configurationFile =
-          ConfigurationManager.class.getResource( ConfigurationManager.KALUMET_CONSOLE_CONFIGURATION_FILE ).toString();
-      }
-      catch ( NullPointerException nullPointerException )
-      {
-        LOGGER.error( "Apache Kalumet configuration file is not found in the server classpath" );
-        throw new IllegalStateException( "Apache Kalumet configuration file is not found in the server classpath" );
-      }
-      KALUMET_CONSOLE_CACHE = KalumetConsole.digeste( configurationFile );
-    }
-    return KALUMET_CONSOLE_CACHE;
-  }
-
-  /**
-   * Get the Kalumet XML configuration location.
-   *
-   * @return the Kalumet XML configuration location.
-   */
-  private final static String getStoreFile()
-    throws Exception
-  {
-    KalumetConsole kalumetConsole = ConfigurationManager.loadConfiguration();
-    Property kalumetConsoleProperty = kalumetConsole.getProperty( "ConfigurationLocation" );
-    if ( kalumetConsoleProperty == null )
-    {
-      throw new IllegalStateException(
-        "The property ConfigurationLocation is not found in the Apache Kalumet Console configuration. This property is required to use Apache Kalumet Console and must contains the location (file: or http:) to the Kalumet configuration store" );
-    }
-    if ( System.getProperty( "kalumet.home" ) != null )
-    {
-      return System.getProperty( "kalumet.home" ) + "/" + kalumetConsoleProperty.getValue();
-    }
-    return kalumetConsoleProperty.getValue();
-  }
-
-  /**
-   * Load the Kalumet configuration.
-   *
-   * @return the Kalumet configuration.
-   */
-  public final static Kalumet loadStore()
-    throws Exception
-  {
-    if ( KALUMET_CACHE == null || KALUMET_CACHE_DEPRECATION_DATE.after( Calendar.getInstance().getTime() ) )
-    {
-      String kalumetConfigurationPath = ConfigurationManager.getStoreFile();
-      File kalumetConfigurationFile = new File( kalumetConfigurationPath );
-      if ( !kalumetConfigurationFile.exists() )
-      {
-        kalumetConfigurationFile.createNewFile();
-        // init with a default file
-        Kalumet.writeDefault( kalumetConfigurationPath );
-      }
-      KALUMET_CACHE = Kalumet.digeste( kalumetConfigurationPath );
-      // update the deprecation date
-      Calendar timeout = Calendar.getInstance();
-      timeout.set( Calendar.MINUTE, timeout.get( Calendar.MINUTE ) + KALUMET_CACHE_TIMEOUT_MINUTES );
-      KALUMET_CACHE_DEPRECATION_DATE = timeout.getTime();
-    }
-    return KALUMET_CACHE;
-  }
-
-  /**
-   * Read the Kalumet configuration store and return the XML raw content.
-   *
-   * @return the Kalumet XML raw content.
-   */
-  public final static String readStore()
-    throws Exception
-  {
-    String content = null;
-    return FileUtils.readFileToString( new File( ConfigurationManager.getStoreFile() ), "ISO-8859-1" );
-  }
-
-  /**
-   * Write the Kalumet configuration.
-   *
-   * @param kalumet the Kalumet configuration object to store.
-   */
-  public final static void writeStore( Kalumet kalumet )
-    throws Exception
-  {
-    // get the kalumet configuration store location
-    String kalumetConfigurationLocation = ConfigurationManager.getStoreFile();
-    // write the file
-    kalumet.writeXMLFile( kalumetConfigurationLocation );
-    // update the cache
-    KALUMET_CACHE = kalumet;
-    // update the deprecation date
-    Calendar timeout = Calendar.getInstance();
-    timeout.set( Calendar.MINUTE, timeout.get( Calendar.MINUTE ) + KALUMET_CACHE_TIMEOUT_MINUTES );
-    KALUMET_CACHE_DEPRECATION_DATE = timeout.getTime();
-  }
-
-  /**
-   * Get the Environment Journal location.
-   *
-   * @param environment the Environment name.
-   * @return the Environment Journal location.
-   */
-  public final static String getEnvironmentJournalFile( String environment )
-    throws Exception
-  {
-    KalumetConsole kalumetConsole = ConfigurationManager.loadConfiguration();
-    Property kalumetConsoleProperty = kalumetConsole.getProperty( "JournalsLocation" );
-    if ( kalumetConsoleProperty == null )
-    {
-      throw new IllegalArgumentException(
-        "The property JournalsLocation is not found in the Apache Kalumet Console configuration. This property is required to store the environment journals and must contain the directory path for the journal files." );
-    }
-    String journalPath;
-    if ( System.getProperty( "kalumet.home" ) != null )
-    {
-      journalPath = System.getProperty( "kalumet.home" ) + "/" + kalumetConsoleProperty.getValue() + "/" + environment
-        + ConfigurationManager.ENVIRONMENT_JOURNAL_FILE_EXTENSION;
-    }
-    else
-    {
-      journalPath =
-        kalumetConsoleProperty.getValue() + "/" + environment + ConfigurationManager.ENVIRONMENT_JOURNAL_FILE_EXTENSION;
-    }
-
-    File journalDir = new File( journalPath );
-    journalDir.getParentFile().mkdirs();
-    return journalPath;
-  }
-
-  /**
-   * Read the environment journal.
-   *
-   * @param environment the <code>Environment</code> name.
-   * @return the environment journal object.
-   */
-  public final static Journal loadEnvironmentJournal( String environment )
-    throws Exception
-  {
-    KalumetConsole kalumetConsole = ConfigurationManager.loadConfiguration();
-    String journalPath = ConfigurationManager.getEnvironmentJournalFile( environment );
-    Journal journal = null;
-    return Journal.digeste( journalPath );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/model/KalumetConsole.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/model/KalumetConsole.java
deleted file mode 100644
index 6be6261..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/model/KalumetConsole.java
+++ /dev/null
@@ -1,120 +0,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.
- */
-package org.apache.kalumet.console.configuration.model;
-
-import org.apache.commons.digester.Digester;
-
-import java.io.IOException;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-
-/**
- * Represents the <code>kalumet-console</code> root tag of the
- * Kalumet Console configuration.
- */
-public class KalumetConsole
-{
-
-  private LinkedList properties;
-
-  public KalumetConsole()
-  {
-    this.properties = new LinkedList();
-  }
-
-  /**
-   * Add a new property.
-   *
-   * @param property the <code>Property</code> to add.
-   */
-  public void addProperty( Property property )
-    throws Exception
-  {
-    if ( this.getProperty( property.getName() ) != null )
-    {
-      throw new IllegalArgumentException(
-        "The property name " + property.getName() + " already exists in the console configuration" );
-    }
-    this.properties.add( property );
-  }
-
-  /**
-   * Return the property list.
-   *
-   * @return the <code>Property</code> list.
-   */
-  public List getProperties()
-  {
-    return this.properties;
-  }
-
-  /**
-   * Return the property identified by a given name.
-   *
-   * @param name the property name.
-   * @return the <code>Property</code> found or null if no <code>Property</code> found.
-   */
-  public Property getProperty( String name )
-  {
-    for ( Iterator propertyIterator = this.getProperties().iterator(); propertyIterator.hasNext(); )
-    {
-      Property property = (Property) propertyIterator.next();
-      if ( property.getName().equals( name ) )
-      {
-        return property;
-      }
-    }
-    return null;
-  }
-
-  /**
-   * Digest the Kalumet Console configuration.
-   *
-   * @param path the Kalumet Console location.
-   * @return the Kalumet Console configuration object.
-   */
-  public static KalumetConsole digeste( String path )
-    throws Exception
-  {
-    KalumetConsole kalumetConsole = null;
-    try
-    {
-      Digester digester = new Digester();
-      digester.setValidating( false );
-      digester.addObjectCreate( "kalumet-console", "org.apache.kalumet.console.configuration.model.KalumetConsole" );
-
-      digester.addObjectCreate( "kalumet-console/property", "org.apache.kalumet.console.configuration.model.Property" );
-      digester.addSetProperties( "kalumet-console/property" );
-
-      digester.addSetNext( "kalumet-console/property", "addProperty",
-                           "org.apache.kalumet.console.configuration.model.Property" );
-
-      kalumetConsole = (KalumetConsole) digester.parse( path );
-    }
-    catch ( Exception e )
-    {
-      IOException ioe = new IOException( "Can't read the Apache Kalumet console configuration" );
-      ioe.initCause( e );
-      throw ioe;
-    }
-    return kalumetConsole;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/model/Property.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/model/Property.java
deleted file mode 100644
index 6fcc30c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/configuration/model/Property.java
+++ /dev/null
@@ -1,56 +0,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.
- */
-package org.apache.kalumet.console.configuration.model;
-
-/**
- * Represents the <code>property</code> tag in the kalumet-console-config.xml
- * configuration file.
- */
-public class Property
-{
-
-  private String name;
-
-  private String value;
-
-  public Property()
-  {
-  }
-
-  public String getName()
-  {
-    return this.name;
-  }
-
-  public void setName( String name )
-  {
-    this.name = name;
-  }
-
-  public String getValue()
-  {
-    return this.value;
-  }
-
-  public void setValue( String value )
-  {
-    this.value = value;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/services/KalumetConfigurationWrapperServlet.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/services/KalumetConfigurationWrapperServlet.java
deleted file mode 100644
index adf4267..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/services/KalumetConfigurationWrapperServlet.java
+++ /dev/null
@@ -1,56 +0,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.
- */
-package org.apache.kalumet.console.services;
-
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.PrintWriter;
-
-/**
- * This servlet reads the Kalumet configuration store and push it to the
- * servlet response stream.
- */
-public class KalumetConfigurationWrapperServlet
-  extends HttpServlet
-{
-
-  public void doGet( HttpServletRequest req, HttpServletResponse resp )
-    throws ServletException, IOException
-  {
-    PrintWriter writer = resp.getWriter();
-    String content;
-    try
-    {
-      content = ConfigurationManager.readStore();
-    }
-    catch ( Exception e )
-    {
-      throw new ServletException( "Can't read the Apache Kalumet configuration store", e );
-    }
-    writer.print( content );
-    writer.flush();
-    writer.close();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/services/KalumetJournalEventAppenderServlet.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/services/KalumetJournalEventAppenderServlet.java
deleted file mode 100644
index 7439e4f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/services/KalumetJournalEventAppenderServlet.java
+++ /dev/null
@@ -1,98 +0,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.
- */
-package org.apache.kalumet.console.services;
-
-import org.apache.commons.lang.time.DateFormatUtils;
-import org.apache.commons.lang.time.FastDateFormat;
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.log.Event;
-import org.apache.kalumet.model.log.Journal;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Date;
-
-/**
- * This servlet appends a new event in a environment journal file.
- */
-public class KalumetJournalEventAppenderServlet
-  extends HttpServlet
-{
-
-  private static final long serialVersionUID = -8539990024742515658L;
-
-  public void doGet( HttpServletRequest req, HttpServletResponse resp )
-    throws ServletException, IOException
-  {
-    // get the parameter
-    String environment = req.getParameter( "environment" );
-    String author = req.getParameter( "author" );
-    String severity = req.getParameter( "severity" );
-    String event = req.getParameter( "event" );
-    // check if the parameters are corrects
-    if ( environment == null || environment.trim().length() < 1 || author == null || author.trim().length() < 1
-      || severity == null || severity.trim().length() < 1 || event == null || event.trim().length() < 1 )
-    {
-      throw new ServletException(
-        "The Apache Kalumet Console journal event appender needs the environment, author, severity and event HTTP parameters." );
-    }
-    // load the environment journal
-    Journal journal = null;
-    try
-    {
-      journal = ConfigurationManager.loadEnvironmentJournal( environment );
-    }
-    catch ( Exception e )
-    {
-      throw new ServletException( "Can't read the environment journal", e );
-    }
-    // create a new event
-    Event journalEvent = new Event();
-    journalEvent.setDate( ( (FastDateFormat) DateFormatUtils.ISO_DATETIME_FORMAT ).format( new Date() ) );
-    journalEvent.setSeverity( severity );
-    journalEvent.setAuthor( author );
-    journalEvent.setContent( event );
-    journal.addEvent( journalEvent );
-    // save the journal
-    try
-    {
-      journal.writeXMLFile( ConfigurationManager.getEnvironmentJournalFile( environment ) );
-    }
-    catch ( Exception e )
-    {
-      throw new ServletException( "Can't write the environment journal", e );
-    }
-    // send OK
-    PrintWriter writer = resp.getWriter();
-    writer.print( "Environment " + environment + " journal updated" );
-    writer.flush();
-    writer.close();
-  }
-
-  public void doPost( HttpServletRequest req, HttpServletResponse resp )
-    throws ServletException, IOException
-  {
-    doGet( req, resp );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/utils/LdapUtils.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/utils/LdapUtils.java
deleted file mode 100644
index 7da8e84..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/utils/LdapUtils.java
+++ /dev/null
@@ -1,163 +0,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.
- */
-package org.apache.kalumet.console.utils;
-
-import org.apache.kalumet.console.configuration.ConfigurationManager;
-import org.apache.kalumet.model.Kalumet;
-import org.apache.kalumet.model.User;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.naming.Context;
-import javax.naming.NamingEnumeration;
-import javax.naming.directory.Attributes;
-import javax.naming.directory.DirContext;
-import javax.naming.directory.InitialDirContext;
-import javax.naming.directory.SearchControls;
-import javax.naming.directory.SearchResult;
-import java.util.Hashtable;
-
-
-/**
- * LDAP utility class.
- */
-public class LdapUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( LdapUtils.class );
-
-  /**
-   * Try to bind a user id and password in a given LDAP directory.
-   *
-   * @param user     the user to bind.
-   * @param password the password to bind.
-   * @return true if the user is identified.
-   */
-  public static boolean bind( String user, String password )
-    throws Exception
-  {
-    LOGGER.debug( "Try to bind the user {}", user );
-    // load Kalumet store
-    Kalumet kalumet;
-    kalumet = ConfigurationManager.loadStore();
-    if ( kalumet.getProperty( "LdapAuthentication" ) == null || kalumet.getProperty( "LdapServer" ) == null
-      || kalumet.getProperty( "LdapBaseDN" ) == null || kalumet.getProperty( "LdapUidAttribute" ) == null
-      || kalumet.getProperty( "LdapMailAttribute" ) == null || kalumet.getProperty( "LdapCnAttribute" ) == null )
-    {
-      LOGGER.error(
-        "All LDAP required properties are not present in Apache Kalumet configuration. Check if the properties LdapAuthentication, LdapServer, LdapBaseDN, LdapUidAttribute, LdapMailAttribute, LdapCnAttribute are presents in Apache Kalumet configuration." );
-      throw new IllegalStateException(
-        "All LDAP required properties are not present in Apache Kalumet configuration. Check if the properties LdapAuthentication, LdapServer, LdapBaseDN, LdapUidAttribute, LdapMailAttribute, LdapCnAttribute are presents in Apache Kalumet configuration." );
-    }
-    if ( kalumet.getProperty( "LdapAuthentication" ).getValue().equals( "false" ) )
-    {
-      LOGGER.error( "The LDAP authentication is not active in Apache Kalumet configuration. Can't bind on LDAP." );
-      throw new IllegalStateException( "The LDAP authentication is not active in Apache Kalumet. Can't bind on LDAP." );
-    }
-    // step 1 : connect to the LDAP server (anonymous) to get the user DN
-    LOGGER.debug( "LDAP Authentification Backend Step 1: grab the user DN" );
-    LOGGER.debug( "Create the LDAP initial context" );
-    Hashtable env = new Hashtable();
-    // TODO use a generic LDAP Context Factory compliant with IBM JDK
-    env.put( Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
-    LOGGER.debug( "Connect to the LDAP server ldap://{}", kalumet.getProperty( "LdapServer" ).getValue() );
-    env.put( Context.PROVIDER_URL, "ldap://" + kalumet.getProperty( "LdapServer" ).getValue() );
-    String userDN;
-    String userName;
-    String userEmail;
-    try
-    {
-      LOGGER.debug( "Init the JNDI LDAP Dir context ..." );
-      DirContext context = new InitialDirContext( env );
-      LOGGER.debug( "Define the subtree scope search control. " );
-      SearchControls controls = new SearchControls();
-      controls.setSearchScope( SearchControls.SUBTREE_SCOPE );
-      LOGGER.debug( "Looking for the user in LDAP ..." );
-      LOGGER.debug( "  Base DN: {}", kalumet.getProperty( "LdapBaseDN" ).getValue() );
-      LOGGER.debug( "  Filter:  ({}={})", kalumet.getProperty( "LdapUidAttribute" ).getValue(), user );
-      NamingEnumeration namingEnumeration = context.search( kalumet.getProperty( "LdapBaseDN" ).getValue(),
-                                                            "(" + kalumet.getProperty( "LdapUidAttribute" ).getValue()
-                                                              + "=" + user + ")", controls );
-      if ( !namingEnumeration.hasMore() )
-      {
-        LOGGER.warn( "User {} not found in LDAP", user );
-        return false;
-      }
-      LOGGER.debug( "Get the user object" );
-      SearchResult result = (SearchResult) namingEnumeration.next();
-      LOGGER.debug( "Get the attributes set" );
-      Attributes attributes = result.getAttributes();
-      LOGGER.debug( "Trying to get the DN attribute" );
-      userDN = (String) result.getName();
-      LOGGER.debug( "Get the LDAP user DN: {}", userDN );
-      userName = (String) attributes.get( kalumet.getProperty( "LdapCnAttribute" ).getValue() ).get();
-      LOGGER.debug( "Get the LDAP user name: {}", userName );
-      userEmail = (String) attributes.get( kalumet.getProperty( "LdapMailAttribute" ).getValue() ).get();
-      LOGGER.debug( "Get the LDAP user e-mail: {}", userEmail );
-      context.close();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't connect to the LDAP server", e );
-      throw new IllegalStateException( "Can't connect to the LDAP server", e );
-    }
-    // step 2 : I have the DN, try to bind the user
-    LOGGER.debug( "LDAP Authentification Backend Step 2: bind the user with the DN/password" );
-    env = new Hashtable();
-    env.put( Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory" );
-    LOGGER.debug( "Connect to the LDAP server ldap://{}", kalumet.getProperty( "LdapServer" ).getValue() );
-    env.put( Context.PROVIDER_URL, "ldap://" + kalumet.getProperty( "LdapServer" ).getValue() );
-    LOGGER.debug( "Define a simple authentication" );
-    env.put( Context.SECURITY_AUTHENTICATION, "simple" );
-    LOGGER.debug( "Define the security principal to {},{}", userDN, kalumet.getProperty( "LdapBaseDN" ).getValue() );
-    env.put( Context.SECURITY_PRINCIPAL, userDN + "," + kalumet.getProperty( "LdapBaseDN" ).getValue() );
-    env.put( Context.SECURITY_CREDENTIALS, password );
-    LOGGER.debug( "Init the JNDI context ..." );
-    try
-    {
-      LOGGER.debug( "Directory context init" );
-      DirContext context = new InitialDirContext( env );
-      LOGGER.debug( "LDAP user bind successful" );
-      context.close();
-      if ( kalumet.getSecurity().getUser( user ) == null )
-      {
-        User securityUser = new User();
-        securityUser.setId( user );
-        securityUser.setName( userName );
-        securityUser.setEmail( userEmail );
-        kalumet.getSecurity().addUser( securityUser );
-        try
-        {
-          ConfigurationManager.writeStore( kalumet );
-        }
-        catch ( Exception e )
-        {
-          LOGGER.error( "Can't write the LDAP user in Apache Kalumet configuration store", e );
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "User authentication failure using LDAP server", e );
-      return false;
-    }
-    return true;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/utils/StackTraceUtils.java b/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/utils/StackTraceUtils.java
deleted file mode 100644
index 0ea0a2c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/java/org/apache/kalumet/console/utils/StackTraceUtils.java
+++ /dev/null
@@ -1,45 +0,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.
- */
-package org.apache.kalumet.console.utils;
-
-/**
- * Util class to manipulate exception stack trace.
- */
-public class StackTraceUtils
-{
-
-  /**
-   * Convert a stack trace elements into a string.
-   * WARNING: depending of the exception chain, this method call consume heap memory.
-   *
-   * @param elements the stack trace elements.
-   * @return the string representation of the stack trace.
-   */
-  public static String toString( StackTraceElement[] elements )
-  {
-    StringBuilder builder = new StringBuilder();
-    for ( int i = 0, size = elements.length; i < size; i++ )
-    {
-      builder.append( elements[i].toString() );
-      builder.append( '\n' );
-    }
-    return builder.toString();
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/kalumet-console-config.xml b/0.6.x/kalumet-modules/console/src/main/resources/kalumet-console-config.xml
deleted file mode 100644
index 66a7aa3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/kalumet-console-config.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?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.
--->
-
-<kalumet-console>
-
-  <property name="ConfigurationLocation" value="kalumet.xml"/>
-  <property name="JournalsLocation" value="journals"/>
-
-</kalumet-console>
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/log4j.xml b/0.6.x/kalumet-modules/console/src/main/resources/log4j.xml
deleted file mode 100644
index 552a7c7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/log4j.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?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.
-
--->
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
-  <appender name="FILE" class="org.apache.log4j.FileAppender">
-    <param name="threshold" value="DEBUG"/>
-    <param name="File" value="apache-kalumet-console.log"/>
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="%d{ABSOLUTE} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
-    </layout>
-  </appender>
-
-  <logger name="org.apache">
-    <level value="WARN"/>
-  </logger>
-
-  <logger name="org.quartz">
-    <level value="WARN"/>
-  </logger>
-
-  <logger name="org.apache.kalumet">
-    <!-- To enable debug logging, replace the INFO by DEBUG -->
-    <level value="INFO"/>
-  </logger>
-
-  <root>
-    <level value="INFO"/>
-    <appender-ref ref="FILE"/>
-  </root>
-
-
-</log4j:configuration>
-
-    <!--
-
-    Log4J Configuration Quick Reference:
-    ====================================
-
-    Priority order is DEBUG < INFO < WARN < ERROR < FATAL
-
-    PatternLayout conversion characters:
-
-    %c   Category of the logging event
-    %C   Fully qualified class name of the caller
-    %d   Date of the logging event  (example: %d{HH:mm:ss,SSS} )
-    %F   File name where the logging request was issued (caution: extremely slow)
-    %l   Location information of the caller (caution: extremely slow)
-    %L   Line number from where the logging request was issued (caution: extremely slow)
-    %m   Application-supplied message
-    %M   Method name from where the logging request was issued (caution: extremely slow)
-    %n   Line separator
-    %p   Priority of the logging event
-    %r   Number of milliseconds since the start of the application
-    %t   Name of the thread that generated the logging event
-    %x   Nested diagnotic context associated with the thread
-    %%   A single percent sign
-
-    Format modifiers examples:
-
-    %20c     Left pad with spaces if category is less than 20 characters long
-    %-20c    Right pad with spaces if category is less than 20 characters long
-    %.30c    Truncate from the beginning if category is more than 30 chars long
-    %20.30c  Left pad 20 chars + truncate from beginning if more than 30 chars
-    %-20.30c Right pad 20 chars + truncate from beginning if more than 30 chars
-
-    Examples:  "%r [%t] %-5p %c %x - %m\n"
-    "%-6r [%15.15t] %-5p %30.30c %x - %m\n"
-
-    -->
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/accept.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/accept.png
deleted file mode 100644
index 89c8129..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/accept.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/add.png
deleted file mode 100644
index 6332fef..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/anchor.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/anchor.png
deleted file mode 100644
index 9b3422c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/anchor.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application.png
deleted file mode 100644
index 1dee9e3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_add.png
deleted file mode 100644
index 2e94507..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_cascade.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_cascade.png
deleted file mode 100644
index da5c622..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_cascade.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_delete.png
deleted file mode 100644
index 0a335ac..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_double.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_double.png
deleted file mode 100644
index 647592f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_double.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_edit.png
deleted file mode 100644
index fb2efb8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_error.png
deleted file mode 100644
index b35fa57..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form.png
deleted file mode 100644
index 807b862..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_add.png
deleted file mode 100644
index 28c2175..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_delete.png
deleted file mode 100644
index cd305ec..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_edit.png
deleted file mode 100644
index af486c9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_magnify.png
deleted file mode 100644
index 7b7fbd1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_form_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_get.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_get.png
deleted file mode 100644
index 28e41ea..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_get.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_go.png
deleted file mode 100644
index 5cc2b0d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_home.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_home.png
deleted file mode 100644
index b60d0c8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_home.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_key.png
deleted file mode 100644
index 998d65c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_lightning.png
deleted file mode 100644
index 7e91545..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_link.png
deleted file mode 100644
index f8fbb3e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_osx.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_osx.png
deleted file mode 100644
index 9f022ec..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_osx.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_osx_terminal.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_osx_terminal.png
deleted file mode 100644
index b3d8ce0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_osx_terminal.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_put.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_put.png
deleted file mode 100644
index c30cf59..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_put.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_boxes.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_boxes.png
deleted file mode 100644
index efbf3c4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_boxes.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_contract.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_contract.png
deleted file mode 100644
index 3585f94..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_contract.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_expand.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_expand.png
deleted file mode 100644
index 030cf7c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_expand.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_list.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_list.png
deleted file mode 100644
index 248eaf1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_list.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_tree.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_tree.png
deleted file mode 100644
index f04a52b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_side_tree.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_split.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_split.png
deleted file mode 100644
index a91c78a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_split.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_tile_horizontal.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_tile_horizontal.png
deleted file mode 100644
index 8a1191c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_tile_horizontal.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_tile_vertical.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_tile_vertical.png
deleted file mode 100644
index 1d40383..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_tile_vertical.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_columns.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_columns.png
deleted file mode 100644
index dc2e9d5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_columns.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_detail.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_detail.png
deleted file mode 100644
index aba044b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_detail.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_gallery.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_gallery.png
deleted file mode 100644
index 851950d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_gallery.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_icons.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_icons.png
deleted file mode 100644
index 6a93cda..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_icons.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_list.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_list.png
deleted file mode 100644
index acc30b8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_list.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_tile.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_tile.png
deleted file mode 100644
index 3bc0bd3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_view_tile.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_xp.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_xp.png
deleted file mode 100644
index d22860a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_xp.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_xp_terminal.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_xp_terminal.png
deleted file mode 100644
index c28dd63..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/application_xp_terminal.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_branch.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_branch.png
deleted file mode 100644
index 7542db1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_branch.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_divide.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_divide.png
deleted file mode 100644
index 61a7b1d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_divide.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_down.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_down.png
deleted file mode 100644
index 2c4e279..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_down.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_in.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_in.png
deleted file mode 100644
index 745c651..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_in.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_inout.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_inout.png
deleted file mode 100644
index 1b76367..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_inout.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_join.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_join.png
deleted file mode 100644
index a128413..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_join.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_left.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_left.png
deleted file mode 100644
index 5dc6967..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_left.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_merge.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_merge.png
deleted file mode 100644
index 7502dbb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_merge.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_out.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_out.png
deleted file mode 100644
index 2e9bc42..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_out.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_redo.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_redo.png
deleted file mode 100644
index fdc394c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_redo.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_refresh.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_refresh.png
deleted file mode 100644
index 0de2656..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_refresh.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_refresh_small.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_refresh_small.png
deleted file mode 100644
index d3087df..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_refresh_small.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_right.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_right.png
deleted file mode 100644
index b1a1819..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_right.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_rotate_anticlockwise.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_rotate_anticlockwise.png
deleted file mode 100644
index 46c75aa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_rotate_anticlockwise.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_rotate_clockwise.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_rotate_clockwise.png
deleted file mode 100644
index aa65210..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_rotate_clockwise.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_switch.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_switch.png
deleted file mode 100644
index 258c16c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_switch.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_turn_left.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_turn_left.png
deleted file mode 100644
index a3d6c9e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_turn_left.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_turn_right.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_turn_right.png
deleted file mode 100644
index 629f20d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_turn_right.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_undo.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_undo.png
deleted file mode 100644
index 6972c5e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_undo.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_up.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_up.png
deleted file mode 100644
index 1ebb193..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/arrow_up.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/asterisk_orange.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/asterisk_orange.png
deleted file mode 100644
index 1ebebde..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/asterisk_orange.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/asterisk_yellow.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/asterisk_yellow.png
deleted file mode 100644
index bab7cc9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/asterisk_yellow.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/attach.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/attach.png
deleted file mode 100644
index ea897cc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/attach.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_add.png
deleted file mode 100644
index 9c4be9b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_1.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_1.png
deleted file mode 100644
index 658c711..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_1.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_2.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_2.png
deleted file mode 100644
index e47babd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_2.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_3.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_3.png
deleted file mode 100644
index 396e4b3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_bronze_3.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_delete.png
deleted file mode 100644
index 4721b15..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_1.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_1.png
deleted file mode 100644
index 97a22b7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_1.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_2.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_2.png
deleted file mode 100644
index 0eaa571..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_2.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_3.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_3.png
deleted file mode 100644
index 124c991..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_gold_3.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_1.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_1.png
deleted file mode 100644
index 028a546..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_1.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_2.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_2.png
deleted file mode 100644
index e487c3a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_2.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_3.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_3.png
deleted file mode 100644
index 1d72d47..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/award_star_silver_3.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket.png
deleted file mode 100644
index b0686d7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_add.png
deleted file mode 100644
index 3554368..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_delete.png
deleted file mode 100644
index 1349974..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_edit.png
deleted file mode 100644
index 8138bbd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_error.png
deleted file mode 100644
index 3978b29..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_go.png
deleted file mode 100644
index ed8b9a5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_put.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_put.png
deleted file mode 100644
index be62faa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_put.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_remove.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_remove.png
deleted file mode 100644
index 04dd7fd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/basket_remove.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell.png
deleted file mode 100644
index 6e0015d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_add.png
deleted file mode 100644
index 7db01d6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_delete.png
deleted file mode 100644
index 23907bb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_error.png
deleted file mode 100644
index a0ddc00..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_go.png
deleted file mode 100644
index b89bb34..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_link.png
deleted file mode 100644
index b8c64af..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bell_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin.png
deleted file mode 100644
index ebad933..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin_closed.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin_closed.png
deleted file mode 100644
index afe22ba..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin_closed.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin_empty.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin_empty.png
deleted file mode 100644
index 375b8bf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bin_empty.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bomb.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bomb.png
deleted file mode 100644
index 1be3797..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bomb.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book.png
deleted file mode 100644
index b0f4dd7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_add.png
deleted file mode 100644
index e2f0847..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_addresses.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_addresses.png
deleted file mode 100644
index b73419b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_addresses.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_delete.png
deleted file mode 100644
index d9a6340..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_edit.png
deleted file mode 100644
index 6e756cc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_error.png
deleted file mode 100644
index f3fbed0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_go.png
deleted file mode 100644
index cd4e196..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_key.png
deleted file mode 100644
index d8e23ec..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_link.png
deleted file mode 100644
index dd0820e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_next.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_next.png
deleted file mode 100644
index ff2ea1a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_next.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_open.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_open.png
deleted file mode 100644
index 7d863f9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_open.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_previous.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_previous.png
deleted file mode 100644
index 2e53c69..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/book_previous.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/box.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/box.png
deleted file mode 100644
index 8443c23..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/box.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick.png
deleted file mode 100644
index 7851cf3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_add.png
deleted file mode 100644
index fac186b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_delete.png
deleted file mode 100644
index 3a8c373..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_edit.png
deleted file mode 100644
index eb06df3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_error.png
deleted file mode 100644
index 18ab01e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_go.png
deleted file mode 100644
index fe0d335..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_link.png
deleted file mode 100644
index 9ebf013..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/brick_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bricks.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bricks.png
deleted file mode 100644
index 0905f93..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bricks.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/briefcase.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/briefcase.png
deleted file mode 100644
index 05c5649..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/briefcase.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug.png
deleted file mode 100644
index 2d5fb90..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_add.png
deleted file mode 100644
index ced7817..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_delete.png
deleted file mode 100644
index e81d757..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_edit.png
deleted file mode 100644
index e5c7dc0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_error.png
deleted file mode 100644
index c4e8c28..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_go.png
deleted file mode 100644
index 4e4ae99..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_link.png
deleted file mode 100644
index 30e25ab..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bug_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building.png
deleted file mode 100644
index 11a017c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_add.png
deleted file mode 100644
index d88e2b9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_delete.png
deleted file mode 100644
index db6455d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_edit.png
deleted file mode 100644
index 646db36..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_error.png
deleted file mode 100644
index a342eef..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_go.png
deleted file mode 100644
index cdcbcb3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_key.png
deleted file mode 100644
index 8b79e30..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_link.png
deleted file mode 100644
index a340629..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/building_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_add.png
deleted file mode 100644
index 41ff833..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_bottom.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_bottom.png
deleted file mode 100644
index 1a28d82..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_bottom.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_down.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_down.png
deleted file mode 100644
index 9b23c06..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_down.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_top.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_top.png
deleted file mode 100644
index 0ce86d2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_top.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_up.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_up.png
deleted file mode 100644
index 24df0f4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_arrow_up.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_black.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_black.png
deleted file mode 100644
index 5761970..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_black.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_blue.png
deleted file mode 100644
index a7651ec..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_delete.png
deleted file mode 100644
index bd6271b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_disk.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_disk.png
deleted file mode 100644
index 209c6a7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_disk.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_error.png
deleted file mode 100644
index bca2b49..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_feed.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_feed.png
deleted file mode 100644
index 1a0e0f1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_feed.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_go.png
deleted file mode 100644
index bc4faa7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_green.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_green.png
deleted file mode 100644
index 058ad26..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_green.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_key.png
deleted file mode 100644
index 3d37f2e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_orange.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_orange.png
deleted file mode 100644
index fa63024..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_orange.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_picture.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_picture.png
deleted file mode 100644
index 386cb30..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_picture.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_pink.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_pink.png
deleted file mode 100644
index 0c9f73e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_pink.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_purple.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_purple.png
deleted file mode 100644
index 52ba503..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_purple.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_red.png
deleted file mode 100644
index 0cd8031..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_star.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_star.png
deleted file mode 100644
index fab774a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_star.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_toggle_minus.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_toggle_minus.png
deleted file mode 100644
index b47ce55..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_toggle_minus.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_toggle_plus.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_toggle_plus.png
deleted file mode 100644
index 9ab4a89..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_toggle_plus.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_white.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_white.png
deleted file mode 100644
index a9af8d4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_white.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_wrench.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_wrench.png
deleted file mode 100644
index 67817e6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_wrench.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_yellow.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_yellow.png
deleted file mode 100644
index 6469cea..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/bullet_yellow.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cake.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cake.png
deleted file mode 100644
index 4ef151a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cake.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator.png
deleted file mode 100644
index 701a60a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_add.png
deleted file mode 100644
index fd377bd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_delete.png
deleted file mode 100644
index ac96170..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_edit.png
deleted file mode 100644
index 63b06b9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_error.png
deleted file mode 100644
index 0bc4288..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_link.png
deleted file mode 100644
index a2a8fe6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calculator_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar.png
deleted file mode 100644
index 6589138..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_add.png
deleted file mode 100644
index 17679db..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_delete.png
deleted file mode 100644
index 69a3b10..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_edit.png
deleted file mode 100644
index d1d2d6e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_link.png
deleted file mode 100644
index 6b106b9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_day.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_day.png
deleted file mode 100644
index 9740f76..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_day.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_month.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_month.png
deleted file mode 100644
index 6cff76c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_month.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_week.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_week.png
deleted file mode 100644
index 8fe695f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/calendar_view_week.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera.png
deleted file mode 100644
index 8536d1a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_add.png
deleted file mode 100644
index 08b5da9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_delete.png
deleted file mode 100644
index 3846d74..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_edit.png
deleted file mode 100644
index b5015b1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_error.png
deleted file mode 100644
index 3c1bc95..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_go.png
deleted file mode 100644
index 94ce2b2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_link.png
deleted file mode 100644
index d2ac9f9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_small.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_small.png
deleted file mode 100644
index 454b0b0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/camera_small.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cancel.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cancel.png
deleted file mode 100644
index c149c2b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cancel.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car.png
deleted file mode 100644
index 4f3a770..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car_add.png
deleted file mode 100644
index 1215a51..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car_delete.png
deleted file mode 100644
index 2803b56..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/car_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart.png
deleted file mode 100644
index 1baf7b9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_add.png
deleted file mode 100644
index 45c2900..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_delete.png
deleted file mode 100644
index ac5bce5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_edit.png
deleted file mode 100644
index b94ff88..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_error.png
deleted file mode 100644
index 144c835..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_go.png
deleted file mode 100644
index 20ee058..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_put.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_put.png
deleted file mode 100644
index 3aec353..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_put.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_remove.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_remove.png
deleted file mode 100644
index 360217b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cart_remove.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd.png
deleted file mode 100644
index ef43223..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_add.png
deleted file mode 100644
index b0254ef..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_burn.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_burn.png
deleted file mode 100644
index 157cb0b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_burn.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_delete.png
deleted file mode 100644
index 7d7b3d5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_edit.png
deleted file mode 100644
index b0dc194..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_eject.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_eject.png
deleted file mode 100644
index 762932f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_eject.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_go.png
deleted file mode 100644
index 13e0499..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cd_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar.png
deleted file mode 100644
index 9051fbc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_add.png
deleted file mode 100644
index d283e84..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_delete.png
deleted file mode 100644
index 259f686..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_edit.png
deleted file mode 100644
index df64d97..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_error.png
deleted file mode 100644
index bdacea5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_link.png
deleted file mode 100644
index bf18aed..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_bar_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve.png
deleted file mode 100644
index 01e933a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_add.png
deleted file mode 100644
index f9e2050..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_delete.png
deleted file mode 100644
index b411391..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_edit.png
deleted file mode 100644
index bd07673..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_error.png
deleted file mode 100644
index 906dd03..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_go.png
deleted file mode 100644
index ac9eda5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_link.png
deleted file mode 100644
index 144eafe..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_curve_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line.png
deleted file mode 100644
index 85020f3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_add.png
deleted file mode 100644
index 5571a5e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_delete.png
deleted file mode 100644
index 5b0aa90..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_edit.png
deleted file mode 100644
index 9cf6607..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_error.png
deleted file mode 100644
index ff23c03..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_link.png
deleted file mode 100644
index f3727d2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_line_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation.png
deleted file mode 100644
index c32d25c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation_add.png
deleted file mode 100644
index f0dba4a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation_delete.png
deleted file mode 100644
index 7dc8dca..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_organisation_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie.png
deleted file mode 100644
index fe00fa0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_add.png
deleted file mode 100644
index bf0822e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_delete.png
deleted file mode 100644
index 5ab9efd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_edit.png
deleted file mode 100644
index 3debc12..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_error.png
deleted file mode 100644
index 7344174..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_link.png
deleted file mode 100644
index c072f8e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/chart_pie_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock.png
deleted file mode 100644
index e2672c2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_add.png
deleted file mode 100644
index 598b839..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_delete.png
deleted file mode 100644
index 8bf9efe..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_edit.png
deleted file mode 100644
index 7d35718..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_error.png
deleted file mode 100644
index a7c461b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_go.png
deleted file mode 100644
index a1a24d3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_link.png
deleted file mode 100644
index 481cf04..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_pause.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_pause.png
deleted file mode 100644
index ba74725..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_pause.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_play.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_play.png
deleted file mode 100644
index fb4ebc8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_play.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_red.png
deleted file mode 100644
index 2842cc3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_stop.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_stop.png
deleted file mode 100644
index 6fe8a6f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/clock_stop.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog.png
deleted file mode 100644
index 67de2c6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_add.png
deleted file mode 100644
index 04f22ba..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_delete.png
deleted file mode 100644
index 8ce71c4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_edit.png
deleted file mode 100644
index 47b75a4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_error.png
deleted file mode 100644
index 4766743..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_go.png
deleted file mode 100644
index 3262767..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cog_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins.png
deleted file mode 100644
index 0ca9074..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins_add.png
deleted file mode 100644
index cdff5d3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins_delete.png
deleted file mode 100644
index 18e0c0f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/coins_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/color_swatch.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/color_swatch.png
deleted file mode 100644
index 6e6e852..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/color_swatch.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/color_wheel.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/color_wheel.png
deleted file mode 100644
index 809fb00..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/color_wheel.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment.png
deleted file mode 100644
index 7bc9233..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_add.png
deleted file mode 100644
index 75e78de..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_delete.png
deleted file mode 100644
index 643fdbe..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_edit.png
deleted file mode 100644
index 73db110..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comment_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments.png
deleted file mode 100644
index 39433cf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments_add.png
deleted file mode 100644
index b325634..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments_delete.png
deleted file mode 100644
index 6df7376..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/comments_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/compress.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/compress.png
deleted file mode 100644
index 8606ff0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/compress.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer.png
deleted file mode 100644
index 9bc37dc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_add.png
deleted file mode 100644
index db604ee..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_delete.png
deleted file mode 100644
index 5e9b268..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_edit.png
deleted file mode 100644
index 34c72fe..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_error.png
deleted file mode 100644
index b2c3ed5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_go.png
deleted file mode 100644
index 0b26144..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_key.png
deleted file mode 100644
index eca5430..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_link.png
deleted file mode 100644
index 3859db2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/computer_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/connect.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/connect.png
deleted file mode 100644
index 024138e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/connect.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast.png
deleted file mode 100644
index adcc004..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_decrease.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_decrease.png
deleted file mode 100644
index 0155bf5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_decrease.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_high.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_high.png
deleted file mode 100644
index d87c8cb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_high.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_increase.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_increase.png
deleted file mode 100644
index a3e7f52..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_increase.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_low.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_low.png
deleted file mode 100644
index dc9f4b1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/contrast_low.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_eject.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_eject.png
deleted file mode 100644
index 924d817..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_eject.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_eject_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_eject_blue.png
deleted file mode 100644
index 2bd4963..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_eject_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_end.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_end.png
deleted file mode 100644
index 036e04d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_end.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_end_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_end_blue.png
deleted file mode 100644
index 7207935..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_end_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_equalizer.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_equalizer.png
deleted file mode 100644
index 4606087..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_equalizer.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_equalizer_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_equalizer_blue.png
deleted file mode 100644
index 1b2e6a3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_equalizer_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_fastforward.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_fastforward.png
deleted file mode 100644
index 31f7fd3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_fastforward.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_fastforward_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_fastforward_blue.png
deleted file mode 100644
index 4a2f9d4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_fastforward_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_pause.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_pause.png
deleted file mode 100644
index 2d9ce9c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_pause.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_pause_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_pause_blue.png
deleted file mode 100644
index ec61099..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_pause_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_play.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_play.png
deleted file mode 100644
index 0846555..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_play.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_play_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_play_blue.png
deleted file mode 100644
index f8c8ec6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_play_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_repeat.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_repeat.png
deleted file mode 100644
index 1c4f57a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_repeat.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_repeat_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_repeat_blue.png
deleted file mode 100644
index 406ec33..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_repeat_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_rewind.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_rewind.png
deleted file mode 100644
index c029447..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_rewind.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_rewind_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_rewind_blue.png
deleted file mode 100644
index 15d1584..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_rewind_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_start.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_start.png
deleted file mode 100644
index 7dd1c07..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_start.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_start_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_start_blue.png
deleted file mode 100644
index 6f11fcb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_start_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_stop.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_stop.png
deleted file mode 100644
index 893bb60..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_stop.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_stop_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_stop_blue.png
deleted file mode 100644
index e6f75d2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/control_stop_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller.png
deleted file mode 100644
index 5cf76ed..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_add.png
deleted file mode 100644
index efecb38..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_delete.png
deleted file mode 100644
index 3d83bc7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_error.png
deleted file mode 100644
index 7f17c0c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/controller_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/creditcards.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/creditcards.png
deleted file mode 100644
index 4eae583..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/creditcards.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cross.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cross.png
deleted file mode 100644
index 1514d51..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cross.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css.png
deleted file mode 100644
index 23f3101..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_add.png
deleted file mode 100644
index e8ea10f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_delete.png
deleted file mode 100644
index 326aba4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_go.png
deleted file mode 100644
index 6cdf38c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_valid.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_valid.png
deleted file mode 100644
index 4c72ca5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/css_valid.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup.png
deleted file mode 100644
index b7bfcd1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_add.png
deleted file mode 100644
index 4ecaece..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_delete.png
deleted file mode 100644
index 59a6d9c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_edit.png
deleted file mode 100644
index 0b8f1e1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_error.png
deleted file mode 100644
index 6879874..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_go.png
deleted file mode 100644
index 9527efb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_key.png
deleted file mode 100644
index 7ae160c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_link.png
deleted file mode 100644
index 41d1ace..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cup_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cursor.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cursor.png
deleted file mode 100644
index 532f532..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cursor.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cut.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cut.png
deleted file mode 100644
index f215d6f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cut.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cut_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cut_red.png
deleted file mode 100644
index 85bb2f0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/cut_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database.png
deleted file mode 100644
index 3d09261..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_add.png
deleted file mode 100644
index 802bd6c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_connect.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_connect.png
deleted file mode 100644
index 3a11197..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_connect.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_delete.png
deleted file mode 100644
index cce652e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_edit.png
deleted file mode 100644
index e501b66..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_error.png
deleted file mode 100644
index 578221a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_gear.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_gear.png
deleted file mode 100644
index 7c0ab2b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_gear.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_go.png
deleted file mode 100644
index 61a8556..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_key.png
deleted file mode 100644
index 3334147..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_lightning.png
deleted file mode 100644
index d9eefc2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_link.png
deleted file mode 100644
index 4c8204a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_refresh.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_refresh.png
deleted file mode 100644
index ff803be..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_refresh.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_save.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_save.png
deleted file mode 100644
index 44c06dd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_save.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_table.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_table.png
deleted file mode 100644
index 693709c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/database_table.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date.png
deleted file mode 100644
index 783c833..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_add.png
deleted file mode 100644
index 6a7ae02..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_delete.png
deleted file mode 100644
index 969a6b7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_edit.png
deleted file mode 100644
index e681065..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_error.png
deleted file mode 100644
index 442cd97..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_go.png
deleted file mode 100644
index 52dd9f3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_link.png
deleted file mode 100644
index 9f0aada..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_magnify.png
deleted file mode 100644
index cd05f19..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_next.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_next.png
deleted file mode 100644
index 48d740a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_next.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_previous.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_previous.png
deleted file mode 100644
index e117a83..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/date_previous.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/delete.png
deleted file mode 100644
index 08f2493..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disconnect.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disconnect.png
deleted file mode 100644
index b335cb1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disconnect.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disk.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disk.png
deleted file mode 100644
index 99d532e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disk.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disk_multiple.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disk_multiple.png
deleted file mode 100644
index fc5a52f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/disk_multiple.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door.png
deleted file mode 100644
index 369fc46..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_in.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_in.png
deleted file mode 100644
index 41676a0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_in.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_open.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_open.png
deleted file mode 100644
index 64bab57..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_open.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_out.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_out.png
deleted file mode 100644
index 2541d2b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/door_out.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drink.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drink.png
deleted file mode 100644
index d98359c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drink.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drink_empty.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drink_empty.png
deleted file mode 100644
index a40211e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drink_empty.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive.png
deleted file mode 100644
index 37b7c9b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_add.png
deleted file mode 100644
index 29a35d5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_burn.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_burn.png
deleted file mode 100644
index 80fd79f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_burn.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_cd.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_cd.png
deleted file mode 100644
index 1850b70..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_cd.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_cd_empty.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_cd_empty.png
deleted file mode 100644
index 8df38d9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_cd_empty.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_delete.png
deleted file mode 100644
index e6eb186..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_disk.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_disk.png
deleted file mode 100644
index 5a51e81..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_disk.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_edit.png
deleted file mode 100644
index 7923fad..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_error.png
deleted file mode 100644
index 309f639..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_go.png
deleted file mode 100644
index fc53379..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_key.png
deleted file mode 100644
index d0b3c67..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_link.png
deleted file mode 100644
index 8679c4b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_magnify.png
deleted file mode 100644
index 0f0f444..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_network.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_network.png
deleted file mode 100644
index 63d2d5d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_network.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_rename.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_rename.png
deleted file mode 100644
index 2a9f38b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_rename.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_user.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_user.png
deleted file mode 100644
index 0b4751c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_user.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_web.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_web.png
deleted file mode 100644
index 8850a83..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/drive_web.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd.png
deleted file mode 100644
index 9d94de5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_add.png
deleted file mode 100644
index 517d112..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_delete.png
deleted file mode 100644
index 87bed22..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_edit.png
deleted file mode 100644
index d6330aa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_error.png
deleted file mode 100644
index 8f6d4be..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_go.png
deleted file mode 100644
index ef6959f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_key.png
deleted file mode 100644
index da9307f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_link.png
deleted file mode 100644
index caad726..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/dvd_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email.png
deleted file mode 100644
index 7348aed..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_add.png
deleted file mode 100644
index 6c93368..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_attach.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_attach.png
deleted file mode 100644
index 1f99485..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_attach.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_delete.png
deleted file mode 100644
index a9932b1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_edit.png
deleted file mode 100644
index 244f04a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_error.png
deleted file mode 100644
index 8bdd330..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_go.png
deleted file mode 100644
index 4a6c5d3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_link.png
deleted file mode 100644
index 2c49f78..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_open.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_open.png
deleted file mode 100644
index 7b6f981..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_open.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_open_image.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_open_image.png
deleted file mode 100644
index e588e2f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/email_open_image.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_evilgrin.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_evilgrin.png
deleted file mode 100644
index 817bd50..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_evilgrin.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_grin.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_grin.png
deleted file mode 100644
index fc60c5e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_grin.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_happy.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_happy.png
deleted file mode 100644
index 6b7336e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_happy.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_smile.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_smile.png
deleted file mode 100644
index ade4318..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_smile.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_surprised.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_surprised.png
deleted file mode 100644
index 4520cfc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_surprised.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_tongue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_tongue.png
deleted file mode 100644
index ecafd2f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_tongue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_unhappy.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_unhappy.png
deleted file mode 100644
index fd5d030..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_unhappy.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_waii.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_waii.png
deleted file mode 100644
index 458f936..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_waii.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_wink.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_wink.png
deleted file mode 100644
index a631949..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/emoticon_wink.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error.png
deleted file mode 100644
index 628cf2d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_add.png
deleted file mode 100644
index 4c97484..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_delete.png
deleted file mode 100644
index 7f78bcc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_go.png
deleted file mode 100644
index caa1838..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/error_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/exclamation.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/exclamation.png
deleted file mode 100644
index c37bd06..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/exclamation.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/eye.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/eye.png
deleted file mode 100644
index 564a1a9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/eye.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed.png
deleted file mode 100644
index 315c4f4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_add.png
deleted file mode 100644
index e77d46e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_delete.png
deleted file mode 100644
index 5e332b4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_disk.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_disk.png
deleted file mode 100644
index a158c99..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_disk.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_edit.png
deleted file mode 100644
index f1fde7a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_error.png
deleted file mode 100644
index c0a801c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_go.png
deleted file mode 100644
index f2eed1e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_key.png
deleted file mode 100644
index 156bfa9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_link.png
deleted file mode 100644
index c45a534..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_magnify.png
deleted file mode 100644
index 3023695..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/feed_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/female.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/female.png
deleted file mode 100644
index f92958e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/female.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film.png
deleted file mode 100644
index b0ce7bb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_add.png
deleted file mode 100644
index 40d681f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_delete.png
deleted file mode 100644
index 23a2508..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_edit.png
deleted file mode 100644
index af66b73..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_error.png
deleted file mode 100644
index 88f3d69..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_go.png
deleted file mode 100644
index dd0168e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_key.png
deleted file mode 100644
index 5892162..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_link.png
deleted file mode 100644
index 0f24e86..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_save.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_save.png
deleted file mode 100644
index bc8c0d3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/film_save.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/find.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/find.png
deleted file mode 100644
index 1547479..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/find.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_blue.png
deleted file mode 100644
index 003924f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_green.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_green.png
deleted file mode 100644
index e4bc611..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_green.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_orange.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_orange.png
deleted file mode 100644
index e632024..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_orange.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_pink.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_pink.png
deleted file mode 100644
index 5f15e52..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_pink.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_purple.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_purple.png
deleted file mode 100644
index d069866..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_purple.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_red.png
deleted file mode 100644
index e8a602d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_yellow.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_yellow.png
deleted file mode 100644
index 14c89a5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/flag_yellow.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder.png
deleted file mode 100644
index 784e8fa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_add.png
deleted file mode 100644
index 529fe8f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_bell.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_bell.png
deleted file mode 100644
index d04dd7f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_bell.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_brick.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_brick.png
deleted file mode 100644
index 5dea976..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_brick.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_bug.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_bug.png
deleted file mode 100644
index 4f791b6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_bug.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_camera.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_camera.png
deleted file mode 100644
index c951941..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_camera.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_database.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_database.png
deleted file mode 100644
index 5193e2e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_database.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_delete.png
deleted file mode 100644
index 112b016..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_edit.png
deleted file mode 100644
index ad669cc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_error.png
deleted file mode 100644
index 1af8809..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_explore.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_explore.png
deleted file mode 100644
index 0ba9391..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_explore.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_feed.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_feed.png
deleted file mode 100644
index d06ee51..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_feed.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_find.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_find.png
deleted file mode 100644
index c64e2ee..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_find.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_go.png
deleted file mode 100644
index 34a736f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_heart.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_heart.png
deleted file mode 100644
index 56d7da1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_heart.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_image.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_image.png
deleted file mode 100644
index d5df75b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_image.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_key.png
deleted file mode 100644
index fb9b4c2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_lightbulb.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_lightbulb.png
deleted file mode 100644
index f367a51..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_lightbulb.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_link.png
deleted file mode 100644
index b9b75f6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_magnify.png
deleted file mode 100644
index 0a3e798..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_page.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_page.png
deleted file mode 100644
index 1ef6e11..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_page.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_page_white.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_page_white.png
deleted file mode 100644
index 14d6b61..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_page_white.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_palette.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_palette.png
deleted file mode 100644
index ba12fe8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_palette.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_picture.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_picture.png
deleted file mode 100644
index 052b336..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_picture.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_star.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_star.png
deleted file mode 100644
index 448e46f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_star.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_table.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_table.png
deleted file mode 100644
index 473cee3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_table.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_user.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_user.png
deleted file mode 100644
index f021c3e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_user.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_wrench.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_wrench.png
deleted file mode 100644
index ea3404e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/folder_wrench.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font.png
deleted file mode 100644
index b7960db..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_add.png
deleted file mode 100644
index b709eba..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_delete.png
deleted file mode 100644
index 1d6124d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_go.png
deleted file mode 100644
index 75eba80..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/font_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group.png
deleted file mode 100644
index 7fb4e1f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_add.png
deleted file mode 100644
index 06c5350..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_delete.png
deleted file mode 100644
index 4489ca2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_edit.png
deleted file mode 100644
index c88b945..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_error.png
deleted file mode 100644
index 7364a13..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_gear.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_gear.png
deleted file mode 100644
index 2544f2e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_gear.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_go.png
deleted file mode 100644
index 1f52333..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_key.png
deleted file mode 100644
index 257f111..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_link.png
deleted file mode 100644
index c77ed88..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/group_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart.png
deleted file mode 100644
index d9ee53e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart_add.png
deleted file mode 100644
index d4195ff..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart_delete.png
deleted file mode 100644
index ce523e3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/heart_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/help.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/help.png
deleted file mode 100644
index 5c87017..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/help.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass.png
deleted file mode 100644
index 57b03ce..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_add.png
deleted file mode 100644
index 170dfff..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_delete.png
deleted file mode 100644
index 4b1337b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_go.png
deleted file mode 100644
index b2d3a98..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_link.png
deleted file mode 100644
index ecc59b0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/hourglass_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house.png
deleted file mode 100644
index fed6221..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house_go.png
deleted file mode 100644
index 5457dbd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house_link.png
deleted file mode 100644
index be2c271..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/house_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html.png
deleted file mode 100644
index 55d1072..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_add.png
deleted file mode 100644
index f1c08b7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_delete.png
deleted file mode 100644
index 1bd2848..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_go.png
deleted file mode 100644
index a95cede..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_valid.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_valid.png
deleted file mode 100644
index 71cec92..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/html_valid.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image.png
deleted file mode 100644
index fc3c393..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_add.png
deleted file mode 100644
index fc5d613..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_delete.png
deleted file mode 100644
index c260e1d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_edit.png
deleted file mode 100644
index 0aa4cc6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_link.png
deleted file mode 100644
index 4bdb354..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/image_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/images.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/images.png
deleted file mode 100644
index 184860d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/images.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/information.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/information.png
deleted file mode 100644
index 12cd1ae..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/information.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod.png
deleted file mode 100644
index 3f768da..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast.png
deleted file mode 100644
index 6f6d340..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast_add.png
deleted file mode 100644
index c3257f5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast_delete.png
deleted file mode 100644
index 377ab69..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_cast_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_sound.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_sound.png
deleted file mode 100644
index fef6e8b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ipod_sound.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick.png
deleted file mode 100644
index 62168f5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_add.png
deleted file mode 100644
index 77e7107..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_delete.png
deleted file mode 100644
index 5d44b59..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_error.png
deleted file mode 100644
index b32149e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/joystick_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key.png
deleted file mode 100644
index 4ec1a92..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_add.png
deleted file mode 100644
index d407403..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_delete.png
deleted file mode 100644
index 00dec80..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_go.png
deleted file mode 100644
index 30b0dc3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/key_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard.png
deleted file mode 100644
index 898d402..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_add.png
deleted file mode 100644
index 26938dd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_delete.png
deleted file mode 100644
index 1786ed5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_magnify.png
deleted file mode 100644
index 928fc17..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/keyboard_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layers.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layers.png
deleted file mode 100644
index 00818f6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layers.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout.png
deleted file mode 100644
index ea086b0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_add.png
deleted file mode 100644
index 6203722..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_content.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_content.png
deleted file mode 100644
index b4aaad9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_content.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_delete.png
deleted file mode 100644
index 4bd45f1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_edit.png
deleted file mode 100644
index ab3100b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_error.png
deleted file mode 100644
index 5b5acea..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_header.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_header.png
deleted file mode 100644
index c6ea7f2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_header.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_link.png
deleted file mode 100644
index 3445d42..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_sidebar.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_sidebar.png
deleted file mode 100644
index 3be27bb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/layout_sidebar.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb.png
deleted file mode 100644
index d22fde8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_add.png
deleted file mode 100644
index 0dd848b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_delete.png
deleted file mode 100644
index f4781da..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_off.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_off.png
deleted file mode 100644
index e95b8c5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightbulb_off.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning.png
deleted file mode 100644
index 9680afd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_add.png
deleted file mode 100644
index dac3c90..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_delete.png
deleted file mode 100644
index dfe2770..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_go.png
deleted file mode 100644
index 29039e6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lightning_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link.png
deleted file mode 100644
index 25eacb7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_add.png
deleted file mode 100644
index 00be352..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_break.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_break.png
deleted file mode 100644
index 5235753..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_break.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_delete.png
deleted file mode 100644
index f66e297..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_edit.png
deleted file mode 100644
index 5b3aed0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_error.png
deleted file mode 100644
index ab694b1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_go.png
deleted file mode 100644
index ae8cae8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/link_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock.png
deleted file mode 100644
index 2ebc4f6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_add.png
deleted file mode 100644
index a7b566b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_break.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_break.png
deleted file mode 100644
index 13578ab..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_break.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_delete.png
deleted file mode 100644
index ecb50a9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_edit.png
deleted file mode 100644
index 116aa5b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_go.png
deleted file mode 100644
index 8c7c89b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_open.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_open.png
deleted file mode 100644
index a471765..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lock_open.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry.png
deleted file mode 100644
index 8f95f5a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_add.png
deleted file mode 100644
index a2c5124..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_delete.png
deleted file mode 100644
index 66217f5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_error.png
deleted file mode 100644
index 3619ead..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_flatbed.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_flatbed.png
deleted file mode 100644
index 8b20f55..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_flatbed.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_go.png
deleted file mode 100644
index 1c296a6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_link.png
deleted file mode 100644
index 5e6663e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/lorry_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magifier_zoom_out.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magifier_zoom_out.png
deleted file mode 100644
index 81f2819..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magifier_zoom_out.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magnifier.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magnifier.png
deleted file mode 100644
index cf3d97f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magnifier.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magnifier_zoom_in.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magnifier_zoom_in.png
deleted file mode 100644
index af4fe07..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/magnifier_zoom_in.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/male.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/male.png
deleted file mode 100644
index 25d6ea9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/male.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map.png
deleted file mode 100644
index f90ef25..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_add.png
deleted file mode 100644
index 2b72da0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_delete.png
deleted file mode 100644
index e74402f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_edit.png
deleted file mode 100644
index 93d4d7e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_go.png
deleted file mode 100644
index 11eab26..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_magnify.png
deleted file mode 100644
index 7184c9d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/map_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_1.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_1.png
deleted file mode 100644
index 5f8a6d6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_1.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_2.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_2.png
deleted file mode 100644
index 623d68c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_2.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_3.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_3.png
deleted file mode 100644
index ed3f43e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_3.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_add.png
deleted file mode 100644
index 8487b2c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_delete.png
deleted file mode 100644
index d32aed7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_bronze_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_1.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_1.png
deleted file mode 100644
index 87584dc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_1.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_2.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_2.png
deleted file mode 100644
index fa3a15d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_2.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_3.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_3.png
deleted file mode 100644
index ef1b08b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_3.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_add.png
deleted file mode 100644
index dcade0d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_delete.png
deleted file mode 100644
index 84b06d5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_gold_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_1.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_1.png
deleted file mode 100644
index 75a64da..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_1.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_2.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_2.png
deleted file mode 100644
index 2e0fe75..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_2.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_3.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_3.png
deleted file mode 100644
index e385b54..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_3.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_add.png
deleted file mode 100644
index b0633fa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_delete.png
deleted file mode 100644
index 06cab46..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/medal_silver_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money.png
deleted file mode 100644
index 42c52d0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_add.png
deleted file mode 100644
index 588fa9d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_delete.png
deleted file mode 100644
index eae2c52..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_dollar.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_dollar.png
deleted file mode 100644
index 59af163..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_dollar.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_euro.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_euro.png
deleted file mode 100644
index b322ba9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_euro.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_pound.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_pound.png
deleted file mode 100644
index b711364..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_pound.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_yen.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_yen.png
deleted file mode 100644
index 228a677..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/money_yen.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor.png
deleted file mode 100644
index d040bd0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_add.png
deleted file mode 100644
index a818066..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_delete.png
deleted file mode 100644
index 3733256..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_edit.png
deleted file mode 100644
index f772c56..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_error.png
deleted file mode 100644
index 270c501..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_go.png
deleted file mode 100644
index 8af3eda..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_lightning.png
deleted file mode 100644
index 06e53a9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_link.png
deleted file mode 100644
index a014b02..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/monitor_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse.png
deleted file mode 100644
index 63a92fa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_add.png
deleted file mode 100644
index 65bcab5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_delete.png
deleted file mode 100644
index 7286566..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_error.png
deleted file mode 100644
index bcc1562..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/mouse_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/music.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/music.png
deleted file mode 100644
index a8b3ede..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/music.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/new.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/new.png
deleted file mode 100644
index 6a9bf03..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/new.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper.png
deleted file mode 100644
index 6a2ecce..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_add.png
deleted file mode 100644
index 8140e8c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_delete.png
deleted file mode 100644
index bde96ce..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_go.png
deleted file mode 100644
index fd61428..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_link.png
deleted file mode 100644
index 99e57cb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/newspaper_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note.png
deleted file mode 100644
index 244e6ca..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_add.png
deleted file mode 100644
index abdad91..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_delete.png
deleted file mode 100644
index 8a1f0ff..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_edit.png
deleted file mode 100644
index 291bfc7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_error.png
deleted file mode 100644
index 896dadf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_go.png
deleted file mode 100644
index 49e54fd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/note_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/overlays.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/overlays.png
deleted file mode 100644
index ab3100b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/overlays.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package.png
deleted file mode 100644
index da3c2a2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_add.png
deleted file mode 100644
index 9c8a9da..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_delete.png
deleted file mode 100644
index 86f7fbc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_go.png
deleted file mode 100644
index aace63a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_green.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_green.png
deleted file mode 100644
index 25b28bb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_green.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_link.png
deleted file mode 100644
index 48e7ab5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/package_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page.png
deleted file mode 100644
index 03ddd79..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_add.png
deleted file mode 100644
index d5bfa07..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_attach.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_attach.png
deleted file mode 100644
index 89ee2da..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_attach.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_code.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_code.png
deleted file mode 100644
index f7ea904..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_code.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_copy.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_copy.png
deleted file mode 100644
index 195dc6d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_copy.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_delete.png
deleted file mode 100644
index 3141467..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_edit.png
deleted file mode 100644
index 046811e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_error.png
deleted file mode 100644
index f07f449..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_excel.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_excel.png
deleted file mode 100644
index eb6158e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_excel.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_find.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_find.png
deleted file mode 100644
index 2f19388..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_find.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_gear.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_gear.png
deleted file mode 100644
index 8e83281..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_gear.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_go.png
deleted file mode 100644
index 80fe1ed..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_green.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_green.png
deleted file mode 100644
index de8e003..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_green.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_key.png
deleted file mode 100644
index d6626cb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_lightning.png
deleted file mode 100644
index 7e56870..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_link.png
deleted file mode 100644
index 312eab0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_paintbrush.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_paintbrush.png
deleted file mode 100644
index 246a2f0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_paintbrush.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_paste.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_paste.png
deleted file mode 100644
index 968f073..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_paste.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_red.png
deleted file mode 100644
index 0b18247..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_refresh.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_refresh.png
deleted file mode 100644
index cf347c7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_refresh.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_save.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_save.png
deleted file mode 100644
index caea546..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_save.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white.png
deleted file mode 100644
index 8b8b1ca..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_acrobat.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_acrobat.png
deleted file mode 100644
index 8f8095e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_acrobat.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_actionscript.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_actionscript.png
deleted file mode 100644
index 159b240..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_actionscript.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_add.png
deleted file mode 100644
index aa23dde..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_c.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_c.png
deleted file mode 100644
index 34a05cc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_c.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_camera.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_camera.png
deleted file mode 100644
index f501a59..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_camera.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cd.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cd.png
deleted file mode 100644
index 848bdaf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cd.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_code.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_code.png
deleted file mode 100644
index 0c76bd1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_code.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_code_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_code_red.png
deleted file mode 100644
index 87a6914..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_code_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_coldfusion.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_coldfusion.png
deleted file mode 100644
index c66011f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_coldfusion.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_compressed.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_compressed.png
deleted file mode 100644
index 2b6b100..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_compressed.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_copy.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_copy.png
deleted file mode 100644
index a9f31a2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_copy.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cplusplus.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cplusplus.png
deleted file mode 100644
index a87cf84..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cplusplus.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_csharp.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_csharp.png
deleted file mode 100644
index ffb8fc9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_csharp.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cup.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cup.png
deleted file mode 100644
index 0a7d6f4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_cup.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_database.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_database.png
deleted file mode 100644
index bddba1f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_database.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_delete.png
deleted file mode 100644
index af1ecaf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_dvd.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_dvd.png
deleted file mode 100644
index 4cc537a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_dvd.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_edit.png
deleted file mode 100644
index b93e776..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_error.png
deleted file mode 100644
index 9fc5a0a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_excel.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_excel.png
deleted file mode 100644
index b977d7e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_excel.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_find.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_find.png
deleted file mode 100644
index 5818436..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_find.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_flash.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_flash.png
deleted file mode 100644
index 5769120..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_flash.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_freehand.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_freehand.png
deleted file mode 100644
index 8d719df..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_freehand.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_gear.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_gear.png
deleted file mode 100644
index 106f5aa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_gear.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_get.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_get.png
deleted file mode 100644
index e4a1ecb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_get.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_go.png
deleted file mode 100644
index 7e62a92..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_h.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_h.png
deleted file mode 100644
index e902abb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_h.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_horizontal.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_horizontal.png
deleted file mode 100644
index 1d2d0a4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_horizontal.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_key.png
deleted file mode 100644
index d616484..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_lightning.png
deleted file mode 100644
index 7215d1e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_link.png
deleted file mode 100644
index bf7bd1c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_magnify.png
deleted file mode 100644
index f6b74cc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_medal.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_medal.png
deleted file mode 100644
index d3fffb6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_medal.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_office.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_office.png
deleted file mode 100644
index a65bcb3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_office.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paint.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paint.png
deleted file mode 100644
index 23a37b8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paint.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paintbrush.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paintbrush.png
deleted file mode 100644
index f907e44..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paintbrush.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paste.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paste.png
deleted file mode 100644
index 5b2cbb3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_paste.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_php.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_php.png
deleted file mode 100644
index 7868a25..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_php.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_picture.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_picture.png
deleted file mode 100644
index 134b669..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_picture.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_powerpoint.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_powerpoint.png
deleted file mode 100644
index c4eff03..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_powerpoint.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_put.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_put.png
deleted file mode 100644
index 884ffd6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_put.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_ruby.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_ruby.png
deleted file mode 100644
index f59b7c4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_ruby.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_stack.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_stack.png
deleted file mode 100644
index 44084ad..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_stack.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_star.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_star.png
deleted file mode 100644
index 3a1441c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_star.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_swoosh.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_swoosh.png
deleted file mode 100644
index e770829..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_swoosh.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_text.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_text.png
deleted file mode 100644
index 813f712..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_text.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_text_width.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_text_width.png
deleted file mode 100644
index d9cf132..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_text_width.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_tux.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_tux.png
deleted file mode 100644
index 52699bf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_tux.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_vector.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_vector.png
deleted file mode 100644
index 4a05955..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_vector.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_visualstudio.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_visualstudio.png
deleted file mode 100644
index a0a433d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_visualstudio.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_width.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_width.png
deleted file mode 100644
index 1eb8809..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_width.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_word.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_word.png
deleted file mode 100644
index ae8ecbf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_word.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_world.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_world.png
deleted file mode 100644
index 6ed2490..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_world.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_wrench.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_wrench.png
deleted file mode 100644
index fecadd0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_wrench.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_zip.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_zip.png
deleted file mode 100644
index fd4bbcc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_white_zip.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_word.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_word.png
deleted file mode 100644
index 834cdfa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_word.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_world.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_world.png
deleted file mode 100644
index b8895dd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/page_world.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paintbrush.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paintbrush.png
deleted file mode 100644
index a3ecf87..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paintbrush.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paintcan.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paintcan.png
deleted file mode 100644
index f82a886..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paintcan.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/palette.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/palette.png
deleted file mode 100644
index 73c5b3f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/palette.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paste_plain.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paste_plain.png
deleted file mode 100644
index c0490eb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paste_plain.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paste_word.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paste_word.png
deleted file mode 100644
index f6b87f8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/paste_word.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil.png
deleted file mode 100644
index 0bfecd5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_add.png
deleted file mode 100644
index 902bbe6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_delete.png
deleted file mode 100644
index d8944e6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_go.png
deleted file mode 100644
index 937bded..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pencil_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone.png
deleted file mode 100644
index c39f162..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_add.png
deleted file mode 100644
index d3555e0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_delete.png
deleted file mode 100644
index bbe4f8a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_sound.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_sound.png
deleted file mode 100644
index 7fdf1c5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/phone_sound.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo.png
deleted file mode 100644
index 6c2aaaa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_add.png
deleted file mode 100644
index 63cc355..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_delete.png
deleted file mode 100644
index 18b67df..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_link.png
deleted file mode 100644
index e6bb35f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photo_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photos.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photos.png
deleted file mode 100644
index 8836fe6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/photos.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture.png
deleted file mode 100644
index 4a158fe..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_add.png
deleted file mode 100644
index d6d3f85..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_delete.png
deleted file mode 100644
index cca9f53..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_edit.png
deleted file mode 100644
index 9a70c34..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_empty.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_empty.png
deleted file mode 100644
index abd2b9b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_empty.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_error.png
deleted file mode 100644
index d41d90d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_go.png
deleted file mode 100644
index 27c63c5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_key.png
deleted file mode 100644
index 667086c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_link.png
deleted file mode 100644
index 42dca74..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_save.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_save.png
deleted file mode 100644
index 777fb5d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/picture_save.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pictures.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pictures.png
deleted file mode 100644
index d9591c1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pictures.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pilcrow.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pilcrow.png
deleted file mode 100644
index 95704fb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pilcrow.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill.png
deleted file mode 100644
index f2bdef6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_add.png
deleted file mode 100644
index ac9c2df..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_delete.png
deleted file mode 100644
index c61592e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_go.png
deleted file mode 100644
index e5c07d4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/pill_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin.png
deleted file mode 100644
index 6187b15..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_add.png
deleted file mode 100644
index ae43690..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_delete.png
deleted file mode 100644
index d9c3376..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_disabled.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_disabled.png
deleted file mode 100644
index f4f6be5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_disabled.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_edit.png
deleted file mode 100644
index b6cb0ec..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_error.png
deleted file mode 100644
index cff65d7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_go.png
deleted file mode 100644
index 41da991..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_link.png
deleted file mode 100644
index 445c188..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/plugin_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer.png
deleted file mode 100644
index a350d18..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_add.png
deleted file mode 100644
index d228d05..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_delete.png
deleted file mode 100644
index 1d8605f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_empty.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_empty.png
deleted file mode 100644
index 94e8c16..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_empty.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_error.png
deleted file mode 100644
index 279ebb0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/printer_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rainbow.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rainbow.png
deleted file mode 100644
index 5ede989..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rainbow.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report.png
deleted file mode 100644
index 779ad58..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_add.png
deleted file mode 100644
index d5eac9b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_delete.png
deleted file mode 100644
index dcce0b6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_disk.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_disk.png
deleted file mode 100644
index 1c856cd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_disk.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_edit.png
deleted file mode 100644
index c61a6d8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_go.png
deleted file mode 100644
index f35a979..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_key.png
deleted file mode 100644
index 90b758e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_link.png
deleted file mode 100644
index 23f2611..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_magnify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_magnify.png
deleted file mode 100644
index aeaa889..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_magnify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_picture.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_picture.png
deleted file mode 100644
index 3a9a7e5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_picture.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_user.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_user.png
deleted file mode 100644
index 7766edd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_user.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_word.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_word.png
deleted file mode 100644
index 9951342..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/report_word.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_first.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_first.png
deleted file mode 100644
index b03eaf8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_first.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_last.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_last.png
deleted file mode 100644
index 8ec8947..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_last.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_next.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_next.png
deleted file mode 100644
index e252606..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_next.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_previous.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_previous.png
deleted file mode 100644
index 18f9cc1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/resultset_previous.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rosette.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rosette.png
deleted file mode 100644
index f233bc7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rosette.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss.png
deleted file mode 100644
index 1dc6ff3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_add.png
deleted file mode 100644
index b590beb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_delete.png
deleted file mode 100644
index 9deb738..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_go.png
deleted file mode 100644
index 43a86bf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_valid.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_valid.png
deleted file mode 100644
index a6d0b0e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/rss_valid.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby.png
deleted file mode 100644
index f763a16..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_add.png
deleted file mode 100644
index a2cd648..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_delete.png
deleted file mode 100644
index 3002263..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_gear.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_gear.png
deleted file mode 100644
index 4a10590..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_gear.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_get.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_get.png
deleted file mode 100644
index f5203c7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_get.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_go.png
deleted file mode 100644
index d8d276e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_key.png
deleted file mode 100644
index 451cfeb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_link.png
deleted file mode 100644
index bf4be52..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_put.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_put.png
deleted file mode 100644
index e026323..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/ruby_put.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script.png
deleted file mode 100644
index 0f9ed4d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_add.png
deleted file mode 100644
index d650552..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_code.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_code.png
deleted file mode 100644
index 63fe6ce..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_code.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_code_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_code_red.png
deleted file mode 100644
index 8fcf0f0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_code_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_delete.png
deleted file mode 100644
index e6500ce..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_edit.png
deleted file mode 100644
index b4d31ce..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_error.png
deleted file mode 100644
index 0491954..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_gear.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_gear.png
deleted file mode 100644
index 56fcf84..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_gear.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_go.png
deleted file mode 100644
index 8e154e2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_key.png
deleted file mode 100644
index 49bb24d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_lightning.png
deleted file mode 100644
index b3fa18c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_link.png
deleted file mode 100644
index bdeb985..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_palette.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_palette.png
deleted file mode 100644
index 6d46962..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_palette.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_save.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_save.png
deleted file mode 100644
index 36216d8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/script_save.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server.png
deleted file mode 100644
index 720a237..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_add.png
deleted file mode 100644
index 3f10a3a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_chart.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_chart.png
deleted file mode 100644
index 1128d3f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_chart.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_compressed.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_compressed.png
deleted file mode 100644
index bf49fad..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_compressed.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_connect.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_connect.png
deleted file mode 100644
index 49b2691..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_connect.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_database.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_database.png
deleted file mode 100644
index b24e826..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_database.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_delete.png
deleted file mode 100644
index 61e740f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_edit.png
deleted file mode 100644
index dc76253..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_error.png
deleted file mode 100644
index f640256..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_go.png
deleted file mode 100644
index 540c8e2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_key.png
deleted file mode 100644
index ecd5174..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_lightning.png
deleted file mode 100644
index b0f4e46..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_link.png
deleted file mode 100644
index e8821df..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_uncompressed.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_uncompressed.png
deleted file mode 100644
index 86e8325..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/server_uncompressed.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shading.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shading.png
deleted file mode 100644
index 09275f9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shading.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_bottom.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_bottom.png
deleted file mode 100644
index 55d2694..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_bottom.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_center.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_center.png
deleted file mode 100644
index efe9a98..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_center.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_left.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_left.png
deleted file mode 100644
index aaedc41..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_left.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_middle.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_middle.png
deleted file mode 100644
index d350dd8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_middle.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_right.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_right.png
deleted file mode 100644
index ff556b6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_right.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_top.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_top.png
deleted file mode 100644
index 1181b43..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_align_top.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_flip_horizontal.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_flip_horizontal.png
deleted file mode 100644
index 8667c81..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_flip_horizontal.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_flip_vertical.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_flip_vertical.png
deleted file mode 100644
index 0bd66d1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_flip_vertical.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_group.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_group.png
deleted file mode 100644
index bb2ff51..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_group.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_handles.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_handles.png
deleted file mode 100644
index ce27fe3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_handles.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_back.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_back.png
deleted file mode 100644
index a216ffd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_back.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_backwards.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_backwards.png
deleted file mode 100644
index ee3f9b2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_backwards.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_forwards.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_forwards.png
deleted file mode 100644
index cfe4493..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_forwards.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_front.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_front.png
deleted file mode 100644
index b4a4e3b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_move_front.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_rotate_anticlockwise.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_rotate_anticlockwise.png
deleted file mode 100644
index 07a3020..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_rotate_anticlockwise.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_rotate_clockwise.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_rotate_clockwise.png
deleted file mode 100644
index b99db7d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_rotate_clockwise.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square.png
deleted file mode 100644
index 33af046..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_add.png
deleted file mode 100644
index 31edfce..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_delete.png
deleted file mode 100644
index ede912d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_edit.png
deleted file mode 100644
index d28dc6b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_error.png
deleted file mode 100644
index 0d0dcfa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_go.png
deleted file mode 100644
index 5a2ad90..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_key.png
deleted file mode 100644
index c34b982..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_link.png
deleted file mode 100644
index b885fcc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_square_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_ungroup.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_ungroup.png
deleted file mode 100644
index 3a6f369..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shape_ungroup.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield.png
deleted file mode 100644
index 3cb4e25..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_add.png
deleted file mode 100644
index e20a1b4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_delete.png
deleted file mode 100644
index 22823a7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_go.png
deleted file mode 100644
index e9bd852..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/shield_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sitemap.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sitemap.png
deleted file mode 100644
index ca779f3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sitemap.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sitemap_color.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sitemap_color.png
deleted file mode 100644
index c64582b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sitemap_color.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound.png
deleted file mode 100644
index 6056d23..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_add.png
deleted file mode 100644
index 965c503..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_delete.png
deleted file mode 100644
index ab9577a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_low.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_low.png
deleted file mode 100644
index 4d91863..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_low.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_mute.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_mute.png
deleted file mode 100644
index b652d2a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_mute.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_none.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_none.png
deleted file mode 100644
index b497ebd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sound_none.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/spellcheck.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/spellcheck.png
deleted file mode 100644
index ebc632d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/spellcheck.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_8ball.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_8ball.png
deleted file mode 100644
index 4f627b7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_8ball.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_basketball.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_basketball.png
deleted file mode 100644
index f7a000b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_basketball.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_football.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_football.png
deleted file mode 100644
index 199f0f7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_football.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_golf.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_golf.png
deleted file mode 100644
index e21fa44..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_golf.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_raquet.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_raquet.png
deleted file mode 100644
index f5e0f0c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_raquet.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_shuttlecock.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_shuttlecock.png
deleted file mode 100644
index 917287f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_shuttlecock.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_soccer.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_soccer.png
deleted file mode 100644
index 3eb1828..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_soccer.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_tennis.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_tennis.png
deleted file mode 100644
index e88a6ef..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sport_tennis.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/star.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/star.png
deleted file mode 100644
index b88c857..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/star.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_away.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_away.png
deleted file mode 100644
index 70bcbcc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_away.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_busy.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_busy.png
deleted file mode 100644
index 987c806..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_busy.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_offline.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_offline.png
deleted file mode 100644
index a88261a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_offline.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_online.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_online.png
deleted file mode 100644
index 947bd4b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/status_online.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/stop.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/stop.png
deleted file mode 100644
index 0cfd585..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/stop.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style.png
deleted file mode 100644
index 81e41de..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_add.png
deleted file mode 100644
index e0369c6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_delete.png
deleted file mode 100644
index 640f187..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_edit.png
deleted file mode 100644
index 25bb5b6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_go.png
deleted file mode 100644
index 25d6181..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/style_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sum.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sum.png
deleted file mode 100644
index fd7b32e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/sum.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab.png
deleted file mode 100644
index 3d8207f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_add.png
deleted file mode 100644
index d3b9936..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_delete.png
deleted file mode 100644
index 100da2f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_edit.png
deleted file mode 100644
index 4c09c0f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_go.png
deleted file mode 100644
index 844ce04..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tab_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table.png
deleted file mode 100644
index abcd936..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_add.png
deleted file mode 100644
index 2a3e5c4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_delete.png
deleted file mode 100644
index b85916d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_edit.png
deleted file mode 100644
index bfcb024..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_error.png
deleted file mode 100644
index 589e92b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_gear.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_gear.png
deleted file mode 100644
index cfc2702..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_gear.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_go.png
deleted file mode 100644
index 0528dfa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_key.png
deleted file mode 100644
index 34e23e2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_lightning.png
deleted file mode 100644
index 612612b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_link.png
deleted file mode 100644
index decac8a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_multiple.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_multiple.png
deleted file mode 100644
index d76448e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_multiple.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_refresh.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_refresh.png
deleted file mode 100644
index ab92010..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_refresh.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_relationship.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_relationship.png
deleted file mode 100644
index 28b8505..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_relationship.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_row_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_row_delete.png
deleted file mode 100644
index 54c6969..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_row_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_row_insert.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_row_insert.png
deleted file mode 100644
index ff5925e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_row_insert.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_save.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_save.png
deleted file mode 100644
index 25b74d1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_save.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_sort.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_sort.png
deleted file mode 100644
index ed6785a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/table_sort.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag.png
deleted file mode 100644
index e093032..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue.png
deleted file mode 100644
index 9757fc6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_add.png
deleted file mode 100644
index f135248..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_delete.png
deleted file mode 100644
index 9fbae67..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_edit.png
deleted file mode 100644
index 2a9f626..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_blue_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_green.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_green.png
deleted file mode 100644
index 83ec984..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_green.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_orange.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_orange.png
deleted file mode 100644
index 454a59f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_orange.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_pink.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_pink.png
deleted file mode 100644
index 76e2296..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_pink.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_purple.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_purple.png
deleted file mode 100644
index ebaf0e8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_purple.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_red.png
deleted file mode 100644
index 6ebb37d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_yellow.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_yellow.png
deleted file mode 100644
index 83d1292..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tag_yellow.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone.png
deleted file mode 100644
index cecc436..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_add.png
deleted file mode 100644
index 5591cfc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_delete.png
deleted file mode 100644
index 0013268..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_edit.png
deleted file mode 100644
index bcf6d7e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_error.png
deleted file mode 100644
index d3ec3a1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_go.png
deleted file mode 100644
index 395c8fb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_key.png
deleted file mode 100644
index cef5dec..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_link.png
deleted file mode 100644
index ef1ee5d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/telephone_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television.png
deleted file mode 100644
index 1738a4f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television_add.png
deleted file mode 100644
index 2baaad9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television_delete.png
deleted file mode 100644
index b9a5860..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/television_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_center.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_center.png
deleted file mode 100644
index 57beb38..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_center.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_justify.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_justify.png
deleted file mode 100644
index 2fbdd69..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_justify.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_left.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_left.png
deleted file mode 100644
index 6c8fcc1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_left.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_right.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_right.png
deleted file mode 100644
index a150257..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_align_right.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_allcaps.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_allcaps.png
deleted file mode 100644
index 280fd44..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_allcaps.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_bold.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_bold.png
deleted file mode 100644
index 889ae80..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_bold.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_columns.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_columns.png
deleted file mode 100644
index 97b2e03..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_columns.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_dropcaps.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_dropcaps.png
deleted file mode 100644
index dd65786..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_dropcaps.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_1.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_1.png
deleted file mode 100644
index 9c122e9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_1.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_2.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_2.png
deleted file mode 100644
index fbd8765..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_2.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_3.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_3.png
deleted file mode 100644
index c7836cf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_3.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_4.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_4.png
deleted file mode 100644
index 4e929ea..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_4.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_5.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_5.png
deleted file mode 100644
index 30cabeb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_5.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_6.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_6.png
deleted file mode 100644
index 058170a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_heading_6.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_horizontalrule.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_horizontalrule.png
deleted file mode 100644
index 8dd1da1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_horizontalrule.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_indent.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_indent.png
deleted file mode 100644
index 9364532..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_indent.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_indent_remove.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_indent_remove.png
deleted file mode 100644
index 1651b07..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_indent_remove.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_italic.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_italic.png
deleted file mode 100644
index 8482ac8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_italic.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_kerning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_kerning.png
deleted file mode 100644
index 377def6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_kerning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_letter_omega.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_letter_omega.png
deleted file mode 100644
index 5075ec6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_letter_omega.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_letterspacing.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_letterspacing.png
deleted file mode 100644
index 41390f5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_letterspacing.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_linespacing.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_linespacing.png
deleted file mode 100644
index 1a91cbd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_linespacing.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_list_bullets.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_list_bullets.png
deleted file mode 100644
index 4a8672b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_list_bullets.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_list_numbers.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_list_numbers.png
deleted file mode 100644
index 33b0b8d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_list_numbers.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_lowercase.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_lowercase.png
deleted file mode 100644
index 382a102..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_lowercase.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_bottom.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_bottom.png
deleted file mode 100644
index 4880c43..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_bottom.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_left.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_left.png
deleted file mode 100644
index b55482e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_left.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_right.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_right.png
deleted file mode 100644
index 106edae..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_right.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_top.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_top.png
deleted file mode 100644
index c5c45b2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_padding_top.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_replace.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_replace.png
deleted file mode 100644
index 877f82f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_replace.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_signature.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_signature.png
deleted file mode 100644
index c72fd80..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_signature.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_smallcaps.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_smallcaps.png
deleted file mode 100644
index 5b98a6e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_smallcaps.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_strikethrough.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_strikethrough.png
deleted file mode 100644
index 612058a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_strikethrough.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_subscript.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_subscript.png
deleted file mode 100644
index 1a2b010..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_subscript.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_superscript.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_superscript.png
deleted file mode 100644
index 2fb2a7c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_superscript.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_underline.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_underline.png
deleted file mode 100644
index 90d0df2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_underline.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_uppercase.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_uppercase.png
deleted file mode 100644
index 8dcc2db..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/text_uppercase.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield.png
deleted file mode 100644
index d37e730..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_add.png
deleted file mode 100644
index 204de72..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_delete.png
deleted file mode 100644
index c7bd58b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_key.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_key.png
deleted file mode 100644
index a9d5e4f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_key.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_rename.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_rename.png
deleted file mode 100644
index 4e3688e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/textfield_rename.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/thumb_down.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/thumb_down.png
deleted file mode 100644
index 3c832d4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/thumb_down.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/thumb_up.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/thumb_up.png
deleted file mode 100644
index 2bd16cc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/thumb_up.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tick.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tick.png
deleted file mode 100644
index a9925a0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tick.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time.png
deleted file mode 100644
index 911da3f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_add.png
deleted file mode 100644
index dcc45cb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_delete.png
deleted file mode 100644
index 5bf8313..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_go.png
deleted file mode 100644
index d451ee0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/time_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/timeline_marker.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/timeline_marker.png
deleted file mode 100644
index a3fbddf..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/timeline_marker.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit.png
deleted file mode 100644
index f54bf73..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_add.png
deleted file mode 100644
index b7fd4e6..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_blue.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_blue.png
deleted file mode 100644
index 7b1142f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_blue.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_delete.png
deleted file mode 100644
index 3d72be2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_edit.png
deleted file mode 100644
index eb9a3dd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_error.png
deleted file mode 100644
index fd1d449..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_go.png
deleted file mode 100644
index 10137e5..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/transmit_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tux.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tux.png
deleted file mode 100644
index bbefe2e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/tux.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user.png
deleted file mode 100644
index 79f35cc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_add.png
deleted file mode 100644
index deae99b..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_comment.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_comment.png
deleted file mode 100644
index e54ebeb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_comment.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_delete.png
deleted file mode 100644
index acbb563..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_edit.png
deleted file mode 100644
index c1974cd..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_female.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_female.png
deleted file mode 100644
index 7c71de0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_female.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_go.png
deleted file mode 100644
index 0468cf0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_gray.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_gray.png
deleted file mode 100644
index 8fd539e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_gray.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_green.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_green.png
deleted file mode 100644
index 30383c2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_green.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_orange.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_orange.png
deleted file mode 100644
index b818127..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_orange.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_red.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_red.png
deleted file mode 100644
index c6f66e8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_red.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_suit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_suit.png
deleted file mode 100644
index b3454e1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/user_suit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard.png
deleted file mode 100644
index c02f315..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_add.png
deleted file mode 100644
index 2a68453..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_delete.png
deleted file mode 100644
index b194b97..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_edit.png
deleted file mode 100644
index ab0f6e7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vcard_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector.png
deleted file mode 100644
index a1291c2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector_add.png
deleted file mode 100644
index 988770f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector_delete.png
deleted file mode 100644
index ca139e0..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/vector_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wand.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wand.png
deleted file mode 100644
index 44ccbf8..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wand.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_clouds.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_clouds.png
deleted file mode 100644
index 3f73eaa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_clouds.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_cloudy.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_cloudy.png
deleted file mode 100644
index 5856e1d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_cloudy.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_lightning.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_lightning.png
deleted file mode 100644
index 1d42b36..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_lightning.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_rain.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_rain.png
deleted file mode 100644
index cb3d54d..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_rain.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_snow.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_snow.png
deleted file mode 100644
index 45bbdf1..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_snow.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_sun.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_sun.png
deleted file mode 100644
index 0156c26..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/weather_sun.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam.png
deleted file mode 100644
index af71c30..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_add.png
deleted file mode 100644
index f02fcfa..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_delete.png
deleted file mode 100644
index bd6277f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_error.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_error.png
deleted file mode 100644
index 2faa706..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/webcam_error.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world.png
deleted file mode 100644
index 68f21d3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_add.png
deleted file mode 100644
index 6d0d7f7..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_delete.png
deleted file mode 100644
index ffcd115..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_edit.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_edit.png
deleted file mode 100644
index 00794d4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_edit.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_go.png
deleted file mode 100644
index aee9c97..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_link.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_link.png
deleted file mode 100644
index b8edc12..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/world_link.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wrench.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wrench.png
deleted file mode 100644
index 5c8213f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wrench.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wrench_orange.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wrench_orange.png
deleted file mode 100644
index 565a933..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/wrench_orange.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml.png
deleted file mode 100644
index da5dbf2..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_add.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_add.png
deleted file mode 100644
index bbaf784..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_add.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_delete.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_delete.png
deleted file mode 100644
index 157b520..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_delete.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_go.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_go.png
deleted file mode 100644
index 43cf814..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_go.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_valid.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_valid.png
deleted file mode 100644
index d2e1cfb..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/xhtml_valid.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom.png
deleted file mode 100644
index 908612e..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom_in.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom_in.png
deleted file mode 100644
index cdf0a52..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom_in.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom_out.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom_out.png
deleted file mode 100644
index 07bf98a..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/icons/zoom_out.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/locales/Messages.properties b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/locales/Messages.properties
deleted file mode 100644
index f2002fc..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/locales/Messages.properties
+++ /dev/null
@@ -1,403 +0,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.
-
-kalumet.console										      Apache Kalumet Console
-
-about													  About
-action.restricted										  You are not allowed to do that.
-active													  Active
-add														  Add
-address													  Address
-all														  All
-agents													  Agents
-agents.count											  Number of managed agents
-agents.saved											  Agents saved.
-agents.restricted									  	  You are not allowed to manage agents.
-agent													  Agent
-agent.add												  Add Agent
-agent.maxenvironments							  	      Max managed environments
-agent.maxactiveapplicationservers				  		  Max started JEE application servers
-agent.notfound											  No agent found.
-application												  JEE Application
-applications											  JEE Applications
-application.add											  Add JEE Application
-application.exists										  JEE application already exists.
-application.notfound								  	  JEE application not found.
-applicationservers										  JEE Application Servers
-applicationserver										  JEE Application Server
-applicationserver.add									  Add JEE Application Server
-applicationserver.notfound								  JEE Application Server not found.
-applicationserver.startup								  Startup command
-applicationserver.shutdown							      Shutdown command
-apply													  Apply
-author												 	  Author
-db.read											          DB read error
-db.write										          DB write error
-autoupdate												  Automatically updated
-archive													  Archive
-archive.add												  Add Archive
-archives												  Archives
-before.jee												  Before JEE Application Servers
-blocker												      Update blocker
-browse													  Browse
-browse.path.mandatory									  The path to browse is mandatory.
-caches													  Caches
-capacity											      Capacity
-check													  Environment Check
-classpath												  Classpath
-clean													  Clean
-classname												  Classname
-classloader.order										  Classloader Order
-classloader.policy										  Classloader Policy
-close													  Close
-cluster											      	  cluster
-command													  Command
-command.mandatory										  Command name and executable are mandatory.
-configuration											  Configuration
-configuration.journal.location							  Journal appender location
-configuration.ldap.authentication						  Use LDAP users authentication
-configuration.ldap.basedn								  LDAP base DN
-configuration.ldap.cn									  LDAP user name attribute (cn)
-configuration.ldap.server								  LDAP server hostname
-configuration.ldap.uid									  LDAP user id attribute (uid)
-configuration.ldap.mail									  LDAP e-mail attribute (mail)
-configuration.restricted							  	  You are not allowed to manage configuration.
-configuration.saved										  Configuration saved.
-configurationfiles										  Configuration Files
-configurationfile										  Configuration File
-configurationfile.add									  Add Configuration File
-confirm													  Confirm
-connectionfactories										  JMS Connection Factories
-connectionfactory										  Add JMS Connection Factory
-connectionfactory.exists								  JMS connection factory already exists.
-connectionfactory.mandatory								  JMS connection factory name is mandatory.
-connectionfactory.notfound							      JMS connection factory not found.
-connectionpools											  JDBC Connection Pools
-connectionpool											  JDBC Connection Pool
-connectionpool.add									 	  Add JDBC Connection Pool
-connectionpool.exists									  JDBC connection pool already exists.
-connectionpool.mandatory								  JDBC connection pool name, capacity and driver are mandatory.
-connectionpool.notfound									  JDBC connection pool not found.
-content													  Content
-contentmanager											  Content Manager
-contentmanager.add										  Add Content Manager
-contentmanagers											  Content Managers
-contextroot												  Context Root
-continue												  Continue
-copy													  Copy
-control													  Update Actions
-countdown												  Count Down
-cron													  Cron
-cron.examples											  0 0 12 * * ?  	Fire at 12pm (noon) every day\n\
-													      0 15 10 ? * * 	Fire at 10:15am every day\n\
-														  0 15 10 * * ? 	Fire at 10:15am every day\n\
-													      0 15 10 * * ? * 	Fire at 10:15am every day\n\
-														  0 15 10 * * ? 2005 	Fire at 10:15am every day during the year 2005\n\
-														  0 * 14 * * ? 	Fire every minute starting at 2pm and ending at 2:59pm, every day\n\
-														  0 0/5 14 * * ? 	Fire every 5 minutes starting at 2pm and ending at 2:55pm, every day\n\
-														  0 0/5 14,18 * * ? 	Fire every 5 minutes starting at 2pm and ending at 2:55pm, AND fire every 5 minutes starting at 6pm and ending at 6:55pm, every day\n\
-													      0 0-5 14 * * ? 	Fire every minute starting at 2pm and ending at 2:05pm, every day\n\
-														  0 10,44 14 ? 3 WED 	Fire at 2:10pm and at 2:44pm every Wednesday in the month of March\n\
-														  0 15 10 ? * MON-FRI 	Fire at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday\n\
-														  0 15 10 15 * ? 	Fire at 10:15am on the 15th day of every month\n\
-														  0 15 10 L * ? 	Fire at 10:15am on the last day of every month\n\
-														  0 15 10 ? * 6L 	Fire at 10:15am on the last Friday of every month\n\
-														  0 15 10 ? * 6L 	Fire at 10:15am on the last Friday of every month\n\
-														  0 15 10 ? * 6L 2002-2005 	Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005\n\
-														  0 15 10 ? * 6#3 	Fire at 10:15am on the third Friday of every month\n\
-														  0 0 12 1/5 * ? 	Fire at 12pm (noon) every 5 days every month, starting on the first day of the month.\n\
-														  0 11 11 11 11 ? 	Fire every November 11th at 11:11am.
-database												  Database
-database.mandatory										  Database name is mandatory.
-database.add											  Add Database
-databases												  Databases
-dashboard												  Dashboard
-datasources												  JDBC Data Sources
-datasource.add											  Add JDBC Data Source
-datasource.exists										  JDBC data source already exists.
-datasource.mandatory									  JDBC data source name and connection pool are mandatory.
-datasource.notfound										  JDBC data source not found.
-date													  Date
-delete													  Delete
-deployment												  Deployment
-destination												  Destination
-destination.add											  Add Destination
-destination.exists										  Destination already exists.
-destination.mandatory									  Destination address is mandatory.
-destination.notfound									  Destination not found.
-destinations											  Destinations
-disconnect												  Disconnect
-driver												      Driver
-down													  Down
-edit													  Edit
-email													  E-mail
-environments											  Environments
-environments.count										  Number of environments
-environment												  Environment
-environment.add											  Add Environment
-environment.exists										  Environment already exists.
-environment.locked										  Environment locked.
-environment.mandatory									  Environment name, group and agent are mandatory.
-environment.notsaved									  Some changes haven't been yet saved.
-environment.restricted									  You can't access to this environment.
-environment.saved									  	  Environment saved.
-environment.copy										  Can't copy environment
-environment.paste										  Can't paste environment
-error													  Error
-error.authentication									  Authentication failure
-error.authentication.badpassword						  The username or password is not correct.
-error.user.notfound										  Your user is not found.
-examples												  Examples
-execute													  Execute
-file.browser											  File Browser
-file.mode												  File Mode
-file.modification.date									  Last Modification Date
-filter													  Filter
-force                                                     Force
-freefields												  Freefields
-freefield												  Freefield
-freefield.exists										  Freefield already exists.
-freefield.mandatory										  Freefield name and content are mandatory.
-freefield.notfound									   	  Freefield not found.
-from													  From address
-general													  General
-groups													  Groups
-groups.admin											  You can't change the admin group.
-groups.count											  Number of groups.
-groups.restricted										  You are not allowed to manage groups.
-groups.saved											  Groups saved.
-group													  Group
-group.add												  Add Group
-group.mandatory											  Group ID is mandatory.
-group.notfound											  Group not found.
-group.alreadymember										  User is already member of the group.
-hostname												  Hostname
-hours													  Hours
-homepage												  Homepage
-id														  ID
-increment												  Increment
-information												  Information
-initial													  Initial
-jboss4												      JBoss 4.x
-jboss6                                                    JBoss 6.x
-jdbc													  JDBC URL
-jdbc.driver												  JDBC driver
-jdbc.driver.oracle.thin									  Oracle Thin
-jdbc.driver.oracle.xa									  Oracle XA
-jdbc.driver.ibm.db2									      IBM DB2
-jdbc.driver.mysql										  MySQL
-jdbc.driver.postgresql									  PostgreSQL
-jdbc.helper												  JDBC helper classname
-jdbc.helper.websphere.generic							  IBM WebSphere Generic Helper
-jdbc.helper.websphere.oracle							  IBM WebSphere Oracle Helper
-jmsqueues												  JMS Queues
-jmsqueue												  JMS Queue
-jmsqueue.add											  Add JMS Queue
-jmsqueue.exists											  JMS queue already exists.
-jmsqueue.mandatory										  JMS queue name is mandatory.
-jmsqueue.notfound									      JMS queue not found.
-jmstopics												  JMS Topics
-jmstopic												  JMS Topic
-jmstopic.add										   	  Add JMS Topic
-jmstopic.exists											  JMS topic already exists.
-jmstopic.mandatory										  JMS topic name is mandatory.
-jmstopic.notfound										  JMS topic not found.
-jmsservers												  JMS Servers
-jmsserver												  JMS Server
-jmsserver.add											  Add JMS Server
-jmsserver.mandatory										  JMS server name is mandatory.
-jmsserver.notfound										  JMS server not found.
-jmx														  JMX URL
-jndi.name												  JNDI Name
-jndi.alias												  JNDI Alias
-journal													  Journal
-journal.mandatory									  	  Event message is mandatory.
-journal.read										  	  Can't read the journal
-journal.write										  	  Can't write the journal
-key														  Key
-last.change.date										  Last Change Date
-last.update.date										  Last Update Date
-last.modification.date								      Last Modification Date
-loading													  Loading ...
-location												  Location
-lock													  Lock
-locked													  locked
-locked.by												  locked by
-log														  Log
-logs													  Logs
-logs.viewer												  Logs Viewer
-login													  Login
-logfiles												  Log Files
-logfile													  Log File
-logfile.notfound										  Log file not found
-mailhost												  Mailhost
-mappings												  Mappings
-maximal												      Maximal
-members													  Members
-message													  Message
-minutes													  Minutes
-multiple												  Multiple
-name													  Name
-namespacebindings										  NameSpace Bindings
-namespacebinding.exists							  		  NameSpace Binding already exists.
-namespacebinding.notfound							  	  NameSpace Binding not found.
-namespacebinding.mandatory							  	  NameSpace Binding name, JNDI name, JNDI alias and provider URL are mandatory.
-no														  no
-notes												  	  Notes (HTML accepted)
-notifier												  Notifier
-notifier.add											  Add Notifier
-notifier.exists									  		  Notifier already exists.
-notifier.mandatory									  	  Notifier mail hostname, address are mandatory.
-notifier.notfound									  	  Notifier not found.
-other													  other
-password												  Password
-password.confirm										  Confirm password
-paste													  Paste
-path													  Path
-parentfirst												  Parent First
-parentlast												  Parent Last
-permission.admin										  Grant all accesses
-permission.update										  Grant environment update
-permission.jeeservers									  Grant JEE application servers change
-permission.jeeserversupdate								  Grant JEE application servers update
-permission.jeeserverscontrol							  Grant JEE application servers stop/start
-permission.jeeresources									  Grant JEE resources change
-permission.jeeresourcesupdate							  Grant JEE resources update
-permission.jeeapplications								  Grant JEE applications change
-permission.jeeapplicationsupdate						  Grant JEE applications update
-permission.softwares									  Grant softwares change
-permission.softwaresupdate								  Grant softwares update
-permission.release										  Grant release publication
-permission.shell										  Grant shell
-permission.browser										  Grant browser
-permission.homepage										  Grant homepage generation
-port													  Port
-preferences												  Preferences
-preferences.admin										  Admin username can't be changed.
-preferences.crypt										  Password can't be crypted
-preferences.mandatory									  Username is mandatory.
-preferences.password									  Passwords don't match.
-preferences.saved										  Preferences saved.
-preproduction											  preproduction
-production												  production
-provider.url											  Provider URL
-properties												  Properties
-publish													  Publish
-publisher												  Publisher
-publisher.add											  Add Publisher
-publisher.exists						  				  Publisher already exists.
-publisher.mandatory					  					  Publisher mail hostname and from address are mandatory.
-publisher.notfound						  				  Publisher not found.
-purge													  Purge
-save													  Save
-scheduler												  Scheduler
-seconds													  Seconds
-security												  Security ACL
-security.exists											  Security access already exists.
-security.mandatory										  Security group and access type are mandatory.
-security.notfound										  Security access not found.
-severity												  Severity
-scope												      Scope
-sharedlibraries											  Shared Libraries
-sharedlibrary.exists								      Shared Library already exists.
-sharedlibrary.mandatory							  		  Shared Library name and classpath are mandatory.
-sharedlibrary.notfound								  	  Shared Library not found.
-shell													  Remote Shell
-shell.mandatory											  Command is mandatory.
-single													  Single
-size													  Size
-softwares												  Softwares
-software												  Software
-software.add											  Add Software
-software.component.exists                                 Software component already exists.
-sure.question											  Are you sure ?
-staging													  staging
-standalone												  standalone
-sql.command												  SQL System Command (%s is replaced by SQL script path)
-sql.scripts												  SQL Scripts
-sql.script											      SQL Script
-sql.script.add											  Add SQL Script
-stats										   		  	  Stats
-stats.agents											  Agents Map
-stats.physical											  Physical Map
-stats.middlewares									  	  Middlewares Map
-status													  Status
-start													  Start
-stop													  Stop
-stop.using.jmx											  JEE application server is stopped using JMX layer
-switch.enable											  Enable this resource
-switch.disable											  Disable this resource
-switch.blocker											  Set this resource as update blocker
-switch.notblocker										  Set this resource as not update blocker
-switch.afterjee											  Set update after JEE resources.
-switch.beforejee										  Set update before JEE resources.
-switch.force                                              Set this resource with forced execution/update
-switch.notforce                                           Set this resource with not forced execution/update
-tag														  Tag
-testing													  testing
-type													  Type
-topology												  Topology
-unlock													  Unlock
-unstable												  unstable
-username												  Username
-update													  Update
-update.count											  Update Count
-update.plan												  Update Plan
-update.unit												  Update Unit
-update.unit.add											  Add Update Unit
-update.server.info										  (you can update each JEE application servers resources including applications directly on the resource panel)
-update.software.info									  (you can update each software update plan part directly on the item panel)
-update.require.restart									  Update performs JEE application server restart
-update.require.caches.clean								  Update performs JEE application server caches cleanup
-users													  Users
-users.admin												  You can't change the admin user.
-users.count											   	  Number of users
-users.restricted										  You are not allowed to manage users.
-users.saved												  Users saved.
-user													  User
-user.add												  Add User
-user.notfound											  User not found.
-url														  URL
-uri														  URI
-uri.test                                                  Test if this URI exists
-up														  Up
-readonly												  read only
-readwrite												  read write
-release													  Release
-release.error											  Release failed
-release.location										  Release target location
-release.published										  Release published.
-reload													  Reload
-reloaded												  reloaded
-resources												  JEE Resources
-rows													  Rows
-value												      Value
-yes														  yes
-unknown												      unknown
-updateonly												  update only
-variables												  Variables
-variable											   	  Variable
-variable.exists											  Variable already exists.
-variable.mandatory										  Variable name and value are mandatory.
-variable.notfound										  Variable not found.
-view													  View
-virtualhost												  Virtual Host
-weblinks											      Web notes (HTML accepted)
-weblogic8											      BEA/Oracle WebLogic 8.x/9.x/10.0
-websphere5												  IBM WebSphere 5.x/6.x
-welcome												      Welcome
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom.png
deleted file mode 100644
index 427f1e3..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom_left.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom_left.png
deleted file mode 100644
index 5d8f277..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom_left.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom_right.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom_right.png
deleted file mode 100644
index ee6e277..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_bottom_right.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_left.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_left.png
deleted file mode 100644
index b689545..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_left.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_right.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_right.png
deleted file mode 100644
index f8fdd5c..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_right.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top.png
deleted file mode 100644
index 90359ec..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top_left.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top_left.png
deleted file mode 100644
index 0bd1d18..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top_left.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top_right.png b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top_right.png
deleted file mode 100644
index d18424f..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/border_top_right.png
+++ /dev/null
Binary files differ
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/default.stylesheet b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/default.stylesheet
deleted file mode 100644
index 8cb53c4..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/style/default.stylesheet
+++ /dev/null
@@ -1,621 +0,0 @@
-<?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.
--->
-
-<stylesheet>
-
-  <style name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <!-- Container-specific property to enable Internet Explorer PNG Alpha Renderer for shadow window border. -->
-      <property type="java.lang.Boolean" name="nextapp.echo2.webcontainer.syncpeer.WindowPanePeer.ieAlphaRenderBorder"
-                value="true"/>
-      <property name="titleBackground" value="#9a9a9a"/>
-      <property name="titleForeground" value="#ffffff"/>
-      <property name="titleFont">
-        <font typeface="helvetica, sans-serif" bold="true" italic="false" size="12px"/>
-      </property>
-      <property name="border">
-        <fill-image-border content-insets="8px 8px 14px 14px" border-insets="17px 17px 23px 23px">
-          <border-part position="top-left">
-            <fill-image>
-              <image type="nextapp.echo2.app.ResourceImageReference">
-                <resource-image-reference resource="/org/apache/kalumet/console/app/style/border_top_left.png"/>
-              </image>
-            </fill-image>
-          </border-part>
-          <border-part position="top">
-            <fill-image>
-              <image type="nextapp.echo2.app.ResourceImageReference">
-                <resource-image-reference resource="/org/apache/kalumet/console/app/style/border_top.png"/>
-              </image>
-            </fill-image>
-          </border-part>
-          <border-part position="top-right">
-            <fill-image>
-              <image type="nextapp.echo2.app.ResourceImageReference">
-                <resource-image-reference resource="/org/apache/kalumet/console/app/style/border_top_right.png"/>
-              </image>
-            </fill-image>
-          </border-part>
-          <border-part position="left">
-            <fill-image>
-              <image type="nextapp.echo2.app.ResourceImageReference">
-                <resource-image-reference resource="/org/apache/kalumet/console/app/style/border_left.png"/>
-              </image>
-            </fill-image>
-          </border-part>
-          <border-part position="right">
-            <fill-image>
-              <image type="nextapp.echo2.app.ResourceImageReference">
-                <resource-image-reference resource="/org/apache/kalumet/console/app/style/border_right.png"/>
-              </image>
-            </fill-image>
-          </border-part>
-          <border-part position="bottom-left">
-            <fill-image>
-              <image type="nextapp.echo2.app.ResourceImageReference">
-                <resource-image-reference resource="/org/apache/kalumet/console/app/style/border_bottom_left.png"/>
-              </image>
-            </fill-image>
-          </border-part>
-          <border-part position="bottom">
-            <fill-image>
-              <image type="nextapp.echo2.app.ResourceImageReference">
-                <resource-image-reference resource="/org/apache/kalumet/console/app/style/border_bottom.png"/>
-              </image>
-            </fill-image>
-          </border-part>
-          <border-part position="bottom-right">
-            <fill-image>
-              <image type="nextapp.echo2.app.ResourceImageReference">
-                <resource-image-reference resource="/org/apache/kalumet/console/app/style/border_bottom_right.png"/>
-              </image>
-            </fill-image>
-          </border-part>
-        </fill-image-border>
-      </property>
-    </properties>
-  </style>
-
-  <style name="default" type="nextapp.echo2.app.Label">
-    <properties>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-    </properties>
-  </style>
-
-  <style name="default" type="nextapp.echo2.app.button.AbstractButton">
-    <properties>
-      <property name="lineWrap" value="false"/>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-    </properties>
-  </style>
-
-  <style name="default" type="nextapp.echo2.app.text.TextComponent">
-    <properties>
-      <property name="background" value="#dbdbdb"/>
-      <property name="width" value="300px"/>
-      <property name="border">
-        <border size="1px" style="solid" color="#000000"/>
-      </property>
-      <property name="foreground" value="#000000"/>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-    </properties>
-  </style>
-  <style name="default" type="nextapp.echo2.app.ListBox">
-    <properties>
-      <property name="background" value="#dbdbdb"/>
-      <property name="foreground" value="#000000"/>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-      <property name="border">
-        <border size="1px" style="solid" value="#000000"/>
-      </property>
-    </properties>
-  </style>
-
-  <style name="default" type="nextapp.echo2.app.SelectField">
-    <properties>
-      <property name="width" value="100px"/>
-      <property name="background" value="#dbdbdb"/>
-      <property name="border">
-        <border size="1px" style="solid" color="#000000"/>
-      </property>
-      <property name="foreground" value="#000000"/>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-    </properties>
-  </style>
-
-  <style name="default" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="insets" value="4px"/>
-    </properties>
-  </style>
-
-  <style name="default" type="nextapp.echo2.app.SplitPane">
-    <properties>
-      <property name="resizable" value="true"/>
-      <property name="separatorColor" value="#cdcdcd"/>
-      <property name="separatorHeight" value="2px"/>
-      <property name="separatorWidth" value="2px"/>
-    </properties>
-  </style>
-
-  <style name="default" type="nextapp.echo2.extras.app.TabPane">
-    <properties>
-      <property name="tabActiveBackground" value="#f0f0f0"/>
-      <property name="tabActiveForeground" value="#000000"/>
-      <property name="tabInactiveBackground" value="#9a9a9a"/>
-      <property name="tabInactiveForeground" value="#ffffff"/>
-      <property name="tabActiveFont">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-      <property name="tabInactiveFont">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-      <property name="tabActiveBorder">
-        <border size="1px" style="solid" color="#000000"/>
-      </property>
-      <property name="tabInactiveBorder">
-        <border size="1px" style="solid" color="#000000"/>
-      </property>
-      <property name="background" value="#ffffff"/>
-    </properties>
-  </style>
-  <style name="tab.content" type="nextapp.echo2.app.ContentPane">
-    <properties>
-      <property name="insets" value="4px"/>
-      <property name="background" value="#ffffff"/>
-    </properties>
-  </style>
-
-  <style name="default" type="nextapp.echo2.app.Grid">
-    <properties>
-      <property name="insets" value="2px"/>
-      <property name="width" value="100%"/>
-    </properties>
-  </style>
-  <style name="border.grid" base-name="default" type="nextapp.echo2.app.Grid">
-    <properties>
-      <property name="border">
-        <border size="1px" style="solid" color="#cdcdcd"/>
-      </property>
-      <property name="insets" value="4px"/>
-    </properties>
-  </style>
-  <style name="grid.cell" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.GridLayoutData">
-          <properties>
-            <property name="alignment">
-              <alignment vertical="top" horizontal="left"/>
-            </property>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-  <style name="grid.cell" type="nextapp.echo2.app.Label">
-    <properties>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.GridLayoutData">
-          <properties>
-            <property name="alignment">
-              <alignment horizontal="left" vertical="top"/>
-            </property>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-  <style name="grid.cell" base-name="default" type="nextapp.echo2.app.Button">
-    <properties>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.GridLayoutData">
-          <properties>
-            <property name="alignment">
-              <alignment horizontal="left" vertical="top"/>
-            </property>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-  <style name="grid.cell" type="nextapp.echo2.app.Row">
-    <properties>
-      <property name="insets" value="4px 4px"/>
-      <property name="cellSpacing" value="4px"/>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.GridLayoutData">
-          <properties>
-            <property name="alignment">
-              <alignment horizontal="left" vertical="top"/>
-            </property>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-  <style name="grid.header" type="nextapp.echo2.app.Label">
-    <properties>
-      <property name="background" value="#cdcdcd"/>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.GridLayoutData">
-          <properties>
-            <property name="background" value="#cdcdcd"/>
-            <property name="alignment">
-              <alignment horizontal="center" vertical="top"/>
-            </property>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="title" type="nextapp.echo2.app.Label">
-    <properties>
-      <property name="foreground" value="#000000"/>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" bold="false" italic="false" size="12px"/>
-      </property>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="background" value="#f0f0f0"/>
-            <property name="insets" value="10px"/>
-            <property name="alignment">
-              <alignment horizontal="left" vertical="middle"/>
-            </property>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="menu" type="nextapp.echo2.app.Row">
-    <properties>
-      <property name="insets" value="4px"/>
-      <property name="cellSpacing" value="12px"/>
-      <property name="alignment">
-        <alignment horizontal="right" vertical="center"/>
-      </property>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" bold="false" italic="false" size="8px"/>
-      </property>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="background" value="#cdcdcd"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="left" type="nextapp.echo2.app.ContentPane">
-    <properties>
-      <property name="background" value="#f0f0f0"/>
-    </properties>
-  </style>
-
-  <style name="central" type="nextapp.echo2.app.ContentPane">
-    <properties>
-      <property name="background" value="#fbfbfb"/>
-    </properties>
-  </style>
-
-  <style name="control" type="nextapp.echo2.app.Row">
-    <properties>
-      <property name="insets" value="4px 4px"/>
-      <property name="cellSpacing" value="2px"/>
-      <property name="background" value="#cdcdcd"/>
-      <property name="alignment">
-        <alignment horizontal="right" vertical="middle"/>
-      </property>
-      <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-        <properties>
-          <property name="overflow" value="OVERFLOW_HIDDEN"/>
-        </properties>
-      </layout-data>
-    </properties>
-  </style>
-
-  <style name="control" type="nextapp.echo2.app.button.AbstractButton">
-    <properties>
-      <property name="lineWrap" value="false"/>
-      <property name="insets" value="3px 3px"/>
-      <property name="foreground" value="#000000"/>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" bold="true" size="8px"/>
-      </property>
-    </properties>
-  </style>
-
-  <style name="login" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="resizable" value="false"/>
-      <property name="movable" value="false"/>
-      <property name="positionX" value="80px"/>
-      <property name="positionY" value="320px"/>
-      <property name="width" value="410px"/>
-      <property name="height" value="150px"/>
-    </properties>
-  </style>
-  <style name="login" type="nextapp.echo2.app.Grid">
-    <properties>
-      <property name="insets" value="4px"/>
-    </properties>
-  </style>
-
-  <style name="error" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="resizable" value="true"/>
-      <property name="width" value="500px"/>
-      <property name="height" value="200px"/>
-    </properties>
-  </style>
-  <style name="error" base-name="default" type="nextapp.echo2.app.Label">
-    <properties>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" size="10px"/>
-      </property>
-    </properties>
-  </style>
-
-  <style name="about" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="resizable" value="true"/>
-      <property name="width" value="400px"/>
-      <property name="height" value="200px"/>
-    </properties>
-  </style>
-  <style name="about" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="insets" value="4px"/>
-    </properties>
-  </style>
-  <style name="about.title" type="nextapp.echo2.app.Label">
-    <properties>
-      <property name="foreground" value="#000000"/>
-      <property name="font">
-        <font typerface="helvetica, sans-serif" size="14px"/>
-      </property>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.ColumnLayoutData">
-          <properties>
-            <property name="background" value="#f0f0f0"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="log" type="nextapp.echo2.app.Label">
-    <properties>
-      <property name="foreground" value="#000000"/>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" bold="true" size="12px"/>
-      </property>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="background" value="#cdcdcd"/>
-            <property name="insets" value="4px"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-  <style name="log" type="nextapp.echo2.app.Grid">
-    <properties>
-      <property name="border">
-        <border size="1px" style="solid" color="#c0c0c0"/>
-      </property>
-      <property name="insets" value="5px 1px"/>
-      <property name="width" value="100%"/>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="insets" value="2px 2px"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="environments" type="nextapp.echo2.extras.app.AccordionPane">
-    <properties>
-      <property name="tabBackground" value="#9a9a9a"/>
-      <property name="tabForeground" value="#ffffff"/>
-      <property name="background" value="#f0f0f0"/>
-      <property name="font">
-        <font typeface="helvetica, sans-serif" bold="true" size="12px"/>
-      </property>
-    </properties>
-  </style>
-  <style name="environments" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="background" value="#f0f0f0"/>
-      <property name="insets" value="4px"/>
-    </properties>
-  </style>
-
-  <style name="preferences" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="430px"/>
-      <property name="height" value="400px"/>
-      <property name="insets" value="4px 4px"/>
-    </properties>
-  </style>
-
-  <style name="configuration" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="640px"/>
-      <property name="height" value="300px"/>
-    </properties>
-  </style>
-
-  <style name="groups" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="430px"/>
-      <property name="height" value="400px"/>
-    </properties>
-  </style>
-  <style name="groups" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="cellSpacing" value="4px"/>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="insets" value="4px"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="group" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="600px"/>
-      <property name="height" value="400px"/>
-    </properties>
-  </style>
-  <style name="group" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="cellSpacing" value="4px"/>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="insets" value="4px"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-  <style name="group.member.add" type="nextapp.echo2.app.Button">
-    <properties>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.GridLayoutData">
-          <properties>
-            <property name="alignment">
-              <alignment horizontal="right" vertical="top"/>
-            </property>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="users" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="430px"/>
-      <property name="height" value="400px"/>
-    </properties>
-  </style>
-  <style name="users" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="cellSpacing" value="4px"/>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="insets" value="4px"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="user" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="430px"/>
-      <property name="height" value="200px"/>
-    </properties>
-  </style>
-
-  <style name="agents" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="430px"/>
-      <property name="height" value="400px"/>
-    </properties>
-  </style>
-  <style name="agents" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="cellSpacing" value="4px"/>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="insets" value="4px"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="agent" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="450px"/>
-      <property name="height" value="270px"/>
-    </properties>
-  </style>
-  <style name="agent" type="nextapp.echo2.app.Grid">
-    <properties>
-      <property name="insets" value="4px"/>
-    </properties>
-  </style>
-
-  <style name="stats" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="400px"/>
-      <property name="height" value="300px"/>
-    </properties>
-  </style>
-  <style name="stats" type="nextapp.echo2.app.Column">
-    <properties>
-      <property name="insets" value="4px"/>
-      <property name="cellSpacing" value="4px"/>
-      <property name="layoutData">
-        <layout-data type="nextapp.echo2.app.layout.SplitPaneLayoutData">
-          <properties>
-            <property name="insets" value="4px"/>
-          </properties>
-        </layout-data>
-      </property>
-    </properties>
-  </style>
-
-  <style name="environment" base-name="default" type="nextapp.echo2.app.WindowPane">
-    <properties>
-      <property name="width" value="800px"/>
-      <property name="height" value="600px"/>
-    </properties>
-  </style>
-
-</stylesheet>
diff --git a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/templates/environment-homepage.html b/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/templates/environment-homepage.html
deleted file mode 100644
index 5fb33d9..0000000
--- a/0.6.x/kalumet-modules/console/src/main/resources/org/apache/kalumet/console/app/templates/environment-homepage.html
+++ /dev/null
@@ -1,199 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<!--
-
-    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.
--->
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
-<head>
-  <title>ENVIRONMENT_NAME</title>
-  <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
-  <meta http-equiv="pragma" content="no-cache"/>
-  <meta http-equiv="Content-Language" content="en-US"/>
-  <style>
-    <!--
-body {
-  margin: 0;
-  padding: 0;
-  background-color: #ffffff;
-}
-
-input {
-  background-color: #dbdbdb;
-  color: #000000;
-  font: 10px helvetica, sans-serif;
-  text-align: right;
-}
-
-input[type=text] {
-   width: 98%;
-}
-
-input.cronin {
-   width: 10%;
-}
-
-input[type=password] {
-   width: 98%;
-}
-
-select {
-  background-color: #dbdbdb;
-  color: #000000;
-  font: 10px helvetica, sans-serif;
-  text-align: right;
-}
-
-#header {
-  background-color: #f0f0f0;
-  width: 100%;
-  font: bold 14px helvetica, sans-serif;
-  color: #000000;
-}
-
-#topmenu {
-  background-color: #cdcdcd;
-  font: 10px helvatica, sans-serif;
-}
-
-#topmenu a {
-  text-decoration: none;
-  color: black;
-}
-
-#topmenu a:hover {
-  text-decoration: none;
-  background-color: #5a5a5a;
-  color: #bfbfbf;
-}
-
-#central {
-  width: 100%;
-  font: 10px helvetica, sans-serif;
-}
-
-#leftmenu {
-  float: left;
-  width: 19%;
-  font: 10px helvetica, sans-serif;
-  color: #f0f0f0;
-  margin: 0;
-}
-
-#leftmenu h2 {
-  font: bold 10px helvetica, sans-serif;
-  color: black;
-  background-color: white;
-}
-
-#leftmenu h3 {
-  font: bold 10px helvetica, sans-serif;
-  color: #5a5a5a;
-  background-color: #bfbfbf;
-}
-
-#leftmenu a {
-  text-decoration: none;
-  color: #5a5a5a;
-}
-
-#leftmenu a:hover {
-  text-decoration: none;
-  color: #5a5a5a;
-  background-color: #bfbfbf;
-}
-
-#maincontent {
-  float: right;
-  margin-left: 22%;
-  width: 79%;
-  margin: 0;
-  font: 10px helvetica, sans-serif;
-}
-
-#part {
-  font: 10px helvetica, sans-serif;
-  border: 1px solid black;
-  margin: 0px;
-  padding: 2px;
-}
-
-#part h3 {
-  font: bold 10px helvetica, sans-serif;
-  margin: 0;
-  color: #5a5a5a;
-  background-color: #bfbfbf;
-}
-
-#part a {
-  font-weight: bold;
-  color: red;
-  text-decoration: none;
-}
-
-#part table {
-  background-color: #efefef;
-  margin-left: 5%;
-}
-
-#part tr {
-  vertical-align: top;
-}
-
-#footer {
-  width: 100%;
-  clear: both;
-  margin-top: 10px;
-  padding-top: 10px;
-  position: relative;
-  font: 8px helvetica, sans-serif;
-  text-align: center;
-}
-    -->
-  </style>
-</head>
-
-<body>
-
-<div id="header">
-  ENVIRONMENT_NAME
-</div>
-<div id="topmenu">
-  <hr/>
-  &nbsp; &nbsp;
-  ENVIRONMENT_APPLICATIONS
-  <hr/>
-</div>
-
-<div id="central">
-  <div id="leftmenu">
-    <h3>&nbsp; Environment Links</h3>
-    ENVIRONMENT_WEBLINKS
-  </div>
-  <div id="content">
-    &nbsp; &nbsp; &nbsp;
-    ENVIRONMENT_NOTES
-  </div>
-</div>
-
-<div id="footer">
-  <hr/>
-  Copyright (c) 2011 - The Apache Software Foundation - Apache Kalumet
-</div>
-
-</body>
-
-</html>
diff --git a/0.6.x/kalumet-modules/console/src/main/webapp/WEB-INF/web.xml b/0.6.x/kalumet-modules/console/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index 0c9acce..0000000
--- a/0.6.x/kalumet-modules/console/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,59 +0,0 @@
-<?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.
-  -->
-
-<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
-         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
-
-
-  <display-name>Apache Kalumet Console</display-name>
-
-  <servlet>
-    <servlet-name>KalumetConsoleServlet</servlet-name>
-    <servlet-class>org.apache.kalumet.console.app.KalumetConsoleServlet</servlet-class>
-  </servlet>
-
-  <servlet>
-    <servlet-name>KalumetConfigurationWrapperServlet</servlet-name>
-    <servlet-class>org.apache.kalumet.console.services.KalumetConfigurationWrapperServlet</servlet-class>
-  </servlet>
-
-  <servlet>
-    <servlet-name>KalumetJournalEventAppenderServlet</servlet-name>
-    <servlet-class>org.apache.kalumet.console.services.KalumetJournalEventAppenderServlet</servlet-class>
-  </servlet>
-
-  <servlet-mapping>
-    <servlet-name>KalumetConsoleServlet</servlet-name>
-    <url-pattern>/*</url-pattern>
-  </servlet-mapping>
-
-  <servlet-mapping>
-    <servlet-name>KalumetConfigurationWrapperServlet</servlet-name>
-    <url-pattern>/ConfigurationWrapper</url-pattern>
-  </servlet-mapping>
-
-  <servlet-mapping>
-    <servlet-name>KalumetJournalEventAppenderServlet</servlet-name>
-    <url-pattern>/JournalEventAppender</url-pattern>
-  </servlet-mapping>
-
-</web-app>
diff --git a/0.6.x/kalumet-modules/console/src/test/tomcat/log4j.xml b/0.6.x/kalumet-modules/console/src/test/tomcat/log4j.xml
deleted file mode 100644
index a195d40..0000000
--- a/0.6.x/kalumet-modules/console/src/test/tomcat/log4j.xml
+++ /dev/null
@@ -1,87 +0,0 @@
-<?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.
-
--->
-<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
-
-  <appender name="FILE" class="org.apache.log4j.ConsoleAppender">
-    <param name="threshold" value="DEBUG"/>
-    <layout class="org.apache.log4j.PatternLayout">
-      <param name="ConversionPattern" value="%d{ABSOLUTE} | %-5p | %-10t | %-24.24c{1} | %-30.30C %4L | %m%n"/>
-    </layout>
-  </appender>
-
-  <logger name="org.apache">
-    <level value="WARN"/>
-  </logger>
-
-  <logger name="org.quartz">
-    <level value="WARN"/>
-  </logger>
-
-  <logger name="org.apache.kalumet">
-    <!-- To enable debug logging, replace the INFO by DEBUG -->
-    <level value="INFO"/>
-  </logger>
-
-  <root>
-    <level value="INFO"/>
-    <appender-ref ref="FILE"/>
-  </root>
-
-
-</log4j:configuration>
-
-    <!--
-
-    Log4J Configuration Quick Reference:
-    ====================================
-
-    Priority order is DEBUG < INFO < WARN < ERROR < FATAL
-
-    PatternLayout conversion characters:
-
-    %c   Category of the logging event
-    %C   Fully qualified class name of the caller
-    %d   Date of the logging event  (example: %d{HH:mm:ss,SSS} )
-    %F   File name where the logging request was issued (caution: extremely slow)
-    %l   Location information of the caller (caution: extremely slow)
-    %L   Line number from where the logging request was issued (caution: extremely slow)
-    %m   Application-supplied message
-    %M   Method name from where the logging request was issued (caution: extremely slow)
-    %n   Line separator
-    %p   Priority of the logging event
-    %r   Number of milliseconds since the start of the application
-    %t   Name of the thread that generated the logging event
-    %x   Nested diagnotic context associated with the thread
-    %%   A single percent sign
-
-    Format modifiers examples:
-
-    %20c     Left pad with spaces if category is less than 20 characters long
-    %-20c    Right pad with spaces if category is less than 20 characters long
-    %.30c    Truncate from the beginning if category is more than 30 chars long
-    %20.30c  Left pad 20 chars + truncate from beginning if more than 30 chars
-    %-20.30c Right pad 20 chars + truncate from beginning if more than 30 chars
-
-    Examples:  "%r [%t] %-5p %c %x - %m\n"
-    "%-6r [%15.15t] %-5p %30.30c %x - %m\n"
-
-    -->
diff --git a/0.6.x/kalumet-modules/controller/core/pom.xml b/0.6.x/kalumet-modules/controller/core/pom.xml
deleted file mode 100644
index 654c140..0000000
--- a/0.6.x/kalumet-modules/controller/core/pom.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet.controller</groupId>
-    <artifactId>controller</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.controller.core</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Kalumet :: Controller :: Core</name>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.utils</artifactId>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/AbstractJEEApplicationServerController.java b/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/AbstractJEEApplicationServerController.java
deleted file mode 100644
index 16a857a..0000000
--- a/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/AbstractJEEApplicationServerController.java
+++ /dev/null
@@ -1,235 +0,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.
- */
-package org.apache.kalumet.controller.core;
-
-import java.util.List;
-
-/**
- * Abstract JEE application server controller.
- */
-public abstract class AbstractJEEApplicationServerController
-  implements JEEApplicationServerController
-{
-
-  private String url;
-
-  private String username;
-
-  private String password;
-
-  private String serverName;
-
-  private boolean cluster;
-
-  /**
-   * Default constructor.
-   *
-   * @param url        JMX URL of the JEE application server.
-   * @param username   the administrative user.
-   * @param password   the administrative password.
-   * @param serverName the JEE application server name.
-   * @param cluster    true means that the server is a cluster, or single.
-   * @throws ControllerException in case of connection failure.
-   */
-  public AbstractJEEApplicationServerController(String url, String username, String password, String serverName,
-                                                Boolean cluster)
-    throws ControllerException
-  {
-    this.url = url;
-    this.username = username;
-    this.password = password;
-    this.serverName = serverName;
-    this.cluster = cluster.booleanValue();
-    this.init();
-  }
-
-  /**
-   * Abstract method to initialize a specific JEE application server.
-   *
-   * @throws ControllerException in case of initialization error.
-   */
-  protected abstract void init()
-    throws ControllerException;
-
-  public String getUrl()
-  {
-    return this.url;
-  }
-
-  public void setUrl( String url )
-  {
-    this.url = url;
-  }
-
-  public String getUsername()
-  {
-    return this.username;
-  }
-
-  public void setUsername( String username )
-  {
-    this.username = username;
-  }
-
-  public String getPassword()
-  {
-    return this.password;
-  }
-
-  public void setPassword( String password )
-  {
-    this.password = password;
-  }
-
-  public String getServerName()
-  {
-    return this.serverName;
-  }
-
-  public void setServerName( String serverName )
-  {
-    this.serverName = serverName;
-  }
-
-  public boolean isCluster()
-  {
-    return this.cluster;
-  }
-
-  public void setCluster( boolean cluster )
-  {
-    this.cluster = cluster;
-  }
-
-  public abstract void shutdown()
-    throws ControllerException;
-
-  public abstract String status()
-    throws ControllerException;
-
-  public abstract boolean isStopped()
-    throws ControllerException;
-
-  public abstract boolean isJEEApplicationDeployed(String path, String name)
-    throws ControllerException;
-
-  public abstract void deployJEEApplication(String path, String name, String classLoaderOrder,
-                                            String classLoaderPolicy, String virtualHost)
-    throws ControllerException;
-
-  public abstract void undeployJEEApplication(String path, String name)
-    throws ControllerException;
-
-  public abstract void redeployJEEApplication(String path, String name)
-    throws ControllerException;
-
-  public abstract boolean isJDBCConnectionPoolDeployed( String name )
-    throws ControllerException;
-
-  public abstract boolean isJDBCConnectionPoolUpToDate( String name, String jdbcDriverClassName, int capacityIncrement,
-                                                        int initialCapacity, int maxCapacity, String username,
-                                                        String password, String jdbcURL, String classPath )
-    throws ControllerException;
-
-  public abstract boolean updateJDBCConnectionPool( String name, String jdbcDriverClassName, int capacityIncrement,
-                                                    int initialCapacity, int maxCapacity, String username,
-                                                    String password, String jdbcURL, String classPath )
-    throws ControllerException;
-
-  public abstract void deployJDBCConnectionPool( String name, String jdbcDriverClassName, int capacityIncrement,
-                                                 int initialCapacity, int maxCapacity, String username, String password,
-                                                 String jdbcURL, String classPath )
-    throws ControllerException;
-
-  public abstract void undeployJDBCConnectionPool( String name )
-    throws ControllerException;
-
-  public abstract boolean isJDBCDataSourceDeployed( String name )
-    throws ControllerException;
-
-  public abstract boolean isJDBCDataSourceUpToDate( String name, String jdbcConnectionPool, String jdbcURL,
-                                                    String helpClassName )
-    throws ControllerException;
-
-  public abstract void deployJDBCDataSource( String name, String jdbcConnectionPool, String jdbcURL,
-                                             String helpClassName )
-    throws ControllerException;
-
-  public abstract void undeployJDBCDataSource( String name )
-    throws ControllerException;
-
-  public abstract boolean updateJDBCDataSource( String name, String jdbcConnectionPool, String jdbcURL,
-                                                String helperClassName )
-    throws ControllerException;
-
-  public abstract boolean isJMSConnectionFactoryDeployed( String name )
-    throws ControllerException;
-
-  public abstract void deployJMSConnectionFactory( String name )
-    throws ControllerException;
-
-  public abstract void undeployJMSConnectionFactory( String name )
-    throws ControllerException;
-
-  public abstract boolean isJMSServerDeployed( String name )
-    throws ControllerException;
-
-  public abstract boolean isJMSServerUpToDate( String name, List queues, List topics )
-    throws ControllerException;
-
-  public abstract void deployJMSServer( String name, List queues, List topics )
-    throws ControllerException;
-
-  public abstract boolean updateJMSServer( String name, List queues, List topics )
-    throws ControllerException;
-
-  public abstract void undeployJMSServer( String name )
-    throws ControllerException;
-
-  public abstract boolean isJNDIBindingDeployed( String name )
-    throws ControllerException;
-
-  public abstract void deployJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException;
-
-  public abstract void undeployJNDIBinding( String name )
-    throws ControllerException;
-
-  public abstract boolean isJNDIBindingUpToDate( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException;
-
-  public abstract boolean updateJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException;
-
-  public abstract boolean isSharedLibraryDeployed( String name )
-    throws ControllerException;
-
-  public abstract void deploySharedLibrary( String name, String classpath )
-    throws ControllerException;
-
-  public abstract void undeploySharedLibrary( String name )
-    throws ControllerException;
-
-  public abstract boolean isSharedLibraryUpToDate( String name, String classpath )
-    throws ControllerException;
-
-  public abstract boolean updateSharedLibrary( String name, String classpath )
-    throws ControllerException;
-
-}
diff --git a/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/ControllerException.java b/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/ControllerException.java
deleted file mode 100644
index 42570cb..0000000
--- a/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/ControllerException.java
+++ /dev/null
@@ -1,61 +0,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.
- */
-package org.apache.kalumet.controller.core;
-
-import org.apache.kalumet.KalumetException;
-
-/**
- * Exception wrapper for the Kalumet controllers.
- */
-public class ControllerException
-  extends KalumetException
-{
-
-  /**
-   * Create a controller exception with an explanation message.
-   *
-   * @param message the explanation message.
-   */
-  public ControllerException( String message )
-  {
-    super( message );
-  }
-
-  /**
-   * Create a controller exception with the cause.
-   *
-   * @param cause the cause.
-   */
-  public ControllerException( Throwable cause )
-  {
-    super( cause );
-  }
-
-  /**
-   * Create a controller exception with the explanation message and the cause.
-   *
-   * @param message the explanation message.
-   * @param cause   the cause.
-   */
-  public ControllerException( String message, Throwable cause )
-  {
-    super( message, cause );
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/JEEApplicationServerController.java b/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/JEEApplicationServerController.java
deleted file mode 100644
index 3f3dd51..0000000
--- a/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/JEEApplicationServerController.java
+++ /dev/null
@@ -1,426 +0,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.
- */
-package org.apache.kalumet.controller.core;
-
-import java.util.List;
-
-/**
- * JEE application server controller interface.
- */
-public interface JEEApplicationServerController
-{
-
-  /**
-   * Shutdown a JEE application server.
-   *
-   * @throws ControllerException in case of shutdown failure.
-   */
-  public void shutdown()
-    throws ControllerException;
-
-  /**
-   * Get the current status of a JEE application server.
-   *
-   * @return the current human readable status.
-   * @throws ControllerException in case of status check failure.
-   */
-  public String status()
-    throws ControllerException;
-
-  /**
-   * Check if an JEE application server is stopped or not.
-   *
-   * @return true if the JEE application server is stopped, false if it's running.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isStopped()
-    throws ControllerException;
-
-  /**
-   * Check if a JEE application is deployed.
-   *
-   * @param path the application local path.
-   * @param name the application name.
-   * @return true if the JEE application is deployed, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJEEApplicationDeployed(String path, String name)
-    throws ControllerException;
-
-  /**
-   * Deploy a JEE application.
-   *
-   * @param path              the JEE application local path.
-   * @param name              the JEE application name.
-   * @param classLoaderOrder  the JEE application class loader order (PARENT_FIRST/PARENT_LAST).
-   * @param classLoaderPolicy the JEE application class loader policy (single/multiple).
-   * @param virtualHost       the JEE application virtual host (if applicable).
-   * @throws ControllerException in case of deployment failure.
-   */
-  public void deployJEEApplication(String path, String name, String classLoaderOrder, String classLoaderPolicy,
-                                   String virtualHost)
-    throws ControllerException;
-
-  /**
-   * Undeploy a JEE application.
-   *
-   * @param path the JEE application local path.
-   * @param name the JEE application name.
-   * @throws ControllerException in case of undeployment failure.
-   */
-  public void undeployJEEApplication(String path, String name)
-    throws ControllerException;
-
-  /**
-   * Redeploy a JEE application.
-   *
-   * @param path the JEE application local path.
-   * @param name the JEE application name.
-   * @throws ControllerException in case of redeployment failure.
-   */
-  public void redeployJEEApplication(String path, String name)
-    throws ControllerException;
-
-  /**
-   * Check a JDBC connection pool is deployed.
-   *
-   * @param name the name of the JDBC connection pool.
-   * @return true if the JDBC connection pool is deployed, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJDBCConnectionPoolDeployed( String name )
-    throws ControllerException;
-
-  /**
-   * Check if a JDBC connection pool attributes are up to date.
-   *
-   * @param name                the name of the JDBC connection pool.
-   * @param jdbcDriverClassName the JDBC driver class name of the connection pool.
-   * @param capacityIncrement   the capacity increment of the JDBC connection pool.
-   * @param initialCapacity     the initial capacity of the JDBC connection pool.
-   * @param maxCapacity         the max capacity of the JDBC connection pool.
-   * @param username            the database username.
-   * @param password            the database password.
-   * @param jdbcURL             the JDBC URL
-   * @param classPath           the class path where to look for the driver
-   * @return true if all attributes are up to date, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJDBCConnectionPoolUpToDate( String name, String jdbcDriverClassName, int capacityIncrement,
-                                               int initialCapacity, int maxCapacity, String username, String password,
-                                               String jdbcURL, String classPath )
-    throws ControllerException;
-
-  /**
-   * Update a JDBC connection pool.
-   *
-   * @param name                the name of the JDBC connection pool.
-   * @param jdbcDriverClassName the JDBC driver of the connection pool.
-   * @param capacityIncrement   the capacity increment of the JDBC connection pool.
-   * @param initialCapacity     the initial capacity of the JDBC connection pool.
-   * @param maxCapacity         the max capacity of the JDBC connection pool.
-   * @param username            the database username.
-   * @param password            the database password.
-   * @param jdbcURL             the JDBC URL of the database.
-   * @param classPath           the class path of JDBC driver.
-   * @return true if the JDBC connection pool has been updated, false else.
-   * @throws ControllerException in case of update failure.
-   */
-  public boolean updateJDBCConnectionPool( String name, String jdbcDriverClassName, int capacityIncrement,
-                                           int initialCapacity, int maxCapacity, String username, String password,
-                                           String jdbcURL, String classPath )
-    throws ControllerException;
-
-  /**
-   * Deploy a JDBC connection pool.
-   *
-   * @param name                the name of the JDBC connection pool.
-   * @param jdbcDriverClassName the JDBC driver of the connection pool.
-   * @param capacityIncrement   the capacity increment of the JDBC connection pool.
-   * @param initialCapacity     the initial capacity of the JDBC connection pool.
-   * @param maxCapacity         the max capacity of the JDBC connection pool.
-   * @param username            the database username.
-   * @param password            the database password.
-   * @param jdbcURL             the database JDBC URL.
-   * @param classPath           the class path of the JDBC driver.
-   * @throws ControllerException in case of deployment failure.
-   */
-  public void deployJDBCConnectionPool( String name, String jdbcDriverClassName, int capacityIncrement,
-                                        int initialCapacity, int maxCapacity, String username, String password,
-                                        String jdbcURL, String classPath )
-    throws ControllerException;
-
-  /**
-   * Undeploy a JDBC connection pool.
-   *
-   * @param name the name of the JDBC connection pool.
-   * @throws ControllerException in case of an undeployment failure.
-   */
-  public void undeployJDBCConnectionPool( String name )
-    throws ControllerException;
-
-  /**
-   * Check if a JDBC data source is deployed.
-   *
-   * @param name the name of the JDBC data source.
-   * @return true if the JDBC data source is deployed, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJDBCDataSourceDeployed( String name )
-    throws ControllerException;
-
-  /**
-   * Check if a JDBC data source is up to date.
-   *
-   * @param name               the name of the JDBC data source.
-   * @param jdbcConnectionPool the name of the JDBC connection pool used by the data source.
-   * @param jdbcURL            the JDBC URL of the data source.
-   * @param helpClassName      the helper class name of the JDBC data source.
-   * @return true if the JDBC data source is up to date, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJDBCDataSourceUpToDate( String name, String jdbcConnectionPool, String jdbcURL,
-                                           String helpClassName )
-    throws ControllerException;
-
-  /**
-   * Deploy a JDBC data source.
-   *
-   * @param name               the name of the JDBC data source.
-   * @param jdbcConnectionPool the name of the JDBC connection pool used by the data source.
-   * @param jdbcURL            the JDBC URL of the data source.
-   * @param helpClassName      the helper class name of the JDBC data source.
-   * @throws ControllerException in case of deployment failure.
-   */
-  public void deployJDBCDataSource( String name, String jdbcConnectionPool, String jdbcURL, String helpClassName )
-    throws ControllerException;
-
-  /**
-   * Undeploy a JDBC data source.
-   *
-   * @param name the name of the JDBC data source.
-   * @throws ControllerException in case of undeployment failure.
-   */
-  public void undeployJDBCDataSource( String name )
-    throws ControllerException;
-
-  /**
-   * Update a JDBC data source.
-   *
-   * @param name               the name of the JDBC data source.
-   * @param jdbcConnectionPool the name of the JDBC connection pool used by the data source.
-   * @param jdbcURL            the JDBC URL of the data source.
-   * @param helperClassName    the helper class name of the data source.
-   * @return true if the JDBC data source has been updated, false else.
-   * @throws ControllerException in case of update failure.
-   */
-  public boolean updateJDBCDataSource( String name, String jdbcConnectionPool, String jdbcURL, String helperClassName )
-    throws ControllerException;
-
-  /**
-   * Check if a JMS connection factory is deployed.
-   *
-   * @param name the name of the JMS connection factory.
-   * @return true if the JMS connection factory is deployed, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJMSConnectionFactoryDeployed( String name )
-    throws ControllerException;
-
-  /**
-   * Deploy a JMS connection factory.
-   *
-   * @param name the name of the JMS connection factory.
-   * @throws ControllerException in case of deployment failure.
-   */
-  public void deployJMSConnectionFactory( String name )
-    throws ControllerException;
-
-  /**
-   * Undeploy a JMS connection factory.
-   *
-   * @param name the name of the JMS connection factory.
-   * @throws ControllerException in case of undeployment failure.
-   */
-  public void undeployJMSConnectionFactory( String name )
-    throws ControllerException;
-
-  /**
-   * Check if a JMS server is deployed.
-   *
-   * @param name the name of the JMS server.
-   * @return true if the JMS server is deployed, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJMSServerDeployed( String name )
-    throws ControllerException;
-
-  /**
-   * Check if a JMS server is up to date.
-   *
-   * @param name   the name of the JMS server.
-   * @param queues the queues deployed in the JMS server.
-   * @param topics the topics deployed in the JMS server.
-   * @return true if the JMS server is up to date, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJMSServerUpToDate( String name, List queues, List topics )
-    throws ControllerException;
-
-  /**
-   * Deploy a JMS server.
-   *
-   * @param name   the name of the JMS server.
-   * @param queues the queues to deploy in the JMS server.
-   * @param topics the topics to deploy in the JMS server.
-   * @throws ControllerException in case of deployment failure.
-   */
-  public void deployJMSServer( String name, List queues, List topics )
-    throws ControllerException;
-
-  /**
-   * Update a JMS server.
-   *
-   * @param name   the name of the JMS server.
-   * @param queues the queues in the JMS server.
-   * @param topics the topics in the JMS server.
-   * @return true if the JMS server has been updated, false else.
-   * @throws ControllerException in case of update failure.
-   */
-  public boolean updateJMSServer( String name, List queues, List topics )
-    throws ControllerException;
-
-  /**
-   * Undeploy a JMS server.
-   *
-   * @param name the name of the JMS server.
-   * @throws ControllerException in case of undeployment failure.
-   */
-  public void undeployJMSServer( String name )
-    throws ControllerException;
-
-  /**
-   * Check if a JNDI binding is deployed.
-   *
-   * @param name the name of the JNDI binding
-   * @return true if the JNDI binding is deployed, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJNDIBindingDeployed( String name )
-    throws ControllerException;
-
-  /**
-   * Deploy a JNDI binding.
-   *
-   * @param name        the name of the JNDI binding.
-   * @param jndiName    the name of the JNDI resources.
-   * @param jndiAlias   the alias name to the JNDI resources.
-   * @param providerUrl the URL provider of the JNDI binding.
-   * @throws ControllerException in case of deployment failure.
-   */
-  public void deployJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException;
-
-  /**
-   * Undeploy a JNDI binding.
-   *
-   * @param name the name of the JNDI binding.
-   * @throws ControllerException in case of undeployment failure.
-   */
-  public void undeployJNDIBinding( String name )
-    throws ControllerException;
-
-  /**
-   * Check if a JNDI binding is up to date.
-   *
-   * @param name        the name of the JNDI binding.
-   * @param jndiName    the name of the JNDI resources.
-   * @param jndiAlias   the alias name to the JNDI resources.
-   * @param providerUrl the URL provider of the JNDI binding.
-   * @return true if the JNDI binding is up to date, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isJNDIBindingUpToDate( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException;
-
-  /**
-   * Update a JNDI binding.
-   *
-   * @param name        the name of the JNDI binding.
-   * @param jndiName    the name of the JNDI resources.
-   * @param jndiAlias   the alias name to the JNDI resources.
-   * @param providerUrl the URL provider of the JNDI binding.
-   * @return true if the JNDI binding has been updated, false else.
-   * @throws ControllerException in case of update failure.
-   */
-  public boolean updateJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException;
-
-  /**
-   * Check if a shared library is deployed.
-   *
-   * @param name the name of the shared library.
-   * @return true if the shared library is deployed, false else.
-   * @throws ControllerException
-   */
-  public boolean isSharedLibraryDeployed( String name )
-    throws ControllerException;
-
-  /**
-   * Deploy a shared library.
-   *
-   * @param name      the name of the shared library.
-   * @param classpath the class path of the shared library.
-   * @throws ControllerException in case of deployment failure.
-   */
-  public void deploySharedLibrary( String name, String classpath )
-    throws ControllerException;
-
-  /**
-   * Undeploy a shared library.
-   *
-   * @param name the name of the shared library.
-   * @throws ControllerException in case of undeployment failure.
-   */
-  public void undeploySharedLibrary( String name )
-    throws ControllerException;
-
-  /**
-   * Check if a shared library is up to date.
-   *
-   * @param name      the name of the shared library.
-   * @param classpath the class path of the shared library.
-   * @return true if the shared library is up to date, false else.
-   * @throws ControllerException in case of status check failure.
-   */
-  public boolean isSharedLibraryUpToDate( String name, String classpath )
-    throws ControllerException;
-
-  /**
-   * Update a shared library.
-   *
-   * @param name      the name of the shared library.
-   * @param classpath the class path of the shared library.
-   * @return true if the shared library has been updated, false else.
-   * @throws ControllerException in case of update failure.
-   */
-  public boolean updateSharedLibrary( String name, String classpath )
-    throws ControllerException;
-
-}
diff --git a/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/JEEApplicationServerControllerFactory.java b/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/JEEApplicationServerControllerFactory.java
deleted file mode 100644
index 26637fb..0000000
--- a/0.6.x/kalumet-modules/controller/core/src/main/java/org/apache/kalumet/controller/core/JEEApplicationServerControllerFactory.java
+++ /dev/null
@@ -1,72 +0,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.
- */
-package org.apache.kalumet.controller.core;
-
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.JEEApplicationServer;
-import org.apache.kalumet.utils.VariableUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.lang.reflect.Constructor;
-
-/**
- * Factory to get a <code>JEEApplicationServerController</code>.
- */
-public class JEEApplicationServerControllerFactory
-{
-
-  private final static transient Logger LOGGER =
-    LoggerFactory.getLogger( JEEApplicationServerControllerFactory.class );
-
-  public static JEEApplicationServerController getController( Environment environment, JEEApplicationServer server )
-    throws ControllerException
-  {
-    LOGGER.debug( "Connecting to {}", VariableUtils.replace( server.getJmxurl(), environment.getVariables() ) );
-    String jmxUrl = VariableUtils.replace( server.getJmxurl(), environment.getVariables() );
-    String adminUser = VariableUtils.replace( server.getAdminuser(), environment.getVariables() );
-    String adminPassword = VariableUtils.replace( server.getAdminpassword(), environment.getVariables() );
-    JEEApplicationServerController controller = null;
-    try
-    {
-      Class controllerClass = Class.forName( server.getClassname() );
-      Constructor controllerConstructor = controllerClass.getConstructor(
-        new Class[]{ String.class, String.class, String.class, String.class, Boolean.class } );
-      controller = (JEEApplicationServerController) controllerConstructor.newInstance(
-        new Object[]{ jmxUrl, adminUser, adminPassword, server.getName(),
-          new Boolean( environment.getJEEApplicationServers().isCluster() ) } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't initialize controller", e );
-      if ( e != null )
-      {
-        throw new ControllerException( "Can't initialize controller", e );
-      }
-      else
-      {
-        throw new ControllerException(
-          "Can't initialize controller. Check if the JEE application server libraries are present in the agent classpath and check the agent log" );
-      }
-    }
-    return controller;
-
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/controller/jboss/README b/0.6.x/kalumet-modules/controller/jboss/README
deleted file mode 100644
index c949a1c..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/README
+++ /dev/null
@@ -1,40 +0,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.
- */
-
-Apache Kalumet JBoss Controller
-===============================
-
-Apache Kalumet provides two controllers for JBoss application server:
-- one for the JBoss application server 4.x version (which use the JBoss RMIAdaptor)
-- one for the JBoss application server 6.x
-
-    Controller Installation for JBoss 4.x
-    -------------------------------------
-Copy the following jar file to <kalumet_agent_home>/lib/extras:
-        * <jboss_home>/client/jbossall-client.jar
-
-    Controller Installation for JBoss 6.x
-    -------------------------------------
-Setup your JBoss application server to allow remote JMX connection.
-To do that in the bin/run.conf (on Unix) or bin/run.bat (on Windows), add:
-
-       JAVA_OPTS="$JAVA_OPTS -Djboss.platform.mbeanserver -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl -Dcom.sun.management.jmxremote.port=myport -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Djava.util.logging.manager=org.jboss.logmanager.LogManager -Dorg.jboss.logging.Logger.pluginClass=org.jboss.logging.logmanager.LoggerPluginImpl"
-       JBOSS_CLASSPATH="$JBOSS_HOME/lib/jboss-logmanager.jar
-
-NB: JBOSS_HOME should be defined and contains the absolute path to the jboss-logmanager.jar file.
-NB: replace myport by your port. This port will be used in the Kalumet Console in the JMX URL, which should looks like service:jmx:rmi:///jndi/rmi://host:myport/jmxrmi
-
diff --git a/0.6.x/kalumet-modules/controller/jboss/pom.xml b/0.6.x/kalumet-modules/controller/jboss/pom.xml
deleted file mode 100644
index 586466d..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/pom.xml
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet.controller</groupId>
-    <artifactId>controller</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.controller.jboss</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Kalumet :: Controller :: JBoss AS</name>
-
-  <properties>
-    <jboss.version>4.0.4</jboss.version>
-  </properties>
-
-  <repositories>
-    <repository>
-      <id>kalumet.m2</id>
-      <name>Kalumet M2 repo</name>
-      <url>https://svn.apache.org/repos/asf/incubator/kalumet/m2-repo</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet.controller</groupId>
-      <artifactId>org.apache.kalumet.controller.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.redhat.jboss</groupId>
-      <artifactId>client</artifactId>
-      <version>${jboss.version}</version>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/0.6.x/kalumet-modules/controller/jboss/src/main/java/org/apache/kalumet/controller/jboss/JBoss4Controller.java b/0.6.x/kalumet-modules/controller/jboss/src/main/java/org/apache/kalumet/controller/jboss/JBoss4Controller.java
deleted file mode 100644
index 9bec9a2..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/src/main/java/org/apache/kalumet/controller/jboss/JBoss4Controller.java
+++ /dev/null
@@ -1,1041 +0,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.
- */
-package org.apache.kalumet.controller.jboss;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.FileManipulatorException;
-import org.apache.kalumet.controller.core.AbstractJEEApplicationServerController;
-import org.apache.kalumet.controller.core.ControllerException;
-import org.jboss.jmx.adaptor.rmi.RMIAdaptor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.management.Attribute;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.naming.Context;
-import javax.naming.InitialContext;
-import javax.naming.NamingException;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-/**
- * JBoss4Controller is a controller to connect and manage a JBoss server.
- */
-public class JBoss4Controller
-  extends AbstractJEEApplicationServerController
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( JBoss4Controller.class );
-
-  private RMIAdaptor server;
-
-  private URL deployURL;
-
-  /**
-   * Default constructor.
-   *
-   * @param url        the JMX URL to connect to the JBoss MBean server.
-   * @param username   the JMX username to connect to the JBoss MBean server.
-   * @param password   the JMX password to connect to the JBoss MBean server.
-   * @param serverName the server/cluster name to manage.
-   * @param cluster    a flag indicating if we manage a cluster (true) or a single application server (false).
-   */
-  public JBoss4Controller( String url, String username, String password, String serverName, Boolean cluster )
-    throws ControllerException
-  {
-    super( url, username, password, serverName, cluster );
-  }
-
-  /**
-   * Initialize the connection to the JBoss MBean server.
-   */
-  protected void init()
-    throws ControllerException
-  {
-    Properties properties = new Properties();
-    properties.setProperty( Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory" );
-    properties.setProperty( "java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces" );
-    properties.setProperty( Context.PROVIDER_URL, this.getUrl() );
-    try
-    {
-      InitialContext context = new InitialContext( properties );
-      server = (RMIAdaptor) context.lookup( "jmx/invoker/RMIAdaptor" );
-    }
-    catch ( NamingException namingException )
-    {
-      LOGGER.error( "Can't connect to JBoss JMX RMI Adaptor", namingException );
-      throw new ControllerException( "Can't connect to JBoss MBean RMI Adaptor", namingException );
-    }
-    // disable the deployment scanner and get the deploy directory
-    ObjectName deploymentScannerMBean = null;
-    try
-    {
-      deploymentScannerMBean = new ObjectName( "jboss.deployment:flavor=URL,type=DeploymentScanner" );
-      server.setAttribute( deploymentScannerMBean, new Attribute( "ScanEnabled", Boolean.FALSE ) );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't change JBoss deployment scanner", e );
-      throw new ControllerException( "Can't change JBoss deployment scanner", e );
-    }
-    try
-    {
-      List urlList = (List) server.getAttribute( deploymentScannerMBean, "URLList" );
-      if ( urlList.size() < 1 )
-      {
-        throw new ControllerException( "JBoss deploy URL list is empty" );
-      }
-      deployURL = (URL) urlList.get( 0 );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't get JBoss deploy directory", e );
-      throw new ControllerException( "Can't get JBoss deploy directory", e );
-    }
-  }
-
-  public void shutdown()
-    throws ControllerException
-  {
-    LOGGER.info( "Shutting down JBoss application server" );
-    LOGGER.debug( "Get the JBoss application server MBean" );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:type=Server" );
-      LOGGER.debug( "Invoke the shutdown operation on the application server MBean" );
-      server.invoke( mbean, "shutdown", null, null );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't shutdown JBoss application server", e );
-      throw new ControllerException( "Can't shutdown JBoss application server", e );
-    }
-  }
-
-  public String status()
-  {
-    LOGGER.info( "Checking status of JBoss application server" );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:type=Server" );
-      LOGGER.debug( "Getting the server status property." );
-      boolean started = false;
-      started = ( (Boolean) server.getAttribute( mbean, "Started" ) ).booleanValue();
-      if ( started )
-      {
-        LOGGER.debug( "JBoss server started." );
-        return "JBoss application server started since " + (Date) server.getAttribute( mbean, "StartDate" );
-      }
-      else
-      {
-        LOGGER.debug( "JBoss server not started." );
-        return "JBoss server not started.";
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check status of JBoss application server. The server is probably down.", e );
-      return "Can't get the JBoss application server status. The server is probably down.";
-    }
-  }
-
-  public boolean isStopped()
-  {
-    LOGGER.info( "Checking if JBoss application server is stopped" );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:type=Server" );
-      LOGGER.debug( "Getting the Started attribute in the server MBean" );
-      return !( ( (Boolean) server.getAttribute( mbean, "Started" ) ).booleanValue() );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if JBoss server is stopped. The server is probably down.", e );
-      return true;
-    }
-  }
-
-  /**
-   * Format an application path in a JBoss compatible URL.
-   *
-   * @param path the application path.
-   * @return the JBoss compatible URL.
-   */
-  private static String formatPathToUrl( String path )
-  {
-    String trimPath = path.trim();
-    if ( trimPath.startsWith( "http:" ) || path.startsWith( "file:" ) )
-    {
-      LOGGER.debug( "The path is already in a JBoss compatible URL format" );
-      return trimPath;
-    }
-    else
-    {
-      LOGGER.debug( "The path is going to be formatted in a JBoss compatible URL" );
-      return "file:" + trimPath;
-    }
-  }
-
-  public boolean isJEEApplicationDeployed(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if the JEE application {} is deployed", name );
-    String applicationUrl = JBoss4Controller.formatPathToUrl( path );
-    boolean deployed = false;
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      deployed = ( (Boolean) server.invoke( mbean, "isDeployed", new Object[]{ applicationUrl },
-                                            new String[]{ "java.lang.String" } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if the JEE application {} is deployed", name, e );
-      throw new ControllerException( "Can't check if the JEE application " + name + " is deployed", e );
-    }
-    return deployed;
-  }
-
-  public void deployJEEApplication(String path, String name, String classloaderorder, String classloaderpolicy,
-                                   String vhost)
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying the JEE application {} ({})", name, path );
-    String applicationUrl = JBoss4Controller.formatPathToUrl( path );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mbean, "deploy", new Object[]{ applicationUrl }, new String[]{ "java.lang.String" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy the JEE application {}", name, e );
-      throw new ControllerException( "Can't deploy the JEE application " + name, e );
-    }
-  }
-
-  public void undeployJEEApplication(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying the JEE application {} ({})", name, path );
-    String applicationUrl = JBoss4Controller.formatPathToUrl( path );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mbean, "undeploy", new Object[]{ applicationUrl }, new String[]{ "java.lang.String" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy the JEE application {}", name, e );
-      throw new ControllerException( "Can't undeploy the JEE application " + name, e );
-    }
-  }
-
-  public void redeployJEEApplication(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Redeploying the JEE application {} ({})", name, path );
-    String applicationUrl = JBoss4Controller.formatPathToUrl( path );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mbean, "redeploy", new Object[]{ applicationUrl }, new String[]{ "java.lang.String" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't redeploy the JEE application {}", name, e );
-      throw new ControllerException( "Can't redeploy the JEE application " + name, e );
-    }
-  }
-
-  public boolean isJDBCConnectionPoolDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JDBC connection pool {} is deployed", name );
-    boolean deployed = false;
-    ObjectName mbean = null;
-    File file = new File( deployURL.getPath() + "/" + name + "-ds.xml" );
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      LOGGER.info( "Getting the MainDeployer MBean" );
-      deployed = ( (Boolean) server.invoke( mbean, "isDeployed", new Object[]{ file.toURL() },
-                                            new String[]{ "java.net.URL" } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if JDBC connection pool {} is deployed", name, e );
-      throw new ControllerException( "Can't check if JDBC connection pool " + name + " is deployed", e );
-    }
-    return deployed;
-  }
-
-  public boolean isJDBCConnectionPoolUpToDate( String name, String driver, int increment, int initial, int maximal,
-                                               String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JDBC connection pool {}", name );
-    if ( !this.isJDBCConnectionPoolDeployed( name ) )
-    {
-      LOGGER.debug( "JDBC connection pool {} is not deployed", name );
-      return false;
-    }
-    LOGGER.debug( "Loading the file value" );
-    File tempFile = new File( deployURL.getPath() + "/" + name + "-ds.xml.temp" );
-    this.jdbcConnectionPoolWriteFile( tempFile, name, driver, increment, initial, maximal, user, password, url );
-    FileManipulator fileManipulator = null;
-    try
-    {
-      fileManipulator = new FileManipulator();
-      if ( fileManipulator.contentEquals( deployURL.getPath() + "/" + name + "-ds.xml",
-                                          deployURL.getPath() + "/" + name + "-ds.xml.temp" ) )
-      {
-        LOGGER.debug( "JDBC connection pool {} is already up to date", name );
-        try
-        {
-          fileManipulator.delete( tempFile.getAbsolutePath() );
-        }
-        catch ( Exception e )
-        {
-          LOGGER.warn( "Can't delete the temp file {}", tempFile.getAbsolutePath(), e );
-        }
-        return true;
-      }
-    }
-    catch ( FileManipulatorException fileManipulatorException )
-    {
-      LOGGER.error( "Can't check status of JDBC connection pool {}", name, fileManipulatorException );
-      throw new ControllerException( "Can't check status of JDBC connection pool " + name, fileManipulatorException );
-    }
-    try
-    {
-      fileManipulator.delete( tempFile.getAbsolutePath() );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't delete the temp file {}", tempFile.getAbsolutePath(), e );
-    }
-    return false;
-  }
-
-  public boolean updateJDBCConnectionPool( String name, String driver, int increment, int initial, int maximal,
-                                           String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JDBC connection pool {}", name );
-    if ( !this.isJDBCConnectionPoolUpToDate( name, driver, increment, initial, maximal, user, password, url,
-                                             classpath ) )
-    {
-      LOGGER.debug( "JDBC connection pool {} must be updated, redeploy it", name );
-      this.undeployJDBCConnectionPool( name );
-      this.deployJDBCConnectionPool( name, driver, increment, initial, maximal, user, password, url, null );
-      return true;
-    }
-    return false;
-  }
-
-  public void deployJDBCConnectionPool( String name, String driver, int increment, int initial, int maximal,
-                                        String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying the JDBC connection pool {}", name );
-    LOGGER.debug( "Create the JBoss datasource XML file" );
-    ObjectName mbean = null;
-    File file = new File( deployURL.getPath() + "/" + name + "-ds.xml" );
-    this.jdbcConnectionPoolWriteFile( file, name, driver, increment, initial, maximal, user, password, url );
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      LOGGER.info( "Getting the MainDeployer MBean" );
-      server.invoke( mbean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't deploy JDBC connection pool " + name, e );
-    }
-  }
-
-  /**
-   * Create a JBoss connection pool/data source XML file.
-   *
-   * @param file      the JBoss connection pool/data source XML file.
-   * @param name      the JDBC connection pool name.
-   * @param driver    the JDBC connection pool JDBC driver.
-   * @param increment the JDBC connection pool capacity increment.
-   * @param initial   the JDBC connection pool initial capacity.
-   * @param maximal   the JDBC connection pool maximal capacity.
-   * @param user      the JDBC connection pool database user name.
-   * @param password  the JDBC connection pool database password.
-   * @param url       the JDBC connection pool JDBC URL.
-   */
-  private void jdbcConnectionPoolWriteFile( File file, String name, String driver, int increment, int initial,
-                                            int maximal, String user, String password, String url )
-    throws ControllerException
-  {
-    LOGGER.info( "Writing the JBoss JDBC connection pool/datasource XML file" );
-    LOGGER.debug( "Constructing the replacement values" );
-    LOGGER.debug( "Checking if we have XA driver or not" );
-    InputStreamReader connectionPoolTemplate = null;
-    Object[] values = new Object[7];
-    values[0] = name;
-    values[1] = driver;
-    values[2] = url;
-    values[3] = user;
-    values[4] = password;
-    values[5] = new Integer( initial ).toString();
-    values[6] = new Integer( maximal ).toString();
-    if ( StringUtils.containsIgnoreCase( driver, "xa" ) )
-    {
-      LOGGER.debug( "XA connection pool detected" );
-      connectionPoolTemplate =
-        new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-xa-ds.xml" ) );
-    }
-    else
-    {
-      LOGGER.debug( "Non XA connection pool detected" );
-      connectionPoolTemplate =
-        new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-ds.xml" ) );
-    }
-    String connectionPoolContent = JBoss4Controller.format( connectionPoolTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, connectionPoolContent );
-    }
-    catch ( IOException ioException )
-    {
-      LOGGER.error( "Can't write JBoss JDBC connection pool descriptor file", ioException );
-      throw new ControllerException( "Can't write JBoss JDBC connection pool descriptor file", ioException );
-    }
-  }
-
-  /**
-   * Format a JBoss configuration file template (JDBC connection
-   * pool/datasource, JMS connection factory, etc) with given values.
-   *
-   * @param templateReader the template reader.
-   * @param values         the <code>Object[]</code> values.
-   * @return the formatted string.
-   */
-  private static String format( Reader templateReader, Object[] values )
-    throws ControllerException
-  {
-    try
-    {
-      BufferedReader templateBufferedReader = new BufferedReader( templateReader );
-      StringWriter writer = new StringWriter();
-      BufferedWriter buffer = new BufferedWriter( writer );
-      String templateLine = templateBufferedReader.readLine();
-      while ( templateLine != null )
-      {
-        buffer.write( MessageFormat.format( templateLine, values ) );
-        buffer.newLine();
-        templateLine = templateBufferedReader.readLine();
-      }
-      buffer.flush();
-      return writer.toString();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't format JBoss XML configuration file template", e );
-      throw new ControllerException( "Can't format JBoss XML configuration file template", e );
-    }
-  }
-
-  public void undeployJDBCConnectionPool( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying the JDBC connection pool {}", name );
-    ObjectName mbean = null;
-    File file = new File( deployURL.getPath() + "/" + name + "-ds.xml" );
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mbean, "undeploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy the JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't undeploy the JDBC connection pool " + name, e );
-    }
-  }
-
-  public boolean isJDBCDataSourceDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-    return true;
-  }
-
-  public boolean isJDBCDataSourceUpToDate( String name, String jdbcConnectionPool, String jdbcUrl,
-                                           String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-    return true;
-  }
-
-  public void deployJDBCDataSource( String name, String jdbcConnectionPool, String jdbcUrl, String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-  }
-
-  public void undeployJDBCDataSource( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-  }
-
-  public boolean updateJDBCDataSource( String name, String jdbcConnectionPool, String jdbcUrl, String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-    return false;
-  }
-
-  public boolean isJMSConnectionFactoryDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if the JMS connection factory {} is deployed", name );
-    boolean deployed = false;
-    ObjectName mbean = null;
-    File file = new File( deployURL.getPath() + "/jms/" + name + "-ds.xml" );
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      deployed = ( (Boolean) server.invoke( mbean, "isDeployed", new Object[]{ file.toURL() },
-                                            new String[]{ "java.net.URL" } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if the JMS connection factory {} is deployed", name, e );
-      throw new ControllerException( "Can't check if the JMS connection factory " + name + " is deployed", e );
-    }
-    return deployed;
-  }
-
-  public void deployJMSConnectionFactory( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying the JMS connection factory {}", name );
-    ObjectName mbean = null;
-    File file = new File( deployURL.getPath() + "/jms/" + name + "-ds.xml" );
-    this.jmsConnectionFactoryWriteFile( file, name );
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mbean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy the JMS connection factory {}", name, e );
-      throw new ControllerException( "Can't deploy the JMS connection factory " + name, e );
-    }
-  }
-
-  /**
-   * Write a JBoss JMS connection factory XML file.
-   *
-   * @param file the JMS connection factory <code>File</code>.
-   * @param name the JMS connection factory name.
-   */
-  private void jmsConnectionFactoryWriteFile( File file, String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Writing JBoss JMS connection factory XML file" );
-    LOGGER.debug( "Constructing the replacement values" );
-    InputStreamReader connectionFactoryTemplate =
-      new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-jms-ds.xml" ) );
-    Object[] values = new Object[1];
-    values[0] = name;
-    String connectionPoolContent = JBoss4Controller.format( connectionFactoryTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, connectionPoolContent );
-    }
-    catch ( IOException ioException )
-    {
-      LOGGER.error( "Can't write JBoss JMS connection factory descriptor file", ioException );
-      throw new ControllerException( "Can't write JBoss JMS connection factory descriptor file", ioException );
-    }
-  }
-
-  public void undeployJMSConnectionFactory( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying the JMS connection factory {}", name );
-    File file = new File( deployURL.getPath() + "/jms/" + name + "-ds.xml" );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mbean, "undeploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy the JMS connection factory {}", name, e );
-      throw new ControllerException( "Can't undeploy JMS connection factory " + name, e );
-    }
-  }
-
-  public boolean isJMSServerDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JMS server {} is deployed", name );
-    LOGGER.warn( "JMS server is embedded in the JBoss server" );
-    return true;
-  }
-
-  /**
-   * Write a JBoss JMS queue service file from the template.
-   *
-   * @param file the target file.
-   * @param name the queue name.
-   * @throws ControllerException in case of writing failure.
-   */
-  private void jmsQueueWriteFile( File file, String name )
-    throws ControllerException
-  {
-    InputStreamReader jmsQueueTemplate =
-      new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-jms-queue-service.xml" ) );
-    Object[] values = new Object[1];
-    values[0] = name;
-    String jmsQueueContent = JBoss4Controller.format( jmsQueueTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, jmsQueueContent );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't write JBoss JMS queue service file", e );
-      throw new ControllerException( "Can't write JBoss JMS queue service file", e );
-    }
-  }
-
-  /**
-   * Write a JBoss JMS topic service file from the template.
-   *
-   * @param file the target file.
-   * @param name the topic name.
-   * @throws ControllerException in case of writing failure.
-   */
-  private void jmsTopicWriteFile( File file, String name )
-    throws ControllerException
-  {
-    InputStreamReader jmsTopicTemplate =
-      new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-jms-topic-service.xml" ) );
-    Object[] values = new Object[1];
-    values[0] = name;
-    String jmsTopicContent = JBoss4Controller.format( jmsTopicTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, jmsTopicContent );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't write JBoss JMS topic service file.", e );
-      throw new ControllerException( "Can't write JBoss JMS topic service file", e );
-    }
-  }
-
-  public void deployJMSServer( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying the JMS server {}", name );
-    LOGGER.warn( "JMS server is embedded in the JBoss application server" );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't get JBoss MainDeployer", e );
-      throw new ControllerException( "Can't get JBoss MainDeployer", e );
-    }
-    LOGGER.info( "Deploying JMS queues" );
-    for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-    {
-      String queue = (String) queueIterator.next();
-      File file = new File( deployURL.getPath() + "/jms/" + queue + "-service.xml" );
-      this.jmsQueueWriteFile( file, queue );
-      LOGGER.info( "Deploying JMS queue {}", queue );
-      try
-      {
-        server.invoke( mbean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-      }
-      catch ( Exception e )
-      {
-        LOGGER.error( "Can't deploy JMS queue {}", queue, e );
-        throw new ControllerException( "Can't deploy JMS queue " + queue, e );
-      }
-    }
-    LOGGER.info( "Deploying JMS topics" );
-    for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-    {
-      String topic = (String) topicIterator.next();
-      File file = new File( deployURL.getPath() + "/jms/" + topic + "-service.xml" );
-      this.jmsTopicWriteFile( file, topic );
-      LOGGER.info( "Deploying JMS topic {}", topic );
-      try
-      {
-        server.invoke( mbean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-      }
-      catch ( Exception e )
-      {
-        LOGGER.error( "Can't deploy JMS topic {}", topic, e );
-        throw new ControllerException( "Can't deploy JMS topic " + topic, e );
-      }
-    }
-  }
-
-  public boolean isJMSServerUpToDate( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of the JMS server {}", name );
-    try
-    {
-      ObjectName mbean = new ObjectName( "jboss.mq:service=DestinationManager" );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of the JMS server {}", name, e );
-      throw new ControllerException( "Can't check status of the JMS server " + name, e );
-    }
-    // check JMS queue
-    for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-    {
-      String queue = (String) queueIterator.next();
-      ObjectName queueMBean = null;
-      try
-      {
-        queueMBean = new ObjectName( "jboss.mq.destination:name=" + queue + ",service=Queue" );
-        boolean started = false;
-        started = ( (Boolean) server.getAttribute( queueMBean, "Started" ) ).booleanValue();
-        if ( !started )
-        {
-          return false;
-        }
-      }
-      catch ( Exception e )
-      {
-        LOGGER.error( "Can't check status of the JMS queue {}" + queue, e );
-        throw new ControllerException( "Can't check status of the JMS queue " + queue, e );
-      }
-    }
-    // check JMS topic
-    for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-    {
-      String topic = (String) topicIterator.next();
-      ObjectName topicMBean = null;
-      try
-      {
-        topicMBean = new ObjectName( "jboss.mq.destination:name=" + topic + ",service=Topic" );
-        boolean started = false;
-        started = ( (Boolean) server.getAttribute( topicMBean, "Started" ) ).booleanValue();
-        if ( !started )
-        {
-          return false;
-        }
-      }
-      catch ( Exception e )
-      {
-        LOGGER.error( "Can't check status of the JMS topic {}", topic, e );
-        throw new ControllerException( "Can't check status of the JMS topic " + topic, e );
-      }
-    }
-    return true;
-  }
-
-  public boolean updateJMSServer( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JMS server {}", name );
-    LOGGER.info( "Check JMS queues" );
-    boolean updated = false;
-    for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-    {
-      String queue = (String) queueIterator.next();
-      boolean started = false;
-      LOGGER.debug( "Check if the JMS queue {} is deployed", queue );
-      ObjectName queueMBean = null;
-      try
-      {
-        queueMBean = new ObjectName( "jboss.mq.destination:name=" + queue + ",service=Queue" );
-      }
-      catch ( MalformedObjectNameException malformedObjectNameException )
-      {
-        LOGGER.debug( "The JMS queue seems to not be deployed in the JMS server, deploy it" );
-        try
-        {
-          ObjectName mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-          File file = new File( deployURL.getPath() + "/jms/" + queue + "-service.xml" );
-          this.jmsQueueWriteFile( file, queue );
-          server.invoke( mbean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-          updated = true;
-        }
-        catch ( Exception e )
-        {
-          LOGGER.error( "Can't deploy JMS queue {}", queue, e );
-          throw new ControllerException( "Can't deploy JMS queue " + queue, e );
-        }
-      }
-      try
-      {
-        started = ( (Boolean) server.getAttribute( queueMBean, "Started" ) ).booleanValue();
-        if ( !started )
-        {
-          server.invoke( queueMBean, "start", null, null );
-          updated = true;
-        }
-      }
-      catch ( Exception e )
-      {
-        LOGGER.error( "Can't start JMS queue {}", queue, e );
-        throw new ControllerException( "Can't start JMS queue " + queue, e );
-      }
-    }
-    LOGGER.info( "Check JMS topics" );
-    for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-    {
-      String topic = (String) topicIterator.next();
-      boolean started = false;
-      LOGGER.debug( "Check if JMS topic {} is deployed", topic );
-      ObjectName topicMBean = null;
-      try
-      {
-        topicMBean = new ObjectName( "jboss.mq.destination:name=" + topic + ",service=Topic" );
-      }
-      catch ( MalformedObjectNameException malformedObjectNameException )
-      {
-        LOGGER.debug( "The JMS topic seems to not be deployed in the JMS server, deploy it" );
-        try
-        {
-          ObjectName mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-          File file = new File( deployURL.getPath() + "/jms/" + topic + "-service.xml" );
-          this.jmsTopicWriteFile( file, topic );
-          server.invoke( mbean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-          updated = true;
-        }
-        catch ( Exception e )
-        {
-          LOGGER.error( "Can't deploy JMS topic {}", topic, e );
-          throw new ControllerException( "Can't deploy JMS topic " + topic, e );
-        }
-      }
-      try
-      {
-        started = ( (Boolean) server.getAttribute( topicMBean, "Started" ) ).booleanValue();
-        if ( !started )
-        {
-          server.invoke( topicMBean, "start", null, null );
-          updated = true;
-        }
-      }
-      catch ( Exception e )
-      {
-        LOGGER.error( "Can't start JMS topic {}", topic, e );
-        throw new ControllerException( "Can't start JMS topic " + topic, e );
-      }
-    }
-    return updated;
-  }
-
-  public void undeployJMSServer( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying the JMS server {}", name );
-    LOGGER.warn( "The JMS server is embedded in JBoss application server" );
-  }
-
-  public boolean isJNDIBindingDeployed( String name )
-  {
-    LOGGER.info( "Checking if JNDI binding {} is deployed", name );
-    ObjectName mbean = null;
-    try
-    {
-      mbean = new ObjectName( "jboss:service=JNDIView" );
-    }
-    catch ( MalformedObjectNameException malformedObjectNameException )
-    {
-      LOGGER.warn( "Can't check if the JNDI binding {} is deployed", name, malformedObjectNameException );
-      return false;
-    }
-    try
-    {
-      String output = (String) server.invoke( mbean, "list", new Object[]{ new Boolean( "false" ) },
-                                              new String[]{ "java.lang.Boolean" } );
-      if ( StringUtils.containsIgnoreCase( output, name ) )
-      {
-        LOGGER.debug( "The JNDI binding {} has been found", name );
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if the JNDI binding {} is deployed", name, e );
-      return false;
-    }
-    return false;
-  }
-
-  /**
-   * Write a JBoss JNDI alias service file.
-   *
-   * @param file the target service file.
-   * @param name the JNDI binding name.
-   * @param from the JNDI alias from name.
-   * @param to   the JNDI alias to name.
-   * @throws ControllerException in case of file writing failure.
-   */
-  private void jndiAliasWriteFile( File file, String name, String from, String to )
-    throws ControllerException
-  {
-    InputStreamReader jmsQueueTemplate =
-      new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-jndi-alias-service.xml" ) );
-    Object[] values = new Object[3];
-    values[0] = name;
-    values[1] = from;
-    values[2] = to;
-    String jndiAliasContent = JBoss4Controller.format( jmsQueueTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, jndiAliasContent );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't write JBoss JNDI binding service file", e );
-      throw new ControllerException( "Can't write JBoss JNDI binding service file", e );
-    }
-  }
-
-  public void deployJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JNDI binding {}", name );
-    File file = new File( deployURL.getPath() + "/" + name + "-service.xml" );
-    this.jndiAliasWriteFile( file, name, jndiName, jndiAlias );
-    try
-    {
-      ObjectName mbean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mbean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JNDI binding {}", name, e );
-      throw new ControllerException( "Can't deploy JNDI binding " + name, e );
-    }
-  }
-
-  public void undeployJNDIBinding( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JNDI binding {}", name );
-    try
-    {
-      ObjectName mbean = new ObjectName( "jboss:service=Naming" );
-      server.invoke( mbean, "removeAlias", new Object[]{ name }, new String[]{ "java.lang.String" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JNDI binding {}", name, e );
-      throw new ControllerException( "Can't undeploy JNDI binding " + name, e );
-    }
-  }
-
-  public boolean isJNDIBindingUpToDate( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JNDI binding {}", name );
-    if ( isJNDIBindingDeployed( name ) )
-    {
-      return true;
-    }
-    return false;
-  }
-
-  public boolean updateJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JNDI binding {}", name );
-    if ( isJNDIBindingDeployed( name ) )
-    {
-      this.undeployJNDIBinding( name );
-      this.deployJNDIBinding( name, jndiName, jndiAlias, providerUrl );
-      return true;
-    }
-    return false; // return false either if the name space binding is always updated
-  }
-
-  public boolean isSharedLibraryDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-    return true;
-  }
-
-  public void deploySharedLibrary( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-  }
-
-  public void undeploySharedLibrary( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-  }
-
-  public boolean isSharedLibraryUpToDate( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-    return false;
-  }
-
-  public boolean updateSharedLibrary( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-    return false;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/controller/jboss/src/main/java/org/apache/kalumet/controller/jboss/JBoss6Controller.java b/0.6.x/kalumet-modules/controller/jboss/src/main/java/org/apache/kalumet/controller/jboss/JBoss6Controller.java
deleted file mode 100644
index bc715eb..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/src/main/java/org/apache/kalumet/controller/jboss/JBoss6Controller.java
+++ /dev/null
@@ -1,1309 +0,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.
- */
-package org.apache.kalumet.controller.jboss;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang.StringUtils;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.controller.core.AbstractJEEApplicationServerController;
-import org.apache.kalumet.controller.core.ControllerException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.management.MBeanServerConnection;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-import javax.management.remote.JMXConnector;
-import javax.management.remote.JMXConnectorFactory;
-import javax.management.remote.JMXServiceURL;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.net.URL;
-import java.text.MessageFormat;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * JBoss 6 controller.
- */
-public class JBoss6Controller
-  extends AbstractJEEApplicationServerController
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( JBoss6Controller.class );
-
-  private JMXServiceURL jmxServiceURL;
-
-  private URL deployURL;
-
-  /**
-   * Default constructor.
-   * NB: the JBoss application server should accept remote JMX connection. To do so,in the run.conf/run.bat of the JBoss application server,
-   * you have to add:
-   * JAVA_OPTS="$JAVA_OPTS
-   * -Djboss.platform.mbeanserver
-   * -Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl
-   * -Dcom.sun.management.jmxremote.port=12345
-   * -Dcom.sun.management.jmxremote.authenticate=false
-   * -Dcom.sun.management.jmxremote.ssl=false
-   * -Djava.util.logging.manager=org.jboss.logmanager.LogManager
-   * -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
-   * -Dorg.jboss.logging.Logger.pluginClass=org.jboss.logging.logmanager.LoggerPluginImpl"
-   * JBOSS_CLASSPATH="/absolute/path/to/lib/jboss-logmanager.jar"
-   *
-   * @param url        the JMX URL to connect to the JBoss application server (both pure JMX URL and JNP URLs are supported).
-   * @param username   the username to connect to the JBoss MBean server.
-   * @param password   the password to connect to the JBoss MBean server.
-   * @param serverName the server name to manage (not used with JBoss).
-   * @param cluster    true to use a cluster topology, false else (not used with JBoss).
-   * @throws ControllerException in case of connection failure.
-   */
-  public JBoss6Controller( String url, String username, String password, String serverName, Boolean cluster )
-    throws ControllerException
-  {
-    super( url, username, password, serverName, cluster );
-    if ( url.startsWith( "jnp://" ) )
-    {
-      url = url.substring( 6 );
-      url = "service:jmx:rmi:///jndi/rmi://" + url + "/jmxrmi";
-      this.setUrl( url );
-    }
-  }
-
-  /**
-   * Initialize the connection to the JBoss application server.
-   *
-   * @throws ControllerException
-   */
-  protected void init()
-    throws ControllerException
-  {
-    try
-    {
-      this.jmxServiceURL = new JMXServiceURL( this.getUrl() );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't connect to the JBoss application server", e );
-      throw new ControllerException( "Can't connect to the JBoss application server", e );
-    }
-    // disable the deployment scanner and get the deploy folder
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName deploymentScannerMBean = new ObjectName( "jboss.deployment:flavor=URL,type=DeploymentScanner" );
-      server.invoke( deploymentScannerMBean, "stop", null, null );
-      ObjectName serverConfigMBean = new ObjectName( "jboss.system:type=ServerConfig" );
-      String deployFolder =
-        ( (URL) server.getAttribute( serverConfigMBean, "ServerHomeLocation" ) ).toString() + "/deploy";
-      this.deployURL = new URL( deployFolder );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't stop the JBoss deployment scanner or get the deploy folder", e );
-      throw new ControllerException( "Can't stop the JBoss deployment scanner or get the deploy folder", e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public void shutdown()
-    throws ControllerException
-  {
-    LOGGER.info( "Shutting down JBoss application server" );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      ObjectName serverMBean = new ObjectName( "jboss.system:type=Server" );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      server.invoke( serverMBean, "shutdown", null, null );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't shutdown JBoss application server", e );
-      throw new ControllerException( "Can't shutdown JBoss application server", e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public String status()
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JBoss application server" );
-    boolean stopped = isStopped();
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      ObjectName serverMBean = new ObjectName( "jboss.system:type=Server" );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      if ( !stopped )
-      {
-        LOGGER.debug( "JBoss application server started" );
-        return "JBoss application server started since " + (Date) server.getAttribute( serverMBean, "StartDate" );
-      }
-      else
-      {
-        LOGGER.debug( "JBoss application server stopped" );
-        return "JBoss application server stopped";
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check status of the JBoss application server", e );
-      return "N/A";
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public boolean isStopped()
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JBoss application server is stopped" );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      ObjectName serverMBean = new ObjectName( "jboss.system:type=Server" );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      return !( ( (Boolean) server.getAttribute( serverMBean, "Started" ) ).booleanValue() );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if JBoss application server is stopped. The server is probably down.", e );
-      return true;
-    }
-  }
-
-  /**
-   * Format an application path in a JBoss compliant URL.
-   *
-   * @param path the JEE application path.
-   * @return the JBoss application URL.
-   */
-  private static String formatPathToUrl( String path )
-  {
-    String trimmed = path.trim();
-    if ( trimmed.startsWith( "http:" ) || trimmed.startsWith( "file:" ) )
-    {
-      LOGGER.debug( "The path is already in a JBoss compliant URL" );
-      return trimmed;
-    }
-    else
-    {
-      LOGGER.debug( "Prefixing path with file: protocol" );
-      return "file:" + trimmed;
-    }
-  }
-
-  public boolean isJEEApplicationDeployed(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JEE application {} is deployed in the JBoss application server", name );
-    String applicationUrl = JBoss6Controller.formatPathToUrl( path );
-    boolean deployed = false;
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      deployed = ( (Boolean) server.invoke( mainDeployerMBean, "isDeployed", new Object[]{ applicationUrl },
-                                            new String[]{ "java.lang.String" } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if JEE application {} is deployed", name, e );
-      throw new ControllerException( "Can't check if JEE application " + name + " is deployed", e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-    return deployed;
-  }
-
-  public void deployJEEApplication(String path, String name, String classloaderorder, String classloaderpolicy,
-                                   String vhost)
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JEE application {} located {}", name, path );
-    String applicationUrl = JBoss6Controller.formatPathToUrl( path );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mainDeployerMBean, "deploy", new Object[]{ applicationUrl }, new String[]{ "java.lang.String" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JEE application {}", name, e );
-      throw new ControllerException( "Can't deploy JEE application " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public void undeployJEEApplication(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JEE application {} located {}", name, path );
-    String applicationUrl = JBoss6Controller.formatPathToUrl( path );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mainDeployerMBean, "undeploy", new Object[]{ applicationUrl },
-                     new String[]{ "java.lang.String" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JEE application {}", name, e );
-      throw new ControllerException( "Can't undeploy JEE application " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public void redeployJEEApplication(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Redeploying JEE application {} located {}", name, path );
-    String applicationUrl = JBoss6Controller.formatPathToUrl( path );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mainDeployerMBean, "redeploy", new Object[]{ applicationUrl },
-                     new String[]{ "java.lang.String" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't redeploy JEE application {}", name, e );
-      throw new ControllerException( "Can't redeploy JEE application " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public boolean isJDBCConnectionPoolDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JDBC connection pool {} is deployed", name );
-    boolean deployed = false;
-    File file = new File( deployURL.getPath() + "/" + name + "-ds.xml" );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      deployed = ( (Boolean) server.invoke( mainDeployerMBean, "isDeployed", new Object[]{ file.toURL() },
-                                            new String[]{ "java.net.URL" } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if JDBC connection pool {} is deployed", name, e );
-      throw new ControllerException( "Can't check if JDBC connection pool " + name + " is deployed", e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-    return deployed;
-  }
-
-  public boolean isJDBCConnectionPoolUpToDate( String name, String driver, int increment, int initial, int maximal,
-                                               String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JDBC connection pool {} is up to date", name );
-    if ( !this.isJDBCConnectionPoolDeployed( name ) )
-    {
-      LOGGER.debug( "JDBC connection pool {} is not deployed", name );
-      return false;
-    }
-    File tempFile = new File( deployURL.getPath() + "/" + name + "-ds.xml.temp" );
-    this.jdbcConnectionPoolWriteFile( tempFile, name, driver, increment, initial, maximal, user, password, url );
-    FileManipulator fileManipulator = null;
-    try
-    {
-      fileManipulator = new FileManipulator();
-      if ( fileManipulator.contentEquals( deployURL.getPath() + "/" + name + "-ds.xml",
-                                          deployURL.getPath() + "/" + name + "-ds.xml.temp" ) )
-      {
-        LOGGER.debug( "JDBC connection pool {} is already up to date", name );
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't check status of JDBC connection pool " + name, e );
-    }
-    finally
-    {
-      if ( fileManipulator != null )
-      {
-        try
-        {
-          fileManipulator.delete( tempFile.getAbsolutePath() );
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-    return false;
-  }
-
-  public boolean updateJDBCConnectionPool( String name, String driver, int increment, int initial, int maximal,
-                                           String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JDBC connection pool {}", name );
-    if ( !this.isJDBCConnectionPoolUpToDate( name, driver, increment, initial, maximal, user, password, url,
-                                             classpath ) )
-    {
-      LOGGER.debug( "JDBC connection pool {} must be updated, redeploy it", name );
-      this.undeployJDBCConnectionPool( name );
-      this.deployJDBCConnectionPool( name, driver, increment, initial, maximal, user, password, url, classpath );
-      return true;
-    }
-    return false;
-  }
-
-  public void deployJDBCConnectionPool( String name, String driver, int increment, int initial, int maximal,
-                                        String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JDBC connection pool {}", name );
-    LOGGER.debug( "Creating the JBoss datasource XML file" );
-    File file = new File( deployURL.getPath() + "/" + name + "-ds.xml" );
-    this.jdbcConnectionPoolWriteFile( file, name, driver, increment, initial, maximal, user, password, url );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mainDeployerMBean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't deploy JDBC connection pool " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public void undeployJDBCConnectionPool( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JDBC connection pool {}", name );
-    File file = new File( deployURL.getPath() + "/" + name + "-ds.xml" );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mainDeployerMBean, "undeploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't undeploy JDBC connection pool " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public boolean isJDBCDataSourceDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-    return true;
-  }
-
-  public boolean isJDBCDataSourceUpToDate( String name, String jdbcConnectionPool, String jdbcUrl,
-                                           String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-    return true;
-  }
-
-  public void deployJDBCDataSource( String name, String jdbcConnectionPool, String jdbcUrl, String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-  }
-
-  public void undeployJDBCDataSource( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-  }
-
-  public boolean updateJDBCDataSource( String name, String jdbcConnectionPool, String jdbcUrl, String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.warn( "JDBC data source is not available with JBoss server. Use JDBC connection pool instead." );
-    return false;
-  }
-
-  public boolean isJMSConnectionFactoryDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if the JMS connection factory {} is already deployed" );
-    boolean deployed = false;
-    File file = new File( deployURL.getPath() + "/jms/" + name + "-ds.xml" );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      deployed = ( (Boolean) server.invoke( mainDeployerMBean, "isDeployed", new Object[]{ file.toURL() },
-                                            new String[]{ "java.net.URL" } ) ).booleanValue();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if the JMS connection {} is deployed", name, e );
-      throw new ControllerException( "Can't check if the JMS connection " + name + " is deployed", e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-    return deployed;
-  }
-
-  public void deployJMSConnectionFactory( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JMS connection factory {}", name );
-    File file = new File( deployURL.getPath() + "/jms/" + name + "-ds.xml" );
-    jmsConnectionFactoryWriteFile( file, name );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mainDeployerMBean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JMS connection factory {}", name, e );
-      throw new ControllerException( "Can't deploy JMS connection factory " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public void undeployJMSConnectionFactory( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JMS connection factory {}", name );
-    File file = new File( deployURL.getPath() + "/jms/" + name + "-ds.xml" );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mainDeployerMBean, "undeploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JMS connection factory {}", name, e );
-      throw new ControllerException( "Can't undeploy JMS connection factory " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public boolean isJMSServerDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JMS server {} is deployed", name );
-    LOGGER.warn( "JMS server is embedded in the JBoss application server" );
-    return true;
-  }
-
-  public void deployJMSServer( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JMS server {}", name );
-    LOGGER.warn( "JMS server is embedded in the JBoss application server" );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      LOGGER.info( "Deploying JMS queues" );
-      for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-      {
-        String queue = (String) queueIterator.next();
-        LOGGER.info( "Deploying JMS queue {}", queue );
-        File file = new File( deployURL.getPath() + "/jms/" + queue + "-service.xml" );
-        this.jmsQueueWriteFile( file, queue );
-        server.invoke( mainDeployerMBean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-      }
-      LOGGER.info( "Deploying JMS topics" );
-      for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-      {
-        String topic = (String) topicIterator.next();
-        LOGGER.info( "Deploying JMS topic {}", topic );
-        File file = new File( deployURL.getPath() + "/jms/" + topic + "-service.xml" );
-        this.jmsTopicWriteFile( file, topic );
-        server.invoke( mainDeployerMBean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JMS server {}", name, e );
-      throw new ControllerException( "Can't deploy JMS server " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public boolean isJMSServerUpToDate( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if the JMS server {} is up to date", name );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-      {
-        String queue = (String) queueIterator.next();
-        ObjectName queueMBean = new ObjectName( "jboss.mq.destination:name=" + queue + ",service=Queue" );
-        boolean started = ( (Boolean) server.getAttribute( queueMBean, "Started" ) ).booleanValue();
-        if ( !started )
-        {
-          return false;
-        }
-      }
-      for ( Iterator topicIterator = queues.iterator(); topicIterator.hasNext(); )
-      {
-        String topic = (String) topicIterator.next();
-        ObjectName topicMBean = new ObjectName( "jboss.mq.destination:name=" + topic + ",service=Topic" );
-        boolean started = ( (Boolean) server.getAttribute( topicMBean, "Started" ) ).booleanValue();
-        if ( !started )
-        {
-          return false;
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if JMS server {} is up to date", name, e );
-      throw new ControllerException( "Can't check if JMS server " + name + " is up to date", e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-    return true;
-  }
-
-  public boolean updateJMSServer( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JMS server {}", name );
-    boolean updated = false;
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      LOGGER.info( "Checking JMS queues" );
-      for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-      {
-        String queue = (String) queueIterator.next();
-        boolean started = false;
-        LOGGER.debug( "Checking if JMS queue {} is deployed", queue );
-        ObjectName queueMBean = null;
-        try
-        {
-          queueMBean = new ObjectName( "jboss.mq.destination:name=" + queue + ",service=Queue" );
-        }
-        catch ( MalformedObjectNameException malformedObjectNameException )
-        {
-          LOGGER.debug( "JMS queue {} doesn't seem to be deployed, deploy it", queue );
-          try
-          {
-            ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-            File file = new File( deployURL.getPath() + "/jms/" + queue + "-service.xml" );
-            this.jmsQueueWriteFile( file, queue );
-            server.invoke( mainDeployerMBean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-            updated = true;
-          }
-          catch ( Exception e )
-          {
-            LOGGER.error( "Can't deploy JMS queue {}", name, e );
-            throw new ControllerException( "Can't deploy JMS queue " + name, e );
-          }
-        }
-        try
-        {
-          started = ( (Boolean) server.getAttribute( queueMBean, "Started" ) ).booleanValue();
-          if ( !started )
-          {
-            server.invoke( queueMBean, "start", null, null );
-            updated = true;
-          }
-        }
-        catch ( Exception e )
-        {
-          LOGGER.error( "Can't start JMS queue {}", name, e );
-          throw new ControllerException( "Can't start JMS queu " + name, e );
-        }
-      }
-      LOGGER.info( "Checking JMS topics" );
-      for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-      {
-        String topic = (String) topicIterator.next();
-        boolean started = false;
-        LOGGER.debug( "Check if JMS topic {} is deployed", topic );
-        ObjectName topicMBean = null;
-        try
-        {
-          topicMBean = new ObjectName( "jboss.mq.destination:name=" + topic + ",service=Topic" );
-        }
-        catch ( MalformedObjectNameException malformedObjectNameException )
-        {
-          LOGGER.debug( "JMS topic {} doesn't seem to be deployed, deploy it", topic );
-          try
-          {
-            ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-            File file = new File( deployURL.getPath() + "/jms/" + topic + "-service.xml" );
-            this.jmsTopicWriteFile( file, topic );
-            server.invoke( mainDeployerMBean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-            updated = true;
-          }
-          catch ( Exception e )
-          {
-            LOGGER.error( "Can't deploy JMS topic {}", topic, e );
-            throw new ControllerException( "Can't deploy JMS topic " + name, e );
-          }
-        }
-        try
-        {
-          started = ( (Boolean) server.getAttribute( topicMBean, "Started" ) ).booleanValue();
-          if ( !started )
-          {
-            server.invoke( topicMBean, "start", null, null );
-            updated = true;
-          }
-        }
-        catch ( Exception e )
-        {
-          LOGGER.error( "Can't start JMS topic {}", topic, e );
-          throw new ControllerException( "Can't start JMS topic " + topic, e );
-        }
-      }
-    }
-    catch ( IOException e )
-    {
-      LOGGER.error( "Can't connect to the JBoss application server", e );
-      throw new ControllerException( "Can't connect to the JBoss application server", e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-    return updated;
-  }
-
-  public void undeployJMSServer( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying the JMS server {}", name );
-    LOGGER.warn( "The JMS server is embedded in JBoss application server" );
-  }
-
-  public boolean isJNDIBindingDeployed( String name )
-  {
-    LOGGER.info( "Checking if JNDI binding {} is deployed", name );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName jndiViewMBean = new ObjectName( "jboss:service=JNDIView" );
-      String output = (String) server.invoke( jndiViewMBean, "list", new Object[]{ new Boolean( false ) },
-                                              new String[]{ "java.lang.Boolean" } );
-      if ( StringUtils.containsIgnoreCase( output, name ) )
-      {
-        LOGGER.debug( "JNDI binding {} found", name );
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if JNDI binding {} is deployed", name, e );
-      return false;
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-    return false;
-  }
-
-  public void deployJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JNDI binding {}", name );
-    File file = new File( deployURL.getPath() + "/" + name + "-service.xml" );
-    this.jndiAliasWriteFile( file, name, jndiName, jndiAlias );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName mainDeployerMBean = new ObjectName( "jboss.system:service=MainDeployer" );
-      server.invoke( mainDeployerMBean, "deploy", new Object[]{ file.toURL() }, new String[]{ "java.net.URL" } );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JNDI binding {}", name, e );
-      throw new ControllerException( "Can't deploy JNDI binding " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public void undeployJNDIBinding( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JNDI binding {}", name );
-    File file = new File( deployURL.getPath() + "/" + name + "-service.xml" );
-    JMXConnector connector = null;
-    try
-    {
-      connector = JMXConnectorFactory.connect( jmxServiceURL, null );
-      MBeanServerConnection server = connector.getMBeanServerConnection();
-      ObjectName namingMBean = new ObjectName( "jboss:service=Naming" );
-      server.invoke( namingMBean, "removeAlias", new Object[]{ name }, new String[]{ "java.lang.String" } );
-      file.delete();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JNDI binding {}", name, e );
-      throw new ControllerException( "Can't undeploy JNDI binding " + name, e );
-    }
-    finally
-    {
-      if ( connector != null )
-      {
-        try
-        {
-          connector.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-    }
-  }
-
-  public boolean isJNDIBindingUpToDate( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JNDI binding {}", name );
-    if ( isJNDIBindingDeployed( name ) )
-    {
-      return true;
-    }
-    return false;
-  }
-
-  public boolean updateJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JNDI binding {}", name );
-    if ( isJNDIBindingDeployed( name ) )
-    {
-      this.undeployJNDIBinding( name );
-      this.deployJNDIBinding( name, jndiName, jndiAlias, providerUrl );
-      return true;
-    }
-    return false; // return false either if the name space binding is always updated
-  }
-
-  public boolean isSharedLibraryDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-    return true;
-  }
-
-  public void deploySharedLibrary( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-  }
-
-  public void undeploySharedLibrary( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-  }
-
-  public boolean isSharedLibraryUpToDate( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-    return false;
-  }
-
-  public boolean updateSharedLibrary( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported with JBoss application server" );
-    return false;
-  }
-
-  /**
-   * Create a JBoss connection pool/data source XML file.
-   *
-   * @param file      the JBoss connection pool/data source XML file.
-   * @param name      the JDBC connection pool name.
-   * @param driver    the JDBC connection pool JDBC driver.
-   * @param increment the JDBC connection pool capacity increment.
-   * @param initial   the JDBC connection pool initial capacity.
-   * @param maximal   the JDBC connection pool maximal capacity.
-   * @param user      the JDBC connection pool database user name.
-   * @param password  the JDBC connection pool database password.
-   * @param url       the JDBC connection pool JDBC URL.
-   */
-  private void jdbcConnectionPoolWriteFile( File file, String name, String driver, int increment, int initial,
-                                            int maximal, String user, String password, String url )
-    throws ControllerException
-  {
-    LOGGER.info( "Writing the JBoss JDBC connection pool/datasource XML file" );
-    InputStreamReader connectionPoolTemplate = null;
-    Object[] values = new Object[7];
-    values[0] = name;
-    values[1] = driver;
-    values[2] = url;
-    values[3] = user;
-    values[4] = password;
-    values[5] = new Integer( initial ).toString();
-    values[6] = new Integer( maximal ).toString();
-    if ( StringUtils.containsIgnoreCase( driver, "xa" ) )
-    {
-      LOGGER.debug( "XA connection pool detected" );
-      connectionPoolTemplate =
-        new InputStreamReader( JBoss6Controller.class.getResourceAsStream( "/jboss/template-xa-ds.xml" ) );
-    }
-    else
-    {
-      LOGGER.debug( "Non XA connection pool detected" );
-      connectionPoolTemplate =
-        new InputStreamReader( JBoss6Controller.class.getResourceAsStream( "/jboss/template-ds.xml" ) );
-    }
-    String connectionPoolContent = JBoss6Controller.format( connectionPoolTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, connectionPoolContent );
-    }
-    catch ( IOException ioException )
-    {
-      LOGGER.error( "Can't write JBoss JDBC connection pool descriptor file", ioException );
-      throw new ControllerException( "Can't write JBoss JDBC connection pool descriptor file", ioException );
-    }
-  }
-
-  /**
-   * Format a JBoss configuration file template (JDBC connection
-   * pool/datasource, JMS connection factory, etc) with given values.
-   *
-   * @param templateReader the template reader.
-   * @param values         the <code>Object[]</code> values.
-   * @return the formatted string.
-   */
-  private static String format( Reader templateReader, Object[] values )
-    throws ControllerException
-  {
-    try
-    {
-      BufferedReader templateBufferedReader = new BufferedReader( templateReader );
-      StringWriter writer = new StringWriter();
-      BufferedWriter buffer = new BufferedWriter( writer );
-      String templateLine = templateBufferedReader.readLine();
-      while ( templateLine != null )
-      {
-        buffer.write( MessageFormat.format( templateLine, values ) );
-        buffer.newLine();
-        templateLine = templateBufferedReader.readLine();
-      }
-      buffer.flush();
-      return writer.toString();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't format JBoss XML configuration file template", e );
-      throw new ControllerException( "Can't format JBoss XML configuration file template", e );
-    }
-  }
-
-  /**
-   * Write a JBoss JMS connection factory XML file.
-   *
-   * @param file the JMS connection factory <code>File</code>.
-   * @param name the JMS connection factory name.
-   */
-  private void jmsConnectionFactoryWriteFile( File file, String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Writing JBoss JMS connection factory XML file" );
-    LOGGER.debug( "Constructing the replacement values" );
-    InputStreamReader connectionFactoryTemplate =
-      new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-jms-ds.xml" ) );
-    Object[] values = new Object[1];
-    values[0] = name;
-    String connectionPoolContent = JBoss6Controller.format( connectionFactoryTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, connectionPoolContent );
-    }
-    catch ( IOException ioException )
-    {
-      LOGGER.error( "Can't write JBoss JMS connection factory descriptor file", ioException );
-      throw new ControllerException( "Can't write JBoss JMS connection factory descriptor file", ioException );
-    }
-  }
-
-  /**
-   * Write a JBoss JMS queue service file from the template.
-   *
-   * @param file the target file.
-   * @param name the queue name.
-   * @throws ControllerException in case of writing failure.
-   */
-  private void jmsQueueWriteFile( File file, String name )
-    throws ControllerException
-  {
-    InputStreamReader jmsQueueTemplate =
-      new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-jms-queue-service.xml" ) );
-    Object[] values = new Object[1];
-    values[0] = name;
-    String jmsQueueContent = JBoss6Controller.format( jmsQueueTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, jmsQueueContent );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't write JBoss JMS queue service file", e );
-      throw new ControllerException( "Can't write JBoss JMS queue service file", e );
-    }
-  }
-
-  /**
-   * Write a JBoss JMS topic service file from the template.
-   *
-   * @param file the target file.
-   * @param name the topic name.
-   * @throws ControllerException in case of writing failure.
-   */
-  private void jmsTopicWriteFile( File file, String name )
-    throws ControllerException
-  {
-    InputStreamReader jmsTopicTemplate =
-      new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-jms-topic-service.xml" ) );
-    Object[] values = new Object[1];
-    values[0] = name;
-    String jmsTopicContent = JBoss6Controller.format( jmsTopicTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, jmsTopicContent );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't write JBoss JMS topic service file.", e );
-      throw new ControllerException( "Can't write JBoss JMS topic service file", e );
-    }
-  }
-
-  /**
-   * Write a JBoss JNDI alias service file.
-   *
-   * @param file the target service file.
-   * @param name the JNDI binding name.
-   * @param from the JNDI alias from name.
-   * @param to   the JNDI alias to name.
-   * @throws ControllerException in case of file writing failure.
-   */
-  private void jndiAliasWriteFile( File file, String name, String from, String to )
-    throws ControllerException
-  {
-    InputStreamReader jmsQueueTemplate =
-      new InputStreamReader( JBoss4Controller.class.getResourceAsStream( "/jboss/template-jndi-alias-service.xml" ) );
-    Object[] values = new Object[3];
-    values[0] = name;
-    values[1] = from;
-    values[2] = to;
-    String jndiAliasContent = JBoss6Controller.format( jmsQueueTemplate, values );
-    try
-    {
-      FileUtils.writeStringToFile( file, jndiAliasContent );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't write JBoss JNDI binding service file", e );
-      throw new ControllerException( "Can't write JBoss JNDI binding service file", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-ds.xml b/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-ds.xml
deleted file mode 100644
index 0e6e58c..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-ds.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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.
--->
-
-<!-- Apache Kalumet JBoss DataSource Template File -->
-
-<datasources>
-  <local-tx-datasource>
-    <jndi-name>{0}</jndi-name>
-    <driver-class>{1}</driver-class>
-    <connection-url>{2}</connection-url>
-    <user-name>{3}</user-name>
-    <password>{4}</password>
-    <min-pool-size>{5}</min-pool-size>
-    <max-pool-size>{6}</max-pool-size>
-    <idle-timeout-minutes>0</idle-timeout-minutes>
-    <track-statements/>
-  </local-tx-datasource>
-</datasources>
diff --git a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-ds.xml b/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-ds.xml
deleted file mode 100644
index d2ed2da..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-ds.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?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.
--->
-<!-- Apache Kalumet JBoss JMS Template File -->
-
-<connection-factories>
-  <tx-connection-factory>
-    <jndi-name>{0}</jndi-name>
-    <xa-transaction/>
-    <adapter-display-name>JMS Adapter</adapter-display-name>
-    <rar-name>jms-ra.rar</rar-name>
-    <connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
-    <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Queue</config-property>
-    <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property>
-    <max-pool-size>20</max-pool-size>
-  </tx-connection-factory>
-</connection-factories>
diff --git a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-queue-service.xml b/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-queue-service.xml
deleted file mode 100644
index beb6c85..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-queue-service.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?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.
--->
-<!-- Apache Kalumet JBoss JMS Server Template file -->
-<server>
-  <mbean code="org.jboss.mq.server.jmx.Queue"
-         name="jboss.mq.destination:service=Queue,name={0}">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-  </mbean>
-</server>
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-topic-service.xml b/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-topic-service.xml
deleted file mode 100644
index 546d1ad..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jms-topic-service.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?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.
--->
-<!-- Apache Kalumet JBoss JMS Server Template file -->
-
-<server>
-  <mbean code="org.jboss.mq.server.jmx.Topic"
-         name="jboss.mq.destination:service=Topic,name={0}">
-    <depends optional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>
-  </mbean>
-</server>
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jndi-alias-service.xml b/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jndi-alias-service.xml
deleted file mode 100644
index 97d582a..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-jndi-alias-service.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?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.
--->
-<!-- Apache Kalumet JBoss JNDI alias template file -->
-
-<server>
-  <mbean code="org.jboss.naming.NamingAlias"
-         name="jboss.mq:service=NamingAlias,fromName={0}">
-    <attribute name="ToName">{1}</attribute>
-    <attribute name="FromName">{2}</attribute>
-  </mbean>
-</server>
\ No newline at end of file
diff --git a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-xa-ds.xml b/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-xa-ds.xml
deleted file mode 100644
index 57565dd..0000000
--- a/0.6.x/kalumet-modules/controller/jboss/src/main/resources/jboss/template-xa-ds.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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.
--->
-<!-- Apache Kalumet JBoss XA DataSource Template File -->
-
-<datasources>
-  <xa-datasource>
-    <jndi-name>{0}</jndi-name>
-    <track-connection-by-tx/>
-    <isSameRM-override-value>false</isSameRM-override-value>
-    <xa-datasource-class>{1}</xa-datasource-class>
-    <xa-datasource-property name="URL">{2}</xa-datasource-property>
-    <xa-datasource-property name="User">{3}</xa-datasource-property>
-    <xa-datasource-property name="Password">{4}</xa-datasource-property>
-    <min-pool-size>{5}</min-pool-size>
-    <max-pool-size>{6}</max-pool-size>
-    <no-tx-separate-pools/>
-  </xa-datasource>
-</datasources>
diff --git a/0.6.x/kalumet-modules/controller/pom.xml b/0.6.x/kalumet-modules/controller/pom.xml
deleted file mode 100644
index 1d34006..0000000
--- a/0.6.x/kalumet-modules/controller/pom.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet</groupId>
-    <artifactId>kalumet-modules</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <groupId>org.apache.kalumet.controller</groupId>
-  <artifactId>controller</artifactId>
-  <packaging>pom</packaging>
-  <name>Apache Kalumet :: Controller</name>
-
-  <modules>
-    <module>core</module>
-    <module>jboss</module>
-    <module>weblogic</module>
-    <module>websphere</module>
-  </modules>
-
-</project>
diff --git a/0.6.x/kalumet-modules/controller/weblogic/README b/0.6.x/kalumet-modules/controller/weblogic/README
deleted file mode 100644
index cefa06e..0000000
--- a/0.6.x/kalumet-modules/controller/weblogic/README
+++ /dev/null
@@ -1,54 +0,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.
- */
-
-Apache Kalumet WebLogic Controller
-==================================
-
-Apache Kalumet provides a controller for WebLogic application server.
-This controller works with:
-- BEA WebLogic 8.x and 9.x
-- Oracle WebLogic 10.x
-
-    Controller Installation for WebLogic 8.x/9.x
-    --------------------------------------------
-Copy the following jar file to <kalumet_agent_home>/lib/extras:
-        * <weblogic_home>/server/lib/weblogic.jar
-
-    Controller Installation for WebLogic 10.x
-    -----------------------------------------
-Copy the following jar files to <kalumet_agent_home>/lib/extras:
-        * <weblogic_home>/server/lib/weblogic.jar
-        * <weblogic_home>/modules/com.bea.core.common.security.api_1.0.0.0_5-0-2-0.jar
-        * <weblogic_home>/modules/com.bea.core.descriptor_1.4.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.logging_1.4.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.management.core_2.3.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.store_1.4.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.timers_1.4.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.transaction_2.5.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.utils.classloaders_1.4.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.utils.full_1.4.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.utils.wrapper_1.3.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.weblogic.lifecycle_1.1.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.weblogic.rmi.client_1.4.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.weblogic.security.digest_1.0.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.weblogic.security.identity_1.1.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.weblogic.security.wls_1.0.0.0_5-0-2-0.jar
-        * <weblogic_home>/modules/com.bea.core.weblogic.security_1.0.0.0_5-0-2-0.jar
-        * <weblogic_home>/modules/com.bea.core.weblogic.socket.api_1.0.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.weblogic.workmanager_1.4.0.0.jar
-        * <weblogic_home>/modules/com.bea.core.workarea_1.4.0.0.jar
-        * <weblogic_home>/modules/javax.transaction_1.0.0.0_1-1.jar
diff --git a/0.6.x/kalumet-modules/controller/weblogic/pom.xml b/0.6.x/kalumet-modules/controller/weblogic/pom.xml
deleted file mode 100644
index 5f60c84..0000000
--- a/0.6.x/kalumet-modules/controller/weblogic/pom.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet.controller</groupId>
-    <artifactId>controller</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.controller.weblogic</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Kalumet :: Controller :: Oracle Weblogic AS</name>
-
-  <properties>
-    <weblogic.version>8.1.2</weblogic.version>
-  </properties>
-
-  <repositories>
-    <repository>
-      <id>kalumet.m2</id>
-      <name>Kalumet M2 repo</name>
-      <url>https://svn.apache.org/repos/asf/incubator/kalumet/m2-repo</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.kalumet.controller</groupId>
-      <artifactId>org.apache.kalumet.controller.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.oracle.weblogic</groupId>
-      <artifactId>server</artifactId>
-      <version>${weblogic.version}</version>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/0.6.x/kalumet-modules/controller/weblogic/src/main/java/org/apache/kalumet/controller/weblogic/WeblogicController.java b/0.6.x/kalumet-modules/controller/weblogic/src/main/java/org/apache/kalumet/controller/weblogic/WeblogicController.java
deleted file mode 100644
index 731fe65..0000000
--- a/0.6.x/kalumet-modules/controller/weblogic/src/main/java/org/apache/kalumet/controller/weblogic/WeblogicController.java
+++ /dev/null
@@ -1,957 +0,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.
- */
-package org.apache.kalumet.controller.weblogic;
-
-import org.apache.kalumet.controller.core.AbstractJEEApplicationServerController;
-import org.apache.kalumet.controller.core.ControllerException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import weblogic.jndi.Environment;
-import weblogic.management.MBeanHome;
-import weblogic.management.configuration.ClusterMBean;
-import weblogic.management.configuration.JDBCConnectionPoolMBean;
-import weblogic.management.configuration.JDBCTxDataSourceMBean;
-import weblogic.management.configuration.JMSConnectionFactoryMBean;
-import weblogic.management.configuration.JMSDestinationMBean;
-import weblogic.management.configuration.JMSQueueMBean;
-import weblogic.management.configuration.JMSServerMBean;
-import weblogic.management.configuration.JMSTopicMBean;
-import weblogic.management.configuration.ServerMBean;
-import weblogic.management.configuration.TargetMBean;
-import weblogic.management.deploy.DeployerRuntime;
-import weblogic.management.deploy.DeploymentData;
-import weblogic.management.runtime.ClusterRuntimeMBean;
-import weblogic.management.runtime.DeployerRuntimeMBean;
-import weblogic.management.runtime.DeploymentTaskRuntimeMBean;
-import weblogic.management.runtime.ServerRuntimeMBean;
-
-import javax.naming.Context;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-
-/**
- * WeblogicController is a controller  to manage a Oracle/BEA WebLogic server.
- */
-public class WeblogicController
-  extends AbstractJEEApplicationServerController
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( WeblogicController.class );
-
-  private static MBeanHome home = null;
-
-  /**
-   * Default constructor.
-   *
-   * @param url        the JMX URL to connect to WebLogic server.
-   * @param username   the admin username to connect to the WebLogic server.
-   * @param password   the admin password to connect to the WebLogic server.
-   * @param serverName the server/cluster name to manage.
-   * @param cluster    a flag indicating if we manage a cluster (true) or a single server (false).
-   */
-  public WeblogicController( String url, String username, String password, String serverName, Boolean cluster )
-    throws ControllerException
-  {
-    super( url, username, password, serverName, cluster );
-  }
-
-  protected void init()
-    throws ControllerException
-  {
-    LOGGER.info( "Connecting to the WebLogic JMX layer" );
-    try
-    {
-      LOGGER.debug( "Creating a WebLogic Environment JNDI container" );
-      Environment environment = new Environment();
-      environment.setProviderUrl( this.getUrl() );
-      environment.setSecurityPrincipal( this.getUsername() );
-      environment.setSecurityCredentials( this.getPassword() );
-      LOGGER.debug( "Creating the JNDI initial context" );
-      Context context = environment.getInitialContext();
-      LOGGER.debug( "Getting WebLogic JMX MBean connector" );
-      home = (MBeanHome) context.lookup( MBeanHome.ADMIN_JNDI_NAME );
-      LOGGER.info( "WebLogic server JMX connection initialized" );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't connect to WebLogic server. The server is probably down.", e );
-      throw new ControllerException( "Can't connect to WebLogic server. The server is probably down.", e );
-    }
-  }
-
-  public void shutdown()
-    throws ControllerException
-  {
-    try
-    {
-      if ( this.isCluster() )
-      {
-        LOGGER.info( "Shutting down WebLogic cluster {}", this.getServerName() );
-        ClusterRuntimeMBean clusterRuntime =
-          (ClusterRuntimeMBean) home.getRuntimeMBean( this.getServerName(), "ClusterRuntime" );
-        String[] servers = clusterRuntime.getServerNames();
-        for ( int i = 0; i < servers.length; i++ )
-        {
-          LOGGER.info( "Shutting down WebLogic server {}", servers[i] );
-          ServerRuntimeMBean serverRuntime = (ServerRuntimeMBean) home.getRuntimeMBean( servers[i], "ServerRuntime" );
-          serverRuntime.shutdown();
-        }
-      }
-      else
-      {
-        LOGGER.info( "Shutting down WebLogic server" );
-        ServerRuntimeMBean serverRuntime =
-          (ServerRuntimeMBean) home.getRuntimeMBean( this.getServerName(), "ServerRuntime" );
-        serverRuntime.shutdown();
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't shutdown WebLogic server/cluster {}", this.getServerName(), e );
-      throw new ControllerException( "Can't shutdown WebLogic server/cluster " + this.getServerName(), e );
-    }
-  }
-
-  public String status()
-  {
-    String status = "N/A";
-    try
-    {
-      if ( this.isCluster() )
-      {
-        LOGGER.info( "Checking status of WebLogic cluster {}", this.getServerName() );
-        ClusterRuntimeMBean clusterRuntime =
-          (ClusterRuntimeMBean) home.getRuntimeMBean( this.getServerName(), "ClusterRuntime" );
-        status = "Weblogic cluster ";
-        String[] servers = clusterRuntime.getServerNames();
-        for ( int i = 0; i < servers.length; i++ )
-        {
-          LOGGER.info( "Checking status of WebLogic server {}", servers[i] );
-          try
-          {
-            ServerRuntimeMBean serverRuntime = (ServerRuntimeMBean) home.getRuntimeMBean( servers[i], "ServerRuntime" );
-            status = status + " (WebLogic " + servers[i] + " " + serverRuntime.getWeblogicVersion() + " "
-              + serverRuntime.getState() + ")";
-          }
-          catch ( Exception e )
-          {
-            status = status + " (WebLogic " + servers[i] + " N/A)";
-          }
-        }
-      }
-      else
-      {
-        LOGGER.info( "Checking status of WebLogic server {}", this.getServerName() );
-        ServerRuntimeMBean serverRuntime =
-          (ServerRuntimeMBean) home.getRuntimeMBean( this.getServerName(), "ServerRuntime" );
-        status = "WebLogic " + serverRuntime.getWeblogicVersion() + " " + serverRuntime.getState();
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check status of WebLogic server/cluster status", e );
-    }
-    return status;
-  }
-
-  public boolean isStopped()
-  {
-    if ( this.isCluster() )
-    {
-      LOGGER.info( "Checking if WebLogic cluster {} is stopped", this.getServerName() );
-      LOGGER.warn( "With WebLogic cluster, if I can connect to the cluster manager, the cluster is considered up" );
-      try
-      {
-        home.getRuntimeMBean( this.getServerName(), "ClusterRuntime" );
-        return false;
-      }
-      catch ( Exception e )
-      {
-        LOGGER.warn( "Can't connect to WebLogic cluster {}", this.getServerName(), e );
-        return true;
-      }
-    }
-    else
-    {
-      LOGGER.info( "Checking if WebLogic server {} is stopped", this.getServerName() );
-      try
-      {
-        ServerRuntimeMBean serverRuntime =
-          (ServerRuntimeMBean) home.getRuntimeMBean( this.getServerName(), "ServerRuntime" );
-        if ( serverRuntime.getState().equals( ServerRuntimeMBean.RUNNING ) )
-        {
-          return false;
-        }
-        else
-        {
-          return true;
-        }
-      }
-      catch ( Exception e )
-      {
-        LOGGER.warn( "Can't check status of WebLogic server", e );
-        return true;
-      }
-    }
-  }
-
-  public boolean isJEEApplicationDeployed(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if the JEE application {} is deployed", name );
-    try
-    {
-      home.getAdminMBean( name, "Application", home.getDomainName() );
-    }
-    catch ( Exception e )
-    {
-      return false;
-    }
-    return true;
-  }
-
-  public void deployJEEApplication(String path, String name, String classloaderorder, String classloaderpolicy,
-                                   String vhost)
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JEE application {} in WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      DeployerRuntimeMBean deployerRuntime = DeployerRuntime.getDeployerRuntime( home );
-      DeploymentData info = new DeploymentData();
-      info.addTarget( this.getServerName(), null );
-      if ( this.isCluster() )
-      {
-        info.setTargetType( this.getServerName(), DeploymentData.CLUSTER );
-      }
-      else
-      {
-        info.setTargetType( this.getServerName(), DeploymentData.SERVER );
-      }
-      LOGGER.debug( "Launching the deployment task ..." );
-      DeploymentTaskRuntimeMBean task = deployerRuntime.deploy( path, name, null, info, null );
-      while ( task.isRunning() )
-      {
-        Thread.sleep( 200 );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JEE application {}", name, e );
-      throw new ControllerException( "Can't deploy JEE application " + name, e );
-    }
-  }
-
-  public void undeployJEEApplication(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JEE application {} from WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      DeployerRuntimeMBean deployerRuntime = DeployerRuntime.getDeployerRuntime( home );
-      DeploymentData info = new DeploymentData();
-      info.addTarget( this.getServerName(), null );
-      if ( this.isCluster() )
-      {
-        info.setTargetType( this.getServerName(), DeploymentData.CLUSTER );
-      }
-      else
-      {
-        info.setTargetType( this.getServerName(), DeploymentData.SERVER );
-      }
-      LOGGER.debug( "Launching the undeployment task ..." );
-      DeploymentTaskRuntimeMBean task = deployerRuntime.undeploy( name, info, null );
-      while ( task.isRunning() )
-      {
-        Thread.sleep( 200 );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JEE application {}", name, e );
-      throw new ControllerException( "Can't undeploy JEE application " + name, e );
-    }
-  }
-
-  public void redeployJEEApplication(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Redeploying JEE application {} in WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      DeployerRuntimeMBean deployerRuntime = DeployerRuntime.getDeployerRuntime( home );
-      DeploymentData info = new DeploymentData();
-      info.addTarget( this.getServerName(), null );
-      if ( this.isCluster() )
-      {
-        info.setTargetType( this.getServerName(), DeploymentData.CLUSTER );
-      }
-      else
-      {
-        info.setTargetType( this.getServerName(), DeploymentData.SERVER );
-      }
-      LOGGER.debug( "Launching the redeploy task ..." );
-      DeploymentTaskRuntimeMBean task = deployerRuntime.redeploy( name, info, null );
-      while ( task.isRunning() )
-      {
-        Thread.sleep( 200 );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't redeploy JEE application {}", name, e );
-      throw new ControllerException( "Can't redeploy JEE application " + name, e );
-    }
-  }
-
-  public boolean isJDBCConnectionPoolDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JDBC connection pool {} is deployed in WebLogic server/cluster {}", name,
-                 this.getServerName() );
-    try
-    {
-      home.getAdminMBean( name, "JDBCConnectionPool", home.getDomainName() );
-    }
-    catch ( Exception e )
-    {
-      return false;
-    }
-    return true;
-  }
-
-  public boolean isJDBCConnectionPoolUpToDate( String name, String driver, int increment, int initial, int maximal,
-                                               String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JDBC connection pool {} in WebLogic server/cluster {}", name,
-                 this.getServerName() );
-    if ( !this.isJDBCConnectionPoolDeployed( name ) )
-    {
-      LOGGER.debug( "JDBC connection pool {} is not deployed in the WebLogic server/cluster {}", name,
-                    this.getServerName() );
-      return false;
-    }
-    LOGGER.debug( "Looking for JDBC connection pool MBean" );
-    try
-    {
-      JDBCConnectionPoolMBean connectionPool =
-        (JDBCConnectionPoolMBean) home.getAdminMBean( name, "JDBCConnectionPool", home.getDomainName() );
-      if ( connectionPool.getDriverName().equals( driver ) && connectionPool.getCapacityIncrement() == increment
-        && connectionPool.getInitialCapacity() == initial && connectionPool.getMaxCapacity() == maximal
-        && ( (String) connectionPool.getProperties().getProperty( "user" ) ).equals( user )
-        && connectionPool.getPassword().equals( password ) && connectionPool.getURL().equals( url ) )
-      {
-        LOGGER.debug( "JDBC connection pool {} is up to date", name );
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of JBDC connection pool {}", name, e );
-      throw new ControllerException( "Can't check status of JDBC connection pool " + name, e );
-    }
-    return false;
-  }
-
-  public boolean updateJDBCConnectionPool( String name, String driver, int increment, int initial, int maximal,
-                                           String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JDBC connection pool {} in WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      LOGGER.debug( "Looking for the JDBC connection pool MBean" );
-      JDBCConnectionPoolMBean connectionPool =
-        (JDBCConnectionPoolMBean) home.getAdminMBean( name, "JDBCConnectionPool", home.getDomainName() );
-      if ( connectionPool.getDriverName().equals( driver ) && connectionPool.getCapacityIncrement() == increment
-        && connectionPool.getInitialCapacity() == initial && connectionPool.getMaxCapacity() == maximal
-        && ( (String) connectionPool.getProperties().getProperty( "user" ) ).equals( user )
-        && connectionPool.getPassword().equals( password ) && connectionPool.getURL().equals( url ) )
-      {
-        LOGGER.debug( "JDBC connection pool {} is already up to date, nothing to do", name );
-        return false;
-      }
-      connectionPool.setDriverName( driver );
-      connectionPool.setCapacityIncrement( increment );
-      connectionPool.setInitialCapacity( initial );
-      connectionPool.setMaxCapacity( maximal );
-      connectionPool.setShrinkingEnabled( true );
-      Properties properties = new Properties();
-      properties.put( "user", user );
-      connectionPool.setProperties( properties );
-      connectionPool.setPassword( password );
-      connectionPool.setURL( url );
-      return true;
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't update JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't update JDBC connection pool " + name, e );
-    }
-  }
-
-  public void deployJDBCConnectionPool( String name, String driver, int increment, int initial, int maximal,
-                                        String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JDBC connection pool {} in WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      TargetMBean target;
-      if ( this.isCluster() )
-      {
-        target = (ClusterMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      else
-      {
-        target = (ServerMBean) home.getAdminMBean( this.getServerName(), "Server" );
-      }
-      JDBCConnectionPoolMBean connectionPool =
-        (JDBCConnectionPoolMBean) home.createAdminMBean( name, "JDBCConnectionPool", home.getDomainName() );
-      connectionPool.setDriverName( driver );
-      connectionPool.setCapacityIncrement( increment );
-      connectionPool.setInitialCapacity( initial );
-      connectionPool.setMaxCapacity( maximal );
-      connectionPool.setURL( url );
-      connectionPool.setShrinkingEnabled( true );
-      Properties properties = new Properties();
-      properties.put( "user", user );
-      connectionPool.setProperties( properties );
-      connectionPool.setPassword( password );
-      connectionPool.addTarget( target );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JBDC connection pool {}", name, e );
-      throw new ControllerException( "Can't deploy JDBC connection pool " + name, e );
-    }
-  }
-
-  public void undeployJDBCConnectionPool( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JDBC connection pool {} from WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      TargetMBean target;
-      if ( this.isCluster() )
-      {
-        target = (ClusterMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      else
-      {
-        target = (ServerMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      JDBCConnectionPoolMBean connectionPool =
-        (JDBCConnectionPoolMBean) home.getMBean( name, "JDBCConnectionPool", home.getDomainName() );
-      connectionPool.removeTarget( target );
-      home.deleteMBean( connectionPool );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JBDC connection pool {}", name, e );
-      throw new ControllerException( "Can't undeploy JDBC connection pool " + name, e );
-    }
-  }
-
-  public boolean isJDBCDataSourceDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JDBC data source {} is already deployed in WebLogic server/cluster {}", name,
-                 this.getServerName() );
-    try
-    {
-      home.getMBean( name, "JDBCTxDataSource", home.getDomainName() );
-    }
-    catch ( Exception e )
-    {
-      return false;
-    }
-    return true;
-  }
-
-  public void deployJDBCDataSource( String name, String jdbcConnectionPool, String jdbcUrl, String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JDBC data source {} in WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      TargetMBean target;
-      if ( this.isCluster() )
-      {
-        target = (ClusterMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      else
-      {
-        target = (ServerMBean) home.getAdminMBean( this.getServerName(), "Server" );
-      }
-      JDBCTxDataSourceMBean dataSource =
-        (JDBCTxDataSourceMBean) home.createAdminMBean( name, "JDBCTxDataSource", home.getDomainName() );
-      dataSource.setJNDIName( name );
-      dataSource.setPoolName( jdbcConnectionPool );
-      dataSource.setRowPrefetchEnabled( true );
-      dataSource.addTarget( target );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JDBC data source {}", name, e );
-      throw new ControllerException( "Can't deploy JDBC data source " + name, e );
-    }
-  }
-
-  public void undeployJDBCDataSource( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JDBC data source {} from WebLogic {}", name, this.getServerName() );
-    try
-    {
-      TargetMBean target;
-      if ( this.isCluster() )
-      {
-        target = (ClusterMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      else
-      {
-        target = (ServerMBean) home.getAdminMBean( this.getServerName(), "Server" );
-      }
-      JDBCTxDataSourceMBean dataSource =
-        (JDBCTxDataSourceMBean) home.getMBean( name, "JDBCTxDataSource", home.getDomainName() );
-      dataSource.removeTarget( target );
-      home.deleteMBean( dataSource );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JDBC data source {}", name, e );
-      throw new ControllerException( "Can't undeploy JDBC data source " + name, e );
-    }
-  }
-
-  public boolean isJDBCDataSourceUpToDate( String name, String jdbcConnectionPool, String jdbcUrl,
-                                           String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JDBC data source {} in WebLogic server/cluster {}", name, this.getServerName() );
-    if ( !this.isJDBCDataSourceDeployed( name ) )
-    {
-      LOGGER.debug( "JDBC data source {} is not deployed in WebLogic server/cluster {}", name, this.getServerName() );
-      return false;
-    }
-    try
-    {
-      JDBCTxDataSourceMBean dataSource =
-        (JDBCTxDataSourceMBean) home.getAdminMBean( name, "JDBCTxDataSource", home.getDomainName() );
-      if ( dataSource.getPoolName().equals( jdbcConnectionPool ) )
-      {
-        LOGGER.debug( "JDBC data source {} is up to date", name );
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of JDBC data source {}", name, e );
-      throw new ControllerException( "Can't check status of JDBC data source " + name, e );
-    }
-    return false;
-  }
-
-  public boolean updateJDBCDataSource( String name, String jdbcConnectionPool, String jdbcUrl, String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JDBC data source {} in WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      if ( !this.isJDBCDataSourceDeployed( name ) )
-      {
-        LOGGER.debug( "JDBC data source {} is not deployed in WebLogic server/cluster {}", name, this.getServerName() );
-        return false;
-      }
-      JDBCTxDataSourceMBean dataSource =
-        (JDBCTxDataSourceMBean) home.getAdminMBean( name, "JDBCTxDataSource", home.getDomainName() );
-      if ( dataSource.getName().equals( name ) && dataSource.getPoolName().equals( jdbcConnectionPool ) )
-      {
-        LOGGER.debug( "JDBC data source {} is already up to date, nothing to do", name );
-        return false;
-      }
-      else
-      {
-        dataSource.setPoolName( jdbcConnectionPool );
-        dataSource.setRowPrefetchEnabled( true );
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't update JDBC data source {}", name, e );
-      throw new ControllerException( "Can't update JDBC data source " + name, e );
-    }
-  }
-
-  public boolean isJMSConnectionFactoryDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Check if JMS connection factory {} is already deployed in WebLogic server/cluster {}", name,
-                 this.getServerName() );
-    try
-    {
-      home.getAdminMBean( name, "JMSConnectionFactory", home.getDomainName() );
-    }
-    catch ( Exception e )
-    {
-      return false;
-    }
-    return true;
-  }
-
-  public void deployJMSConnectionFactory( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JMS connection factory {} in WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      TargetMBean target;
-      if ( this.isCluster() )
-      {
-        target = (ClusterMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      else
-      {
-        target = (ServerMBean) home.getAdminMBean( this.getServerName(), "Server" );
-      }
-      JMSConnectionFactoryMBean connectionFactory =
-        (JMSConnectionFactoryMBean) home.createAdminMBean( name, "JMSConnectionFactory", home.getDomainName() );
-      connectionFactory.setJNDIName( name );
-      connectionFactory.addTarget( target );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JMS connection factory {}", name, e );
-      throw new ControllerException( "Can't deploy JMS connection factory " + name, e );
-    }
-  }
-
-  public void undeployJMSConnectionFactory( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JMS connection factory {} from WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      TargetMBean target;
-      if ( this.isCluster() )
-      {
-        target = (ClusterMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      else
-      {
-        target = (ServerMBean) home.getAdminMBean( this.getServerName(), "Server" );
-      }
-      JMSConnectionFactoryMBean connectionFactory =
-        (JMSConnectionFactoryMBean) home.getAdminMBean( name, "JMSConnectionFactory", home.getDomainName() );
-      connectionFactory.removeTarget( target );
-      home.deleteMBean( connectionFactory );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JMS connection factory {}", name, e );
-      throw new ControllerException( "Can't undeploy JMS connection factory " + name, e );
-    }
-  }
-
-  public boolean isJMSServerDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JMS server {} is already deployed in WebLogic server/cluster {}", name,
-                 this.getServerName() );
-    try
-    {
-      home.getAdminMBean( name, "JMSServer", home.getDomainName() );
-    }
-    catch ( Exception e )
-    {
-      return false;
-    }
-    return true;
-  }
-
-  public void deployJMSServer( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JMS server {} in WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      TargetMBean target;
-      if ( this.isCluster() )
-      {
-        target = (ClusterMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      else
-      {
-        target = (ServerMBean) home.getAdminMBean( this.getServerName(), "Server" );
-      }
-      JMSServerMBean jmsServer = (JMSServerMBean) home.createAdminMBean( name, "JMSServer", home.getDomainName() );
-      LOGGER.debug( "Create the JMS queue destinations" );
-      for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-      {
-        String queueName = (String) queueIterator.next();
-        JMSQueueMBean queue = (JMSQueueMBean) home.createAdminMBean( queueName, "JMSQueue" );
-        queue.setJNDIName( queueName );
-        queue.setParent( jmsServer );
-        jmsServer.addDestination( queue );
-      }
-      LOGGER.debug( "Create the JMS topic destinations" );
-      for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-      {
-        String topicName = (String) topicIterator.next();
-        JMSTopicMBean topic = (JMSTopicMBean) home.createAdminMBean( topicName, "JMSTopic" );
-        topic.setJNDIName( topicName );
-        topic.setParent( jmsServer );
-        jmsServer.addDestination( topic );
-      }
-      jmsServer.addTarget( target );
-      LOGGER.debug( "JMS Server deployed" );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JMS server {}", name, e );
-      throw new ControllerException( "Can't deploy JMS server " + name, e );
-    }
-  }
-
-  public boolean isJMSServerUpToDate( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JMS server {} in WebLogic server/cluster {}", name, this.getServerName() );
-    if ( !this.isJMSServerDeployed( name ) )
-    {
-      LOGGER.debug( "JMS server is not deployed in WebLogic server/cluster {}", this.getServerName() );
-      return false;
-    }
-    try
-    {
-      // get the JMS server MBean
-      JMSServerMBean jmsServer = (JMSServerMBean) home.getAdminMBean( name, "JMSServer", home.getDomainName() );
-      // get the JMS server destinations
-      JMSDestinationMBean[] destinations = jmsServer.getDestinations();
-      // check JMS queues
-      for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-      {
-        String queueName = (String) queueIterator.next();
-        boolean found = false;
-        for ( int i = 0; i < destinations.length; i++ )
-        {
-          JMSDestinationMBean destination = destinations[i];
-          if ( destination.getJNDIName().equals( queueName ) )
-          {
-            found = true;
-            break;
-          }
-        }
-        if ( !found )
-        {
-          return false;
-        }
-      }
-      // check JMS topic
-      for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-      {
-        String topicName = (String) topicIterator.next();
-        boolean found = false;
-        for ( int i = 0; i < destinations.length; i++ )
-        {
-          JMSDestinationMBean destination = destinations[i];
-          if ( destination.getJNDIName().equals( topicName ) )
-          {
-            found = true;
-            break;
-          }
-        }
-        if ( !found )
-        {
-          return false;
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of JMS server {}", name, e );
-      throw new ControllerException( "Can't check status of JMS server " + name, e );
-    }
-    return true;
-  }
-
-  public boolean updateJMSServer( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JMS server {} in WebLogic server/cluster {}", name, this.getServerName() );
-    boolean updated = false;
-    try
-    {
-      JMSServerMBean jmsServer = (JMSServerMBean) home.getAdminMBean( name, "JMSServer", home.getDomainName() );
-      LOGGER.debug( "Getting JMS server destinations" );
-      JMSDestinationMBean[] destinations = jmsServer.getDestinations();
-      LOGGER.debug( "Checking if all JMS queues are present" );
-      for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-      {
-        String queueName = (String) queueIterator.next();
-        boolean found = false;
-        for ( int i = 0; i < destinations.length; i++ )
-        {
-          JMSDestinationMBean destination = destinations[i];
-          if ( destination.getJNDIName().equals( queueName ) )
-          {
-            found = true;
-            break;
-          }
-        }
-        if ( !found )
-        {
-          LOGGER.debug( "JMS queue {} is not present in the JMS server, deploy it", name );
-          updated = true;
-          JMSQueueMBean queue = (JMSQueueMBean) home.createAdminMBean( queueName, "JMSQueue", home.getDomainName() );
-          queue.setJNDIName( queueName );
-          queue.setParent( jmsServer );
-          jmsServer.addDestination( queue );
-        }
-      }
-      LOGGER.debug( "Check if all JMS topics are present" );
-      for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-      {
-        String topicName = (String) topicIterator.next();
-        boolean found = false;
-        for ( int i = 0; i < destinations.length; i++ )
-        {
-          JMSDestinationMBean destination = destinations[i];
-          if ( destination.getJNDIName().equals( topicName ) )
-          {
-            found = true;
-            break;
-          }
-        }
-        if ( !found )
-        {
-          LOGGER.debug( "JMS topic {} is not present in the JMS server, deploy it", name );
-          updated = true;
-          JMSTopicMBean topic = (JMSTopicMBean) home.createAdminMBean( topicName, "JMSTopic", home.getDomainName() );
-          topic.setJNDIName( topicName );
-          topic.setParent( jmsServer );
-          jmsServer.addDestination( topic );
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't update JMS server {}" + name, e );
-      throw new ControllerException( "Can't update JMS server " + name, e );
-    }
-    return updated;
-  }
-
-  public void undeployJMSServer( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JMS server {} from WebLogic server/cluster {}", name, this.getServerName() );
-    try
-    {
-      TargetMBean target;
-      if ( this.isCluster() )
-      {
-        target = (ClusterMBean) home.getAdminMBean( this.getServerName(), "Cluster" );
-      }
-      else
-      {
-        target = (ServerMBean) home.getAdminMBean( this.getServerName(), "Server" );
-      }
-      JMSServerMBean jmsServer = (JMSServerMBean) home.getAdminMBean( name, "JMSServer", home.getDomainName() );
-      jmsServer.removeTarget( target );
-      home.deleteMBean( jmsServer );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JMS server {}", name, e );
-      throw new ControllerException( "Can't undeploy JMS server " + name, e );
-    }
-  }
-
-  public boolean isJNDIBindingDeployed( String name )
-  {
-    LOGGER.warn( "JNDI bindings are not supported on WebLogic server/cluster" );
-    return true;
-  }
-
-  public void deployJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.warn( "JNDI bindings are not supported on WebLogic server/cluster" );
-  }
-
-  public void undeployJNDIBinding( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "JNDI bindings are not supported on WebLogic server/cluster" );
-  }
-
-  public boolean isJNDIBindingUpToDate( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.warn( "JNDI bindings are not supported on WebLogic server/cluster" );
-    return false;
-  }
-
-  public boolean updateJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.warn( "JNDI bindings are not supported on WebLogic server/cluster" );
-    return false;
-  }
-
-  public boolean isSharedLibraryDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported on WebLogic server/cluster" );
-    return true;
-  }
-
-  public void deploySharedLibrary( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported on WebLogic server/cluster" );
-  }
-
-  public void undeploySharedLibrary( String name )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported on WebLogic server/cluster" );
-  }
-
-  public boolean isSharedLibraryUpToDate( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported on WebLogic server/cluster" );
-    return false;
-  }
-
-  public boolean updateSharedLibrary( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.warn( "Shared libraries are not supported on WebLogic server/cluster" );
-    return false;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/controller/websphere/README b/0.6.x/kalumet-modules/controller/websphere/README
deleted file mode 100644
index 05ec240..0000000
--- a/0.6.x/kalumet-modules/controller/websphere/README
+++ /dev/null
@@ -1,77 +0,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.
- */
-
-Apache Kalumet WebSphere Controller
-===================================
-
-Apache Kalumet provides a controller for IBM WebSphere application server.
-This controller works with:
-- IBM WebSphere 5.x
-- IBM WebSphere 6.x
-
-    Controller Installation for WebSphere 5.x
-    -----------------------------------------
-Copy the following jar files to <kalumet_agent_home>/lib/extras:
-        * <websphere_home>/lib/admin.jar
-        * <websphere_home>/lib/bootstrap.jar
-        * <websphere_home>/lib/common.jar
-        * <websphere_home>/lib/commonArchive.jar
-        * <websphere_home>/lib/deployutils.jar
-        * <websphere_home>/lib/ecore.jar
-        * <websphere_home>/lib/ecore.utilities.jar
-        * <websphere_home>/lib/ecore.xmi.jar
-        * <websphere_home>/lib/ecutils.jar
-        * <websphere_home>/lib/ffdc.jar
-        * <websphere_home>/lib/idl.jar
-        * <websphere_home>/lib/iwsorb.jar
-        * <websphere_home>/lib/j2ee.jar
-        * <websphere_home>/lib/jflt.jar
-        * <websphere_home>/lib/jmxc.jar
-        * <websphere_home>/lib/jmxext.jar
-        * <websphere_home>/lib/jmxx.jar
-        * <websphere_home>/lib/mofj2ee.jar
-        * <websphere_home>/lib/mofjava.jar
-        * <websphere_home>/lib/naming.jar
-        * <websphere_home>/lib/namingclient.jar
-        * <websphere_home>/lib/ras.jar
-        * <websphere_home>/lib/runtimefw.jar
-        * <websphere_home>/lib/sas.jar
-        * <websphere_home>/lib/security.jar
-        * <websphere_home>/lib/soap.jar
-        * <websphere_home>/lib/soap-sec.jar
-        * <websphere_home>/lib/utils.jar
-        * <websphere_home>/lib/wasjmx.jar
-        * <websphere_home>/lib/wftutils.jar
-        * <websphere_home>/lib/wjmxapp.jar
-        * <websphere_home>/lib/workspace.jar
-        * <websphere_home>/lib/ws-base-resources.jar
-        * <websphere_home>/lib/ws-config-appdeploy.jar
-        * <websphere_home>/lib/ws-config-common.jar
-        * <websphere_home>/lib/ws-config-servers.jar
-        * <websphere_home>/lib/ws-j2eex.jar
-        * <websphere_home>/lib/wsexception.jar
-        * <websphere_home>/lib/wssec.jar
-    Warning: using the IBM JDK, you need to copy the IBM <java_home>/jre/lib/ext/*.jar into <kalumet_agent_home>/lib/extras.
-
-    Controller Installation for WebSphere 6.x
-    -----------------------------------------
-Copy the following jar files to <kalumet_agent_home>/lib/extras:
-        * <websphere_home>/runtimes/com.ibm.ws.admin.client_6.1.0.jar
-        * <websphere_home>/runtimes/com.ibm.ws.webservices.thinclient_6.1.0.jar
-        * <websphere_home>/plugins/com.ibm.ws.runtime_6.1.0.jar
-        * <websphere_home>/plugins/com.ibm.ws.security.crypto_6.1.0.jar
-
diff --git a/0.6.x/kalumet-modules/controller/websphere/pom.xml b/0.6.x/kalumet-modules/controller/websphere/pom.xml
deleted file mode 100644
index 6d9ad41..0000000
--- a/0.6.x/kalumet-modules/controller/websphere/pom.xml
+++ /dev/null
@@ -1,294 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet.controller</groupId>
-    <artifactId>controller</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.controller.websphere</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Kalumet :: Controller :: IBM WebSphere AS Controller</name>
-
-  <properties>
-    <websphere.version>5.1.1.3</websphere.version>
-  </properties>
-
-  <repositories>
-    <repository>
-      <id>kalumet.m2</id>
-      <name>Apache Kalumet M2 repo</name>
-      <url>https://svn.apache.org/repos/asf/incubator/kalumet/m2-repo</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.kalumet.controller</groupId>
-      <artifactId>org.apache.kalumet.controller.core</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>admin</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>bootstrap</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>common</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>commonArchive</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>deployutils</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ecore</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ecoreutilities</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ecorexmi</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ecutils</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ffdc</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>idl</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>iwsorb</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>j2ee</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>jflt</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>jmxc</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>jmxext</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>jmxx</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>mofj2ee</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>mofjava</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>naming</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>namingclient</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ras</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>runtimefw</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>sas</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>security</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>soap</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>soap-sec</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>utils</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>wasjmx</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>wftutils</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>wjmxapp</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>workspace</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ws-base-resources</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ws-config-appdeploy</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ws-config-common</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ws-config-servers</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>wsexception</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>ws-j2eex</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>com.ibm.websphere.as</groupId>
-      <artifactId>wssec</artifactId>
-      <version>${websphere.version}</version>
-      <scope>provided</scope>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/0.6.x/kalumet-modules/controller/websphere/src/main/java/org/apache/kalumet/controller/websphere/WebsphereController.java b/0.6.x/kalumet-modules/controller/websphere/src/main/java/org/apache/kalumet/controller/websphere/WebsphereController.java
deleted file mode 100644
index f8ca0b1..0000000
--- a/0.6.x/kalumet-modules/controller/websphere/src/main/java/org/apache/kalumet/controller/websphere/WebsphereController.java
+++ /dev/null
@@ -1,1966 +0,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.
- */
-package org.apache.kalumet.controller.websphere;
-
-import com.ibm.websphere.management.AdminClient;
-import com.ibm.websphere.management.AdminClientFactory;
-import com.ibm.websphere.management.AdminConstants;
-import com.ibm.websphere.management.ObjectNameHelper;
-import com.ibm.websphere.management.Session;
-import com.ibm.websphere.management.application.AppConstants;
-import com.ibm.websphere.management.application.AppManagement;
-import com.ibm.websphere.management.application.AppManagementProxy;
-import com.ibm.websphere.management.configservice.ConfigServiceHelper;
-import com.ibm.websphere.management.configservice.ConfigServiceProxy;
-import com.ibm.websphere.management.configservice.SystemAttributes;
-import org.apache.kalumet.controller.core.AbstractJEEApplicationServerController;
-import org.apache.kalumet.controller.core.ControllerException;
-import org.apache.oro.text.regex.MalformedPatternException;
-import org.apache.oro.text.regex.MatchResult;
-import org.apache.oro.text.regex.Pattern;
-import org.apache.oro.text.regex.PatternCompiler;
-import org.apache.oro.text.regex.PatternMatcher;
-import org.apache.oro.text.regex.PatternMatcherInput;
-import org.apache.oro.text.regex.Perl5Compiler;
-import org.apache.oro.text.regex.Perl5Matcher;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.management.Attribute;
-import javax.management.AttributeList;
-import javax.management.ObjectName;
-import java.util.ArrayList;
-import java.util.Hashtable;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Properties;
-import java.util.Set;
-
-/**
- * WebsphereController is the controller for IBM WebSphere Server 5.x and 6.x.
- */
-public class WebsphereController
-  extends AbstractJEEApplicationServerController
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( WebsphereController.class );
-
-  private static final String JMX_URL_REGEXP = "(.+)://(.+):(.+)";
-
-  private String connector;
-
-  private String host;
-
-  private String port;
-
-  /**
-   * Default constructor.
-   *
-   * @param url        the JMX URL to connect to the IBM WebSphere server.
-   * @param username   the admin user name to connect to the IBM WebSphere server.
-   * @param password   the admin password to connect to the IBM WebSphere server
-   * @param serverName the server/cluster name to manage.
-   * @param cluster    a flag indicating if we manage a cluster (true) or a single server (false).
-   */
-  public WebsphereController( String url, String username, String password, String serverName, Boolean cluster )
-    throws ControllerException
-  {
-    super( url, username, password, serverName, cluster );
-  }
-
-  public String getConnector()
-  {
-    return this.connector;
-  }
-
-  public void setConnector( String connector )
-  {
-    this.connector = connector;
-  }
-
-  public String getHost()
-  {
-    return this.host;
-  }
-
-  public void setHost( String host )
-  {
-    this.host = host;
-  }
-
-  public String getPort()
-  {
-    return this.port;
-  }
-
-  public void setPort( String port )
-  {
-    this.port = port;
-  }
-
-  protected void init()
-    throws ControllerException
-  {
-    // make a regexp on the URL to get hostname and port
-    LOGGER.debug( "Initializing ORO regexp objects to split the JMX URL" );
-    PatternMatcher matcher = new Perl5Matcher();
-    PatternCompiler compiler = new Perl5Compiler();
-    Pattern pattern = null;
-    try
-    {
-      pattern = compiler.compile( WebsphereController.JMX_URL_REGEXP );
-      LOGGER.debug( "ORO regexp pattern is {}", WebsphereController.JMX_URL_REGEXP );
-    }
-    catch ( MalformedPatternException patternException )
-    {
-      LOGGER.error( "IBM WebSphere server JMX URL is not correct", patternException );
-      throw new ControllerException( "IBM WebSphere JMX URL is not correct", patternException );
-    }
-    PatternMatcherInput input = new PatternMatcherInput( this.getUrl() );
-    LOGGER.debug( "Initializing ORO regexp input matcher with the URL {}", this.getUrl() );
-    if ( matcher.contains( input, pattern ) )
-    {
-      LOGGER.debug( "ORO regexp input matches the pattern, try to split" );
-      MatchResult result = matcher.getMatch();
-      this.setConnector( result.group( 1 ) );
-      LOGGER.debug( "Connector isolated using the pattern: {}", this.getConnector() );
-      this.setHost( result.group( 2 ) );
-      LOGGER.debug( "Host isolated using the pattern: {}", this.getHost() );
-      this.setPort( result.group( 3 ) );
-      LOGGER.debug( "Port isolated using the pattern: {}", this.getPort() );
-    }
-    else
-    {
-      LOGGER.error( "IBM WebSphere server JMX URL is not correct" );
-      throw new ControllerException( "IBM WebSphere server JMX URL is not correct" );
-    }
-  }
-
-  /**
-   * Get the WebSphere Config Service proxy.
-   *
-   * @return the WebSphere config service proxy.
-   * @throws ControllerException in case of communication failure.
-   */
-  protected ConfigServiceProxy getConfigServiceProxy()
-    throws ControllerException
-  {
-    AdminClient admin = null;
-    ConfigServiceProxy configService = null;
-    try
-    {
-      Properties properties = new Properties();
-      properties.setProperty( AdminClient.CONNECTOR_HOST, this.getHost() );
-      properties.setProperty( AdminClient.CONNECTOR_PORT, this.getPort() );
-      if ( this.getConnector().equals( "iiop" ) )
-      {
-        properties.setProperty( AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_RMI );
-      }
-      if ( this.getConnector().equals( "soap" ) )
-      {
-        properties.setProperty( AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP );
-      }
-      // TODO add support for client security, add attribute in the Kalumet model is mandatory
-      //properties.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true");
-      //properties.setProperty("javax.net.ssl.trustStore", "/opt/websphere/6.1/etc/trust.p12");
-      //properties.setProperty("javax.net.ssl.keyStore", "/opt/websphere/6.1/etc/key.p12");
-      //properties.setProperty("javax.net.ssl.trustStorePassword", "WebAS");
-      //properties.setProperty("javax.net.ssl.keyStorePassword", "WebAS");
-      //properties.setProperty("javax.net.ssl.trustStoreType", "PKCS12");
-      //properties.setProperty("javax.net.ssk.keyStoreType", "PKCS12");
-      //properties.setProperty(AdminClient.USERNAME, this.getUsername());
-      //properties.setProperty(AdminClient.PASSWORD, this.getPassword());
-      admin = AdminClientFactory.createAdminClient( properties );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't connect to IBM WebSphere server", e );
-      throw new ControllerException( "Can't connect to IBM WebSphere server", e );
-    }
-    // we have the admin client, we init the config service proxy
-    try
-    {
-      configService = new ConfigServiceProxy( admin );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't get IBM WebSphere server config service proxy", e );
-      throw new ControllerException( "Can't get IBM WebSphere server config service proxy", e );
-    }
-    return configService;
-  }
-
-  public void shutdown()
-    throws ControllerException
-  {
-    LOGGER.info( "Shutting down IBM WebSphere server {}", this.getServerName() );
-    AdminClient admin = this.getConfigServiceProxy().getAdminClient();
-    ObjectName server = null;
-    try
-    {
-      Set servers = null;
-      if ( this.isCluster() )
-      {
-        servers =
-          admin.queryNames( new ObjectName( "WebSphere:type=Cluster,name=" + this.getServerName() + ",*" ), null );
-      }
-      else
-      {
-        servers =
-          admin.queryNames( new ObjectName( "WebSphere:type=Server,name=" + this.getServerName() + ",*" ), null );
-      }
-      if ( !servers.isEmpty() )
-      {
-        server = (ObjectName) servers.iterator().next();
-        admin.invoke( server, "stop", null, null );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't shutdown IBM WebSphere server {}", this.getServerName(), e );
-      throw new ControllerException( "Can't shutdown IBM WebSphere server " + this.getServerName(), e );
-    }
-  }
-
-  public String status()
-  {
-    LOGGER.info( "Check status of IBM WebSphere server {}", this.getServerName() );
-    String state = "N/A";
-    AdminClient admin = null;
-    try
-    {
-      admin = this.getConfigServiceProxy().getAdminClient();
-    }
-    catch ( ControllerException controllerException )
-    {
-      LOGGER.warn( "Can't check status of IBM WebSphere server {}", this.getServerName(), controllerException );
-      return "N/A";
-    }
-    ObjectName server = null;
-    try
-    {
-      Set servers = null;
-      if ( this.isCluster() )
-      {
-        servers =
-          admin.queryNames( new ObjectName( "WebSphere:type=Cluster,name=" + this.getServerName() + ",*" ), null );
-      }
-      else
-      {
-        servers =
-          admin.queryNames( new ObjectName( "WebSphere:type=Server,name=" + this.getServerName() + ",*" ), null );
-      }
-      if ( !servers.isEmpty() )
-      {
-        server = (ObjectName) servers.iterator().next();
-        state = (String) admin.getAttribute( server, "state" );
-      }
-      else
-      {
-        state = "STOPPED";
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check status of IBM WebSphere server {}", this.getServerName(), e );
-      return "N/A";
-    }
-    LOGGER.debug( "IBM WebSphere server status: {}", state );
-    return state;
-  }
-
-  public boolean isStopped()
-  {
-    LOGGER.info( "Check if IBM WebSphere server {} is stopped", this.getServerName() );
-    boolean stopped = true;
-    AdminClient admin = null;
-    try
-    {
-      admin = this.getConfigServiceProxy().getAdminClient();
-    }
-    catch ( ControllerException controllerException )
-    {
-      LOGGER.warn( "Can't check if IBM WebSphere server is stopped", controllerException );
-      return true;
-    }
-    ObjectName server = null;
-    try
-    {
-      Set servers = null;
-      if ( this.isCluster() )
-      {
-        servers =
-          admin.queryNames( new ObjectName( "WebSphere:type=Cluster,name=" + this.getServerName() + ",*" ), null );
-      }
-      else
-      {
-        servers =
-          admin.queryNames( new ObjectName( "WebSphere:type=Server,name=" + this.getServerName() + ",*" ), null );
-      }
-      if ( !servers.isEmpty() )
-      {
-        server = (ObjectName) servers.iterator().next();
-        if ( ( (String) admin.getAttribute( server, "state" ) ).equals( "STARTED" ) )
-        {
-          stopped = false;
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if IBM WebSphere server is stopped", e );
-      return true;
-    }
-    return stopped;
-  }
-
-  public boolean isJEEApplicationDeployed(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JEE application {} is deployed", name );
-    boolean deployed = false;
-    AdminClient admin = this.getConfigServiceProxy().getAdminClient();
-    try
-    {
-      AppManagement appManagement = AppManagementProxy.getJMXProxyForClient( admin );
-      deployed = appManagement.checkIfAppExists( name, null, null );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if JEE application {} is deployed", name, e );
-      return false;
-    }
-    return deployed;
-  }
-
-  public void deployJEEApplication(String path, String name, String classloaderorder, String classloaderpolicy,
-                                   String vhost)
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JEE application {}", name );
-    AdminClient admin = this.getConfigServiceProxy().getAdminClient();
-    ObjectName server = null;
-    try
-    {
-      Session session = new Session();
-      LOGGER.debug( "Looking for IBM WebSphere server MBean" );
-      Set servers = null;
-      if ( this.isCluster() )
-      {
-        servers =
-          admin.queryNames( new ObjectName( "WebSphere:type=Cluster,name=" + this.getServerName() + ",*" ), null );
-      }
-      else
-      {
-        servers =
-          admin.queryNames( new ObjectName( "WebSphere:type=Server,name=" + this.getServerName() + ",*" ), null );
-      }
-      if ( servers.isEmpty() )
-      {
-        LOGGER.error( "IBM WebSphere server {} not found, can't deploy JEE application {}", this.getServerName(),
-                      name );
-        throw new ControllerException(
-          "IBM WebSphere server " + this.getServerName() + " not found, can't deploy JEE application " + name );
-      }
-      server = (ObjectName) servers.iterator().next();
-      LOGGER.debug( "IBM WebSphere server {} MBean found", this.getServerName() );
-      AppManagement appManagement = AppManagementProxy.getJMXProxyForClient( admin );
-      // first, create the deployment controler and populate the archive file
-      // with appropriate options
-      LOGGER.debug( "Defining JEE application preferences" );
-      Hashtable preferences = new Hashtable();
-      preferences.put( AppConstants.APPDEPL_LOCALE, Locale.getDefault() );
-      preferences.put( AppConstants.APPDEPL_APPNAME, name );
-      if ( this.isCluster() )
-      {
-        preferences.put( AppConstants.APPDEPL_CLUSTER, this.getServerName() );
-      }
-      if ( classloaderorder.equals( "PARENT_LAST" ) )
-      {
-        classloaderorder = AppConstants.APPDEPL_CLASSLOADINGMODE_PARENTLAST;
-      }
-      else
-      {
-        classloaderorder = AppConstants.APPDEPL_CLASSLOADINGMODE_PARENTFIRST;
-      }
-      if ( classloaderpolicy.equals( "APPLICATION" ) )
-      {
-        classloaderpolicy = AppConstants.APPDEPL_CLASSLOADERPOLICY_SINGLE;
-      }
-      else
-      {
-        classloaderpolicy = AppConstants.APPDEPL_CLASSLOADERPOLICY_MULTIPLE;
-      }
-      preferences.put( AppConstants.APPDEPL_CLASSLOADINGMODE, classloaderorder );
-      preferences.put( AppConstants.APPDEPL_CLASSLOADERPOLICY, classloaderpolicy );
-      if ( vhost == null || vhost.trim().length() < 1 )
-      {
-        vhost = "default_host";
-      }
-
-      LOGGER.debug( "Creating JEE application default bindings" );
-      Properties defaultBinding = new Properties();
-      defaultBinding.put( AppConstants.APPDEPL_DFLTBNDG_VHOST, vhost );
-      preferences.put( AppConstants.APPDEPL_DFLTBNDG, defaultBinding );
-      LOGGER.debug( "Creating JEE application options" );
-      Hashtable options = new Hashtable();
-      options.put( AppConstants.APPDEPL_APPNAME, name );
-      options.put( AppConstants.APPDEPL_LOCALE, Locale.getDefault() );
-      if ( this.isCluster() )
-      {
-        options.put( AppConstants.APPDEPL_CLUSTER, this.getServerName() );
-        // to use the Archive Upload options, we need to use WebSphere 6.1 libraries
-        //options.put(AppConstants.APPDEPL_ARCHIVE_UPLOAD, new Boolean(true));
-      }
-      options.put( AppConstants.APPDEPL_CLASSLOADINGMODE, classloaderorder );
-      options.put( AppConstants.APPDEPL_CLASSLOADERPOLICY, AppConstants.APPDEPL_CLASSLOADERPOLICY_SINGLE );
-      options.put( AppConstants.APPDEPL_DFLTBNDG, defaultBinding );
-
-      LOGGER.debug( "Defining JEE application targets" );
-      Hashtable module2server = new Hashtable();
-      if ( this.isCluster() )
-      {
-        module2server.put( "*", "WebSphere:cell=" + ObjectNameHelper.getCellName( server ) + ",cluster="
-          + this.getServerName() );
-      }
-      else
-      {
-        module2server.put( "*", "WebSphere:cell=" + ObjectNameHelper.getCellName( server ) + ",node="
-          + ObjectNameHelper.getNodeName( server ) + ",server=" + this.getServerName() );
-      }
-      options.put( AppConstants.APPDEPL_MODULE_TO_SERVER, module2server );
-      // install the JEE application
-      LOGGER.debug( "Installing JEE application {}", name );
-      appManagement.installApplication( path, name, options, null );
-      ConfigServiceProxy configService = this.getConfigServiceProxy();
-      Thread.sleep( 5000 );
-      configService.save( session, true );
-      if ( this.isCluster() )
-      {
-        syncNodes();
-      }
-      // waiting for deployment
-      int i = 0;
-      while ( !this.isJEEApplicationDeployed(path, name) && i < 100 )
-      {
-        Thread.sleep( 10000 );
-        i++;
-      }
-      Thread.sleep( 60000 );
-      // start the JEE application
-      LOGGER.debug( "Starting JEE application {}", name );
-      appManagement.startApplication( name, preferences, null );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JEE application {}", name, e );
-      throw new ControllerException( "Can't deploy JEE application " + name, e );
-    }
-  }
-
-  public void undeployJEEApplication(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JEE application {}", name );
-    AdminClient admin = this.getConfigServiceProxy().getAdminClient();
-    try
-    {
-      AppManagement appManagement = AppManagementProxy.getJMXProxyForClient( admin );
-      Hashtable preferences = new Hashtable();
-      preferences.put( AppConstants.APPDEPL_LOCALE, Locale.getDefault() );
-      preferences.put( AppConstants.APPDEPL_APPNAME, name );
-      LOGGER.debug( "Stopping JEE application {}", name );
-      appManagement.stopApplication( name, preferences, null );
-      LOGGER.debug( "Uninstalling JEE application {}", name + " from IBM WebSphere server " + this.getServerName() );
-      appManagement.uninstallApplication( name, preferences, null );
-      // waiting for undeployment
-      int i = 0;
-      while ( this.isJEEApplicationDeployed(path, name) && i < 100 )
-      {
-        Thread.sleep( 10000 );
-        i++;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JEE application {}", name, e );
-      throw new ControllerException( "Can't undeploy JEE application " + name, e );
-    }
-  }
-
-  public void redeployJEEApplication(String path, String name)
-    throws ControllerException
-  {
-    LOGGER.info( "Redeploying JEE application {}", name );
-    AdminClient admin = this.getConfigServiceProxy().getAdminClient();
-    try
-    {
-      AppManagement appManagement = AppManagementProxy.getJMXProxyForClient( admin );
-      Hashtable preferences = new Hashtable();
-      preferences.put( AppConstants.APPDEPL_LOCALE, Locale.getDefault() );
-      preferences.put( AppConstants.APPDEPL_APPNAME, name );
-      appManagement.redeployApplication( path, name, preferences, null );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't redeploy JEE application {}", name, e );
-      throw new ControllerException( "Can't redeploy JEE application " + name, e );
-    }
-  }
-
-  public boolean isJDBCConnectionPoolDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Check if JDBC connection pool {} is deployed", name );
-    boolean deployed = false;
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    // define the JDBC provider MBean
-    ObjectName jdbcProvider = ConfigServiceHelper.createObjectName( null, "JDBCProvider", name );
-    try
-    {
-      ObjectName[] jdbcProviders = configService.queryConfigObjects( session, null, jdbcProvider, null );
-      if ( jdbcProviders.length > 0 )
-      {
-        LOGGER.debug( "JDBC Provider " + name + " found." );
-        deployed = true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check if JDBC connection pool {} is deployed", name, e );
-      throw new ControllerException( "Can't check if JDBC connection pool " + name + " is deployed", e );
-    }
-    return deployed;
-  }
-
-  public boolean isJDBCConnectionPoolUpToDate( String name, String driver, int increment, int initial, int maximal,
-                                               String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JDBC connection pool {}", name );
-    if ( !this.isJDBCConnectionPoolDeployed( name ) )
-    {
-      LOGGER.debug( "JDBC connection pool {} is not deployed", name );
-      return false;
-    }
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // looking for the JDBC provider MBean
-      ObjectName jdbcProvider = ConfigServiceHelper.createObjectName( null, "JDBCProvider", name );
-      jdbcProvider = configService.queryConfigObjects( session, null, jdbcProvider, null )[0];
-      // check the driver attribute
-      String currentDriver = (String) configService.getAttribute( session, jdbcProvider, "implementationClassName" );
-      if ( !currentDriver.equals( driver ) )
-      {
-        LOGGER.debug( "JDBC connection pool {} driver is not up to date", name );
-        return false;
-      }
-      // check the classpath
-      List currentClasspath = (List) configService.getAttribute( session, jdbcProvider, "classpath" );
-      if ( !currentClasspath.equals( classpath ) )
-      {
-        LOGGER.debug( "JDBC connection pool {} classpath is not up to date", name );
-        return false;
-      }
-      // check J2C authentification data
-      LOGGER.debug( "Looking for the JAASAuthData in IBM WebSphere server" );
-      ObjectName authData = ConfigServiceHelper.createObjectName( null, "JAASAuthData", null );
-      ObjectName[] authDatas = configService.queryConfigObjects( session, null, authData, null );
-      authData = null;
-      ObjectName currentAuthData = null;
-      for ( int i = 0; i < authDatas.length; i++ )
-      {
-        currentAuthData = authDatas[i];
-        String currentAlias = (String) configService.getAttribute( session, currentAuthData, "alias" );
-        if ( currentAlias.equals( name + "Authentication" ) )
-        {
-          authData = currentAuthData;
-          break;
-        }
-      }
-      if ( authData == null )
-      {
-        // the authData doesn't exist
-        return false;
-      }
-      // the authData exists, check user and password
-      LOGGER.debug( "JAAS AuthData with the alias {}Authentication exists", name );
-      String currentUser = (String) configService.getAttribute( session, authData, "userId" );
-      if ( !currentUser.equals( user ) )
-      {
-        LOGGER.debug( "JDBC connection pool {} username is not up to date", name );
-        return false;
-      }
-      String currentPassword = (String) configService.getAttribute( session, authData, "password" );
-      if ( !currentPassword.equals( password ) )
-      {
-        LOGGER.debug( "JDBC connection pool {} password is not up to date", name );
-        return false;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't check status of JDBC connection pool " + name, e );
-    }
-    return true;
-  }
-
-  public boolean updateJDBCConnectionPool( String name, String driver, int increment, int initial, int maximal,
-                                           String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JDBC connection pool {}", name );
-    boolean updated = false;
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      ObjectName jdbcProvider = ConfigServiceHelper.createObjectName( null, "JDBCProvider", name );
-      jdbcProvider = configService.queryConfigObjects( session, null, jdbcProvider, null )[0];
-      // create a new attribute list
-      AttributeList attributes = new AttributeList();
-      // update the driver attribute if required
-      String currentDriver = (String) configService.getAttribute( session, jdbcProvider, "implementationClassName" );
-      if ( !currentDriver.equals( driver ) )
-      {
-        attributes.add( new Attribute( "implementationClassName", driver ) );
-        updated = true;
-      }
-      configService.setAttributes( session, jdbcProvider, attributes );
-      // update the classpath if required
-      List currentClasspath = (List) configService.getAttribute( session, jdbcProvider, "classpath" );
-      if ( !currentClasspath.contains( classpath ) )
-      {
-        configService.addElement( session, jdbcProvider, "classpath", classpath, -1 );
-        updated = true;
-      }
-      // update JAAS AuthData
-      ObjectName authData = ConfigServiceHelper.createObjectName( null, "JAASAuthData", null );
-      ObjectName[] authDatas = configService.queryConfigObjects( session, null, authData, null );
-      authData = null;
-      ObjectName currentAuthData = null;
-      for ( int i = 0; i < authDatas.length; i++ )
-      {
-        currentAuthData = authDatas[i];
-        String currentAlias = (String) configService.getAttribute( session, currentAuthData, "alias" );
-        if ( currentAlias.equals( name + "Authentication" ) )
-        {
-          authData = currentAuthData;
-          break;
-        }
-      }
-      if ( authData == null )
-      {
-        // the JAASAuthData doesn't exist, must create it
-        LOGGER.debug( "JAAS AuthData with the alias {}Authentication is not found, creating it", name );
-        ObjectName security = ConfigServiceHelper.createObjectName( null, "Security", null );
-        security = configService.queryConfigObjects( session, null, security, null )[0];
-        // get the main security MBean
-        LOGGER.debug( "Getting the main IBM WebSphere Security MBean" );
-        AttributeList authAttributes = new AttributeList();
-        authAttributes.add( new Attribute( "alias", name + "Authentication" ) );
-        authAttributes.add( new Attribute( "userId", user ) );
-        authAttributes.add( new Attribute( "password", password ) );
-        authAttributes.add(
-          new Attribute( "description", "Authentication for JDBC Provider " + name + " created by Apache Kalumet" ) );
-        configService.createConfigData( session, security, "authDataEntries", "JAASAuthData", authAttributes );
-        updated = true;
-      }
-      else
-      {
-        // the JAAS AuthData exists, check for update
-        LOGGER.debug( "JAAS AuthData with the alias {}Authentication already exists, check for update", name );
-        AttributeList authAttributes = new AttributeList();
-        String currentUser = (String) configService.getAttribute( session, authData, "userId" );
-        if ( !currentUser.equals( user ) )
-        {
-          authAttributes.add( new Attribute( "userId", user ) );
-          updated = true;
-        }
-        String currentPassword = (String) configService.getAttribute( session, authData, "password" );
-        if ( !currentPassword.equals( password ) )
-        {
-          authAttributes.add( new Attribute( "password", password ) );
-          updated = true;
-        }
-        configService.setAttributes( session, authData, authAttributes );
-      }
-      if ( updated )
-      {
-        configService.save( session, true );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't update JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't update JDBC connection pool " + name, e );
-    }
-    return updated;
-  }
-
-  public void deployJDBCConnectionPool( String name, String driver, int increment, int initial, int maximal,
-                                        String user, String password, String url, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JDBC connection pool {}", name );
-    ObjectName jdbcProvider = null;
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // define the target scope
-      ObjectName scope = null;
-      if ( this.isCluster() )
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Cell", getCellName( configService.getAdminClient() ) );
-      }
-      else
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Server", this.getServerName() );
-      }
-      scope = configService.queryConfigObjects( session, null, scope, null )[0];
-      ObjectName jdbcProviderObjectName = null;
-      // create the JDBC Provider
-      AttributeList attributes = new AttributeList();
-      attributes.clear();
-      attributes.add( new Attribute( "name", name ) );
-      attributes.add( new Attribute( "implementationClassName", driver ) );
-      attributes.add( new Attribute( "description", "JDBC Provider " + name + " created by Apache Kalumet" ) );
-      jdbcProvider = configService.createConfigData( session, scope, "JDBCProvider", "JDBCProvider", attributes );
-      // add the classpath
-      configService.addElement( session, jdbcProvider, "classpath", classpath, -1 );
-      // create the JASS AuthData
-      ObjectName security = ConfigServiceHelper.createObjectName( null, "Security", null );
-      security = configService.queryConfigObjects( session, null, security, null )[0];
-      AttributeList authAttributes = new AttributeList();
-      authAttributes.add( new Attribute( "alias", name + "Authentication" ) );
-      authAttributes.add( new Attribute( "userId", user ) );
-      authAttributes.add( new Attribute( "password", password ) );
-      authAttributes.add(
-        new Attribute( "description", "Authentication for JDBC Provider " + name + " created by Apache Kalumet" ) );
-      configService.createConfigData( session, security, "authDataEntries", "JAASAuthData", authAttributes );
-      // save the session
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't deploy JDBC connection pool " + name, e );
-    }
-  }
-
-  public void undeployJDBCConnectionPool( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JDBC connection pool {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // get the JDBC Provider MBean
-      ObjectName jdbcProvider = ConfigServiceHelper.createObjectName( null, "JDBCProvider", name );
-      jdbcProvider = configService.queryConfigObjects( session, null, jdbcProvider, null )[0];
-      // delete the JDBC Provider
-      configService.deleteConfigData( session, jdbcProvider );
-      // get the JAAS AuthData MBean
-      ObjectName authData = ConfigServiceHelper.createObjectName( null, "JAASAuthData", null );
-      ObjectName[] authDatas = configService.queryConfigObjects( session, null, authData, null );
-      authData = null;
-      ObjectName currentAuthData = null;
-      for ( int i = 0; i < authDatas.length; i++ )
-      {
-        currentAuthData = authDatas[i];
-        String currentAlias = (String) configService.getAttribute( session, currentAuthData, "alias" );
-        if ( currentAlias.equals( name + "Authentication" ) )
-        {
-          authData = currentAuthData;
-          break;
-        }
-      }
-      if ( authData != null )
-      {
-        configService.deleteConfigData( session, authData );
-      }
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JDBC connection pool {}", name, e );
-      throw new ControllerException( "Can't undeploy JDBC connection pool " + name, e );
-    }
-  }
-
-  public boolean isJDBCDataSourceDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JDBC data source {} is already deployed", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // get the JDBC DataSource MBean
-      ObjectName dataSource = ConfigServiceHelper.createObjectName( null, "DataSource", name );
-      ObjectName[] dataSources = configService.queryConfigObjects( session, null, dataSource, null );
-      if ( dataSources.length > 0 )
-      {
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if JDBC data source {} is arelady deployed", name, e );
-      return false;
-    }
-    return false;
-  }
-
-  public void deployJDBCDataSource( String name, String jdbcConnectionPool, String jdbcUrl, String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JDBC data source {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    ObjectName dataSource = null;
-    try
-    {
-      // define the scope
-      ObjectName scope = null;
-      if ( this.isCluster() )
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Cell", getCellName( configService.getAdminClient() ) );
-      }
-      else
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Server", this.getServerName() );
-      }
-      scope = configService.queryConfigObjects( session, null, scope, null )[0];
-      // looking for the JDBC provider
-      ObjectName jdbcProvider = ConfigServiceHelper.createObjectName( null, "JDBCProvider", jdbcConnectionPool );
-      jdbcProvider = configService.queryConfigObjects( session, null, jdbcProvider, null )[0];
-      // prepare the attribute list
-      AttributeList attributes = new AttributeList();
-      attributes.add( new Attribute( "name", name ) );
-      attributes.add( new Attribute( "jndiName", name ) );
-      attributes.add( new Attribute( "description", "DataSource " + name + " created by Apache Kalumet" ) );
-      attributes.add( new Attribute( "datasourceHelperClassname", helperClassname ) );
-      attributes.add( new Attribute( "authDataAlias", jdbcConnectionPool + "Authentication" ) );
-      // create the datasource
-      dataSource = configService.createConfigData( session, jdbcProvider, "DataSource", "DataSource", attributes );
-      // create the corresponding J2CResourceAdapter connection factory
-      // object
-      ObjectName jra = ConfigServiceHelper.createObjectName( null, "J2CResourceAdapter", null );
-      ObjectName[] jras = configService.queryConfigObjects( session, scope, jra, null );
-      int i = 0;
-      for (; i < jras.length; i++ )
-      {
-        // quit for the first builtin JRA found
-        if ( jras[i].getKeyProperty( SystemAttributes._WEBSPHERE_CONFIG_DATA_DISPLAY_NAME ).equals(
-          "WebSphere Relational Resource Adapter" ) )
-        {
-          break;
-        }
-      }
-      // create the CMP engine mapping
-      AttributeList cmpEngineAttributes = new AttributeList();
-      cmpEngineAttributes.add( new Attribute( "name", name + "_CF" ) );
-      cmpEngineAttributes.add( new Attribute( "authMechanismPreference", "BASIC_PASSWORD" ) );
-      cmpEngineAttributes.add( new Attribute( "authDataAlias", jdbcConnectionPool + "Authentication" ) );
-      cmpEngineAttributes.add( new Attribute( "cmpDatasource", dataSource ) );
-      configService.createConfigData( session, jras[i], "CMPConnectorFactory", "CMPConnectorFactory",
-                                      cmpEngineAttributes );
-      // define special properties for this new datasource
-      AttributeList propertySet = new AttributeList();
-      ObjectName resourcePropertySet =
-        configService.createConfigData( session, dataSource, "propertySet", "", propertySet );
-      // add a resourceProperty URL
-      AttributeList urlProperty = new AttributeList();
-      urlProperty.add( new Attribute( "name", "URL" ) );
-      urlProperty.add( new Attribute( "type", "java.lang.String" ) );
-      urlProperty.add( new Attribute( "value", jdbcUrl ) );
-      configService.addElement( session, resourcePropertySet, "resourceProperties", urlProperty, -1 );
-      // save the configuration
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JDBC data source {}", name, e );
-      throw new ControllerException( "Can't deploy JDBC data source " + name, e );
-    }
-  }
-
-  public void undeployJDBCDataSource( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JDBC data source {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    ObjectName dataSource = ConfigServiceHelper.createObjectName( null, "DataSource", name );
-    try
-    {
-      // delete DataSource
-      dataSource = configService.queryConfigObjects( session, null, dataSource, null )[0];
-      configService.deleteConfigData( session, dataSource );
-      // delete the CMP connector factory
-      ObjectName cmpConnectorFactory =
-        ConfigServiceHelper.createObjectName( null, "CMPConnectorFactory", name + "_CF" );
-      cmpConnectorFactory = configService.queryConfigObjects( session, null, cmpConnectorFactory, null )[0];
-      configService.deleteConfigData( session, cmpConnectorFactory );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JDBC data source {}", name, e );
-      throw new ControllerException( "Can't undeploy JDBC data source " + name, e );
-    }
-  }
-
-  public boolean isJDBCDataSourceUpToDate( String name, String jdbcConnectionPool, String jdbcUrl,
-                                           String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JDBC data source {}", name );
-    if ( !this.isJDBCDataSourceDeployed( name ) )
-    {
-      LOGGER.debug( "JDBC data source {} is not deployed", name );
-      return false;
-    }
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    ObjectName dataSource = ConfigServiceHelper.createObjectName( null, "DataSource", name );
-    try
-    {
-      dataSource = configService.queryConfigObjects( session, null, dataSource, null )[0];
-      // check the JDBC Provider
-      ObjectName provider = (ObjectName) configService.getAttribute( session, dataSource, "provider" );
-      String currentProvider = (String) configService.getAttribute( session, provider, "name" );
-      if ( !currentProvider.equals( jdbcConnectionPool ) )
-      {
-        return false;
-      }
-      // check the authDataAlias
-      String currentAuthDataAlias = (String) configService.getAttribute( session, dataSource, "authDataAlias" );
-      if ( !currentAuthDataAlias.equals( jdbcConnectionPool + "Authentication" ) )
-      {
-        return false;
-      }
-      // check the helper classname
-      String currentHelperclass =
-        (String) configService.getAttribute( session, dataSource, "datasourceHelperClassname" );
-      if ( !currentHelperclass.equals( helperClassname ) )
-      {
-        return false;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of JDBC data source {}", name, e );
-      throw new ControllerException( "Can't check JDBC data source " + name, e );
-    }
-    return true;
-  }
-
-  public boolean updateJDBCDataSource( String name, String jdbcConnectionPool, String jdbcUrl, String helperClassname )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JDBC data source {}", name );
-    boolean updated = false;
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    ObjectName dataSource = ConfigServiceHelper.createObjectName( null, "DataSource", name );
-    try
-    {
-      dataSource = configService.queryConfigObjects( session, null, dataSource, null )[0];
-      AttributeList dataSourceAttributes = new AttributeList();
-      ObjectName provider = (ObjectName) configService.getAttribute( session, dataSource, "provider" );
-      String currentProvider = (String) configService.getAttribute( session, provider, "name" );
-      // update the JDBC Provider if required
-      if ( !currentProvider.equals( jdbcConnectionPool ) )
-      {
-        provider = ConfigServiceHelper.createObjectName( null, "JDBCProvider", jdbcConnectionPool );
-        provider = configService.queryConfigObjects( session, null, provider, null )[0];
-        dataSourceAttributes.add( new Attribute( "provider", provider ) );
-        updated = true;
-      }
-      // update the authDataAlias
-      String currentAuthDataAlias = (String) configService.getAttribute( session, dataSource, "authDataAlias" );
-      if ( !currentAuthDataAlias.equals( jdbcConnectionPool + "Authentication" ) )
-      {
-        dataSourceAttributes.add( new Attribute( "authDataAlias", jdbcConnectionPool + "Authentication" ) );
-        // update the CMP Engine
-        ObjectName cmpEngine = ConfigServiceHelper.createObjectName( null, "CMPConnectorFactory", name + "_CF" );
-        cmpEngine = configService.queryConfigObjects( session, null, cmpEngine, null )[0];
-        AttributeList cmpEngineAttributes = new AttributeList();
-        cmpEngineAttributes.add( new Attribute( "authDataAlias", jdbcConnectionPool + "Authentication" ) );
-        configService.setAttributes( session, cmpEngine, cmpEngineAttributes );
-        updated = true;
-      }
-      // update the helper classname
-      String currentHelperclass =
-        (String) configService.getAttribute( session, dataSource, "datasourceHelperClassname" );
-      if ( !currentHelperclass.equals( helperClassname ) )
-      {
-        dataSourceAttributes.add( new Attribute( "datasourceHelperClassname", helperClassname ) );
-        updated = true;
-      }
-      // save the attributes of the DataSource
-      configService.setAttributes( session, dataSource, dataSourceAttributes );
-      // update the JDBC URL in the DataSource property set (always)
-      AttributeList value = configService.getAttributes( session, dataSource, new String[]{ "propertySet" }, false );
-      ObjectName propertySet = (ObjectName) ConfigServiceHelper.getAttributeValue( value, "propertySet" );
-      AttributeList urlProperty = new AttributeList();
-      urlProperty.add( new Attribute( "name", "URL" ) );
-      urlProperty.add( new Attribute( "type", "java.lang.String" ) );
-      urlProperty.add( new Attribute( "value", jdbcUrl ) );
-      configService.addElement( session, propertySet, "resourceProperties", urlProperty, -1 );
-      // save the configuration
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't update JDBC data source {}", name, e );
-      throw new ControllerException( "Can't update JDBC data source " + name, e );
-    }
-    return updated;
-  }
-
-  public boolean isJMSConnectionFactoryDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JMS connection factory {} is deployed", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    ObjectName jmsConnectionFactory = ConfigServiceHelper.createObjectName( null, "JMSConnectionFactory", name );
-    try
-    {
-      ObjectName[] jmsConnectionFactories =
-        configService.queryConfigObjects( session, null, jmsConnectionFactory, null );
-      if ( jmsConnectionFactories.length > 0 )
-      {
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if JMS connection factory {} is deployed", name, e );
-      return false;
-    }
-    return false;
-  }
-
-  public void deployJMSConnectionFactory( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JMS connection factory {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      ObjectName scope = null;
-      if ( this.isCluster() )
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Cell", getCellName( configService.getAdminClient() ) );
-      }
-      else
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Server", this.getServerName() );
-      }
-      scope = configService.queryConfigObjects( session, null, scope, null )[0];
-      // looking for the builtin JMS provider
-      ObjectName jmsProvider = ConfigServiceHelper.createObjectName( null, "JMSProvider", null );
-      ObjectName[] jmsProviders = configService.queryConfigObjects( session, scope, jmsProvider, null );
-      int i = 0;
-      for (; i < jmsProviders.length; i++ )
-      {
-        if ( jmsProviders[i].getKeyProperty( SystemAttributes._WEBSPHERE_CONFIG_DATA_DISPLAY_NAME ).equals(
-          "WebSphere JMS Provider" ) )
-        {
-          break;
-        }
-      }
-      if ( i >= jmsProviders.length )
-      {
-        LOGGER.error( "IBM Websphere builtin JMS provider is not found" );
-        throw new ControllerException( "IBM Websphere builtin JMS provider is not found" );
-      }
-      jmsProvider = jmsProviders[i];
-      // create the JMS connection factory
-      AttributeList jmsAttributes = new AttributeList();
-      jmsAttributes.add( new Attribute( "name", name ) );
-      jmsAttributes.add( new Attribute( "jndiName", name ) );
-      jmsAttributes.add(
-        new Attribute( "description", "JMS Connection Factory " + name + " created by Apache Kalumet" ) );
-      jmsAttributes.add( new Attribute( "XAEnabled", new Boolean( true ) ) );
-      configService.createConfigData( session, jmsProvider, "WASQueueConnectionFactory", "JMSConnectionFactory",
-                                      jmsAttributes );
-      // save the configuration
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JMS connection factory {}", name, e );
-      throw new ControllerException( "Can't deploy JMS connection factory " + name, e );
-    }
-  }
-
-  public void undeployJMSConnectionFactory( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JMS connection factory {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    ObjectName jmsConnectionFactory = ConfigServiceHelper.createObjectName( null, "JMSConnectionFactory", name );
-    try
-    {
-      jmsConnectionFactory = configService.queryConfigObjects( session, null, jmsConnectionFactory, null )[0];
-      configService.deleteConfigData( session, jmsConnectionFactory );
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JMS connection factory {}", name, e );
-      throw new ControllerException( "Can't undeploy JMS connection factory " + name, e );
-    }
-  }
-
-  public boolean isJMSServerDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JMS server {} is deployed", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    // lookup a JMS server
-    ObjectName jmsServer = ConfigServiceHelper.createObjectName( null, "Server", name );
-    try
-    {
-      ObjectName[] jmsServers = configService.queryConfigObjects( session, null, jmsServer, null );
-      if ( jmsServers.length > 0 )
-      {
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if JMS server {} is deployed", name, e );
-      return false;
-    }
-    return false;
-  }
-
-  /**
-   * Deploy a JMS WAS Queue in the IBM WebSphere JMS built-in provider of a
-   * given JMS server.
-   *
-   * @param jmsServerName the JMS server.
-   * @param name          the JMS WAS Queue name.
-   */
-  private void jmsWasQueueDeploy( String jmsServerName, String name )
-    throws ControllerException
-  {
-    LOGGER.debug( "Deploying JMS WAS Queue {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // get the JMS Server
-      ObjectName jmsServer = ConfigServiceHelper.createObjectName( null, "Server", jmsServerName );
-      jmsServer = configService.queryConfigObjects( session, null, jmsServer, null )[0];
-      // get the WebSphere Internal JMS Provider
-      ObjectName jmsProvider = ConfigServiceHelper.createObjectName( null, "JMSProvider", null );
-      ObjectName[] jmsProviders = configService.queryConfigObjects( session, jmsServer, jmsProvider, null );
-      int i = 0;
-      for (; i < jmsProviders.length; i++ )
-      {
-        if ( jmsProviders[i].getKeyProperty( SystemAttributes._WEBSPHERE_CONFIG_DATA_DISPLAY_NAME ).equals(
-          "WebSphere JMS Provider" ) )
-        {
-          break;
-        }
-      }
-      if ( i >= jmsProviders.length )
-      {
-        LOGGER.error( "IBM WebSphere Builtin JMS Provider not found" );
-        throw new ControllerException( "IBM WebSphere Builtin JMS Provider not found" );
-      }
-      jmsProvider = jmsProviders[i];
-      // create the JMS WAS Queue properties
-      AttributeList queueAttributes = new AttributeList();
-      queueAttributes.add( new Attribute( "name", name ) );
-      queueAttributes.add( new Attribute( "jndiName", name ) );
-      queueAttributes.add( new Attribute( "description", "JMS WAS Queue " + name + " deployed by Apache Kalumet" ) );
-      queueAttributes.add( new Attribute( "queue", name ) );
-      // create the queue
-      configService.createConfigData( session, jmsProvider, "WASQueue", "WASQueue", queueAttributes );
-      // save the configuration
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JMS WAS Queue {}", name, e );
-      throw new ControllerException( "Can't deploy JMS WAS Queue " + name, e );
-    }
-  }
-
-  /**
-   * Deploy a JMS WAS Topic in the IBM WebSphere JMS built-in provider of a given JMS server.
-   *
-   * @param jmsServerName the JMS server.
-   * @param name          the JMS WAS Topic name.
-   */
-  private void jmsWasTopicDeploy( String jmsServerName, String name )
-    throws ControllerException
-  {
-    LOGGER.debug( "Deploying JMS WAS Topic {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // get the JMS Server
-      ObjectName jmsServer = ConfigServiceHelper.createObjectName( null, "Server", jmsServerName );
-      jmsServer = configService.queryConfigObjects( session, null, jmsServer, null )[0];
-      // get the WebSphere Internal JMS Provider
-      ObjectName jmsProvider = ConfigServiceHelper.createObjectName( null, "JMSProvider", null );
-      ObjectName[] jmsProviders = configService.queryConfigObjects( session, jmsServer, jmsProvider, null );
-      int i = 0;
-      for (; i < jmsProviders.length; i++ )
-      {
-        if ( jmsProviders[i].getKeyProperty( SystemAttributes._WEBSPHERE_CONFIG_DATA_DISPLAY_NAME ).equals(
-          "WebSphere JMS Provider" ) )
-        {
-          break;
-        }
-      }
-      if ( i >= jmsProviders.length )
-      {
-        LOGGER.error( "IBM WebSphere Builtin JMS Provider not found" );
-        throw new ControllerException( "IBM WebSphere Builtin JMS Provider not found" );
-      }
-      jmsProvider = jmsProviders[i];
-      // create the JMS WAS Queue properties
-      AttributeList topicAttributes = new AttributeList();
-      topicAttributes.add( new Attribute( "name", name ) );
-      topicAttributes.add( new Attribute( "jndiName", name ) );
-      topicAttributes.add( new Attribute( "description", "JMS WAS Topic " + name + " deployed by Apache Kalumet" ) );
-      topicAttributes.add( new Attribute( "topic", name ) );
-      // create the queue
-      configService.createConfigData( session, jmsProvider, "WASTopic", "WASTopic", topicAttributes );
-      // save the configuration
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JMS WAS Topic {}", name, e );
-      throw new ControllerException( "Can't deploy JMS WAS Topic " + name, e );
-    }
-  }
-
-  public void deployJMSServer( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JMS server {}", name );
-    // deploy the queues
-    for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-    {
-      String queue = (String) queueIterator.next();
-      this.jmsWasQueueDeploy( name, queue );
-    }
-    // deploy the topics
-    for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-    {
-      String topic = (String) topicIterator.next();
-      this.jmsWasTopicDeploy( name, topic );
-    }
-  }
-
-  public boolean isJMSServerUpToDate( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JMS server {}", name );
-    if ( !this.isJMSServerDeployed( name ) )
-    {
-      return false;
-    }
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // get the JMS server
-      ObjectName jmsServer = ConfigServiceHelper.createObjectName( null, "Server", name );
-      jmsServer = configService.queryConfigObjects( session, null, jmsServer, null )[0];
-      // looking for the IBM Websphere Internal JMS Provider
-      ObjectName jmsProvider = ConfigServiceHelper.createObjectName( null, "JMSProvider", null );
-      ObjectName[] jmsProviders = configService.queryConfigObjects( session, jmsServer, jmsProvider, null );
-      int i = 0;
-      for (; i < jmsProviders.length; i++ )
-      {
-        if ( jmsProviders[i].getKeyProperty( SystemAttributes._WEBSPHERE_CONFIG_DATA_DISPLAY_NAME ).equals(
-          "WebSphere JMS Provider" ) )
-        {
-          break;
-        }
-      }
-      if ( i >= jmsProviders.length )
-      {
-        LOGGER.error( "IBM WebSphere builtin JMS provider is not found" );
-        throw new ControllerException( "IBM WebSphere builtin JMS provider is not found" );
-      }
-      jmsProvider = jmsProviders[i];
-      // check the queues
-      for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-      {
-        String queueName = (String) queueIterator.next();
-        ObjectName queue = ConfigServiceHelper.createObjectName( null, "WASQueue", queueName );
-        ObjectName[] queueList = configService.queryConfigObjects( session, jmsProvider, queue, null );
-        if ( queueList.length < 1 )
-        {
-          return false;
-        }
-      }
-      // check the topics
-      for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-      {
-        String topicName = (String) topicIterator.next();
-        ObjectName topic = ConfigServiceHelper.createObjectName( null, "WASTopic", topicName );
-        ObjectName[] topicList = configService.queryConfigObjects( session, jmsProvider, topic, null );
-        if ( topicList.length < 1 )
-        {
-          return false;
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of JMS server {}", name, e );
-      throw new ControllerException( "Can't check status of JMS server " + name, e );
-    }
-    return true;
-  }
-
-  public boolean updateJMSServer( String name, List queues, List topics )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JMS server {}", name );
-    boolean updated = false;
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // looking the JMS server
-      ObjectName jmsServer = ConfigServiceHelper.createObjectName( null, "Server", name );
-      jmsServer = configService.queryConfigObjects( session, null, jmsServer, null )[0];
-      // looking for the IBM Websphere Internal JMS Provider
-      ObjectName jmsProvider = ConfigServiceHelper.createObjectName( null, "JMSProvider", null );
-      ObjectName[] jmsProviders = configService.queryConfigObjects( session, jmsServer, jmsProvider, null );
-      int i = 0;
-      for (; i < jmsProviders.length; i++ )
-      {
-        if ( jmsProviders[i].getKeyProperty( SystemAttributes._WEBSPHERE_CONFIG_DATA_DISPLAY_NAME ).equals(
-          "WebSphere JMS Provider" ) )
-        {
-          break;
-        }
-      }
-      if ( i >= jmsProviders.length )
-      {
-        LOGGER.error( "IBM WebSphere builtin JMS provider is not found" );
-        throw new ControllerException( "IBM WebSphere builtin JMS provider is not found" );
-      }
-      jmsProvider = jmsProviders[i];
-      // check the queues
-      for ( Iterator queueIterator = queues.iterator(); queueIterator.hasNext(); )
-      {
-        String queueName = (String) queueIterator.next();
-        ObjectName queue = ConfigServiceHelper.createObjectName( null, "WASQueue", queueName );
-        ObjectName[] queueList = configService.queryConfigObjects( session, jmsProvider, queue, null );
-        if ( queueList.length < 1 )
-        {
-          this.jmsWasQueueDeploy( name, queueName );
-          updated = true;
-        }
-      }
-      // check the topics
-      for ( Iterator topicIterator = topics.iterator(); topicIterator.hasNext(); )
-      {
-        String topicName = (String) topicIterator.next();
-        ObjectName topic = ConfigServiceHelper.createObjectName( null, "WASTopic", topicName );
-        ObjectName[] topicList = configService.queryConfigObjects( session, jmsProvider, topic, null );
-        if ( topicList.length < 1 )
-        {
-          this.jmsWasTopicDeploy( name, topicName );
-          updated = true;
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't update JMS server {}", name, e );
-      throw new ControllerException( "Can't update JMS server " + name, e );
-    }
-    return updated;
-  }
-
-  public void undeployJMSServer( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JMS server {}", name );
-    LOGGER.warn( "In IBM WebSphere, the JMS server is builtin" );
-  }
-
-  public boolean isJNDIBindingDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if JNDI binding {} is deployed", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // check string name space binding
-      ObjectName nameSpaceBinding = ConfigServiceHelper.createObjectName( null, "StringNameSpaceBinding", name );
-      ObjectName[] nameSpaceBindings = configService.queryConfigObjects( session, null, nameSpaceBinding, null );
-      if ( nameSpaceBindings.length > 0 )
-      {
-        return true;
-      }
-      // check indirect lookup name space binding
-      nameSpaceBinding = ConfigServiceHelper.createObjectName( null, "IndirectLookupNameSpaceBinding", name );
-      nameSpaceBindings = configService.queryConfigObjects( session, null, nameSpaceBinding, null );
-      if ( nameSpaceBindings.length > 0 )
-      {
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if JNDI binding {} is deployed", name, e );
-      return false;
-    }
-    return false;
-  }
-
-  public void deployJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying JNDI binding {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // get the scope
-      ObjectName scope = null;
-      if ( this.isCluster() )
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Cell", getCellName( configService.getAdminClient() ) );
-      }
-      else
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Server", this.getServerName() );
-      }
-      scope = configService.queryConfigObjects( session, null, scope, null )[0];
-      // prepare the attributes list
-      AttributeList attributes = new AttributeList();
-      if ( providerUrl != null && providerUrl.trim().length() > 0 )
-      {
-        // create an IndirectLookupNameSpaceBinding
-        attributes.add( new Attribute( "name", name ) );
-        attributes.add( new Attribute( "nameInNameSpace", jndiName ) );
-        attributes.add( new Attribute( "providerURL", providerUrl ) );
-        attributes.add( new Attribute( "jndiName", jndiAlias ) );
-        // create it
-        configService.createConfigData( session, scope, "IndirectLookupNameSpaceBinding",
-                                        "IndirectLookupNameSpaceBinding", attributes );
-        // save the configuration
-        configService.save( session, true );
-        return;
-      }
-      // create a StringNameSpaceBinding
-      attributes.add( new Attribute( "name", name ) );
-      attributes.add( new Attribute( "nameInNameSpace", jndiName ) );
-      attributes.add( new Attribute( "stringToBind", jndiAlias ) );
-      // create it
-      configService.createConfigData( session, scope, "StringNameSpaceBinding", "StringNameSpaceBinding", attributes );
-      // save the configuration
-      configService.save( session, true );
-      return;
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy JNDI binding {}", name, e );
-      throw new ControllerException( "Can't deploy JNDI binding " + name, e );
-    }
-  }
-
-  public void undeployJNDIBinding( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying JNDI binding {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      ObjectName nameSpaceBinding = ConfigServiceHelper.createObjectName( null, "StringNameSpaceBinding", name );
-      ObjectName[] nameSpaceBindings = configService.queryConfigObjects( session, null, nameSpaceBinding, null );
-      if ( nameSpaceBindings.length > 0 )
-      {
-        // I have found a string name space binding
-        nameSpaceBinding = nameSpaceBindings[0];
-        // delete it
-        configService.deleteConfigData( session, nameSpaceBinding );
-        // save the configuration
-        configService.save( session, true );
-        return;
-      }
-      nameSpaceBinding = ConfigServiceHelper.createObjectName( null, "IndirectLookupNameSpaceBinding", name );
-      nameSpaceBindings = configService.queryConfigObjects( session, null, nameSpaceBinding, null );
-      if ( nameSpaceBindings.length > 0 )
-      {
-        // I have found a indirect lookup name space binding
-        nameSpaceBinding = nameSpaceBindings[0];
-        // delete it
-        configService.deleteConfigData( session, nameSpaceBinding );
-        // save the configuration
-        configService.save( session, true );
-        return;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy JNDI binding {}", name, e );
-      throw new ControllerException( "Can't undeploy JNDI binding" + name, e );
-    }
-  }
-
-  public boolean isJNDIBindingUpToDate( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of JNDI binding {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      ObjectName nameSpaceBinding = ConfigServiceHelper.createObjectName( null, "StringNameSpaceBinding", name );
-      ObjectName[] nameSpaceBindings = configService.queryConfigObjects( session, null, nameSpaceBinding, null );
-      if ( nameSpaceBindings.length > 0 )
-      {
-        // I have a StringNameSpaceBinding
-        nameSpaceBinding = nameSpaceBindings[0];
-        if ( providerUrl != null && providerUrl.trim().length() > 0 )
-        {
-          // I need a IndirectLookupNameSpaceBinding
-          return false;
-        }
-        String currentJNDIName = (String) configService.getAttribute( session, nameSpaceBinding, "nameInNameSpace" );
-        if ( !currentJNDIName.equals( jndiName ) )
-        {
-          return false;
-        }
-        String currentJNDIAlias = (String) configService.getAttribute( session, nameSpaceBinding, "stringToBind" );
-        if ( !currentJNDIAlias.equals( jndiAlias ) )
-        {
-          return false;
-        }
-      }
-      nameSpaceBinding = ConfigServiceHelper.createObjectName( null, "IndirectLookupNameSpaceBinding", name );
-      nameSpaceBindings = configService.queryConfigObjects( session, null, nameSpaceBinding, null );
-      if ( nameSpaceBindings.length > 0 )
-      {
-        // I have a IndirectLookupNameSpaceBinding
-        nameSpaceBinding = nameSpaceBindings[0];
-        if ( providerUrl == null || providerUrl.trim().length() < 1 )
-        {
-          // I need a StringNameSpaceBinding
-          return false;
-        }
-        String currentJNDIName = (String) configService.getAttribute( session, nameSpaceBinding, "nameInNameSpace" );
-        if ( !currentJNDIName.equals( jndiName ) )
-        {
-          return false;
-        }
-        String currentProviderUrl = (String) configService.getAttribute( session, nameSpaceBinding, "providerURL" );
-        if ( !currentProviderUrl.equals( providerUrl ) )
-        {
-          return false;
-        }
-        String currentJNDIAlias = (String) configService.getAttribute( session, nameSpaceBinding, "jndiName" );
-        if ( !currentJNDIAlias.equals( jndiAlias ) )
-        {
-          return false;
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of JNDI binding {}", name, e );
-      throw new ControllerException( "Can't check status of JNDI binding " + name, e );
-    }
-    return true;
-  }
-
-  public boolean updateJNDIBinding( String name, String jndiName, String jndiAlias, String providerUrl )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating JNDI binding {}", name );
-    boolean updated = false;
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      AttributeList attributes = new AttributeList();
-      ObjectName nameSpaceBinding = ConfigServiceHelper.createObjectName( null, "StringNameSpaceBinding", name );
-      ObjectName[] nameSpaceBindings = configService.queryConfigObjects( session, null, nameSpaceBinding, null );
-      if ( nameSpaceBindings.length > 0 )
-      {
-        // I have found a StringNameSpaceBinding
-        nameSpaceBinding = nameSpaceBindings[0];
-        if ( providerUrl != null && providerUrl.trim().length() > 0 )
-        {
-          // I need a IndirectLookupNameSpaceBinding
-          this.undeployJNDIBinding( name );
-          this.deployJNDIBinding( name, jndiName, jndiAlias, providerUrl );
-          return true;
-        }
-        String currentJNDIName = (String) configService.getAttribute( session, nameSpaceBinding, "nameInNameSpace" );
-        if ( !currentJNDIName.equals( jndiName ) )
-        {
-          attributes.add( new Attribute( "nameInNameSpace", jndiName ) );
-          updated = true;
-        }
-        String currentJNDIAlias = (String) configService.getAttribute( session, nameSpaceBinding, "stringToBind" );
-        if ( !currentJNDIAlias.equals( jndiAlias ) )
-        {
-          attributes.add( new Attribute( "stringToBind", jndiAlias ) );
-          updated = true;
-        }
-        if ( updated )
-        {
-          // save the attributes
-          configService.setAttributes( session, nameSpaceBinding, attributes );
-          // save the configuration
-          configService.save( session, true );
-          return true;
-        }
-      }
-      nameSpaceBinding = ConfigServiceHelper.createObjectName( null, "IndirectLookupNameSpaceBinding", name );
-      nameSpaceBindings = configService.queryConfigObjects( session, null, nameSpaceBinding, null );
-      if ( nameSpaceBindings.length > 0 )
-      {
-        // I have found a IndirectLookupNameSpaceBinding
-        nameSpaceBinding = nameSpaceBindings[0];
-        if ( providerUrl == null || providerUrl.trim().length() < 1 )
-        {
-          // I need a StringNameSpaceBinding
-          this.undeployJNDIBinding( name );
-          this.deployJNDIBinding( name, jndiName, jndiAlias, providerUrl );
-          return true;
-        }
-        String currentJNDIName = (String) configService.getAttribute( session, nameSpaceBinding, "nameInNameSpace" );
-        if ( !currentJNDIName.equals( jndiName ) )
-        {
-          attributes.add( new Attribute( "nameInNameSpace", jndiName ) );
-          updated = true;
-        }
-        String currentProviderUrl = (String) configService.getAttribute( session, nameSpaceBinding, "providerURL" );
-        if ( !currentProviderUrl.equals( providerUrl ) )
-        {
-          attributes.add( new Attribute( "providerURL", providerUrl ) );
-          updated = true;
-        }
-        String currentJNDIAlias = (String) configService.getAttribute( session, nameSpaceBinding, "jndiName" );
-        if ( !currentJNDIAlias.equals( jndiAlias ) )
-        {
-          attributes.add( new Attribute( "jndiName", jndiAlias ) );
-          updated = true;
-        }
-        if ( updated )
-        {
-          // save the attributes
-          configService.setAttributes( session, nameSpaceBinding, attributes );
-          // save the configuration
-          configService.save( session, true );
-          return true;
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't update JNDI binding {}", name, e );
-      throw new ControllerException( "Can't update JNDI binding " + name, e );
-    }
-    return updated;
-  }
-
-  public boolean isSharedLibraryDeployed( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking if shared library {} is deployed", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      ObjectName sharedLibrary = ConfigServiceHelper.createObjectName( null, "Library", name );
-      ObjectName[] sharedLibraries = configService.queryConfigObjects( session, null, sharedLibrary, null );
-      if ( sharedLibraries.length > 1 )
-      {
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't check if shared library {} is deployed", name, e );
-      return false;
-    }
-    return false;
-  }
-
-  public void deploySharedLibrary( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Deploying shared library {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      // define the scope
-      ObjectName scope = null;
-      if ( this.isCluster() )
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Cell", getCellName( configService.getAdminClient() ) );
-      }
-      else
-      {
-        scope = ConfigServiceHelper.createObjectName( null, "Server", this.getServerName() );
-      }
-      scope = configService.queryConfigObjects( session, null, scope, null )[0];
-      // prepare the attributes
-      AttributeList attributes = new AttributeList();
-      attributes.add( new Attribute( "name", name ) );
-      attributes.add( new Attribute( "description", "Created by Apache Kalumet" ) );
-      ArrayList classpaths = new ArrayList();
-      classpaths.add( classpath );
-      attributes.add( new Attribute( "classPath", classpaths ) );
-      // create the shared library
-      configService.createConfigData( session, scope, "Library", "Library", attributes );
-      // save the configuration
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't deploy shared library {}", name, e );
-      throw new ControllerException( "Can't deploy shared library " + name, e );
-    }
-  }
-
-  public void undeploySharedLibrary( String name )
-    throws ControllerException
-  {
-    LOGGER.info( "Undeploying shared library {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      ObjectName sharedLibrary = ConfigServiceHelper.createObjectName( null, "Library", name );
-      sharedLibrary = configService.queryConfigObjects( session, null, sharedLibrary, null )[0];
-      configService.deleteConfigData( session, sharedLibrary );
-      configService.save( session, true );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't undeploy shared library " + name, e );
-      throw new ControllerException( "Can't undeploy shared library " + name, e );
-    }
-  }
-
-  public boolean isSharedLibraryUpToDate( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Checking status of shared library {}", name );
-    if ( !this.isSharedLibraryDeployed( name ) )
-    {
-      return false;
-    }
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      ObjectName sharedLibrary = ConfigServiceHelper.createObjectName( null, "Library", name );
-      sharedLibrary = configService.queryConfigObjects( session, null, sharedLibrary, null )[0];
-      String currentClasspath = (String) configService.getAttribute( session, sharedLibrary, "classPath" );
-      if ( !currentClasspath.equals( classpath ) )
-      {
-        return false;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't check status of the shared library {}", name, e );
-      throw new ControllerException( "Can't check status of shared library " + name, e );
-    }
-    return true;
-  }
-
-  public boolean updateSharedLibrary( String name, String classpath )
-    throws ControllerException
-  {
-    LOGGER.info( "Updating shared library {}", name );
-    ConfigServiceProxy configService = this.getConfigServiceProxy();
-    Session session = new Session();
-    try
-    {
-      ObjectName sharedLibrary = ConfigServiceHelper.createObjectName( null, "Library", name );
-      sharedLibrary = configService.queryConfigObjects( session, null, sharedLibrary, null )[0];
-      List currentClasspath = (List) configService.getAttribute( session, sharedLibrary, "classPath" );
-      if ( !currentClasspath.get( 0 ).equals( classpath ) )
-      {
-        AttributeList attributes = new AttributeList();
-        AttributeList classpaths = new AttributeList();
-        classpaths.add( classpath );
-        attributes.add( new Attribute( "classPath", classpaths ) );
-        configService.setAttributes( session, sharedLibrary, attributes );
-        configService.save( session, true );
-        return true;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't update shared library {}", name, e );
-      throw new ControllerException( "Can't update shared library " + name, e );
-    }
-    return false;
-  }
-
-  /**
-   * Synchronize all nodes in a WebSphere cluster.
-   *
-   * @throws ControllerException in case of sync failure.
-   */
-  private void syncNodes()
-    throws ControllerException
-  {
-    LOGGER.info( "Synchonize IBM WebSphere server nodes" );
-    AdminClient admin = this.getConfigServiceProxy().getAdminClient();
-    try
-    {
-      List nodes = listNodes( admin );
-      for ( Iterator nodeIterator = nodes.iterator(); nodeIterator.hasNext(); )
-      {
-        String nodeName = (String) nodeIterator.next();
-        ObjectName nodeSync = new ObjectName( "WebSphere:*,type=NodeSync,node=" + nodeName );
-        Set queryResult = admin.queryNames( nodeSync, null );
-        ObjectName nodeSyncMBean = (ObjectName) queryResult.iterator().next();
-        LOGGER.info( "Syncing {}", nodeSyncMBean );
-        Object result = admin.invoke( nodeSyncMBean, "sync", null, null );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "IBM WebSphere server {} sync failed", this.getServerName(), e );
-      throw new ControllerException( "IBM WebSphere server " + this.getServerName() + " sync failed", e );
-    }
-  }
-
-  /**
-   * Get the list of running nodes in a WebSphere cluster.
-   *
-   * @throws ControllerException in case of listing failure.
-   */
-  private static List listNodes( AdminClient client )
-    throws ControllerException
-  {
-    Set oSet = queryObjectNames( "WebSphere:*,type=Server", client );
-    if ( oSet == null )
-    {
-      return null;
-    }
-    List nodes = new LinkedList();
-    for ( Iterator it = oSet.iterator(); it.hasNext(); )
-    {
-      ObjectName on = (ObjectName) it.next();
-      if ( !on.getKeyProperty( "processType" ).equals( AdminConstants.DEPLOYMENT_MANAGER_PROCESS ) )
-      {
-        nodes.add( on.getKeyProperty( "node" ) );
-      }
-    }
-    return nodes;
-  }
-
-  /**
-   * Request object name on the admin client.
-   *
-   * @param query  the object name query.
-   * @param client the admin client.
-   * @return the object name set.
-   */
-  private static Set queryObjectNames( String query, AdminClient client )
-  {
-    Set oSet = null;
-    try
-    {
-      if ( client != null )
-      {
-        oSet = client.queryNames( new ObjectName( query ), null );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't get object name for query {}", query, e );
-    }
-    return oSet;
-  }
-
-  /**
-   * Get the cell name linked to the admin client.
-   *
-   * @param client the admin client.
-   * @return the cell name.
-   * @throws Exception in case of query failure.
-   */
-  private String getCellName( AdminClient client )
-    throws Exception
-  {
-    return client.getServerMBean().getKeyProperty( "cell" );
-  }
-
-  /**
-   * Get the list of running servers in a WebSphere cluster/node.
-   *
-   * @param node   the WebSphere node.
-   * @param client the admin client.
-   * @return the list of running WebSphere servers.
-   */
-  private static List listServers( String node, AdminClient client )
-  {
-    List servers = new LinkedList();
-    Set oSet = queryObjectNames( "WebSphere:*,type=Server,node=" + node, client );
-    if ( oSet == null )
-    {
-      return null;
-    }
-    for ( Iterator it = oSet.iterator(); it.hasNext(); )
-    {
-      ObjectName on = (ObjectName) it.next();
-      servers.add( on.getKeyProperty( "process" ) );
-    }
-
-    return servers;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/controller/websphere/src/main/resources/implfactory.properties b/0.6.x/kalumet-modules/controller/websphere/src/main/resources/implfactory.properties
deleted file mode 100644
index 42b720c..0000000
--- a/0.6.x/kalumet-modules/controller/websphere/src/main/resources/implfactory.properties
+++ /dev/null
@@ -1,90 +0,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.
-
-#File Transfer Client implementation class
-com.ibm.websphere.management.filetransfer.client.FileTransferClient=com.ibm.ws.management.filetransfer.client.FileTransferClientImpl
-
-#File Transfer Server implementation class
-com.ibm.websphere.management.filetransfer.server.FileTransferServer=com.ibm.ws.management.filetransfer.server.FileTransferServerImpl
-
-#File Transfer Client Options Implementation class
-com.ibm.websphere.management.filetransfer.client.FileTransferOptions=com.ibm.ws.management.filetransfer.client.FileTransferOptionsImpl
-
-#Config Repository Remote Client
-com.ibm.websphere.management.repository.client.ConfigRepositoryClient.remote=com.ibm.ws.management.repository.client.JMXRemoteConfigRepositoryClient
-
-#Config Repository Local Client
-com.ibm.websphere.management.repository.client.ConfigRepositoryClient.local=com.ibm.ws.management.repository.client.LocalConfigRepositoryClient
-
-#MOF Error Handler Factory
-com.ibm.etools.emf.resource.ErrorHandlerFactory=com.ibm.ws.config.MOFErrorHandlerFactory
-
-#WCCM Encoder/Decoder
-com.ibm.etools.encoders.EncoderDecoder=com.ibm.ws.security.util.WSEncoderDecoder
-
-#Security Policy
-java.security.Policy=com.ibm.ws.security.policy.WSDynamicPolicy
-
-#Security Manager
-java.lang.SecurityManager=com.ibm.ws.security.core.SecurityManager
-
-#J2EENameFactory
-com.ibm.websphere.csi.J2EENameFactory=com.ibm.ejs.csi.J2EENameFactoryImpl
-
-#Launcher platform helper
-com.ibm.ws.management.launcher.LaunchPlatformHelper=com.ibm.ws.management.launcher.DefaultLaunchPlatformHelper
-
-#EJB Container Extension Factory
-com.ibm.websphere.csi.ContainerExtensionFactory=com.ibm.ejs.csi.ContainerExtensionFactoryBaseImpl
-
-#DRS factory
-com.ibm.ws.drs.factory=com.ibm.disthub.client.JMS
-com.ibm.ws.drs.broker=com.ibm.hplwps.PubSubEngine
-
-#Embedded JMS Provider
-com.ibm.ws.messaging.JMSProvider=com.ibm.ws.messaging.JMSEmbeddedProviderImpl
-
-#JTA UserTransaction implementation class
-com.ibm.ws.transaction.UtxImpl=com.ibm.ws.Transaction.JTA.UserTransactionImpl
-
-#JTA TransactionManager implementation class
-com.ibm.ws.transaction.WSTxManager=com.ibm.ws.Transaction.JTA.TranManagerSet
-
-#JTA Non Recoverable TransactionManager implementation class
-com.ibm.ws.transaction.NonRecovWSTxManager=com.ibm.ws.Transaction.client.NonRecoverableTranManagerSet
-
-#JTS Current
-com.ibm.ws.transaction.TXCurrent=com.ibm.ws.Transaction.JTS.CurrentImpl
-
-#Local Transaction Current
-com.ibm.ws.transaction.LocalTranCurrent=com.ibm.ws.LocalTransaction.LocalTranCurrentSet
-
-#Extended JTA Transaction implementation class
-com.ibm.ws.transaction.ExtendedJTATransaction=com.ibm.ws.jtaextensions.ExtendedJTATransactionImpl
-
-#Transaction Workload Collaborator implementation class
-com.ibm.ws.transaction.WorkloadCollaborator=com.ibm.ws.Transaction.JTS.TransactionWorkloadCollaborator
-
-#Transaction Helper implementation class
-com.ibm.ws.spi.txhelper.TransactionHelper=com.ibm.ws.spi.txhelper.TransactionHelperImpl
-
-#Default implementation for checking product extensions
-com.ibm.ws.management.tools.ExtensionChecker=com.ibm.ws.management.tools.DefaultExtensionChecker
-
-#Util platform-specific helper implementation class //CMVC: 175282
-com.ibm.ws.util.PlatformHelper=com.ibm.ws.management.DefaultPlatformHelper
diff --git a/0.6.x/kalumet-modules/pom.xml b/0.6.x/kalumet-modules/pom.xml
deleted file mode 100644
index 339508d..0000000
--- a/0.6.x/kalumet-modules/pom.xml
+++ /dev/null
@@ -1,95 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet</groupId>
-    <artifactId>kalumet</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>kalumet-modules</artifactId>
-  <packaging>pom</packaging>
-  <name>Apache Kalumet :: Modules</name>
-
-  <modules>
-    <module>common</module>
-    <module>agent</module>
-    <module>utils</module>
-    <module>console</module>
-    <module>controller</module>
-  </modules>
-
-  <reporting>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-project-info-reports-plugin</artifactId>
-          <version>2.4</version>
-        </plugin>
-
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>2.8.1</version>
-          <reportSets>
-            <reportSet>
-              <reports>
-                <report>javadoc</report>
-              </reports>
-            </reportSet>
-            <reportSet>
-              <inherited>false</inherited>
-              <reports>
-                <report>aggregate</report>
-              </reports>
-            </reportSet>
-          </reportSets>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-jxr-plugin</artifactId>
-          <version>2.2</version>
-        </plugin>
-        <plugin>
-          <groupId>org.codehaus.sonar-plugins</groupId>
-          <artifactId>maven-report</artifactId>
-          <version>0.1</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-checkstyle-plugin</artifactId>
-          <version>2.9.1</version>
-          <inherited>false</inherited>
-          <reportSets>
-            <reportSet>
-              <reports>
-                <report>checkstyle-aggregate</report>
-              </reports>
-            </reportSet>
-          </reportSets>
-        </plugin>
-      </plugins>
-    </reporting>
-
-</project>
diff --git a/0.6.x/kalumet-modules/utils/pom.xml b/0.6.x/kalumet-modules/utils/pom.xml
deleted file mode 100644
index d1aeb1a..0000000
--- a/0.6.x/kalumet-modules/utils/pom.xml
+++ /dev/null
@@ -1,54 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache.kalumet</groupId>
-    <artifactId>kalumet-modules</artifactId>
-    <version>0.6-incubating</version>
-    <relativePath>../pom.xml</relativePath>
-  </parent>
-
-  <artifactId>org.apache.kalumet.utils</artifactId>
-  <packaging>jar</packaging>
-  <name>Apache Kalumet :: Utils</name>
-
-  <dependencies>
-    <dependency>
-      <groupId>org.apache.commons</groupId>
-      <artifactId>commons-email</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>commons-httpclient</groupId>
-      <artifactId>commons-httpclient</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.apache.kalumet</groupId>
-      <artifactId>org.apache.kalumet.common</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>org.slf4j</groupId>
-      <artifactId>slf4j-api</artifactId>
-    </dependency>
-  </dependencies>
-
-</project>
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/AgentUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/AgentUtils.java
deleted file mode 100644
index 2a61367..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/AgentUtils.java
+++ /dev/null
@@ -1,43 +0,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.
- */
-package org.apache.kalumet.utils;
-
-/**
- * Util class to get version from the MANIFEST package specification.
- */
-public class AgentUtils
-{
-
-  /**
-   * Get the version from Kalumet package.
-   *
-   * @return the Kalumet version.
-   */
-  public static String getVersion()
-  {
-    String version = "";
-    Package p = Package.getPackage( "org.apache.kalumet.agent" );
-    if ( p != null )
-    {
-      version = p.getImplementationVersion();
-    }
-    return version;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/CommandUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/CommandUtils.java
deleted file mode 100644
index 77d17fd..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/CommandUtils.java
+++ /dev/null
@@ -1,172 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.apache.kalumet.KalumetException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-
-/**
- * Util to execute system commands.
- */
-public class CommandUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( CommandUtils.class );
-
-  /**
-   * Execute a system command and return the output.
-   *
-   * @param command the system command to execute.
-   * @return he command execution output.
-   * @throws org.apache.kalumet.KalumetException
-   *          in case of execution failure.
-   */
-  public static String execute( String command )
-    throws KalumetException
-  {
-    LOGGER.info( "Executing {}", command );
-    String[] shellCommand = null;
-    LOGGER.debug( "Create the shell depending the shell" );
-    String osName = System.getProperty( "os.name" );
-    if ( osName.startsWith( "Windows" ) )
-    {
-      LOGGER.debug( "MS Windows platform detected" );
-      String comSpec = System.getProperty( "ComSpec" );
-      if ( comSpec != null )
-      {
-        LOGGER.debug( "ComSpec MS Windows environment variable found" );
-        shellCommand = new String[]{ comSpec, "/C", command };
-      }
-      else
-      {
-        LOGGER.debug(
-          "ComSpec MS Windows environment variable is not defined, found the shell command depending of the MS Windows version." );
-        if ( osName.startsWith( "Windows 3" ) || osName.startsWith( "Windows 95" ) || osName.startsWith( "Windows 98" )
-          || osName.startsWith( "Windows ME" ) )
-        {
-          LOGGER.debug( "MS Windows 3.1/95/98/Me detected, using: command.com /C " + command );
-          shellCommand = new String[]{ "command.com", "/C", command };
-        }
-        else
-        {
-          LOGGER.debug( "MS Windows NT/XP/Vista detected, using: cmd.exe /C " + command );
-          shellCommand = new String[]{ "cmd.exe", "/C", command };
-        }
-      }
-    }
-    else
-    {
-      LOGGER.debug( "Unix platform detected." );
-      String shell = System.getProperty( "SHELL" );
-      if ( shell != null )
-      {
-        LOGGER.debug( "SHELL Unix environment variable is defined, using it: " + shell + " -c " + command );
-        shellCommand = new String[]{ shell, "-c", command };
-      }
-      else
-      {
-        LOGGER.debug(
-          "SHELL Unix environment variable is not defined, using the default Unix shell: /bin/sh -c " + command );
-        shellCommand = new String[]{ "/bin/sh", "-c", command };
-      }
-
-    }
-    try
-    {
-      Runtime runtime = Runtime.getRuntime();
-      // launch the system command
-      Process process = runtime.exec( shellCommand );
-      // get the error stream gobbler
-      StringBuffer errorBuffer = new StringBuffer();
-      StreamGobbler errorGobbler = new StreamGobbler( process.getErrorStream(), errorBuffer );
-      // get the output stream gobbler
-      StringBuffer outputBuffer = new StringBuffer();
-      StreamGobbler outputGobbler = new StreamGobbler( process.getInputStream(), outputBuffer );
-      // start both gobblers
-      errorGobbler.start();
-      outputGobbler.start();
-      // wait the end of the process
-      int exitValue = process.waitFor();
-      if ( exitValue != 0 )
-      {
-        // an error occurs
-        LOGGER.error( "Command {} execution failed: {}", command, errorBuffer.toString() );
-        throw new KalumetException( "Command " + command + " execution failed: " + errorBuffer.toString() );
-      }
-      // command is OK
-      LOGGER.info( "Command {} has been executed successfully", command );
-      LOGGER.debug( outputBuffer.toString() );
-      return outputBuffer.toString();
-    }
-    catch ( Exception exception )
-    {
-      LOGGER.error( "Command {} execution failed", command, exception );
-      throw new KalumetException( "Command " + command + " execution failed", exception );
-    }
-
-  }
-
-}
-
-/**
- * Inner class to glob stream with a thread.
- */
-class StreamGobbler
-  extends Thread
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( StreamGobbler.class );
-
-  InputStream in;
-
-  StringBuffer response;
-
-  StreamGobbler( InputStream in, StringBuffer response )
-  {
-    this.in = in;
-    this.response = response;
-  }
-
-  /**
-   * @see java.lang.Thread#run()
-   */
-  public void run()
-  {
-    try
-    {
-      BufferedReader reader = new BufferedReader( new InputStreamReader( in ) );
-      String row = null;
-      while ( ( row = reader.readLine() ) != null )
-      {
-        response.append( row + "\n" );
-      }
-    }
-    catch ( IOException ioException )
-    {
-      LOGGER.warn( "System command stream gobbler error", ioException );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/EmailUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/EmailUtils.java
deleted file mode 100644
index 8e1071b..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/EmailUtils.java
+++ /dev/null
@@ -1,161 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.apache.commons.mail.HtmlEmail;
-import org.apache.kalumet.KalumetException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.FileNotFoundException;
-import java.io.FileReader;
-import java.io.Reader;
-import java.io.StringWriter;
-import java.text.MessageFormat;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Util class to send e-mails.
- */
-public class EmailUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( EmailUtils.class );
-
-  /**
-   * Send a HTML email to a list of destination.
-   *
-   * @param host      the mail host name or IP address.
-   * @param from      the from e-mail address.
-   * @param subject   the e-mail subject.
-   * @param addresses the e-mail address list.
-   * @param content   the e-mail content.
-   */
-  public static void sendHTMLEmail( String host, String from, String subject, List addresses, String content )
-    throws KalumetException
-  {
-    try
-    {
-      HtmlEmail email = new HtmlEmail();
-      email.setHostName( host );
-      email.setFrom( from );
-      email.setSubject( subject );
-      for ( Iterator addressIterator = addresses.iterator(); addressIterator.hasNext(); )
-      {
-        String address = (String) addressIterator.next();
-        email.addTo( address );
-      }
-      email.setHtmlMsg( content );
-      email.send();
-    }
-    catch ( Exception e )
-    {
-      throw new KalumetException( e );
-    }
-  }
-
-  /**
-   * Send a text email to a list of destination.
-   *
-   * @param host      the mail host name or IP address.
-   * @param from      the from e-mail address.
-   * @param subject   the e-mail subject.
-   * @param addresses the e-mail address list.
-   * @param content   the e-mail content.
-   */
-  public static void sendTextEmail( String host, String from, String subject, List addresses, String content )
-    throws KalumetException
-  {
-    try
-    {
-      HtmlEmail email = new HtmlEmail();
-      email.setHostName( host );
-      email.setFrom( from );
-      email.setSubject( subject );
-      for ( Iterator addressIterator = addresses.iterator(); addressIterator.hasNext(); )
-      {
-        String address = (String) addressIterator.next();
-        email.addTo( address );
-      }
-      email.setTextMsg( content );
-      email.send();
-    }
-    catch ( Exception e )
-    {
-      throw new KalumetException( e );
-    }
-  }
-
-  /**
-   * Format a given e-mail template with value.
-   *
-   * @param template the template filename path/location.
-   * @param values   the <code>Object[]</code> values.
-   * @return the formatted string.
-   */
-  public static String format( String template, Object[] values )
-    throws KalumetException
-  {
-    try
-    {
-      return EmailUtils.format( new FileReader( template ), values );
-    }
-    catch ( FileNotFoundException fileNotFoundException )
-    {
-      LOGGER.error( "Can't format the e-mail template", fileNotFoundException );
-      throw new KalumetException( "Can't format the e-mail template", fileNotFoundException );
-    }
-  }
-
-  /**
-   * Format a given e-mail template with value.
-   *
-   * @param values the <code>Object[]</code> values.
-   * @return the formatted string.
-   * @pmram template the template reader.
-   */
-  public static String format( Reader templateReader, Object[] values )
-    throws KalumetException
-  {
-    try
-    {
-      BufferedReader templateBufferedReader = new BufferedReader( templateReader );
-      StringWriter writer = new StringWriter();
-      BufferedWriter buffer = new BufferedWriter( writer );
-      String templateLine = templateBufferedReader.readLine();
-      while ( templateLine != null )
-      {
-        buffer.write( MessageFormat.format( templateLine, values ) );
-        buffer.newLine();
-        templateLine = templateBufferedReader.readLine();
-      }
-      buffer.flush();
-      return writer.toString();
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't format the e-mail template", e );
-      throw new KalumetException( "Can't format the e-mail template", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/EventUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/EventUtils.java
deleted file mode 100644
index a3ff380..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/EventUtils.java
+++ /dev/null
@@ -1,78 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.methods.PostMethod;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.Kalumet;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * Util class to post event to the Kalumet journal.
- */
-public class EventUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( EventUtils.class );
-
-  /**
-   * Post an event to the Kalumet journal.
-   *
-   * @param environment the target environment..
-   * @param author      the author of the event.
-   * @param severity    the severity severity of the event.
-   * @param event       the event event.
-   * @param kalumet     the Kalumet configuration.
-   */
-  public static void post( Environment environment, String author, String severity, String event, Kalumet kalumet )
-  {
-    LOGGER.debug( "Getting LogEventAppender property in Kalumet configuration" );
-    if ( kalumet.getProperty( "LogEventAppender" ) == null )
-    {
-      LOGGER.warn( "Can't post event because the LogEventAppender is not define in the configuration" );
-      return;
-    }
-    String logEventAppender = kalumet.getProperty( "LogEventAppender" ).getValue();
-
-    // creating the HTTP client
-    HttpClient httpClient = new HttpClient();
-    // create the post method
-    PostMethod postMethod = new PostMethod( logEventAppender );
-    // add the HTTP parameters
-    postMethod.addParameter( "environment", environment.getName() );
-    postMethod.addParameter( "author", author );
-    postMethod.addParameter( "severity", severity );
-    postMethod.addParameter( "event", event );
-    try
-    {
-      httpClient.executeMethod( postMethod );
-    }
-    catch ( Exception e )
-    {
-      // ignore
-    }
-    finally
-    {
-      postMethod.releaseConnection();
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/FileUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/FileUtils.java
deleted file mode 100644
index eb154a4..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/FileUtils.java
+++ /dev/null
@@ -1,134 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.apache.commons.io.IOUtils;
-import org.apache.commons.vfs.FileObject;
-import org.apache.commons.vfs.FileType;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.ws.client.SimplifiedFileObject;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.InputStream;
-import java.util.Date;
-
-/**
- * Utils to manipulate file (view, browse)
- */
-public class FileUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( FileUtils.class );
-
-  /**
-   * Wrapper method to read a file.
-   *
-   * @param path the file VFS path.
-   * @return the file content.
-   */
-  public static String view( String path )
-  {
-    String content = null;
-    InputStream stream = null;
-    FileManipulator fileManipulator = null;
-    try
-    {
-      // get a file manipulator instance
-      fileManipulator = new FileManipulator();
-      // get the file content
-      stream = fileManipulator.read( path );
-      // populate the content string
-      content = IOUtils.toString( stream );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't view {}", path, e );
-    }
-    finally
-    {
-      if ( stream != null )
-      {
-        try
-        {
-          stream.close();
-        }
-        catch ( Exception e )
-        {
-          // nothing to do
-        }
-      }
-      if ( fileManipulator != null )
-      {
-        fileManipulator.close();
-      }
-    }
-    return content;
-  }
-
-  /**
-   * Wrapper method to browse a path.
-   *
-   * @param path the path to browse.
-   * @return the list of children.
-   */
-  public static SimplifiedFileObject[] browse( String path )
-  {
-    SimplifiedFileObject[] children = null;
-    FileManipulator fileManipulator = null;
-    try
-    {
-      // get a file manipulator instance
-      fileManipulator = new FileManipulator();
-      // get the path children
-      FileObject[] fileObjects = fileManipulator.browse( path );
-      children = new SimplifiedFileObject[fileObjects.length];
-      for ( int i = 0; i < fileObjects.length; i++ )
-      {
-        SimplifiedFileObject file = new SimplifiedFileObject();
-        file.setName( fileObjects[i].getName().getBaseName() );
-        file.setPath( fileObjects[i].getName().getPath() );
-        file.setFile( fileObjects[i].getType().equals( FileType.FILE ) );
-        file.setLastModificationDate( new Date( fileObjects[i].getContent().getLastModifiedTime() ) );
-        if ( fileObjects[i].getType().equals( FileType.FILE ) )
-        {
-          file.setSize( fileObjects[i].getContent().getSize() );
-        }
-        else
-        {
-          file.setSize( 0 );
-        }
-        children[i] = file;
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't browse {}", path, e );
-    }
-    finally
-    {
-      if ( fileManipulator != null )
-      {
-        fileManipulator.close();
-      }
-    }
-    return children;
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/NotifierUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/NotifierUtils.java
deleted file mode 100644
index 16f36ea..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/NotifierUtils.java
+++ /dev/null
@@ -1,96 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.apache.kalumet.model.Destination;
-import org.apache.kalumet.model.Email;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.Notifiers;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.InputStreamReader;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-/**
- * Util class to notify that an update will start.
- */
-public class NotifierUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( NotifierUtils.class );
-
-  /**
-   * Wait the count down and send e-mail to notifiers.
-   *
-   * @param environment the target environment.
-   */
-  public static void waitAndNotify( Environment environment )
-  {
-    Notifiers notifiers = environment.getNotifiers();
-    LOGGER.debug(
-      "Send e-mail to notify people for the update of the environment {} and wait the count down ({} minute(s)).",
-      environment.getName(), notifiers.getCountdown() );
-    LOGGER.debug( "Construct the e-mail content." );
-    LOGGER.debug( "Load the e-mail template." );
-    InputStreamReader notifyTemplate =
-      new InputStreamReader( NotifierUtils.class.getResourceAsStream( "/templates/notifier.html" ) );
-    Object[] values = new Object[2];
-    values[0] = environment.getName();
-    values[1] = new Integer( notifiers.getCountdown() ).toString();
-    String notifyContent = null;
-    try
-    {
-      notifyContent = EmailUtils.format( notifyTemplate, values );
-      // send the notification
-      LOGGER.debug( "Send the notification." );
-      LOGGER.debug( "Iterator on the notifier list." );
-      for ( Iterator notifierIterator = notifiers.getNotifiers().iterator(); notifierIterator.hasNext(); )
-      {
-        Email email = (Email) notifierIterator.next();
-        LOGGER.debug( "Construct the address list." );
-        LinkedList addresses = new LinkedList();
-        for ( Iterator destinationIterator = email.getDestinations().iterator(); destinationIterator.hasNext(); )
-        {
-          Destination destination = (Destination) destinationIterator.next();
-          addresses.add( VariableUtils.replace( destination.getAddress(), environment.getVariables() ) );
-        }
-        EmailUtils.sendHTMLEmail( VariableUtils.replace( email.getMailhost(), environment.getVariables() ),
-                                  VariableUtils.replace( email.getFrom(), environment.getVariables() ),
-                                  "Apache Kalumet Notification - Environment " + environment.getName(), addresses,
-                                  notifyContent );
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't send notification.", e );
-    }
-    LOGGER.debug( "Waiting for the countdown (" + notifiers.getCountdown() + " minute(s)) ..." );
-    try
-    {
-      Thread.sleep( notifiers.getCountdown() * 60 * 1000 );
-    }
-    catch ( InterruptedException interruptedException )
-    {
-      LOGGER.warn( "Can't process notification count down.", interruptedException );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/PublisherUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/PublisherUtils.java
deleted file mode 100644
index d83c362..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/PublisherUtils.java
+++ /dev/null
@@ -1,116 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.apache.commons.io.FileUtils;
-import org.apache.kalumet.FileManipulator;
-import org.apache.kalumet.model.Destination;
-import org.apache.kalumet.model.Email;
-import org.apache.kalumet.model.Environment;
-import org.apache.kalumet.model.update.UpdateLog;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.util.Iterator;
-import java.util.LinkedList;
-
-/**
- * Util to publish update results.
- */
-public class PublisherUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( PublisherUtils.class );
-
-  private final static String XSL_LOCATION = "/templates/publisher.xsl";
-
-  /**
-   * Send an e-mail with the result of the update.
-   *
-   * @param environment the target environment.
-   */
-  public static void publish( Environment environment )
-  {
-    LOGGER.debug( "Publish update result for environment {}", environment.getName() );
-    try
-    {
-      LOGGER.debug( "Iterate in the publishers list" );
-      for ( Iterator publisherIterator = environment.getPublishers().iterator(); publisherIterator.hasNext(); )
-      {
-        Email email = (Email) publisherIterator.next();
-        LOGGER.debug( "Construct the addresses list" );
-        LinkedList addresses = new LinkedList();
-        for ( Iterator destinationIterator = email.getDestinations().iterator(); destinationIterator.hasNext(); )
-        {
-          Destination destination = (Destination) destinationIterator.next();
-          addresses.add( VariableUtils.replace( destination.getAddress(), environment.getVariables() ) );
-        }
-        LOGGER.debug( "Generate the publish e-mail content" );
-        String xslFile = null;
-        try
-        {
-          xslFile = PublisherUtils.class.getResource( XSL_LOCATION ).toString();
-        }
-        catch ( Exception e )
-        {
-          LOGGER.warn( "Can't load publisher XSL file from {}", XSL_LOCATION, e );
-          xslFile = null;
-        }
-        String environmentCacheDir = FileManipulator.createEnvironmentCacheDir( environment );
-        if ( xslFile != null && xslFile.trim().length() > 0 )
-        {
-          LOGGER.debug( "XSL transformation file found, generate and send a HTML e-mail" );
-          // create the XSL transformer
-          String inputFile = environmentCacheDir + "/" + UpdateLog.MAIN_LOG_FILE;
-          LOGGER.debug( "XSL input file: {}", inputFile );
-          String outputFile = environmentCacheDir + "/cache.html";
-          LOGGER.debug( "XSL output file: {}", outputFile );
-          TransformerFactory transformerFactory = TransformerFactory.newInstance();
-          Transformer transformer = transformerFactory.newTransformer( new StreamSource( xslFile ) );
-          transformer.transform( new StreamSource( inputFile ),
-                                 new StreamResult( new FileOutputStream( outputFile ) ) );
-          EmailUtils.sendHTMLEmail( VariableUtils.replace( email.getMailhost(), environment.getVariables() ),
-                                    VariableUtils.replace( email.getFrom(), environment.getVariables() ),
-                                    "Apache Kalumet Report - Environment " + environment.getName(), addresses,
-                                    (String) FileUtils.readFileToString( new File( outputFile ), null ) );
-        }
-        else
-        {
-          LOGGER.debug( "No XSL transformation file found, send a text e-mail" );
-          EmailUtils.sendTextEmail( VariableUtils.replace( email.getMailhost(), environment.getVariables() ),
-                                    VariableUtils.replace( email.getFrom(), environment.getVariables() ),
-                                    "Apache Kalumet Report - Environmment " + environment.getName(), addresses,
-                                    (String) FileUtils.readFileToString(
-                                      new File( environmentCacheDir + "/" + UpdateLog.MAIN_LOG_FILE ) ) );
-        }
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.warn( "Can't publish update report", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/SqlScriptRunnerUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/SqlScriptRunnerUtils.java
deleted file mode 100644
index 9df798d..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/SqlScriptRunnerUtils.java
+++ /dev/null
@@ -1,186 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedReader;
-import java.io.Reader;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
-
-public class SqlScriptRunnerUtils
-{
-
-  private final static transient Logger LOGGER = LoggerFactory.getLogger( SqlScriptRunnerUtils.class );
-
-  private static final String DEFAULT_DELIMITER = ";";
-
-  private Connection connection;
-
-  private boolean stopOnError = false;
-
-  private boolean autoCommit = false;
-
-  private String delimiter = DEFAULT_DELIMITER;
-
-  private boolean fullLineDelimiter = false;
-
-  public SqlScriptRunnerUtils( Connection connection )
-  {
-    this.connection = connection;
-  }
-
-  public void setStopOnError( boolean stopOnError )
-  {
-    this.stopOnError = stopOnError;
-  }
-
-  public void setAutoCommit( boolean autoCommit )
-  {
-    this.autoCommit = autoCommit;
-  }
-
-  public void setDelimiter( String delimiter )
-  {
-    this.delimiter = delimiter;
-  }
-
-  public void setFullLineDelimiter( boolean fullLineDelimiter )
-  {
-    this.fullLineDelimiter = fullLineDelimiter;
-  }
-
-  public void runScript( Reader reader )
-    throws Exception
-  {
-    runScriptWithConnection( connection, reader );
-  }
-
-  public void closeConnection()
-  {
-    try
-    {
-      connection.close();
-    }
-    catch ( Exception e )
-    {
-      // ignore
-    }
-  }
-
-  /**
-   * Execute an SQL script (read in using the Reader parameter) using the connection passed in.
-   *
-   * @param conn   the connection to use for the script.
-   * @param reader the source of the script.
-   * @throws java.sql.SQLException if any SQL errors occur.
-   * @throws java.io.IOException   if there is an error reading from the Reader.
-   */
-  private void runScriptWithConnection( Connection conn, Reader reader )
-    throws Exception
-  {
-    StringBuffer command = null;
-    try
-    {
-      BufferedReader lineReader = new BufferedReader( reader );
-      String line;
-      while ( ( line = lineReader.readLine() ) != null )
-      {
-        if ( command == null )
-        {
-          command = new StringBuffer();
-        }
-        String trimmedLine = line.trim();
-        if ( trimmedLine.length() < 1 )
-        {
-          // do nothing
-        }
-        else if ( trimmedLine.startsWith( "//" ) || trimmedLine.startsWith( "--" ) )
-        {
-          LOGGER.info( trimmedLine );
-        }
-        else if ( !fullLineDelimiter && trimmedLine.endsWith( delimiter ) || fullLineDelimiter && trimmedLine.equals(
-          delimiter ) )
-        {
-          command.append( line.substring( 0, line.lastIndexOf( delimiter ) ) );
-          command.append( " " );
-          Statement statement = conn.createStatement();
-
-          LOGGER.info( command.toString() );
-
-          if ( stopOnError )
-          {
-            statement.execute( command.toString() );
-          }
-          else
-          {
-            try
-            {
-              statement.execute( command.toString() );
-            }
-            catch ( SQLException e )
-            {
-              e.fillInStackTrace();
-              LOGGER.warn( "Error executing SQL {}", command );
-            }
-          }
-
-          if ( autoCommit && !conn.getAutoCommit() )
-          {
-            conn.commit();
-          }
-
-          command = null;
-          try
-          {
-            statement.close();
-          }
-          catch ( Exception e )
-          {
-            // ignore to workaround a bug in Jakarta DBCP
-          }
-          Thread.yield();
-        }
-        else
-        {
-          command.append( line );
-          command.append( " " );
-        }
-      }
-      if ( !autoCommit && !conn.getAutoCommit() )
-      {
-        conn.commit();
-      }
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Error executing SQL {}", command, e );
-      throw e;
-    }
-    finally
-    {
-      conn.rollback();
-    }
-  }
-
-}
-
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/SqlScriptUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/SqlScriptUtils.java
deleted file mode 100644
index 9331ed1..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/SqlScriptUtils.java
+++ /dev/null
@@ -1,146 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.kalumet.KalumetException;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedReader;
-import java.io.FileInputStream;
-import java.io.InputStreamReader;
-import java.sql.Connection;
-import java.sql.DriverManager;
-
-/**
- * SQL script execution utils.
- */
-public class SqlScriptUtils
-{
-
-  private static final transient Logger LOGGER = LoggerFactory.getLogger( SqlScriptUtils.class );
-
-  /**
-   * Execute a SQL script using a system command.
-   *
-   * @param path    the SQL script path.
-   * @param command the system command to use for SQL script execution.
-   * @return the SQL script execution output.
-   * @throws KalumetException in case of error during the SQL script execution.
-   */
-  public static String executeUsingCommand( String path, String command )
-    throws KalumetException
-  {
-    LOGGER.info( "Executing SQL script {} using command {}", path, command );
-    // replace %s by the SQL script path in the command
-    LOGGER.debug( "Replacing %s by the SQL script path in the command" );
-    String execCommand = StringUtils.replace( command, "%s", path );
-    LOGGER.debug( "Executing the SQL command" );
-    String output = null;
-    try
-    {
-      output = CommandUtils.execute( execCommand );
-    }
-    catch ( KalumetException kalumetException )
-    {
-      LOGGER.error( "SQL script {} execution failed", path, kalumetException );
-      throw new KalumetException( "SQL script " + path + " execution failed", kalumetException );
-    }
-    return output;
-  }
-
-  /**
-   * Execute a SQL script using a JDBC connection.
-   *
-   * @param path     the SQL script path.
-   * @param driver   the JDBC connection driver class name.
-   * @param user     the JDBC connection user name.
-   * @param password the JDBC connection user password.
-   * @param url      the JDBC connection URL.
-   * @throws KalumetException in case of error during the SQL script execution.
-   */
-  public static void executeUsingJdbc( String path, String driver, String user, String password, String url )
-    throws KalumetException
-  {
-    LOGGER.info( "Executing SQL script {} using JDBC connection {}", path, url );
-    Connection connection = null;
-    try
-    {
-      // creates JDBC connection.
-      LOGGER.debug( "Creating JDBC connection" );
-      connection = SqlScriptUtils.getConnection( driver, user, password, url );
-      // creates the SQL script buffered reader.
-      LOGGER.debug( "Creating the SQL script buffered reader" );
-      BufferedReader reader =
-        new BufferedReader( new InputStreamReader( new BufferedInputStream( new FileInputStream( path ) ) ) );
-      // uses the SQL script runner
-      LOGGER.debug( "Call SQL script runner" );
-      SqlScriptRunnerUtils sqlScriptRunner = new SqlScriptRunnerUtils( connection );
-      sqlScriptRunner.setAutoCommit( true );
-      sqlScriptRunner.setStopOnError( true );
-      sqlScriptRunner.runScript( reader );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "SQL script {} execution failed", path, e );
-      throw new KalumetException( "SQL script " + path + " execution failed", e );
-    }
-    finally
-    {
-      if ( connection != null )
-      {
-        try
-        {
-          connection.close();
-        }
-        catch ( Exception e )
-        {
-          LOGGER.warn( "Can't close the JDBC connection", e );
-        }
-      }
-    }
-  }
-
-  /**
-   * Create a JDBC connection.
-   *
-   * @param driver   the JDBC driver class name.
-   * @param user     the JDBC user name.
-   * @param password the JDBC user password.
-   * @param url      the JDBC URL.
-   * @return the JDBC connection.
-   */
-  private static Connection getConnection( String driver, String user, String password, String url )
-    throws KalumetException
-  {
-    try
-    {
-      Class.forName( driver );
-      return DriverManager.getConnection( url, user, password );
-    }
-    catch ( Exception e )
-    {
-      LOGGER.error( "Can't create JDBC connection", e );
-      throw new KalumetException( "Can't create JDBC connection", e );
-    }
-  }
-
-}
diff --git a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/VariableUtils.java b/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/VariableUtils.java
deleted file mode 100644
index 5cd2091..0000000
--- a/0.6.x/kalumet-modules/utils/src/main/java/org/apache/kalumet/utils/VariableUtils.java
+++ /dev/null
@@ -1,51 +0,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.
- */
-package org.apache.kalumet.utils;
-
-import org.apache.commons.lang.StringUtils;
-import org.apache.kalumet.model.Variable;
-
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * Util class to search and replace variables in string.
- */
-public class VariableUtils
-{
-
-  /**
-   * Replace all given variables in a string.
-   *
-   * @param source    the source string.
-   * @param variables the variables list.
-   * @return the string with variables replaced.
-   */
-  public final static String replace( String source, List variables )
-  {
-    String replaced = source;
-    for ( Iterator variableIterator = variables.iterator(); variableIterator.hasNext(); )
-    {
-      Variable variable = (Variable) variableIterator.next();
-      replaced = StringUtils.replace( replaced, "${" + variable.getName() + "}", variable.getValue() );
-    }
-    return replaced;
-  }
-
-}
diff --git a/0.6.x/pom.xml b/0.6.x/pom.xml
deleted file mode 100644
index 307bd8c..0000000
--- a/0.6.x/pom.xml
+++ /dev/null
@@ -1,570 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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/xsd/maven-4.0.0.xsd">
-
-  <!--
-
-      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.
-  -->
-
-  <modelVersion>4.0.0</modelVersion>
-
-  <parent>
-    <groupId>org.apache</groupId>
-    <artifactId>apache</artifactId>
-    <version>12</version>
-  </parent>
-
-  <groupId>org.apache.kalumet</groupId>
-  <artifactId>kalumet</artifactId>
-  <packaging>pom</packaging>
-  <version>0.6-incubating</version>
-  <name>Apache Kalumet</name>
-  <inceptionYear>2011</inceptionYear>
-
-  <modules>
-    <module>kalumet-modules</module>
-    <module>documentation</module>
-    <module>assembly</module>
-  </modules>
-
-  <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/incubator/kalumet/tags/kalumet-0.6-incubating</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/kalumet/tags/kalumet-0.6-incubating</developerConnection>
-    <url>http://svn.apache.org/viewvc/incubator/kalumet/tags/kalumet-0.6-incubating</url>
-  </scm>
-
-  <issueManagement>
-    <system>jira</system>
-    <url>https://issues.apache.org/jira/browse/KALUMET</url>
-  </issueManagement>
-
-  <ciManagement>
-    <system>jenkins</system>
-    <url>https://builds.apache.org/view/G-L/view/Kalumet/</url>
-  </ciManagement>
-
-  <mailingLists>
-    <mailingList>
-      <name>Kalumet Dev</name>
-      <subscribe>kalumet-dev-subscribe@incubator.apache.org</subscribe>
-      <unsubscribe>kalumet-dev-unsubscribe@incubator.apache.org</unsubscribe>
-      <post>-</post>
-      <archive>http://www.mail-archive.com/kalumet-dev%40incubator.apache.org</archive>
-    </mailingList>
-    <mailingList>
-      <name>Kalumet User</name>
-      <subscribe>kalumet-user-subscribe@incubator.apache.org</subscribe>
-      <unsubscribe>kalumet-user-unsubscribe@incubator.apache.org</unsubscribe>
-      <post>-</post>
-      <archive>http://www.mail-archive.com/kalumet-user%40incubator.apache.org</archive>
-    </mailingList>
-    <mailingList>
-      <name>Kalumet Commits</name>
-      <subscribe>kalumet-commits-subscribe@incubator.apache.org</subscribe>
-      <unsubscribe>kalumet-commits-unsubscribe@incubator.apache.org</unsubscribe>
-      <post>-</post>
-      <archive>http://www.mail-archive.com/kalumet-commits%40incubator.apache.org</archive>
-    </mailingList>
-    <mailingList>
-      <name>Kalumet Issues</name>
-      <subscribe>kalumet-issues-subscribe@incubator.apache.org</subscribe>
-      <unsubscribe>kalumet-issues-unsubscribe@incubator.apache.org</unsubscribe>
-      <post>-</post>
-      <archive>http://www.mail-archive.com/kalumet-issues%40incubator.apache.org</archive>
-    </mailingList>
-  </mailingLists>
-
-  <developers>
-    <developer>
-      <id>jbonofre</id>
-      <name>Jean-Baptiste Onofré</name>
-      <email>jbonofre@apache.org</email>
-    </developer>
-    <developer>
-      <id>olamy</id>
-      <name>Olivier Lamy</name>
-      <email>olamy@apache.org</email>
-    </developer>
-    <developer>
-      <id>imod</id>
-      <name>Dominik Bartholdi</name>
-      <email>domi@fortysix.ch</email>
-    </developer>
-    <developer>
-      <id>mduffy</id>
-      <name>Mike Duffy</name>
-      <email>micduffy@gmail.com</email>
-    </developer>
-    <developer>
-      <id>iocanel</id>
-      <name>Ioannis Canellos</name>
-      <email>iocanel@apache.org</email>
-    </developer>
-    <developer>
-      <id>pieber</id>
-      <name>Andreas Pieber</name>
-      <email>pieber@apache.org</email>
-    </developer>
-    <developer>
-      <id>anierbeck</id>
-      <name>Achim Nierbeck</name>
-      <email>anierbeck@apache.org</email>
-    </developer>
-    <developer>
-      <id>jgoodyear</id>
-      <name>Jamie Goodyear</name>
-      <email>jgoodyear@apache.org</email>
-    </developer>
-    <developer>
-      <id>yly</id>
-      <name>Youhort Ly</name>
-      <email>youhort@gmail.com</email>
-    </developer>
-    <developer>
-      <id>trimmer</id>
-      <name>Terri-Lynn Rimmer</name>
-      <email>trimmer@apache.org</email>
-    </developer>
-    <developer>
-      <id>mikevan</id>
-      <name>Mike Ven Geertruy</name>
-      <email>mvangeertruy@comcast.net</email>
-    </developer>
-  </developers>
-
-  <prerequisites>
-    <maven>3.0.3</maven>
-  </prerequisites>
-
-  <properties>
-    <axis.version>1.4</axis.version>
-    <axis-wsdl4j.version>1.5.1</axis-wsdl4j.version>
-    <classworlds.version>1.1</classworlds.version>
-    <concurrent.version>1.3.4</concurrent.version>
-    <commons-beanutils.version>1.8.3</commons-beanutils.version>
-    <commons-cli.version>1.2</commons-cli.version>
-    <commons-codec.version>1.5</commons-codec.version>
-    <commons-collections.version>3.2.1</commons-collections.version>
-    <commons-compress.version>20050911</commons-compress.version>
-    <commons-digester.version>1.8.1</commons-digester.version>
-    <commons-discovery.version>0.5</commons-discovery.version>
-    <commons-email.version>1.1</commons-email.version>
-    <commons-httpclient.version>3.1</commons-httpclient.version>
-    <commons-io.version>2.1</commons-io.version>
-    <commons-lang.version>2.6</commons-lang.version>
-    <commons-net.version>3.0.1</commons-net.version>
-    <commons-vfs.version>1.0</commons-vfs.version>
-    <echo2.version>2.1.1</echo2.version>
-    <echo2.extras.version>2.1.0</echo2.extras.version>
-    <junit.version>4.9</junit.version>
-    <jta.version>1.1.1</jta.version>
-    <log4j.version>1.2.16</log4j.version>
-    <oro.version>2.0.8</oro.version>
-    <quartz.version>1.6.3</quartz.version>
-    <slf4j.version>1.6.3</slf4j.version>
-    <xalan.version>2.7.1</xalan.version>
-    <xerces.version>2.9.1</xerces.version>
-    <xml-apis.version>2.0.2</xml-apis.version>
-
-    <sonar.host.url>https://analysis.apache.org/</sonar.host.url>
-
-    <javadoc-plugin.version>2.8.1</javadoc-plugin.version>
-    <project-info-reports-plugin.version>2.6</project-info-reports-plugin.version>
-  </properties>
-
-  <repositories>
-    <repository>
-      <id>apache.extras.kalumet.m2</id>
-      <name>Apache Extras Kalumet M2 repo</name>
-      <url>http://svn.codespot.com/a/apache-extras.org/kalumet-extras/m2-repo/</url>
-      <releases>
-        <enabled>true</enabled>
-      </releases>
-      <snapshots>
-        <enabled>false</enabled>
-      </snapshots>
-    </repository>
-    <repository>
-      <id>plexus.snapshots</id>
-      <url>https://oss.sonatype.org/content/repositories/plexus-snapshots/</url>
-      <releases>
-        <enabled>false</enabled>
-      </releases>
-      <snapshots>
-        <enabled>true</enabled>
-      </snapshots>
-    </repository>
-  </repositories>
-
-  <dependencyManagement>
-    <dependencies>
-      <dependency>
-        <groupId>axis</groupId>
-        <artifactId>axis</artifactId>
-        <version>${axis.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>axis</groupId>
-        <artifactId>axis-jaxrpc</artifactId>
-        <version>${axis.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>axis</groupId>
-        <artifactId>axis-saaj</artifactId>
-        <version>${axis.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>axis</groupId>
-        <artifactId>axis-wsdl4j</artifactId>
-        <version>${axis-wsdl4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>classworlds</groupId>
-        <artifactId>classworlds</artifactId>
-        <version>${classworlds.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>concurrent</groupId>
-        <artifactId>concurrent</artifactId>
-        <version>${concurrent.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-beanutils</groupId>
-        <artifactId>commons-beanutils</artifactId>
-        <version>${commons-beanutils.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-cli</groupId>
-        <artifactId>commons-cli</artifactId>
-        <version>${commons-cli.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-codec</groupId>
-        <artifactId>commons-codec</artifactId>
-        <version>${commons-codec.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-collections</groupId>
-        <artifactId>commons-collections</artifactId>
-        <version>${commons-collections.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-compress</groupId>
-        <artifactId>commons-compress</artifactId>
-        <version>${commons-compress.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-digester</groupId>
-        <artifactId>commons-digester</artifactId>
-        <version>${commons-digester.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-discovery</groupId>
-        <artifactId>commons-discovery</artifactId>
-        <version>${commons-discovery.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.commons</groupId>
-        <artifactId>commons-email</artifactId>
-        <version>${commons-email.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-httpclient</groupId>
-        <artifactId>commons-httpclient</artifactId>
-        <version>${commons-httpclient.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-io</groupId>
-        <artifactId>commons-io</artifactId>
-        <version>${commons-io.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-lang</groupId>
-        <artifactId>commons-lang</artifactId>
-        <version>${commons-lang.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-net</groupId>
-        <artifactId>commons-net</artifactId>
-        <version>${commons-net.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>commons-vfs</groupId>
-        <artifactId>commons-vfs</artifactId>
-        <version>${commons-vfs.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.nextapp.echo</groupId>
-        <artifactId>app</artifactId>
-        <version>${echo2.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.nextapp.echo</groupId>
-        <artifactId>webcontainer</artifactId>
-        <version>${echo2.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.nextapp.echo</groupId>
-        <artifactId>webrender</artifactId>
-        <version>${echo2.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.nextapp.echo.extras</groupId>
-        <artifactId>app</artifactId>
-        <version>${echo2.extras.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>com.nextapp.echo.extras</groupId>
-        <artifactId>webcontainer</artifactId>
-        <version>${echo2.extras.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>junit</groupId>
-        <artifactId>junit</artifactId>
-        <version>${junit.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>log4j</groupId>
-        <artifactId>log4j</artifactId>
-        <version>${log4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>opensymphony</groupId>
-        <artifactId>quartz</artifactId>
-        <version>${quartz.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>oro</groupId>
-        <artifactId>oro</artifactId>
-        <version>${oro.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.geronimo.specs</groupId>
-        <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
-        <version>${jta.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kalumet</groupId>
-        <artifactId>org.apache.kalumet.agent</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kalumet</groupId>
-        <artifactId>org.apache.kalumet.common</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kalumet.controller</groupId>
-        <artifactId>org.apache.kalumet.controller.core</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kalumet</groupId>
-        <artifactId>org.apache.kalumet.utils</artifactId>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.apache.kalumet</groupId>
-        <artifactId>org.apache.kalumet.console</artifactId>
-        <type>war</type>
-        <version>${project.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-api</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.slf4j</groupId>
-        <artifactId>slf4j-log4j12</artifactId>
-        <version>${slf4j.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>xalan</groupId>
-        <artifactId>serializer</artifactId>
-        <version>${xalan.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>xalan</groupId>
-        <artifactId>xalan</artifactId>
-        <version>${xalan.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>xerces</groupId>
-        <artifactId>xercesImpl</artifactId>
-        <version>${xerces.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>xml-apis</groupId>
-        <artifactId>xml-apis</artifactId>
-        <version>${xml-apis.version}</version>
-      </dependency>
-    </dependencies>
-  </dependencyManagement>
-
-  <dependencies>
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-
-  <build>
-    <pluginManagement>
-      <plugins>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-assembly-plugin</artifactId>
-          <version>2.4</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-clean-plugin</artifactId>
-          <version>2.4.1</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-javadoc-plugin</artifactId>
-          <version>${javadoc-plugin.version}</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-release-plugin</artifactId>
-          <version>2.3.2</version>
-          <configuration>
-            <tagBase>https://svn.apache.org/repos/asf/incubator/kalumet/tags</tagBase>
-            <autoVersionSubmodules>true</autoVersionSubmodules>
-          </configuration>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-resources-plugin</artifactId>
-          <version>2.5</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-remote-resources-plugin</artifactId>
-          <version>1.3</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-site-plugin</artifactId>
-          <version>3.2</version>
-          <dependencies>
-            <dependency>
-              <groupId>org.apache.maven.wagon</groupId>
-              <artifactId>wagon-ssh-external</artifactId>
-              <version>2.2</version>
-            </dependency>
-            <dependency>
-              <groupId>org.apache.maven.wagon</groupId>
-              <artifactId>wagon-ssh</artifactId>
-              <version>2.2</version>
-            </dependency>
-          </dependencies>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-surefire-plugin</artifactId>
-          <version>2.12.4</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.maven.plugins</groupId>
-          <artifactId>maven-war-plugin</artifactId>
-          <version>2.3</version>
-        </plugin>
-        <plugin>
-          <groupId>org.apache.tomcat.maven</groupId>
-          <artifactId>tomcat7-maven-plugin</artifactId>
-          <version>2.0</version>
-        </plugin>
-      </plugins>
-    </pluginManagement>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-compiler-plugin</artifactId>
-        <version>2.5.1</version>
-        <configuration>
-          <source>1.5</source>
-          <target>1.5</target>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.maven.plugins</groupId>
-        <artifactId>maven-jar-plugin</artifactId>
-        <configuration>
-          <archive>
-            <manifest>
-              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
-              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
-            </manifest>
-          </archive>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.codehaus.mojo</groupId>
-        <artifactId>animal-sniffer-maven-plugin</artifactId>
-        <version>1.6</version>
-        <configuration>
-          <signature>
-            <groupId>org.codehaus.mojo.signature</groupId>
-            <artifactId>java15</artifactId>
-            <version>1.0</version>
-          </signature>
-        </configuration>
-        <executions>
-          <execution>
-            <id>check-java-1.5-compat</id>
-            <phase>process-classes</phase>
-            <goals>
-              <goal>check</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.rat</groupId>
-        <artifactId>apache-rat-plugin</artifactId>
-        <version>0.8</version>
-        <executions>
-          <execution>
-            <id>rat-verify</id>
-            <phase>test</phase>
-            <goals>
-              <goal>check</goal>
-            </goals>
-            <configuration>
-              <excludes>
-                <exclude>.gitignore</exclude>
-                <exclude>DEPENDENCIES</exclude>
-                <exclude>README.txt</exclude>
-                <exclude>*.sh</exclude>
-                <exclude>.git/**</exclude>
-                <exclude>.idea/**</exclude>
-                <exclude>*.bat</exclude>
-                <exclude>**/*.iml</exclude>
-                <exclude>**/*.log</exclude>
-              </excludes>
-            </configuration>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
-
-</project>
diff --git a/0.6.x/KEYS b/KEYS
similarity index 100%
rename from 0.6.x/KEYS
rename to KEYS
diff --git a/LICENSE b/LICENSE
index bf7e37c..2a4cd78 100644
--- a/LICENSE
+++ b/LICENSE
@@ -201,7 +201,34 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 
-For classworlds
+==========================================================================
+The Apache License, Version 2.0 applies to the following libraries:
+axis, quartz
+
+==========================================================================
+The following license applies to the slf4j library
+--------------------------------------------------------------------------
+ Copyright (c) 2004-2013 QOS.ch All rights reserved. Permission 
+ is hereby granted, free of charge, to any person obtaining a copy 
+ of this software and associated documentation files (the "Software"), 
+ to deal in the Software without restriction, including without limitation 
+ the rights to use, copy, modify, merge, publish, distribute, sublicense, 
+ and/or sell copies of the Software, and to permit persons to whom the 
+ Software is furnished to do so, subject to the following conditions: 
+ The above copyright notice and this permission notice shall be included 
+ in all copies or substantial portions of the Software. 
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+ SOFTWARE.
+
+==========================================================================
+The following license applies to the classworlds library
+--------------------------------------------------------------------------
 /*
  $Id: LICENSE.txt,v 1.1.1.1 2003/07/29 04:37:59 bob Exp $
 
@@ -248,39 +275,381 @@
 
  */
 
-For quartz
-Quartz Scheduler source code and documentation are Copyright (c) 2001-2010 Terracotta, Inc.
+==========================================================================
+The following license applies to the Echo2 library
+--------------------------------------------------------------------------
 
-Quartz Scheduler is licensed under the Apache License, Version 2.0 (the "License"); you may
-not use Quartz binaries or source in whole or in part except in compliance with the License.
-You may obtain a copy of the License at:
+Mozilla Public License Version 2.0
+==================================
 
-http://www.apache.org/licenses/LICENSE-2.0
+1. Definitions
+--------------
 
-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.
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
 
-For slf4j
-Copyright (c) 2004-2011 QOS.ch
-All rights reserved.
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
 
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
 
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in 
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
+
diff --git a/NOTICE b/NOTICE
index 896f9b5..05c3ba6 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,8 +1,5 @@
 Apache Kalumet

-Copyright 2012 The Apache Software Foundation

-

-

-I. Included Software

+Copyright 2013 The Apache Software Foundation

 

 This product includes software developed at

 The Apache Software Foundation (http://www.apache.org/).

@@ -13,13 +10,5 @@
 Licensed under the MIT License.

 

 This product includes software developed at

-Codehaus (http://www.codehaus.org/)

-Licensed under the Apache License 2.0.

-

-This product includes software developed at

-Terracota (http://www.quartz-scheduler.org/)

-Licensed under the Apache License 2.0.

-

-II. License Summary

-- Apache License 2.0

-- MIT License

+NextApp (http://www.nextapp.com).

+Licensed under the Mozilla Public License.

diff --git a/assembly/NOTICE b/assembly/NOTICE
index 5ea0b8f..05c3ba6 100644
--- a/assembly/NOTICE
+++ b/assembly/NOTICE
@@ -1,19 +1,14 @@
 Apache Kalumet

-Copyright 2011 The Apache Software Foundation

-

-

-I. Included Software

+Copyright 2013 The Apache Software Foundation

 

 This product includes software developed at

 The Apache Software Foundation (http://www.apache.org/).

 Licensed under the Apache License 2.0.

 

-

-II. Used Software

-

-This product uses software developed at

+This product includes software developed at

 SLF4J (http://www.slf4j.org/).

 Licensed under the MIT License.

 

-III. License Summary

-- Apache License 2.0

+This product includes software developed at

+NextApp (http://www.nextapp.com).

+Licensed under the Mozilla Public License.

diff --git a/assembly/src/main/distribution/src/LICENSE b/assembly/src/main/distribution/src/LICENSE
index 7a4a3ea..2a4cd78 100644
--- a/assembly/src/main/distribution/src/LICENSE
+++ b/assembly/src/main/distribution/src/LICENSE
@@ -199,4 +199,457 @@
    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.
\ No newline at end of file
+   limitations under the License.
+
+==========================================================================
+The Apache License, Version 2.0 applies to the following libraries:
+axis, quartz
+
+==========================================================================
+The following license applies to the slf4j library
+--------------------------------------------------------------------------
+ Copyright (c) 2004-2013 QOS.ch All rights reserved. Permission 
+ is hereby granted, free of charge, to any person obtaining a copy 
+ of this software and associated documentation files (the "Software"), 
+ to deal in the Software without restriction, including without limitation 
+ the rights to use, copy, modify, merge, publish, distribute, sublicense, 
+ and/or sell copies of the Software, and to permit persons to whom the 
+ Software is furnished to do so, subject to the following conditions: 
+ The above copyright notice and this permission notice shall be included 
+ in all copies or substantial portions of the Software. 
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+ SOFTWARE.
+
+==========================================================================
+The following license applies to the classworlds library
+--------------------------------------------------------------------------
+/*
+ $Id: LICENSE.txt,v 1.1.1.1 2003/07/29 04:37:59 bob Exp $
+
+ Copyright 2002 (C) The Codehaus. All Rights Reserved.
+
+ Redistribution and use of this software and associated documentation
+ ("Software"), with or without modification, are permitted provided
+ that the following conditions are met:
+
+ 1. Redistributions of source code must retain copyright
+    statements and notices.  Redistributions must also contain a
+    copy of this document.
+
+ 2. Redistributions in binary form must reproduce the
+    above copyright notice, this list of conditions and the
+    following disclaimer in the documentation and/or other
+    materials provided with the distribution.
+
+ 3. The name "classworlds" must not be used to endorse or promote
+    products derived from this Software without prior written
+    permission of The Codehaus.  For written permission, please
+    contact bob@codehaus.org.
+
+ 4. Products derived from this Software may not be called "classworlds"
+    nor may "classworlds" appear in their names without prior written
+    permission of The Codehaus. "classworlds" is a registered
+    trademark of The Codehaus.
+
+ 5. Due credit should be given to The Codehaus.
+    (http://classworlds.codehaus.org/).
+
+ THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ */
+
+==========================================================================
+The following license applies to the Echo2 library
+--------------------------------------------------------------------------
+
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in 
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
+
diff --git a/assembly/src/main/distribution/src/NOTICE b/assembly/src/main/distribution/src/NOTICE
index 4619bd7..05c3ba6 100644
--- a/assembly/src/main/distribution/src/NOTICE
+++ b/assembly/src/main/distribution/src/NOTICE
@@ -1,2 +1,14 @@
 Apache Kalumet

-Copyright 2012 The Apache Software Foundation

+Copyright 2013 The Apache Software Foundation

+

+This product includes software developed at

+The Apache Software Foundation (http://www.apache.org/).

+Licensed under the Apache License 2.0.

+

+This product includes software developed at

+SLF4J (http://www.slf4j.org/).

+Licensed under the MIT License.

+

+This product includes software developed at

+NextApp (http://www.nextapp.com).

+Licensed under the Mozilla Public License.

diff --git a/documentation/pom.xml b/documentation/pom.xml
index 6c48b21..7c5167b 100644
--- a/documentation/pom.xml
+++ b/documentation/pom.xml
@@ -33,12 +33,20 @@
   <name>Apache Kalumet :: Documentation</name>
   <url>http://incubator.apache.org/kalumet/docs/${project.version}</url>
 
+  <properties>
+    <svnUrl>https://svn.apache.org/repos/asf/incubator/kalumet/site-content/docs/${project.version}</svnUrl>
+    <scmPubCheckoutDirectory>site-content</scmPubCheckoutDirectory>
+  </properties>
+
   <build>
     <plugins>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-site-plugin</artifactId>
-        <version>3.1</version>
+        <version>3.2</version>
+        <configuration>
+          <skipDeploy>true</skipDeploy>
+        </configuration>
         <executions>
           <execution>
             <id>site</id>
@@ -47,14 +55,37 @@
               <goal>site</goal>
             </goals>
           </execution>
+          <execution>
+            <id>stage-for-scm-publish</id>
+            <phase>post-site</phase>
+            <goals>
+              <goal>stage</goal>
+            </goals>
+            <configuration>
+              <skipDeploy>false</skipDeploy>
+            </configuration>
+          </execution>
         </executions>
-        <dependencies>
-          <dependency>
-            <groupId>org.codehaus.plexus</groupId>
-            <artifactId>plexus-utils</artifactId>
-            <version>3.0.2</version>
-          </dependency>
-        </dependencies>
+      </plugin>
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-scm-publish-plugin</artifactId>
+        <version>1.0-beta-2</version>
+        <configuration>
+          <checkoutDirectory>${scmPubCheckoutDirectory}</checkoutDirectory>
+          <tryUpdate>true</tryUpdate>
+          <skipDeletedFiles>false</skipDeletedFiles>
+          <checkinComment>Apache Kalumet Docs site deployment</checkinComment>
+        </configuration>
+        <executions>
+          <execution>
+            <id>scm-publish</id>
+            <phase>site-deploy</phase>
+            <goals>
+              <goal>publish-scm</goal>
+            </goals>
+          </execution>
+        </executions>
       </plugin>
       <plugin>
         <groupId>org.apache.maven.plugins</groupId>
@@ -99,7 +130,7 @@
   <distributionManagement>
     <site>
       <id>apache.website</id>
-      <url>${siteBaseDeployment}/docs/${project.version}</url>
+      <url>scm:svn:${svnUrl}</url>
     </site>
   </distributionManagement>
 
@@ -120,6 +151,47 @@
                 </goals>
               </execution>
             </executions>
+            <dependencies>
+              <dependency>
+                <groupId>org.codehaus.plexus</groupId>
+                <artifactId>plexus-utils</artifactId>
+                <version>3.0.9</version>
+              </dependency>
+            </dependencies>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+    <profile>
+      <id>setup-checkout</id>
+      <activation>
+        <file>
+          <missing>site-content</missing>
+        </file>
+      </activation>
+      <build>
+        <plugins>
+          <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-antrun-plugin</artifactId>
+            <version>1.7</version>
+            <executions>
+              <execution>
+                <id>prepare-checkout</id>
+                <phase>pre-site</phase>
+                <goals>
+                  <goal>run</goal>
+                </goals>
+                <configuration>
+                  <tasks>
+                    <exec executable="svn">
+                      <arg line="checkout ${svnUrl} ${scmPubCheckoutDirectory}" />
+                    </exec>
+
+                  </tasks>
+                </configuration>
+              </execution>
+            </executions>
           </plugin>
         </plugins>
       </build>
diff --git a/documentation/src/site/site.xml b/documentation/src/site/site.xml
index dba2106..31db37d 100644
--- a/documentation/src/site/site.xml
+++ b/documentation/src/site/site.xml
@@ -33,6 +33,18 @@
   <publishDate format="yyyy-MM-dd" position="right"/>
   <version position="right"/>
 
+  <custom>
+    <fluidoSkin>
+      <topBarEnabled>true</topBarEnabled>
+      <sideBarEnabled>false</sideBarEnabled>
+      <googleSearch></googleSearch>
+      <ohloh>
+        <projectId>587563</projectId>
+        <widget>stats</widget>
+      </ohloh>
+    </fluidoSkin>
+  </custom>
+
   <body>
 
     <breadcrumbs>
@@ -47,7 +59,7 @@
     </menu>
 
     <menu name="Administrator Guide">
-      <item name="Installation">
+      <item name="Installation" href="">
         <item name="Agent installation" href="/adminguide/agent.html"/>
         <item name="Console installation" href="/adminguide/console.html"/>
       </item>
@@ -59,11 +71,11 @@
       <item name="Agents" href="/userguide/agents.html"/>
       <item name="Users and Groups" href="/userguide/users_groups.html"/>
       <item name="Statistics" href="/userguide/statistics.html"/>
-      <item name="Environment">
+      <item name="Environment" href="">
         <item name="General" href="/userguide/environment/general.html"/>
         <item name="Security Access Lists" href="/userguide/environment/security.html"/>
         <item name="JEE Application Servers" href="/userguide/environment/jee_application_server.html"/>
-        <item name="JEE Resources">
+        <item name="JEE Resources" href="">
           <item name="JDBC Connection Pools" href="/userguide/environment/jdbc_connection_pools.html"/>
           <item name="JDBC Data Sources" href="/userguide/environment/jdbc_datasources.html"/>
           <item name="JMS Connection Factories" href="/userguide/environment/jms_connectionfactories.html"/>
diff --git a/kalumet-modules/common/src/test/resources/LICENSE b/kalumet-modules/common/src/test/resources/LICENSE
index 6b0b127..2a4cd78 100644
--- a/kalumet-modules/common/src/test/resources/LICENSE
+++ b/kalumet-modules/common/src/test/resources/LICENSE
@@ -201,3 +201,455 @@
    See the License for the specific language governing permissions and
    limitations under the License.
 
+==========================================================================
+The Apache License, Version 2.0 applies to the following libraries:
+axis, quartz
+
+==========================================================================
+The following license applies to the slf4j library
+--------------------------------------------------------------------------
+ Copyright (c) 2004-2013 QOS.ch All rights reserved. Permission 
+ is hereby granted, free of charge, to any person obtaining a copy 
+ of this software and associated documentation files (the "Software"), 
+ to deal in the Software without restriction, including without limitation 
+ the rights to use, copy, modify, merge, publish, distribute, sublicense, 
+ and/or sell copies of the Software, and to permit persons to whom the 
+ Software is furnished to do so, subject to the following conditions: 
+ The above copyright notice and this permission notice shall be included 
+ in all copies or substantial portions of the Software. 
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
+ OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 
+ THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 
+ SOFTWARE.
+
+==========================================================================
+The following license applies to the classworlds library
+--------------------------------------------------------------------------
+/*
+ $Id: LICENSE.txt,v 1.1.1.1 2003/07/29 04:37:59 bob Exp $
+
+ Copyright 2002 (C) The Codehaus. All Rights Reserved.
+
+ Redistribution and use of this software and associated documentation
+ ("Software"), with or without modification, are permitted provided
+ that the following conditions are met:
+
+ 1. Redistributions of source code must retain copyright
+    statements and notices.  Redistributions must also contain a
+    copy of this document.
+
+ 2. Redistributions in binary form must reproduce the
+    above copyright notice, this list of conditions and the
+    following disclaimer in the documentation and/or other
+    materials provided with the distribution.
+
+ 3. The name "classworlds" must not be used to endorse or promote
+    products derived from this Software without prior written
+    permission of The Codehaus.  For written permission, please
+    contact bob@codehaus.org.
+
+ 4. Products derived from this Software may not be called "classworlds"
+    nor may "classworlds" appear in their names without prior written
+    permission of The Codehaus. "classworlds" is a registered
+    trademark of The Codehaus.
+
+ 5. Due credit should be given to The Codehaus.
+    (http://classworlds.codehaus.org/).
+
+ THIS SOFTWARE IS PROVIDED BY THE CODEHAUS AND CONTRIBUTORS
+ ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
+ NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ THE CODEHAUS OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ */
+
+==========================================================================
+The following license applies to the Echo2 library
+--------------------------------------------------------------------------
+
+Mozilla Public License Version 2.0
+==================================
+
+1. Definitions
+--------------
+
+1.1. "Contributor"
+    means each individual or legal entity that creates, contributes to
+    the creation of, or owns Covered Software.
+
+1.2. "Contributor Version"
+    means the combination of the Contributions of others (if any) used
+    by a Contributor and that particular Contributor's Contribution.
+
+1.3. "Contribution"
+    means Covered Software of a particular Contributor.
+
+1.4. "Covered Software"
+    means Source Code Form to which the initial Contributor has attached
+    the notice in Exhibit A, the Executable Form of such Source Code
+    Form, and Modifications of such Source Code Form, in each case
+    including portions thereof.
+
+1.5. "Incompatible With Secondary Licenses"
+    means
+
+    (a) that the initial Contributor has attached the notice described
+        in Exhibit B to the Covered Software; or
+
+    (b) that the Covered Software was made available under the terms of
+        version 1.1 or earlier of the License, but not also under the
+        terms of a Secondary License.
+
+1.6. "Executable Form"
+    means any form of the work other than Source Code Form.
+
+1.7. "Larger Work"
+    means a work that combines Covered Software with other material, in 
+    a separate file or files, that is not Covered Software.
+
+1.8. "License"
+    means this document.
+
+1.9. "Licensable"
+    means having the right to grant, to the maximum extent possible,
+    whether at the time of the initial grant or subsequently, any and
+    all of the rights conveyed by this License.
+
+1.10. "Modifications"
+    means any of the following:
+
+    (a) any file in Source Code Form that results from an addition to,
+        deletion from, or modification of the contents of Covered
+        Software; or
+
+    (b) any new file in Source Code Form that contains any Covered
+        Software.
+
+1.11. "Patent Claims" of a Contributor
+    means any patent claim(s), including without limitation, method,
+    process, and apparatus claims, in any patent Licensable by such
+    Contributor that would be infringed, but for the grant of the
+    License, by the making, using, selling, offering for sale, having
+    made, import, or transfer of either its Contributions or its
+    Contributor Version.
+
+1.12. "Secondary License"
+    means either the GNU General Public License, Version 2.0, the GNU
+    Lesser General Public License, Version 2.1, the GNU Affero General
+    Public License, Version 3.0, or any later versions of those
+    licenses.
+
+1.13. "Source Code Form"
+    means the form of the work preferred for making modifications.
+
+1.14. "You" (or "Your")
+    means an individual or a legal entity exercising rights under this
+    License. For legal entities, "You" includes any entity that
+    controls, is controlled by, or is under common control with You. For
+    purposes of this definition, "control" means (a) the power, direct
+    or indirect, to cause the direction or management of such entity,
+    whether by contract or otherwise, or (b) ownership of more than
+    fifty percent (50%) of the outstanding shares or beneficial
+    ownership of such entity.
+
+2. License Grants and Conditions
+--------------------------------
+
+2.1. Grants
+
+Each Contributor hereby grants You a world-wide, royalty-free,
+non-exclusive license:
+
+(a) under intellectual property rights (other than patent or trademark)
+    Licensable by such Contributor to use, reproduce, make available,
+    modify, display, perform, distribute, and otherwise exploit its
+    Contributions, either on an unmodified basis, with Modifications, or
+    as part of a Larger Work; and
+
+(b) under Patent Claims of such Contributor to make, use, sell, offer
+    for sale, have made, import, and otherwise transfer either its
+    Contributions or its Contributor Version.
+
+2.2. Effective Date
+
+The licenses granted in Section 2.1 with respect to any Contribution
+become effective for each Contribution on the date the Contributor first
+distributes such Contribution.
+
+2.3. Limitations on Grant Scope
+
+The licenses granted in this Section 2 are the only rights granted under
+this License. No additional rights or licenses will be implied from the
+distribution or licensing of Covered Software under this License.
+Notwithstanding Section 2.1(b) above, no patent license is granted by a
+Contributor:
+
+(a) for any code that a Contributor has removed from Covered Software;
+    or
+
+(b) for infringements caused by: (i) Your and any other third party's
+    modifications of Covered Software, or (ii) the combination of its
+    Contributions with other software (except as part of its Contributor
+    Version); or
+
+(c) under Patent Claims infringed by Covered Software in the absence of
+    its Contributions.
+
+This License does not grant any rights in the trademarks, service marks,
+or logos of any Contributor (except as may be necessary to comply with
+the notice requirements in Section 3.4).
+
+2.4. Subsequent Licenses
+
+No Contributor makes additional grants as a result of Your choice to
+distribute the Covered Software under a subsequent version of this
+License (see Section 10.2) or under the terms of a Secondary License (if
+permitted under the terms of Section 3.3).
+
+2.5. Representation
+
+Each Contributor represents that the Contributor believes its
+Contributions are its original creation(s) or it has sufficient rights
+to grant the rights to its Contributions conveyed by this License.
+
+2.6. Fair Use
+
+This License is not intended to limit any rights You have under
+applicable copyright doctrines of fair use, fair dealing, or other
+equivalents.
+
+2.7. Conditions
+
+Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted
+in Section 2.1.
+
+3. Responsibilities
+-------------------
+
+3.1. Distribution of Source Form
+
+All distribution of Covered Software in Source Code Form, including any
+Modifications that You create or to which You contribute, must be under
+the terms of this License. You must inform recipients that the Source
+Code Form of the Covered Software is governed by the terms of this
+License, and how they can obtain a copy of this License. You may not
+attempt to alter or restrict the recipients' rights in the Source Code
+Form.
+
+3.2. Distribution of Executable Form
+
+If You distribute Covered Software in Executable Form then:
+
+(a) such Covered Software must also be made available in Source Code
+    Form, as described in Section 3.1, and You must inform recipients of
+    the Executable Form how they can obtain a copy of such Source Code
+    Form by reasonable means in a timely manner, at a charge no more
+    than the cost of distribution to the recipient; and
+
+(b) You may distribute such Executable Form under the terms of this
+    License, or sublicense it under different terms, provided that the
+    license for the Executable Form does not attempt to limit or alter
+    the recipients' rights in the Source Code Form under this License.
+
+3.3. Distribution of a Larger Work
+
+You may create and distribute a Larger Work under terms of Your choice,
+provided that You also comply with the requirements of this License for
+the Covered Software. If the Larger Work is a combination of Covered
+Software with a work governed by one or more Secondary Licenses, and the
+Covered Software is not Incompatible With Secondary Licenses, this
+License permits You to additionally distribute such Covered Software
+under the terms of such Secondary License(s), so that the recipient of
+the Larger Work may, at their option, further distribute the Covered
+Software under the terms of either this License or such Secondary
+License(s).
+
+3.4. Notices
+
+You may not remove or alter the substance of any license notices
+(including copyright notices, patent notices, disclaimers of warranty,
+or limitations of liability) contained within the Source Code Form of
+the Covered Software, except that You may alter any license notices to
+the extent required to remedy known factual inaccuracies.
+
+3.5. Application of Additional Terms
+
+You may choose to offer, and to charge a fee for, warranty, support,
+indemnity or liability obligations to one or more recipients of Covered
+Software. However, You may do so only on Your own behalf, and not on
+behalf of any Contributor. You must make it absolutely clear that any
+such warranty, support, indemnity, or liability obligation is offered by
+You alone, and You hereby agree to indemnify every Contributor for any
+liability incurred by such Contributor as a result of warranty, support,
+indemnity or liability terms You offer. You may include additional
+disclaimers of warranty and limitations of liability specific to any
+jurisdiction.
+
+4. Inability to Comply Due to Statute or Regulation
+---------------------------------------------------
+
+If it is impossible for You to comply with any of the terms of this
+License with respect to some or all of the Covered Software due to
+statute, judicial order, or regulation then You must: (a) comply with
+the terms of this License to the maximum extent possible; and (b)
+describe the limitations and the code they affect. Such description must
+be placed in a text file included with all distributions of the Covered
+Software under this License. Except to the extent prohibited by statute
+or regulation, such description must be sufficiently detailed for a
+recipient of ordinary skill to be able to understand it.
+
+5. Termination
+--------------
+
+5.1. The rights granted under this License will terminate automatically
+if You fail to comply with any of its terms. However, if You become
+compliant, then the rights granted under this License from a particular
+Contributor are reinstated (a) provisionally, unless and until such
+Contributor explicitly and finally terminates Your grants, and (b) on an
+ongoing basis, if such Contributor fails to notify You of the
+non-compliance by some reasonable means prior to 60 days after You have
+come back into compliance. Moreover, Your grants from a particular
+Contributor are reinstated on an ongoing basis if such Contributor
+notifies You of the non-compliance by some reasonable means, this is the
+first time You have received notice of non-compliance with this License
+from such Contributor, and You become compliant prior to 30 days after
+Your receipt of the notice.
+
+5.2. If You initiate litigation against any entity by asserting a patent
+infringement claim (excluding declaratory judgment actions,
+counter-claims, and cross-claims) alleging that a Contributor Version
+directly or indirectly infringes any patent, then the rights granted to
+You by any and all Contributors for the Covered Software under Section
+2.1 of this License shall terminate.
+
+5.3. In the event of termination under Sections 5.1 or 5.2 above, all
+end user license agreements (excluding distributors and resellers) which
+have been validly granted by You or Your distributors under this License
+prior to termination shall survive termination.
+
+************************************************************************
+*                                                                      *
+*  6. Disclaimer of Warranty                                           *
+*  -------------------------                                           *
+*                                                                      *
+*  Covered Software is provided under this License on an "as is"       *
+*  basis, without warranty of any kind, either expressed, implied, or  *
+*  statutory, including, without limitation, warranties that the       *
+*  Covered Software is free of defects, merchantable, fit for a        *
+*  particular purpose or non-infringing. The entire risk as to the     *
+*  quality and performance of the Covered Software is with You.        *
+*  Should any Covered Software prove defective in any respect, You     *
+*  (not any Contributor) assume the cost of any necessary servicing,   *
+*  repair, or correction. This disclaimer of warranty constitutes an   *
+*  essential part of this License. No use of any Covered Software is   *
+*  authorized under this License except under this disclaimer.         *
+*                                                                      *
+************************************************************************
+
+************************************************************************
+*                                                                      *
+*  7. Limitation of Liability                                          *
+*  --------------------------                                          *
+*                                                                      *
+*  Under no circumstances and under no legal theory, whether tort      *
+*  (including negligence), contract, or otherwise, shall any           *
+*  Contributor, or anyone who distributes Covered Software as          *
+*  permitted above, be liable to You for any direct, indirect,         *
+*  special, incidental, or consequential damages of any character      *
+*  including, without limitation, damages for lost profits, loss of    *
+*  goodwill, work stoppage, computer failure or malfunction, or any    *
+*  and all other commercial damages or losses, even if such party      *
+*  shall have been informed of the possibility of such damages. This   *
+*  limitation of liability shall not apply to liability for death or   *
+*  personal injury resulting from such party's negligence to the       *
+*  extent applicable law prohibits such limitation. Some               *
+*  jurisdictions do not allow the exclusion or limitation of           *
+*  incidental or consequential damages, so this exclusion and          *
+*  limitation may not apply to You.                                    *
+*                                                                      *
+************************************************************************
+
+8. Litigation
+-------------
+
+Any litigation relating to this License may be brought only in the
+courts of a jurisdiction where the defendant maintains its principal
+place of business and such litigation shall be governed by laws of that
+jurisdiction, without reference to its conflict-of-law provisions.
+Nothing in this Section shall prevent a party's ability to bring
+cross-claims or counter-claims.
+
+9. Miscellaneous
+----------------
+
+This License represents the complete agreement concerning the subject
+matter hereof. If any provision of this License is held to be
+unenforceable, such provision shall be reformed only to the extent
+necessary to make it enforceable. Any law or regulation which provides
+that the language of a contract shall be construed against the drafter
+shall not be used to construe this License against a Contributor.
+
+10. Versions of the License
+---------------------------
+
+10.1. New Versions
+
+Mozilla Foundation is the license steward. Except as provided in Section
+10.3, no one other than the license steward has the right to modify or
+publish new versions of this License. Each version will be given a
+distinguishing version number.
+
+10.2. Effect of New Versions
+
+You may distribute the Covered Software under the terms of the version
+of the License under which You originally received the Covered Software,
+or under the terms of any subsequent version published by the license
+steward.
+
+10.3. Modified Versions
+
+If you create software not governed by this License, and you want to
+create a new license for such software, you may create and use a
+modified version of this License if you rename the license and remove
+any references to the name of the license steward (except to note that
+such modified license differs from this License).
+
+10.4. Distributing Source Code Form that is Incompatible With Secondary
+Licenses
+
+If You choose to distribute Source Code Form that is Incompatible With
+Secondary Licenses under the terms of this version of the License, the
+notice described in Exhibit B of this License must be attached.
+
+Exhibit A - Source Code Form License Notice
+-------------------------------------------
+
+  This Source Code Form is subject to the terms of the Mozilla Public
+  License, v. 2.0. If a copy of the MPL was not distributed with this
+  file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+If it is not possible or desirable to put the notice in a particular
+file, then You may include the notice in a location (such as a LICENSE
+file in a relevant directory) where a recipient would be likely to look
+for such a notice.
+
+You may add additional accurate notices of copyright ownership.
+
+Exhibit B - "Incompatible With Secondary Licenses" Notice
+---------------------------------------------------------
+
+  This Source Code Form is "Incompatible With Secondary Licenses", as
+  defined by the Mozilla Public License, v. 2.0.
+