Index: modules/build.xml
===================================================================
RCS file: /usr/local/cvs/opencms/modules/build.xml,v
retrieving revision 1.20
diff -u -r1.20 build.xml
--- modules/build.xml	8 Jun 2009 10:01:17 -0000	1.20
+++ modules/build.xml	14 Jan 2010 17:50:14 -0000
@@ -274,5 +274,93 @@
 		<delete dir="${opencms.output}/build/zips-modules" />		
 		
 	</target>
+	
+	<target name="maven-create-or-replace-module-poms" depends="init" description="create or replace poms for each module">
+		<for list="${modules.var}" param="module" trim="yes">
+    	  <sequential>
+    	  	<ant antfile="${basedir}/build-single.xml" target="maven-create-or-replace-module-pom" inheritAll="false" >
+    	  		<property name="module.name" value="@{module}" />
+    	  	</ant>
+    	  </sequential>
+    	</for>
+	</target>
+	
+	<target name="maven-remove-module-poms" depends="init" description="remove poms for each module">
+		<for list="${modules.var}" param="module" trim="yes">
+    	  <sequential>
+    	  	<ant antfile="${basedir}/build-single.xml" target="maven-remove-module-pom" inheritAll="false" >
+    	  		<property name="module.name" value="@{module}" />
+    	  	</ant>
+    	  </sequential>
+    	</for>
+	</target>
 
+    <target name="maven-install" depends="init" description="install new OpenCms-Module-Artifacts into the locale Maven Repository">
+		<for list="${modules.var}" param="module" trim="yes">
+    	  <sequential>
+    	  	<ant antfile="${basedir}/build-single.xml" target="maven-install-version" inheritAll="false" >
+    	  		<property name="version.number" value="${version.number}" />
+    	  		<property name="module.name" value="@{module}" />
+    	  	</ant>
+    	  </sequential>
+    	</for>
+    </target>
+
+    <target name="maven-install-all" depends="init" description="install the OpenCms-Module-Artifacts into the locale Maven Repository">
+		<for list="${modules.var}" param="module" trim="yes">
+    	  <sequential>
+    	  	<ant antfile="${basedir}/build-single.xml" target="maven-install" inheritAll="false" >
+    	  		<property name="module.name" value="@{module}" />
+    	  	</ant>
+    	  </sequential>
+    	</for>
+    </target>
+
+    <target name="maven-deploy" depends="init" description="deploy new OpenCms-Module-Artifacts into the global Maven Repository">
+		<for list="${modules.var}" param="module" trim="yes">
+    	  <sequential>
+    	  	<ant antfile="${basedir}/build-single.xml" target="maven-deploy-version" inheritAll="false" >
+    	  		<property name="version.number" value="${version.number}" />
+    	  		<property name="module.name" value="@{module}" />
+    	  	</ant>
+    	  </sequential>
+    	</for>
+    </target>
+
+    <target name="maven-deploy-all" depends="init" description="deploy the OpenCms-Module-Artifacts into the global Maven Repository">
+		<for list="${modules.var}" param="module" trim="yes">
+    	  <sequential>
+    	  	<ant antfile="${basedir}/build-single.xml" target="maven-deploy" inheritAll="false" >
+    	  		<property name="module.name" value="@{module}" />
+    	  	</ant>
+    	  </sequential>
+    	</for>
+    </target>
+	
+	<target name="maven-print-selected-dependecies-xml" depends="init"
+		description="print the selected Modules as Maven-dependencies to the console.
+		You can copy and past it to your Customer-Specific pom.xml">
+
+		<var name="deps" value="" />
+		
+		<for list="${modules.var}" param="module" trim="yes">
+    	  <sequential>
+			<property name="@{module}.input" value="${basedir}/@{module}" />
+			<if>
+    			<available file="${@{module}.input}/resources/manifest.xml" />
+    			<then>
+    				<readxmlproperty property="@{module}.module.version" xmlfile="${@{module}.input}/resources/manifest.xml" element="export/module/version" />
+
+					<var name="deps" value="${deps}${line.separator}  &lt;dependency&gt;" />
+					<var name="deps" value="${deps}${line.separator}    &lt;groupId&gt;org.opencms.modules&lt;/groupId&gt;" />
+					<var name="deps" value="${deps}${line.separator}    &lt;artifactId&gt;@{module}&lt;/artifactId&gt;" />
+					<var name="deps" value="${deps}${line.separator}    &lt;version&gt;${@{module}.module.version}&lt;/version&gt;" />
+					<var name="deps" value="${deps}${line.separator}  &lt;/dependency&gt;" />
+    			</then>
+    		</if>
+    	  </sequential>
+    	</for>
+		
+		<echo message="Maven dependencies: ${deps}" />
+	</target>
 </project>
Index: modules/build-single.xml
===================================================================
RCS file: /usr/local/cvs/opencms/modules/build-single.xml,v
retrieving revision 1.37
diff -u -r1.37 build-single.xml
--- modules/build-single.xml	28 Sep 2009 15:34:29 -0000	1.37
+++ modules/build-single.xml	14 Jan 2010 17:50:14 -0000
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<project name="OpenCms Common Module" default="dist" basedir=".">
+<project name="OpenCms Common Module" default="dist" basedir="." xmlns:artifact="urn:maven-artifact-ant">
 
 	<property name="opencms.input" 						location="${basedir}/.." />
 	<property name="opencms.output" 					location="${opencms.input}/../BuildCms" />
@@ -30,6 +30,13 @@
 		</classpath>
 	</taskdef>
 
+	<!-- ==================== Maven typedef ================================== -->
+    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">
+        <classpath>
+            <pathelement location="${opencms.input.libs.compile}/maven-ant-tasks-2.0.10.jar" />
+        </classpath>
+    </typedef>
+
 	<property name="module.input" 				location="${basedir}/${module.name}" />
 	<property name="module.input.res" 			location="${module.input}/resources" />
 	<property name="module.input.lib" 			location="${module.input.res}/system/modules/${module.name}/lib" />
@@ -306,14 +313,29 @@
 								<pathelement path="${module.libs.path}" />
 							</classpath>
 						</javac>
+						
 						<copy todir="${module.output.classes}/${module.package}">
 							<fileset dir="${module.input.src}" includes="${jar.includes.shared}" excludes="${jar.excludes}" />
 						</copy>
+
+				    	<!-- create Source-Archive to include it into the Eclipse-Configuration. -->
+				    	<delete file="${module.output.jar}/${module.name}_${module.version}_sources.jar" failonerror="no"/>
+						<mkdir dir="${module.output.jar}" />
+				        <jar destfile="${module.output.jar}/${module.name}_${module.version}_sources.jar">
+				        	<zipfileset dir="${module.input.src.shared}" includes="${module.package}/*.*" />
+				        </jar>
+						
 					</then>
 					<else>
 						<if>
 							<equals arg1="${src.mode}" arg2="multishared" />
 							<then>
+								<!-- create Source-Archive to include it into the Eclipse-Configuration. -->
+								<!-- in multishared mode create an empty Source-Archive and update it for each package. -->
+						    	<delete file="${module.output.jar}/${module.name}_${module.version}_sources.jar" failonerror="no"/>
+								<copy file="${opencms.input.warfiles}/update/empty.jar" tofile="${module.output.jar}/${module.name}_${module.version}_sources.jar" />
+								
+								
 								<for list="${module.packages}" param="mpackage" trim="true">
 									<sequential>
 										<var name="package.dir" value="" />
@@ -350,6 +372,15 @@
 										<copy todir="${module.output.classes}/${package.dir}">
 											<fileset dir="${module.input.src.shared}/${package.dir}" includes="${jar.includes.shared}" excludes="${jar.excludes}" />
 										</copy>
+
+										
+								    	<!-- create Source-Archive to include it into the Eclipse-Configuration. -->
+										<!-- in multishared mode update the Source-Archive with this package. -->
+										<mkdir dir="${module.output.jar}" />
+								        <jar destfile="${module.output.jar}/${module.name}_${module.version}_sources.jar" update="true" >
+								        	<zipfileset dir="${module.input.src.shared}" includes="${package.dir}/*.*" />
+								        </jar>
+										
 									</sequential>
 								</for>
 							</then>
@@ -383,6 +414,13 @@
 										<exclude name="**/test/**" />
 									</fileset>
 								</copy>
+
+						    	<!-- create Source-Archive to include it into the Eclipse-Configuration. -->
+						    	<delete file="${module.output.jar}/${module.name}_${module.version}_sources.jar" failonerror="no"/>
+								<mkdir dir="${module.output.jar}" />
+						        <jar destfile="${module.output.jar}/${module.name}_${module.version}_sources.jar">
+						        	<zipfileset dir="${module.input.src.single}" />
+						        </jar>
 							</else>
 						</if>
 					</else>
@@ -400,7 +438,7 @@
 			<then>
 				<mkdir dir="${module.output.jar}" />
 				<jar jarfile="${module.output.jar}/${module.name}.jar" basedir="${module.output.classes}" />
-
+				
 				<for list="${module.dependencies}" param="dependency" trim="true">
 					<sequential>
 						<if>
@@ -469,4 +507,152 @@
 
 	<target name="jboss.update" depends="jboss.copy" description="Recompile changes and installs them in JBoss deploy directory" />
 
+	<target name="maven-read-manifest" description="read manifest to module.version, module.dependencies, module.description">
+
+		<property name="module.input" 				value="${basedir}/${module.name}" />
+		<property name="module.input.res" 			value="${module.input}/resources" />
+
+		<if>
+			<available file="${module.input.res}/manifest.xml" />
+			<then>
+				<readxmlproperty property="module.version" xmlfile="${module.input.res}/manifest.xml" element="export/module/version" />
+				<readxmlproperty property="module.dependencies" xmlfile="${module.input.res}/manifest.xml" element="export/module/dependencies/dependency" attribute="name" />
+				<readxmlproperty property="module.description" xmlfile="${module.input.res}/manifest.xml" element="export/module/description" />
+			</then>
+			<else>
+	    	  	<echo message="WARNING: Not found: ${module.input.res}/manifest.xml"/>
+			</else>
+		</if>
+		
+	</target>
+	
+	<target name="maven-create-or-replace-module-pom" depends="maven-read-manifest" description="create or replace poms for each module">
+
+		<var name="deps" value="" />
+		
+		<for list="${module.dependencies}" param="dependency" trim="true">
+			<sequential>
+				<property name="@{dependency}.input" value="${basedir}/@{dependency}" />
+				<if>
+	    			<available file="${@{dependency}.input}/resources/manifest.xml" />
+	    			<then>
+	    				<readxmlproperty property="@{dependency}.module.version" xmlfile="${@{dependency}.input}/resources/manifest.xml" element="export/module/version" />
+
+						<var name="deps" value="${deps}${line.separator}  &lt;dependency&gt;" />
+						<var name="deps" value="${deps}${line.separator}    &lt;groupId&gt;org.opencms.modules&lt;/groupId&gt;" />
+						<var name="deps" value="${deps}${line.separator}    &lt;artifactId&gt;@{dependency}&lt;/artifactId&gt;" />
+	    				<var name="deps" value="${deps}${line.separator}    &lt;version&gt;${@{dependency}.module.version}&lt;/version&gt;" />
+	    				<var name="deps" value="${deps}${line.separator}    &lt;scope&gt;provided&lt;/scope&gt;" />
+	    				<var name="deps" value="${deps}${line.separator}  &lt;/dependency&gt;" />
+	    			</then>
+	    		</if>
+				
+			</sequential>
+		</for>
+		
+		<echo message="copy file='${basedir}/pom-template.xml' tofile='${module.input}/pom.xml'"/>
+		<echo message="${module.name} - ${module.version}"/>
+		<copy file="${basedir}/pom-template.xml" tofile="${module.input}/pom.xml" overwrite="true">   
+	    	<filterset>
+	    		<filter token="OPENCMS_MODULE_NAME" value="${module.name}" />
+	    		<filter token="OPENCMS_MODULE_VERSION" value="${module.version}" />
+	    		<filter token="OPENCMS_MODULE_DESCRIPTION" value="${module.description}" />
+	    		<filter token="OPENCMS_MODULE_DEPENDENCIES" value="${deps}" />
+        	</filterset>
+        </copy>
+		
+	</target>
+	
+	<target name="maven-remove-module-pom" description="create or replace poms for each module">
+		
+		<property name="module.input" value="${basedir}/${module.name}" />
+		
+		<delete file="${module.input}/pom.xml" failonerror="false" />
+		
+	</target>
+	
+    <target name="maven-install" depends="maven-read-manifest, maven-create-or-replace-module-pom" description="install the OpenCms-Artifacts into the locale Maven Repository">
+		
+    	<if>
+			<and>
+				<available file="${module.output.jar}/${module.name}.jar" />
+				<available file="${module.output.jar}/${module.name}_${module.version}_sources.jar" />
+			</and>
+			<then>
+				<!-- Jar and Java-Sources are available -->
+				<echo message="install module '${module.name}-${module.version}' (Module-zip, Classes-Jar, Sources-Jar)" />
+				<artifact:pom id="pom-module" file="${module.input}/pom.xml" />
+				<artifact:install file="${module.output.jar}/${module.name}.jar">
+					<pom refid="pom-module"/>
+					<attach file="${module.output.jar}/${module.name}_${module.version}_sources.jar" type="jar" classifier="sources" />
+					<attach file="${module.output.zip}/${module.name}_${module.version}.zip" type="zip" classifier="opencms-module" />
+				</artifact:install>
+			</then>
+			<else>
+				<!-- Install OpenCms-Module ZIP Without JAR and Java-Sources -->
+				<echo message="install module '${module.name}-${module.version}' (Module-zip)" />
+				<artifact:pom id="pom-module" file="${module.input}/pom.xml" />
+				<artifact:install file="${opencms.input.warfiles}/update/empty.jar">
+					<pom refid="pom-module"/>
+					<attach file="${module.output.zip}/${module.name}_${module.version}.zip" type="zip" classifier="opencms-module" />
+				</artifact:install>
+			</else>
+		</if>
+    	
+    	<ant antfile="build-single.xml" target="maven-remove-module-pom" />
+    </target>
+
+    <target name="maven-install-version" depends="maven-read-manifest" description="install only if Parameter 'version.number' is the current module.version">
+		<if>
+			<equals arg1="${module.version}" arg2="${version.number}" />
+			<then>
+				<antcall target="maven-install" />
+			</then>
+		</if>
+    	<ant antfile="build-single.xml" target="maven-remove-module-pom" />
+    </target>
+	
+    <target name="maven-deploy" depends="maven-read-manifest, maven-create-or-replace-module-pom" description="deploy the OpenCms-Artifacts into the global Maven Repository">
+		<!-- required for Transport-protocol (beta-6 doesn't work...) -->
+		<artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
+
+		<if>
+			<and>
+				<available file="${module.output.jar}/${module.name}.jar" />
+				<available file="${module.output.jar}/${module.name}_${module.version}_sources.jar" />
+			</and>
+			<then>
+				<!-- Jar and Java-Sources are available -->
+				<echo message="deploy module '${module.name}-${module.version}' (Module-zip, Classes-Jar, Sources-Jar)" />
+		    	<artifact:pom id="pom-module" file="${module.input}/pom.xml" />
+				<artifact:deploy file="${module.output.jar}/${module.name}.jar">
+					<pom refid="pom-module"/>
+					<attach file="${module.output.jar}/${module.name}_${module.version}_sources.jar" type="jar" classifier="sources" />
+					<attach file="${module.output.zip}/${module.name}_${module.version}.zip" type="zip" classifier="opencms-module" />
+				</artifact:deploy>
+			</then>
+			<else>
+				<!-- Install OpenCms-Module ZIP Without JAR and Java-Sources -->
+				<echo message="deploy module '${module.name}-${module.version}' (Module-zip)" />
+		    	<artifact:pom id="pom-module" file="${module.input}/pom.xml" />
+				<artifact:deploy file="${opencms.input.warfiles}/update/empty.jar">
+					<pom refid="pom-module"/>
+					<attach file="${module.output.zip}/${module.name}_${module.version}.zip" type="zip" classifier="opencms-module" />
+				</artifact:deploy>
+			</else>
+		</if>
+    	
+    	
+    	<ant antfile="build-single.xml" target="maven-remove-module-pom" />
+    </target>
+
+    <target name="maven-deploy-version" depends="maven-read-manifest" description="deploy only if Parameter 'version.number' is the current module.version">
+		<if>
+			<equals arg1="${module.version}" arg2="${version.number}" />
+			<then>
+				<antcall target="maven-deploy" />
+			</then>
+		</if>
+    	<ant antfile="build-single.xml" target="maven-remove-module-pom" />
+    </target>
 </project>
Index: src/org/opencms/workplace/CmsWidgetDialog.java
===================================================================
RCS file: /usr/local/cvs/opencms/src/org/opencms/workplace/CmsWidgetDialog.java,v
retrieving revision 1.71
diff -u -r1.71 CmsWidgetDialog.java
--- src/org/opencms/workplace/CmsWidgetDialog.java	8 Sep 2009 14:46:52 -0000	1.71
+++ src/org/opencms/workplace/CmsWidgetDialog.java	14 Jan 2010 17:50:14 -0000
@@ -238,7 +238,7 @@
             href.append(elementName);
             href.append("', ");
             href.append(insertAfter);
-            href.append(");");
+            href.append(",[]);");
             return button(href.toString(), null, "new.png", Messages.GUI_DIALOG_BUTTON_ADDNEW_0, 0);
         } else {
             return "";
Index: src/org/opencms/workplace/CmsWorkplace.java
===================================================================
RCS file: /usr/local/cvs/opencms/src/org/opencms/workplace/CmsWorkplace.java,v
retrieving revision 1.179
diff -u -r1.179 CmsWorkplace.java
--- src/org/opencms/workplace/CmsWorkplace.java	1 Sep 2009 10:03:44 -0000	1.179
+++ src/org/opencms/workplace/CmsWorkplace.java	14 Jan 2010 17:50:14 -0000
@@ -748,7 +748,7 @@
 
         String anchorStart = "<a href=\"";
         if ((href != null) && href.toLowerCase().startsWith("javascript:")) {
-            anchorStart = "<a href=\"#\" onclick=\"";
+            anchorStart = "<a href=\"javascript:;\" onclick=\""; //use "javascript:;" instead of "#" => don't jump to the Top of the page.
         }
 
         result.append("<td style=\"vertical-align: top;\">");
Index: webapp/WEB-INF/classes/log4j.properties
===================================================================
RCS file: /usr/local/cvs/opencms/webapp/WEB-INF/classes/log4j.properties,v
retrieving revision 1.6
diff -u -r1.6 log4j.properties
--- webapp/WEB-INF/classes/log4j.properties	4 Jul 2007 16:57:53 -0000	1.6
+++ webapp/WEB-INF/classes/log4j.properties	14 Jan 2010 17:50:14 -0000
@@ -16,7 +16,7 @@
 
 # Per default we use WARN debug level and just one appender
 log4j.rootLogger=\
-	ERROR,\
+	WARN,\
 	OC
 
 # ,CONSOLE
Index: src/org/opencms/xml/CmsXmlContentDefinition.java
===================================================================
RCS file: /usr/local/cvs/opencms/src/org/opencms/xml/CmsXmlContentDefinition.java,v
retrieving revision 1.46
diff -u -r1.46 CmsXmlContentDefinition.java
--- src/org/opencms/xml/CmsXmlContentDefinition.java	21 Aug 2009 15:09:43 -0000	1.46
+++ src/org/opencms/xml/CmsXmlContentDefinition.java	14 Jan 2010 17:50:14 -0000
@@ -146,6 +146,9 @@
     /** Constant for the "sequence" node in the XML schema namespace. */
     public static final QName XSD_NODE_SEQUENCE = QName.get("sequence", XSD_NAMESPACE);
 
+    /** Constant for the "choice" node in the XML schema namespace. */
+    public static final QName XSD_NODE_CHOICE = QName.get("choice", XSD_NAMESPACE);
+    
     /** The XML content handler. */
     private I_CmsXmlContentHandler m_contentHandler;
 
@@ -158,6 +161,9 @@
     /** The outer element name of the content definition (language sequence). */
     private String m_outerName;
 
+    /** Returns true if this sequence is created from a {@link #XSD_NODE_CHOICE}-Element. */
+    private boolean m_isChoiceSequence;
+
     /** The location from which the XML schema was read (XML system id). */
     private String m_schemaLocation;
 
@@ -523,15 +529,21 @@
             // no error: then the language attribute is valid
             hasLanguageAttribute = true;
         }
-
+        
+        boolean isChoice = false;
+        
         // check the main element type sequence
         Element typeSequence = mainElements.get(0);
         if (!XSD_NODE_SEQUENCE.equals(typeSequence.getQName())) {
+            if (!XSD_NODE_CHOICE.equals(typeSequence.getQName())) {
             throw new CmsXmlException(Messages.get().container(
                 Messages.ERR_CD_ELEMENT_NAME_3,
                 typeSequence.getUniquePath(),
                 XSD_NODE_SEQUENCE.getQualifiedName(),
                 typeSequence.getQName().getQualifiedName()));
+            } else {
+                isChoice = true;
+            }
         }
 
         // check the type definition sequence
@@ -553,7 +565,7 @@
             CmsXmlContentTypeManager typeManager = OpenCms.getXmlContentTypeManager();
             Iterator<Element> i = typeSequenceElements.iterator();
             while (i.hasNext()) {
-                sequence.add(typeManager.getContentType(i.next(), includes));
+                sequence.add(typeManager.getContentType((Element)i.next(), includes, isChoice));
             }
         } else {
             // generate a nested content definition for the main type sequence
@@ -569,7 +581,7 @@
         }
 
         // return a data structure with the collected values
-        return new CmsXmlComplexTypeSequence(name, sequence, hasLanguageAttribute);
+        return new CmsXmlComplexTypeSequence(name, sequence, hasLanguageAttribute, isChoice);
     }
 
     /**
@@ -704,8 +716,8 @@
         result.setInnerName(outer.getName());
 
         // get the inner element sequence, this must be the second element 
-        CmsXmlComplexTypeSequence innerSequence = complexTypeData.get(1);
-
+        CmsXmlComplexTypeSequence innerSequence = (CmsXmlComplexTypeSequence)complexTypeData.get(1);
+        result.m_isChoiceSequence =innerSequence.m_isChoiceSequence;
         // add the types from the main sequence node
         Iterator<I_CmsXmlSchemaType> it = innerSequence.getSequence().iterator();
         while (it.hasNext()) {
@@ -852,6 +864,7 @@
         result.m_contentHandler = m_contentHandler;
         result.m_typeName = m_typeName;
         result.m_includes = m_includes;
+        result.m_isChoiceSequence = m_isChoiceSequence;
         return result;
     }
 
@@ -1174,4 +1187,16 @@
 
         m_outerName = outerName;
     }
+    
+
+    /**
+     * Returns <code>true</code> if this sequence is created from a {@link #XSD_NODE_CHOICE}-Element. 
+     * 
+     * @return <code>true</code> if this sequence is created from a {@link #XSD_NODE_CHOICE}-Element. 
+     * 
+     * @see CmsXmlNestedContentDefinition
+     */
+    public boolean isChoiceType() {
+        return m_isChoiceSequence;
+    }
 }
\ No newline at end of file
Index: src/org/opencms/xml/CmsXmlComplexTypeSequence.java
===================================================================
RCS file: /usr/local/cvs/opencms/src/org/opencms/xml/CmsXmlComplexTypeSequence.java,v
retrieving revision 1.7
diff -u -r1.7 CmsXmlComplexTypeSequence.java
--- src/org/opencms/xml/CmsXmlComplexTypeSequence.java	21 Aug 2009 15:09:43 -0000	1.7
+++ src/org/opencms/xml/CmsXmlComplexTypeSequence.java	14 Jan 2010 17:50:14 -0000
@@ -55,18 +55,23 @@
     /** The type sequence elements. */
     private List<I_CmsXmlSchemaType> m_sequence;
 
+    /** Returns true if this sequence is created from a {@link CmsXmlContentDefinition#XSD_NODE_CHOICE}-Element. */
+    protected boolean m_isChoiceSequence;
+
     /**
      * Creates a new complex type sequence data structure.<p>
      * 
      * @param name the name of the sequence
      * @param sequence the type sequence element list
      * @param hasLanguageAttribute indicates if a "language" attribute is present
+     * @param isChoiceSequence the type choice element list
      */
-    protected CmsXmlComplexTypeSequence(String name, List<I_CmsXmlSchemaType> sequence, boolean hasLanguageAttribute) {
+    protected CmsXmlComplexTypeSequence(String name, List sequence, boolean hasLanguageAttribute, boolean isChoiceSequence) {
 
         m_name = name;
         m_sequence = sequence;
         m_hasLanguageAttribute = hasLanguageAttribute;
+        m_isChoiceSequence = isChoiceSequence;
     }
 
     /**
Index: src/org/opencms/xml/CmsXmlContentTypeManager.java
===================================================================
RCS file: /usr/local/cvs/opencms/src/org/opencms/xml/CmsXmlContentTypeManager.java,v
retrieving revision 1.38
diff -u -r1.38 CmsXmlContentTypeManager.java
--- src/org/opencms/xml/CmsXmlContentTypeManager.java	21 Aug 2009 15:09:43 -0000	1.38
+++ src/org/opencms/xml/CmsXmlContentTypeManager.java	14 Jan 2010 17:50:14 -0000
@@ -324,15 +324,19 @@
      * Generates an initialized instance of a XML content type definition
      * from the given XML schema element.<p>
      * 
-     * @param typeElement the element to generate the XML content type definition from
-     * @param nestedDefinitions the nested (included) XML content sub-definitions
+     * @param typeElement
+     *          The element to generate the XML content type definition from
+     * @param nestedDefinitions
+     *          The nested (included) XML content sub-definitions
+     * @param isChoice
+     *          true if this node is an element of a Choice XSD element.
+     *          In this case the maxOccurs is always handled as "1" and minOccurs is always handled as "0".
      * 
      * @return an initialized instance of a XML content type definition
      * @throws CmsXmlException in case the element does not describe a valid XML content type definition
      */
-    public I_CmsXmlSchemaType getContentType(Element typeElement, Set<CmsXmlContentDefinition> nestedDefinitions)
+    public I_CmsXmlSchemaType getContentType(Element typeElement, Set nestedDefinitions, boolean isChoice)
     throws CmsXmlException {
-
         if (!CmsXmlContentDefinition.XSD_NODE_ELEMENT.equals(typeElement.getQName())) {
             throw new CmsXmlException(Messages.get().container(Messages.ERR_INVALID_CD_SCHEMA_STRUCTURE_0));
         }
@@ -345,7 +349,12 @@
         String defaultValue = typeElement.attributeValue(CmsXmlContentDefinition.XSD_ATTRIBUTE_DEFAULT);
         String maxOccrs = typeElement.attributeValue(CmsXmlContentDefinition.XSD_ATTRIBUTE_MAX_OCCURS);
         String minOccrs = typeElement.attributeValue(CmsXmlContentDefinition.XSD_ATTRIBUTE_MIN_OCCURS);
-
+        // a schemyType inside a Choice-ContentDefinition can only occurred one time.
+        if (isChoice) {
+            minOccrs = CmsXmlContentDefinition.XSD_ATTRIBUTE_VALUE_ZERO;
+            maxOccrs = "1";
+        }
+        
         if (CmsStringUtil.isEmpty(elementName) || CmsStringUtil.isEmpty(typeName)) {
             throw new CmsXmlException(Messages.get().container(Messages.ERR_INVALID_CD_SCHEMA_STRUCTURE_0));
         }
@@ -362,7 +371,14 @@
                 if (typeName.equals(cd.getTypeName())) {
 
                     simpleType = false;
-                    return new CmsXmlNestedContentDefinition(cd, elementName, minOccrs, maxOccrs);
+                    if (cd.isChoiceType()) {
+                        // A Choice Element itself is always optional.
+                        // the initial XML content (create new resource) can not be automatically generated if minOccurs > 0
+                        // the editor must choose the sub element!
+                        return new CmsXmlNestedContentDefinition(cd, elementName, CmsXmlContentDefinition.XSD_ATTRIBUTE_VALUE_ZERO, maxOccrs);
+                    } else {
+                        return new CmsXmlNestedContentDefinition(cd, elementName, minOccrs, maxOccrs);
+                    }
                 }
             }
 
Index: modules/org.opencms.editors/resources/system/workplace/editors/xmlcontent/editor_form.jsp
===================================================================
RCS file: /usr/local/cvs/opencms/modules/org.opencms.editors/resources/system/workplace/editors/xmlcontent/editor_form.jsp,v
retrieving revision 1.15
diff -u -r1.15 editor_form.jsp
--- modules/org.opencms.editors/resources/system/workplace/editors/xmlcontent/editor_form.jsp	9 Jun 2009 12:21:36 -0000	1.15
+++ modules/org.opencms.editors/resources/system/workplace/editors/xmlcontent/editor_form.jsp	14 Jan 2010 17:50:14 -0000
@@ -298,9 +298,42 @@
 //-->
 </script>
 
+<style>
+#CHOICE_OVERLAY
+{
+    display:none;
+    position:absolute;
+    top:0;
+    left:0;
+    z-index:5000;   
+    background-color:#000;
+    -moz-opacity: 0.5;
+    opacity:.50;
+    filter: alpha(opacity=50);
+}
+
+#CHOICE_SELECT{
+    display:none;
+    position: absolute;
+    z-index:9999;
+    background-color:#D4D0C8;
+    border-left:2px solid white;
+    border-top:2px solid white;
+    border-right:2px solid #808080;
+    border-bottom:2px solid #808080;
+}
+
+</style>
+
 </head>
 <body class="buttons-head" unselectable="on" onload="init();" onunload="exitEditor();">
 
+<div id="CHOICE_OVERLAY" name="CHOICE_OVERLAY"></div>
+<div id="CHOICE_SELECT" name="CHOICE_SELECT" >
+  <div style="width:100%;text-align:right;border-bottom:1px solid #000000;" ><a href="javascript:;" onClick="closeChoiceSelection();"><img src="<%=wp.getSkinUri()%>buttons/exit.png" alt="close" width="20" height="20" border="0"/></a></div>
+  <div style="overflow:auto;" id="CHOICE_SELECT_LINKS" name="CHOICE_SELECT_LINKS" ></div>
+</div>
+
 <form name="EDITOR" id="EDITOR" method="post" action="<%= wp.getJsp().link(CmsEditor.PATH_EDITORS + "xmlcontent/editor_form.jsp") %>">
 <input type="hidden" name="<%= CmsDialog.PARAM_ACTION %>" value="<%= wp.getParamAction() %>">
 <input type="hidden" name="<%= CmsDialog.PARAM_RESOURCE %>" value="<%= wp.getParamResource() %>">
@@ -314,6 +347,7 @@
 <input type="hidden" name="<%= CmsEditor.PARAM_MODIFIED %>" value="<%= wp.getParamModified() %>">
 <input type="hidden" name="<%= CmsXmlContentEditor.PARAM_ELEMENTINDEX %>" value="">
 <input type="hidden" name="<%= CmsXmlContentEditor.PARAM_ELEMENTNAME %>" value="">
+<input type="hidden" name="<%= CmsXmlContentEditor.PARAM_CHOICEELEMENTNAME %>" value="">
  
 <%= wp.getXmlEditorForm() %>
 
Index: modules/org.opencms.editors/resources/system/workplace/editors/xmlcontent/edit.js
===================================================================
RCS file: /usr/local/cvs/opencms/modules/org.opencms.editors/resources/system/workplace/editors/xmlcontent/edit.js,v
retrieving revision 1.15
diff -u -r1.15 edit.js
--- modules/org.opencms.editors/resources/system/workplace/editors/xmlcontent/edit.js	4 Jun 2009 14:39:11 -0000	1.15
+++ modules/org.opencms.editors/resources/system/workplace/editors/xmlcontent/edit.js	14 Jan 2010 17:50:14 -0000
@@ -190,14 +190,88 @@
 }
 
 // add an optional element to the currently edited content
-function addElement(elemName, insertAfter) {
+function addElement(elemName, insertAfter, choiceList) {
 	setLastPosition();
 	var _form = document.EDITOR;
 	_form.elementname.value = elemName;
 	_form.elementindex.value = insertAfter;
+	if (choiceList.length == 0){
+		buttonAction(5);
+	} else if (choiceList.length == 1){
+		addChoiceElement(choiceList[0].Name);
+	} else {
+		// more than one element
+		showChoiceSelection(choiceList);
+	}
+}
+
+function addChoiceElement(elemName) {
+	var _form = document.EDITOR;
+	_form.choiceelementname.value = elemName;
 	buttonAction(5);
 }
 
+// shows the possible SubElements for a Choice-NestedContentType
+function showChoiceSelection(choiceList) {
+
+    // get Choice element
+    var choiceOverlay = document.getElementById("CHOICE_OVERLAY");
+    var choiceSelectElem = document.getElementById("CHOICE_SELECT");
+    var choiceSelectLinksElem = document.getElementById("CHOICE_SELECT_LINKS");
+
+    // create the button row HTML
+    var i = 0;
+    var linkList ="";
+    for (i=0; i < choiceList.length; i++){
+        if (i > 0){
+            linkList += "<br />";
+        }
+        linkList += "<a href=\"javascript:addChoiceElement(&quot;" + choiceList[i].Name + "&quot;);\" >";
+        linkList += choiceList[i].Label;
+        linkList += "</a>";
+        if (choiceList[i].Help){
+	        linkList += " (";
+	        linkList += choiceList[i].Help;
+	        linkList += ")";
+        }
+    }
+
+
+    // set the created HTML into the ModalBox
+    choiceSelectLinksElem.innerHTML = linkList;
+
+    // arrange the Modal-Box
+    var height = document.body.clientHeight/2;
+    var width = document.body.clientWidth/2;
+    choiceSelectElem.style.height = height + 'px';
+    choiceSelectElem.style.width = width + 'px';
+    choiceSelectLinksElem.style.height = height + 'px';
+    choiceSelectLinksElem.style.width = width + 'px';
+	choiceSelectElem.style.top  = document.body.scrollTop+(document.body.clientHeight - height)/2;
+	choiceSelectElem.style.left  = document.body.scrollLeft+(document.body.clientWidth - width)/2;
+
+    // show the Modal-Box
+    choiceSelectElem.style.display = "block";
+
+    // show the Gay Background
+	choiceOverlay.style.height = document.body.scrollHeight + 'px';
+	choiceOverlay.style.width = document.body.scrollWidth + 'px';
+    choiceOverlay.style.display = "block";
+
+}
+
+
+function closeChoiceSelection() {
+	var _form = document.EDITOR;
+	// reset the Data
+	_form.elementname.value = "";
+	_form.elementindex.value = "";
+	_form.choiceelementname.value = "";
+	// close the Modal-Box
+    document.getElementById('CHOICE_SELECT').style.display ='none';
+    document.getElementById('CHOICE_OVERLAY').style.display = 'none';
+}
+
 // move an element in currently edited content
 function moveElement(elemName, index, direction) {
 	setLastPosition();
@@ -307,7 +381,7 @@
 }
 
 // shows the element operation buttons
-function showElementButtons(elementName, elementIndex, showRemove, showUp, showDown, showAdd) {
+function showElementButtons(elementName, elementIndex, showRemove, showUp, showDown, showAdd, choiceList) {
 	var elemId = elementName + "." + elementIndex;
 	if (oldEditorButtons != null && oldEditorButtons != elemId) {
 		// close eventually open element buttons
@@ -342,7 +416,7 @@
 
 	// add element button
 	if (showAdd) {
-		buttons += button("javascript:addElement('" + elementName + "', " + elementIndex + ")", null, "new", LANG_BT_ADD, buttonStyle);
+		buttons += button("javascript:addElement('" + elementName + "', " + elementIndex + ", " + choiceList + ")", null, "new", LANG_BT_ADD, buttonStyle);
 	} else {
 		buttons += button(null, null, "new_in", LANG_BT_ADD, buttonStyle);
 	}
Index: test/test.properties
===================================================================
RCS file: /usr/local/cvs/opencms/test/test.properties,v
retrieving revision 1.35
diff -u -r1.35 test.properties
--- test/test.properties	26 Feb 2009 11:59:18 -0000	1.35
+++ test/test.properties	14 Jan 2010 17:50:14 -0000
@@ -27,5 +27,5 @@
 db.product=hsqldb
 
 # Set the path to the test resources files
-test.data.path=C:\dev\workspace\OpenCmsHead\test\data
-test.webapp.path=C:\dev\workspace\OpenCmsHead\webapp
+test.data.path=test\data
+test.webapp.path=webapp
Index: src/org/opencms/workplace/editors/CmsXmlContentEditor.java
===================================================================
RCS file: /usr/local/cvs/opencms/src/org/opencms/workplace/editors/CmsXmlContentEditor.java,v
retrieving revision 1.88
diff -u -r1.88 CmsXmlContentEditor.java
--- src/org/opencms/workplace/editors/CmsXmlContentEditor.java	30 Sep 2009 08:54:52 -0000	1.88
+++ src/org/opencms/workplace/editors/CmsXmlContentEditor.java	14 Jan 2010 17:50:14 -0000
@@ -39,6 +39,9 @@
 import org.opencms.file.collectors.I_CmsResourceCollector;
 import org.opencms.i18n.CmsEncoder;
 import org.opencms.i18n.CmsLocaleManager;
+import org.opencms.json.JSONArray;
+import org.opencms.json.JSONException;
+import org.opencms.json.JSONObject;
 import org.opencms.jsp.CmsJspActionElement;
 import org.opencms.lock.CmsLockType;
 import org.opencms.main.CmsException;
@@ -75,6 +78,7 @@
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
+import java.util.StringTokenizer;
 
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
@@ -154,6 +158,9 @@
     /** Parameter name for the request parameter "elementname". */
     public static final String PARAM_ELEMENTNAME = "elementname";
 
+    /** Parameter name for the request parameter "elementname". */
+    public static final String PARAM_CHOICEELEMENTNAME = "choiceelementname";
+
     /** Parameter name for the request parameter "newlink". */
     public static final String PARAM_NEWLINK = "newlink";
 
@@ -184,6 +191,9 @@
     /** Parameter stores the name of the element to add or remove. */
     private String m_paramElementName;
 
+    /** Parameter stores the name of the Choice-element to add. */
+    private String m_paramChoiceElementName;
+
     /** The selected model file for the new resource. */
     private String m_paramModelFile;
 
@@ -641,7 +651,20 @@
                 // when other values are present, increase index to use right position
                 index += 1;
             }
-            m_content.addValue(getCms(), getParamElementName(), getElementLocale(), index);
+
+            if (CmsStringUtil.isEmpty(getParamChoiceElementName())) {
+                m_content.addValue(getCms(), getParamElementName(), getElementLocale(), index);
+            } else {
+                I_CmsXmlContentValue value = m_content.addValue(getCms(), getParamElementName(), getElementLocale(), index);
+                
+                //The tokenizer is necessary if a ChoiceContentDefinition contents Elements who are also a ChoiceContentDefinition
+                StringTokenizer tok = new StringTokenizer(getParamChoiceElementName(), "/");
+                while (tok.hasMoreElements()) {
+                    String choiceElement = tok.nextToken();
+                    LOG.info("choiceElement: " + choiceElement);
+                    value = m_content.addValue(getCms(), value.getPath() + "/" + choiceElement, getElementLocale(), 0);
+                }
+            }
         }
 
         if (getValidationHandler().hasWarnings(getElementLocale())) {
@@ -740,6 +763,17 @@
     }
 
     /**
+     * Returns the name of the Choice element to add.<p>
+     * This Parameter can also be seperated by "/" if a ChoiceContentDefinition has Elements who are also ChoiceContentDefinitions.
+     *
+     * @return the name of the Choice element to add
+     */
+    public String getParamChoiceElementName() {
+
+        return m_paramChoiceElementName;
+    }
+
+    /**
      * Returns the parameter that specifies the model file name.<p>
      * 
      * @return the parameter that specifies the model file name
@@ -1024,6 +1058,17 @@
     }
 
     /**
+     * Sets the name of the Choice-Element to add.<p>
+     * This Parameter can also be seperated by "/" if a ChoiceContentDefinition has Elements who are also ChoiceContentDefinitions.
+     *
+     * @param elementName the name of the Choice-Element to add
+     */
+    public void setParamChoiceElementName(String elementName) {
+
+        m_paramChoiceElementName = elementName;
+    }
+
+    /**
      * Sets the parameter that specifies the model file name.<p>
      * 
      * @param paramMasterFile the parameter that specifies the model file name
@@ -1321,9 +1366,12 @@
      * @param index the index of the element
      * @param addElement if true, the button to add an element is shown
      * @param removeElement if true, the button to remove an element is shown
+     * @param choiceListJson List of Choices if a ChoiceContentDefinition should be added.<br />
+     *        This must be a valid Javascript-JSON-String<br />
+     *        Example value for choiceListJson: [{Label:"first test", Name:"test1", Help:"The ElementType can be a Simple or Complex Type"},{Label:"second test", Name:"test2"}]
      * @return the html for the element operation buttons
      */
-    private String buildElementButtons(String elementName, int index, boolean addElement, boolean removeElement) {
+    private String buildElementButtons(String elementName, int index, boolean addElement, boolean removeElement, String choiceListJson) {
 
         StringBuffer jsCall = new StringBuffer(512);
 
@@ -1369,9 +1417,13 @@
         // build the add element button if required
         if (addElement) {
             jsCall.append(Boolean.TRUE);
+            // This param must be Javascript & HTML escaped.
+            // It is the Parameter of the showElementButtons()-function who create a HTML-link with href="javascript:addElement(... choiceListJson ...)"
+            jsCall.append(", \"" + CmsStringUtil.escapeJavaScript(CmsStringUtil.escapeHtml(choiceListJson)) + "\"");
             buttonPresent = true;
         } else {
             jsCall.append(Boolean.FALSE);
+            jsCall.append(", \"[]\"");
         }
         jsCall.append(");");
 
@@ -1391,6 +1443,7 @@
                 action.append(elementName);
                 action.append("', ");
                 action.append(index);
+                action.append(", " + choiceListJson + "");
                 action.append(");");
                 btAction = action.toString();
             } else if (removeElement) {
@@ -1406,9 +1459,9 @@
             }
             StringBuffer href = new StringBuffer(512);
             href.append("javascript:");
-            href.append(btAction);
+            href.append(CmsStringUtil.escapeHtml(btAction)); //escape quotes in HTML-Attribute
             href.append("\" onmouseover=\"");
-            href.append(jsCall);
+            href.append(CmsStringUtil.escapeHtml(jsCall.toString())); //escape quotes in HTML-Attribute
             href.append("checkElementButtons(true);\" onmouseout=\"checkElementButtons(false);\" id=\"btimg.");
             href.append(elementName).append(".").append(index);
             result = button(href.toString(), null, btIcon, Messages.GUI_EDITOR_XMLCONTENT_ELEMENT_BUTTONS_0, 0);
@@ -1635,7 +1688,7 @@
             for (Iterator i = contentDefinition.getTypeSequence().iterator(); i.hasNext();) {
                 // get the type
                 I_CmsXmlSchemaType type = (I_CmsXmlSchemaType)i.next();
-
+                
                 boolean tabCurrentlyOpened = false;
 
                 if (useTabs) {
@@ -1686,11 +1739,28 @@
                     firstElement = false;
                 }
 
+                
+                // get nestedContent Infos (also Choice-Content)
                 CmsXmlContentDefinition nestedContentDefinition = contentDefinition;
+                List choiceList = new ArrayList(); //needed for Javascript-ADD-Button
+                
                 if (!type.isSimpleType()) {
                     // get nested content definition for nested types
                     CmsXmlNestedContentDefinition nestedSchema = (CmsXmlNestedContentDefinition)type;
-                    nestedContentDefinition = nestedSchema.getNestedContentDefinition();
+                    nestedContentDefinition = getNestedContentDefinition(nestedSchema);
+                    
+                    // get Choice-Elements to Choice-List (needed for Javascript-ADD-Button)
+                    if (nestedContentDefinition.isChoiceType()) {
+                        
+                        Iterator choiceSubElementTypeIterator = nestedContentDefinition.getTypeSequence().iterator();
+                        while (choiceSubElementTypeIterator.hasNext()) {
+                            // get the type of possible SubElements
+                            I_CmsXmlSchemaType choiceSubElementType = (I_CmsXmlSchemaType)choiceSubElementTypeIterator.next();
+
+                            // add Choice-Element to Choice-List recursively
+                            addChoiceElementToChoiceList(choiceList, nestedContentDefinition, choiceSubElementType);
+                        }
+                    }
                 }
                 // create xpath to the current element
                 String name = pathPrefix + type.getName();
@@ -1724,10 +1794,49 @@
                     // get value and corresponding widget
                     I_CmsXmlContentValue value = elementSequence.getValue(j);
                     I_CmsWidget widget = null;
-                    if (type.isSimpleType()) {
-                        widget = contentDefinition.getContentHandler().getWidget(value);
+                    
+                    // the value will be replaced by the SubElement if it is a ChoiceElement.
+                    // so get the Index now bevor it is to late.
+                    int valueIndex = value.getIndex();
+                    
+                    // Get ChoiceSubElementsVariables
+                    String choiceSubElementPathPrefix = null; // only necessary if the Choice-SubElement is a NestedContent (recursive-Call of this function)
+                    CmsXmlContentDefinition choiceSubElementNestedContentDefinition = null; //only used if widget==null
+                    
+                    String label;
+                    
+                    // if this elments has a Value and it is a Choice-Element, than get the chosen ChoiceSubElement
+                    if (!disabledElement && !type.isSimpleType() && nestedContentDefinition.isChoiceType()) {
+                        ChoiceSubElementValueHolder valueHolder = new ChoiceSubElementValueHolder(nestedContentDefinition, pathPrefix, value, widget);
+
+                        // get Lable
+                        label = keyDefault(A_CmsWidget.getLabelKey((I_CmsWidgetParameter)value), value.getName());
+                        valueHolder.setLabel(label);
+                        
+                        valueHolder = getChoiceSubElement(valueHolder);
+
+                        // The new ChoiceSubElementPathPrefix
+                        choiceSubElementPathPrefix = valueHolder.getPathPrefix();
+                        // The new ChoiceSubElement Value
+                        value = valueHolder.getValue();
+                        // The Label for this ChoiceSubElement Value (Wihtout Counter. Maybe separate by "/" if it is a recusrsive Choice SubSubElement )
+                        label = valueHolder.getLabel();
+                        // The new ChoiceSubElement Widget Or NestedContentDefinition (who is certainly no choice nestedContentDefinition.)
+                        widget = valueHolder.getWidget();
+                        choiceSubElementNestedContentDefinition = valueHolder.getNestedContentDefinition();
+                        
+                    } else {
+                        label = keyDefault(A_CmsWidget.getLabelKey((I_CmsWidgetParameter)value), value.getName());
+                        if (type.isSimpleType()) {
+                            widget = contentDefinition.getContentHandler().getWidget(value);
+                        }
                     }
 
+                    // Befor an empty Lable exists show the element-Name
+                    if (CmsStringUtil.isEmpty(label)) {
+                        label = value.getName();
+                    }
+                    
                     // show errors and/or warnings               
                     String key = value.getPath();
                     if (showErrors
@@ -1786,6 +1895,7 @@
                             m_warningTabs.add(m_currentTab);
                         }
                     }
+                    
                     // create label and help bubble cells
                     result.append("<tr>");
                     if (!collapseLabel) {
@@ -1795,13 +1905,13 @@
                             result.append("Disabled");
                         }
                         result.append("\">");
-                        result.append(keyDefault(A_CmsWidget.getLabelKey((I_CmsWidgetParameter)value), value.getName()));
+                        result.append(label);
                         if (elementCount > 1) {
-                            result.append(" [").append(value.getIndex() + 1).append("]");
+                            result.append(" [").append(valueIndex + 1).append("]");
                         }
                         result.append(": </td>");
                         if (showHelpBubble && (widget != null) && (value.getIndex() == 0)) {
-                            // show help bubble only on first element of each content definition 
+                            // show help bubble only on first element of each content definition (if it is a Choice-Value than value.getIndex() is always 0)
                             result.append(widget.getHelpBubble(getCms(), this, (I_CmsWidgetParameter)value));
                         } else {
                             // create empty cell for all following elements 
@@ -1812,17 +1922,31 @@
                     // append individual widget html cell if element is enabled
                     if (!disabledElement) {
                         if (widget == null) {
-                            // recurse into nested type sequence
-                            String newPath = CmsXmlUtils.createXpathElement(value.getName(), value.getIndex() + 1);
-                            result.append("<td class=\"maxwidth\">");
-                            boolean showHelp = (j == 0);
                             superTabOpened = !nested && tabOpened && collapseLabel;
-                            result.append(getXmlEditorForm(
-                                nestedContentDefinition,
-                                pathPrefix + newPath + "/",
-                                showHelp,
-                                superTabOpened));
-                            result.append("</td>");
+                            
+                            if (nestedContentDefinition.isChoiceType()) {
+                                //include subelement
+                                String newPath = CmsXmlUtils.createXpathElement(value.getName(), value.getIndex() + 1); // if it is a Choice-Value than value.getIndex() is always 0
+                                result.append("<td class=\"maxwidth\">");
+                                boolean showHelp = (j == 0);
+                                result.append(getXmlEditorForm(
+                                    choiceSubElementNestedContentDefinition,
+                                    choiceSubElementPathPrefix + newPath + "/",
+                                    showHelp,
+                                    superTabOpened));
+                                result.append("</td>");
+                            } else {
+                                String newPath = CmsXmlUtils.createXpathElement(value.getName(), value.getIndex() + 1);
+                                result.append("<td class=\"maxwidth\">");
+                                boolean showHelp = (j == 0);
+                                result.append(getXmlEditorForm(
+                                    nestedContentDefinition,
+                                    pathPrefix + newPath + "/",
+                                    showHelp,
+                                    superTabOpened));
+                                result.append("</td>");
+                            }
+                            
                         } else {
                             // this is a simple type, display widget
                             result.append(widget.getDialogWidget(getCms(), this, (I_CmsWidgetParameter)value));
@@ -1835,7 +1959,7 @@
                     }
 
                     // append element operation (add, remove, move) buttons if required
-                    result.append(buildElementButtons(name, value.getIndex(), addValue, removeValue));
+                    result.append(buildElementButtons(name, valueIndex, addValue, removeValue, new JSONArray(choiceList).toString()));
 
                     // close row
                     result.append("</tr>\n");
@@ -1874,6 +1998,211 @@
     }
 
     /**
+     * Get some infos of The SubElement of this ChoiceElements:<br />
+     * (a Choice-Element can only have one Subelement.)<br />
+     * - pathPrefix: only necessary if the Choice-SubElement is a NestedContent (for recursive-Call of this function)<br />
+     * - I_CmsXmlContentValue value: <br />
+     * - Widget or NestedContentDefinition)<br />
+     * <br />
+     * return the ValueHolder With the nestedContentDefinition, pathprefix and value of the single SubElement<br />
+     * Or recursively the SubSubElement who is not a Choice NestedContentDefinition.<br />
+     * 
+     * @param valueHolder Contains the nestedContentDefinition, pathprefix and value of the parentElement.
+     * @return the ValueHolder With the (nestedContentDefinition or widget), pathprefix and value of the single SubElement (or recursively the SubSubElement who is not a Choice NestedContentDefinition.).
+     * @throws CmsXmlException
+     */
+    private ChoiceSubElementValueHolder getChoiceSubElement(ChoiceSubElementValueHolder valueHolder) throws CmsXmlException {
+        
+        String newPath = CmsXmlUtils.createXpathElement(valueHolder.getValue().getName(), valueHolder.getValue().getIndex() + 1);
+
+        // GET new PathPrefix
+        valueHolder.setPathPrefix(valueHolder.getPathPrefix() + newPath + "/");
+        
+        // iterate the type sequence and search a value with this type
+        Iterator choiceSubElementTypeIterator = valueHolder.getNestedContentDefinition().getTypeSequence().iterator();
+        while (choiceSubElementTypeIterator.hasNext()) {
+
+            // get the type of possible SubElements
+            I_CmsXmlSchemaType choiceSubElementType = (I_CmsXmlSchemaType)choiceSubElementTypeIterator.next();
+            
+            
+            // create xpath to the Sub element of this Choice-Element
+            String choiceSubElementName = valueHolder.getPathPrefix() + choiceSubElementType.getName();
+            
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("choiceSubElementName: " + choiceSubElementName);
+            }
+            
+            // get the element sequence of the current type
+            CmsXmlContentValueSequence choiceSubElementSequence = m_content.getValueSequence(choiceSubElementName, getElementLocale());
+            if (choiceSubElementSequence == null) {
+                // No choiceSubElementType found, goto next choiceSubElementType
+                LOG.error("should not occured");
+                continue;
+            }
+            
+            int choiceSubElementCount = choiceSubElementSequence.getElementCount();
+            if (choiceSubElementCount < 1) {
+                // No element found for this choiceSubElementType, goto next choiceSubElementType
+                continue;
+            }
+            
+            if (choiceSubElementCount > 1) { // Choice-Sub-Elements can only occurede one time.
+                LOG.warn("choiceSubElementCount > 1: '" + m_content.getFile().getRootPath() + "'; '" + valueHolder.getPathPrefix() + "'");
+            }
+            
+            // get the first choiceSubElementValue
+            valueHolder.setValue(choiceSubElementSequence.getValue(0));
+            
+            // get Lable
+            String label = keyDefault(A_CmsWidget.getLabelKey((I_CmsWidgetParameter)valueHolder.getValue()), valueHolder.getValue().getName());
+            if (!CmsStringUtil.isEmpty(valueHolder.getLabel())) {
+                if (!CmsStringUtil.isEmpty(label)) {
+                    label = valueHolder.getLabel().concat("/").concat(label);
+                }
+            }
+            valueHolder.setLabel(label);
+            
+            // get Widget or NestedContentDefinition or recursivly the result of the Choice-NestedContentDefinition 
+            if (choiceSubElementType.isSimpleType()) {
+                valueHolder.setWidget(valueHolder.getNestedContentDefinition().getContentHandler().getWidget(valueHolder.getValue()));
+            } else {
+                // get nested content definition for nested types
+                CmsXmlNestedContentDefinition choiceSubElementNestedSchema = (CmsXmlNestedContentDefinition)choiceSubElementType;
+                valueHolder.setNestedContentDefinition(choiceSubElementNestedSchema.getNestedContentDefinition());
+                if (valueHolder.getNestedContentDefinition().isChoiceType()) {
+                    LOG.info("Nested ChoiceContentDefinition found: " + valueHolder.getPathPrefix());
+                    valueHolder = getChoiceSubElement(valueHolder);
+                }
+            }
+            
+            // found one Sub-Element found in Choice-Element
+            return valueHolder; // exit loop
+        }
+        
+        LOG.warn("NO nestedContent- Choice-Value found: " + valueHolder.getPathPrefix());
+        return valueHolder;
+    }
+
+    /**
+     * add Choice-Element to Choice-List (needed for Javascript-ADD-Button).
+     * 
+     * @param choiceList The ChoiceList where The Choice-Element should be added
+     * @param contentDefinition The contentDefinition who contents this choiceSubElementType
+     * @param choiceSubElementType The element type of the Choice-Element who should be added
+     * @throws JSONException  
+     */
+    private void addChoiceElementToChoiceList(List choiceList, CmsXmlContentDefinition contentDefinition, I_CmsXmlSchemaType choiceSubElementType) throws JSONException {
+        addChoiceElementToChoiceList(choiceList, contentDefinition, choiceSubElementType, "", "");
+    }
+
+    /**
+     * add Choice-Element to Choice-List recursively (needed for Javascript-ADD-Button).
+     * 
+     * @param choiceList The ChoiceList where The Choice-Element should be added
+     * @param contentDefinition The contentDefinition who contents this choiceSubElementType
+     * @param choiceSubElementType The element type of the Choice-Element who should be added
+     * @param labelPrefix the Labelprefix of the previously called {@link #addChoiceElementToChoiceList(List, CmsXmlContentDefinition, I_CmsXmlSchemaType, String, String)}
+     * @param namePrefix the Nameprefix of the previously called {@link #addChoiceElementToChoiceList(List, CmsXmlContentDefinition, I_CmsXmlSchemaType, String, String)}
+     * @throws JSONException 
+     */
+    private void addChoiceElementToChoiceList(List choiceList, CmsXmlContentDefinition contentDefinition, I_CmsXmlSchemaType choiceElementType, String labelPrefix, String namePrefix) throws JSONException {
+        StringBuffer labelKey = new StringBuffer(128);
+        String helpKey;
+        // The following code is not used in XmlContentEditor (Only used in Administration-View etc....)
+//        if (CmsStringUtil.isNotEmptyOrWhitespaceOnly(pathPrefix)) {
+//            labelKey.append(pathPrefix);
+//            labelKey.append('.');
+//        }
+        labelKey.append(A_CmsWidget.LABEL_PREFIX);
+        labelKey.append(contentDefinition.getInnerName());
+        labelKey.append('.');
+        labelKey.append(choiceElementType.getName());
+        
+        helpKey = labelKey.toString().concat(A_CmsWidget.HELP_POSTFIX);
+        
+        
+        if (LOG.isDebugEnabled()) {
+            LOG.debug("labelKey: " + labelKey.toString());
+            LOG.debug("helpKey: " + helpKey);
+        }
+
+        String label = keyDefault(labelKey.toString(), choiceElementType.getName());
+        String help = keyDefault(helpKey, "");
+        String name = choiceElementType.getName();
+        
+        // append Prefixes to Name & Label
+        if (!CmsStringUtil.isEmpty(namePrefix)) {
+            name = namePrefix.concat("/").concat(name);
+        }
+        if (!CmsStringUtil.isEmpty(labelPrefix)) {
+            if (!CmsStringUtil.isEmpty(label)) {
+                label = labelPrefix.concat("/").concat(label);
+            }
+        }
+        
+
+        // add Choice-Element to Choice-List
+        if (isChoiceType(choiceElementType)) {
+            CmsXmlContentDefinition nestedContentDefinition = getNestedContentDefinition(choiceElementType);
+            
+            // recursive call if this is a Choice-NestedContentDefinition
+            Iterator choiceSubElementTypeIterator = nestedContentDefinition.getTypeSequence().iterator();
+            while (choiceSubElementTypeIterator.hasNext()) {
+                // get the type of possible SubElements
+                I_CmsXmlSchemaType choiceSubElementType = (I_CmsXmlSchemaType)choiceSubElementTypeIterator.next();
+
+                // add Choice-Element to Choice-List
+                addChoiceElementToChoiceList(choiceList, nestedContentDefinition, choiceSubElementType, label, name);
+            }
+        } else {
+            JSONObject jsonObj = new JSONObject();
+            jsonObj.put("Label", label);
+            jsonObj.put("Name", name);
+            if (!CmsStringUtil.isEmpty(help)) {
+                jsonObj.put("Help", help);
+            }
+            choiceList.add(jsonObj);
+        }
+    }
+
+    /**
+     * check if this choiceElementType is a Choice-NestedContentDefinition.
+     * 
+     * @param choiceElementType true if this element is a choice-element
+     * 
+     * @return
+     */
+    private boolean isChoiceType(I_CmsXmlSchemaType choiceElementType) {
+        
+        boolean isChoiceType;
+        CmsXmlContentDefinition nestedContentDefinition = null;
+        if (choiceElementType.isSimpleType()) {
+            isChoiceType = false;
+        } else {
+            nestedContentDefinition = getNestedContentDefinition(choiceElementType);
+            
+            // get Choice-Elements to Choice-List (needed for Javascript-ADD-Button)
+            if (nestedContentDefinition.isChoiceType()) {
+                isChoiceType = true;
+            } else {
+                isChoiceType = false;
+            }
+        }
+        return isChoiceType;
+    }
+
+    private CmsXmlContentDefinition getNestedContentDefinition(I_CmsXmlSchemaType nestedSchema) {
+
+        if (nestedSchema instanceof CmsXmlNestedContentDefinition) {
+            CmsXmlContentDefinition nestedContentDefinition = ((CmsXmlNestedContentDefinition)nestedSchema).getNestedContentDefinition();
+            return nestedContentDefinition;
+        } else {
+            throw new IllegalArgumentException("The nestedSchema must be an Inxtance of CmsXmlNestedContentDefinition.");
+        }
+    }
+    
+    /**
      * Resets the error handler member variable to reinitialize the error messages.<p>
      */
     private void resetErrorHandler() {
@@ -1908,4 +2237,57 @@
         m_file = getCloneCms().writeFile(m_file);
         m_content = CmsXmlContentFactory.unmarshal(getCloneCms(), m_file);
     }
+    
+    /**
+     * The recursive function {@link CmsXmlContentEditor#getChoiceSubElement(ChoiceSubElementValueHolder)}<br />
+     * Returns more then one Value: A ValueHolder is needed.<br />
+     * 
+     * @author harald brabenetz
+     */
+    private class ChoiceSubElementValueHolder {
+        private String m_pathPrefix; // only necessary if the Choice-SubElement is a NestedContent (recursive-Calls)
+        private CmsXmlContentDefinition m_nestedContentDefinition; //only used if widget==null
+        private I_CmsXmlContentValue m_value;
+        private I_CmsWidget m_widget;
+        private String m_label;
+        
+        public ChoiceSubElementValueHolder(CmsXmlContentDefinition nestedContentDefinition, String pathPrefix, I_CmsXmlContentValue value, I_CmsWidget widget) {
+            super();
+            this.m_nestedContentDefinition = nestedContentDefinition;
+            this.m_pathPrefix = pathPrefix;
+            this.m_value = value;
+            this.m_widget = widget;
+        }
+        
+        public CmsXmlContentDefinition getNestedContentDefinition() {
+            return m_nestedContentDefinition;
+        }
+        public void setNestedContentDefinition(CmsXmlContentDefinition nestedContentDefinition) {
+            this.m_nestedContentDefinition = nestedContentDefinition;
+        }
+        public String getPathPrefix() {
+            return m_pathPrefix;
+        }
+        public void setPathPrefix(String pathPrefix) {
+            this.m_pathPrefix = pathPrefix;
+        }
+        public I_CmsXmlContentValue getValue() {
+            return m_value;
+        }
+        public void setValue(I_CmsXmlContentValue value) {
+            this.m_value = value;
+        }
+        public I_CmsWidget getWidget() {
+            return m_widget;
+        }
+        public void setWidget(I_CmsWidget widget) {
+            this.m_widget = widget;
+        }
+        public String getLabel() {
+            return m_label;
+        }
+        public void setLabel(String label) {
+            this.m_label = label;
+        }
+    }
 }
\ No newline at end of file
Index: build.xml
===================================================================
RCS file: /usr/local/cvs/opencms/build.xml,v
retrieving revision 1.224
diff -u -r1.224 build.xml
--- build.xml	29 Sep 2009 09:49:42 -0000	1.224
+++ build.xml	14 Jan 2010 17:50:13 -0000
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 
-<project name="OpenCms" default="bindist" basedir=".">
+<project name="OpenCms" default="bindist" basedir="." xmlns:artifact="urn:maven-artifact-ant">
 
-    <property name="version.number"             		value="7.5.1" />
+    <property name="version.number"             		value="7.5.1.1" />
     <property name="java.target.version"                value="1.5" />
     
 	<property name="app.name" 							value="opencms" />
@@ -54,6 +54,8 @@
 	  </classpath>
 	</taskdef>
 	
+
+	
 	<taskdef resource="org/opencms/util/ant/taskdefs.properties" loaderref="opencms">
 		<classpath>
 			<pathelement location="${opencms.input.libs.compile}/ant-opencms-1.1.jar" />
@@ -64,6 +66,13 @@
 		</classpath>
 	</taskdef>
 
+	<!-- ==================== Maven typedef ================================== -->
+    <typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">
+        <classpath>
+            <pathelement location="${opencms.input.libs.compile}/maven-ant-tasks-2.0.10.jar" />
+        </classpath>
+    </typedef>
+            	
 	<!-- 
 	  -	Checks if all required libraries are available
 	  -->
@@ -212,6 +221,13 @@
             includes="org/opencms/**" >      
             <metainf dir="${opencms.input.warfiles}/WEB-INF" includes="opencms.tld"/>
         </jar>        	     
+
+    	<!-- create Source-Archive to include it into the Eclipse-Configuration. -->
+    	<delete file="${opencms.output.jars}/opencms_${version.number}_sources.jar" failonerror="no"/>
+        <jar destfile="${opencms.output.jars}/opencms_${version.number}_sources.jar">
+        	<zipfileset dir="${opencms.input}/src" excludes="${excludes}" />
+            <zipfileset dir="${opencms.input}" includes="license.txt" prefix="META-INF"/>
+        </jar>
     	
     </target>
 
@@ -342,7 +358,17 @@
   			<zipfileset dir="${opencms.output.classes}" prefix="setup" includes="versions.txt" />
 			<zipfileset dir="${opencms.output.classes}" prefix="setup" includes="license.html" />
 			<zipfileset dir="${opencms.output.classes}" prefix="setup" includes="license.html" />
-        </war>        
+        </war>
+    	
+		<!--
+			copy War-Skeleton without Modules to opencms-webapp-${version.number}.war
+			This War-Skeleton will be deployed to the Maven Repository as groupId=org.opencms and artifactId=opencms-webapp
+		 -->
+    	<delete failonerror="no" file="${opencms.build}/${app.name}-webapp-${version.number}.war" />
+    	<copy
+    		file="${opencms.build}/${app.name}.war"
+    		tofile="${opencms.build}/${app.name}-webapp-${version.number}.war" />
+    	
     </target>
     
 
@@ -436,7 +462,7 @@
             <zipfileset dir="${opencms.input}" includes="install.html,license.txt,history.txt"/>
         </zip>
 
-    </target>    
+    </target>
     
     <target name="srcdist" 
     	description="Creates a source distribution ZIP">
@@ -523,7 +549,6 @@
             <fileset dir="${opencms.input}/test/data" />
         </copy>       	    	       
     </target>
-	
 
     <target name="setup-jar" depends="jar" description="Compile the OpenCms setup/updater classes">
     	
@@ -561,7 +586,14 @@
             jarfile="${opencms.output.jars}/opencms-setup.jar"
             basedir="${opencms.output}/build/setup"
             includes="org/opencms/**" />
-
+        
+    	<!-- create Source-Archive to include it into the Eclipse-Configuration. -->
+    	<delete file="${opencms.output.jars}/opencms-setup_${version.number}_sources.jar" failonerror="no"/>
+        <jar destfile="${opencms.output.jars}/opencms-setup_${version.number}_sources.jar">
+        	<zipfileset dir="${opencms.input}/src-setup" excludes="${excludes}" />
+            <zipfileset dir="${opencms.input}" includes="license.txt" prefix="META-INF"/>
+        </jar>
+    	
     </target>
 	
 
@@ -658,6 +690,184 @@
         <copy 
             todir="${opencms.input}/modules/org.opencms.workplace.explorer/resources/system/workplace/resources/components/upload_applet/"
             file="${opencms.output}/upload/upload.jar" />
-    </target>    
+    </target>
+	
+    <target name="maven-install-core" description="install the ${opencms.output.jars}/opencms.jar into the locale Maven Repository">
+
+    	<artifact:pom id="pom-opencms-core" file="pom-opencms-core.xml" />
+		<artifact:install file="${opencms.output.jars}/opencms.jar">
+			<pom refid="pom-opencms-core"/>
+			<attach file="${opencms.output.jars}/opencms_${version.number}_sources.jar" type="jar" classifier="sources" />
+	    	<attach file="${opencms.output.jars}/opencms_${version.number}_tests.jar" type="test-jar" />
+	    	<attach file="${opencms.output.jars}/opencms_${version.number}_test_sources.jar" type="test-jar" classifier="test-sources" />
+    	</artifact:install>
+    	
+    </target>
+	
+    <target name="maven-install-setup" description="install the OpenCms-Artifacts into the locale Maven Repository">
+    	
+    	<artifact:pom id="pom-opencms-setup" file="pom-opencms-setup.xml" />
+		<artifact:install file="${opencms.output.jars}/opencms-setup.jar">
+			<pom refid="pom-opencms-setup"/>
+			<attach file="${opencms.output.jars}/opencms-setup_${version.number}_sources.jar" type="jar" classifier="sources" />
+		</artifact:install>
+    	
+    </target>
+	
+    <target name="maven-install-webapp" description="install the WebApp-Skeleton (without modules) into the locale Maven Repository">
+
+    	<artifact:pom id="pom-opencms-webapp" file="pom-opencms-webapp.xml" />
+		<artifact:install file="${opencms.build}/${app.name}-webapp-${version.number}.war">
+			<pom refid="pom-opencms-webapp"/>
+		</artifact:install>
+    	
+    </target>
+	
+    <target name="maven-install-new-modules">
+		<!-- read list of all available modules -->
+    	<property file="${opencms.input}/modules/all-modules.properties" />
+
+    	<ant antfile="${opencms.input}/modules/build.xml" target="maven-install" inheritAll="false" >
+	  		<property name="version.number" value="${version.number}" />
+	  		<property name="modules.common.selection" value="${modules.common.all}" />
+	  		<property name="modules.selection.mode" value="selection" />
+	  		<property name="app.name" value="${app.name}" />
+	  	</ant>
+    </target>
+	
+    <target name="maven-install-all-modules">
+		<!-- read list of all available modules -->
+    	<property file="${opencms.input}/modules/all-modules.properties" />
+
+    	<ant antfile="${opencms.input}/modules/build.xml" target="maven-install-all" inheritAll="false" >
+	  		<property name="modules.common.selection" value="${modules.common.all}" />
+	  		<property name="modules.selection.mode" value="selection" />
+	  		<property name="app.name" value="${app.name}" />
+	  	</ant>
+    </target>
+	
+    <target name="maven-deploy-core" description="install the ${opencms.output.jars}/opencms.jar into the locale Maven Repository">
+		<!-- required for Transport-protocol (beta-6 doesn't work...) -->
+		<artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
+
+    	<artifact:pom id="pom-opencms-core" file="pom-opencms-core.xml" />
+		<artifact:deploy file="${opencms.output.jars}/opencms.jar">
+			<pom refid="pom-opencms-core"/>
+			<attach file="${opencms.output.jars}/opencms_${version.number}_sources.jar" type="jar" classifier="sources" />
+	    	<attach file="${opencms.output.jars}/opencms_${version.number}_tests.jar" type="test-jar" />
+	    	<attach file="${opencms.output.jars}/opencms_${version.number}_test_sources.jar" type="test-jar" classifier="test-sources" />
+    	</artifact:deploy>
+    	
+    </target>
+	
+    <target name="maven-deploy-setup" description="install the OpenCms-Artifacts into the locale Maven Repository">
+		<!-- required for Transport-protocol (beta-6 doesn't work...) -->
+		<artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
+    	
+    	<artifact:pom id="pom-opencms-setup" file="pom-opencms-setup.xml" />
+		<artifact:deploy file="${opencms.output.jars}/opencms-setup.jar">
+			<pom refid="pom-opencms-setup"/>
+			<attach file="${opencms.output.jars}/opencms-setup_${version.number}_sources.jar" type="jar" classifier="sources" />
+		</artifact:deploy>
+    	
+    </target>
+	
+    <target name="maven-deploy-webapp" description="install the WebApp-Skeleton (without modules) into the locale Maven Repository">
+		<!-- required for Transport-protocol (beta-6 doesn't work...) -->
+		<artifact:install-provider artifactId="wagon-ssh" version="1.0-beta-2"/>
+
+    	<artifact:pom id="pom-opencms-webapp" file="pom-opencms-webapp.xml" />
+		<artifact:deploy file="${opencms.build}/${app.name}-webapp-${version.number}.war">
+			<pom refid="pom-opencms-webapp"/>
+		</artifact:deploy>
+    	
+    </target>
+	
+    <target name="maven-deploy-new-modules">
+		<!-- read list of all available modules -->
+    	<property file="${opencms.input}/modules/all-modules.properties" />
+    	
+    	<ant antfile="${opencms.input}/modules/build.xml" target="maven-deploy" inheritAll="false" >
+	  		<property name="version.number" value="${version.number}" />
+	  		<property name="modules.common.selection" value="${modules.common.all}" />
+	  		<property name="modules.selection.mode" value="selection" />
+	  		<property name="app.name" value="${app.name}" />
+	  	</ant>
+    </target>
+	
+    <target name="maven-deploy-all-modules">
+		<!-- read list of all available modules -->
+    	<property file="${opencms.input}/modules/all-modules.properties" />
+    	
+    	<ant antfile="${opencms.input}/modules/build.xml" target="maven-deploy-all" inheritAll="false" >
+	  		<property name="modules.common.selection" value="${modules.common.all}" />
+	  		<property name="modules.selection.mode" value="selection" />
+	  		<property name="app.name" value="${app.name}" />
+	  	</ant>
+    </target>
+	
+    <target name="maven-dependencies-test" description="copy dependencies configured in pom-opencms-core.xml to ${opencms.build}/dependencies">
+
+    	<artifact:pom id="pom-opencms-core" file="pom-opencms-core.xml" />
+    
+    	<artifact:dependencies filesetId="dependency.fileset" useScope="runtime">
+			<pom refid="pom-opencms-core"/>
+    	</artifact:dependencies>
+    	
+    	<copy todir="${opencms.build}/dependencies">
+    	  <fileset refid="dependency.fileset" />
+    	  <!-- This mapper strips off all leading directory information -->
+    	  <mapper type="flatten" />
+    	</copy>
+    	
+    	
+    </target>
+
+    <target name="maven-build-all-artifacts" description="Create all Artifacts (opencms-core and Modules) with /modules/build.xml => target 'war'">
+		<!-- read list of all available modules -->
+    	<property file="${opencms.input}/modules/all-modules.properties" />
+    	<!-- build war with all modules -->
+	  	<ant antfile="${opencms.input}/modules/build.xml" target="war" inheritAll="false" >
+	  		<property name="modules.common.selection" value="${modules.common.all}" />
+	  		<property name="modules.selection.mode" value="selection" />
+	  		<property name="app.name" value="${app.name}" />
+	  	</ant>
+    	
+    </target>
+
+	<target name="maven-build-test-jar" depends="compile-tests"
+		description="Create UnitTest-Jar of the Test-Classes (Helper-Classes to create UnitTests in OpenCms-Modules)">
+		
+        <jar jarfile="${opencms.output.jars}/opencms_${version.number}_tests.jar"
+            basedir="${opencms.output.tests}" excludes="**/data/**" />
+
+    	<!-- create Source-Archive to include it into the Eclipse-Configuration. -->
+    	<delete file="${opencms.output.jars}/opencms_${version.number}_test_sources.jar" failonerror="no"/>
+        <jar destfile="${opencms.output.jars}/opencms_${version.number}_test_sources.jar">
+        	<zipfileset dir="${opencms.input}/test" excludes="**/data/**" />
+            <zipfileset dir="${opencms.input}" includes="license.txt" prefix="META-INF"/>
+        </jar>
+		
+	</target>
+	
+    <target name="maven-install-init-all"
+    	depends="maven-build-all-artifacts, maven-build-test-jar, maven-install-core, maven-install-setup, maven-install-webapp, maven-install-all-modules"
+    	description="initial install of all current OpenCms-Artifacts into the locale Maven Repository">
+    </target>
+	
+    <target name="maven-install-with-new-modules"
+    	depends="maven-build-all-artifacts, maven-build-test-jar, maven-install-core, maven-install-setup, maven-install-webapp, maven-install-new-modules"
+    	description="install only new opencms-modules, who matches the opencms-core version.number">
+    </target>
+	
+    <target name="maven-deploy-init-all"
+    	depends="maven-build-all-artifacts, maven-build-test-jar, maven-deploy-core, maven-deploy-setup, maven-deploy-webapp, maven-deploy-all-modules"
+    	description="initial deploy of all current OpenCms-Artifacts into the global Maven Repository">
+    </target>
+	
+    <target name="maven-deploy-with-new-modules"
+    	depends="maven-build-all-artifacts, maven-build-test-jar, maven-deploy-core, maven-deploy-setup, maven-deploy-webapp, maven-deploy-new-modules"
+    	description="deploy only new opencms-modules, who matches the opencms-core version.number">
+    </target>
 
 </project>
\ No newline at end of file
Index: modules/org.opencms.editors/resources/manifest.xml
===================================================================
RCS file: /usr/local/cvs/opencms/modules/org.opencms.editors/resources/manifest.xml,v
retrieving revision 1.44
diff -u -r1.44 manifest.xml
--- modules/org.opencms.editors/resources/manifest.xml	3 Jul 2009 10:36:01 -0000	1.44
+++ modules/org.opencms.editors/resources/manifest.xml	14 Jan 2010 17:50:14 -0000
@@ -3,7 +3,7 @@
 <export>
 	<info>
 		<creator>Admin</creator>
-		<opencms_version>7.5.0</opencms_version>
+		<opencms_version>7.5.1.1</opencms_version>
 		<createdate>Mon, 25 Jun 2007 14:11:34 GMT</createdate>
 		<infoproject>Offline</infoproject>
 		<export_version>7</export_version>
@@ -16,7 +16,7 @@
 		<description><![CDATA[<p>This module contains the OpenCms Common Editing tools.</p>
 <p>This module is needed to be able to edit files in the OpenCms Workplace.</p>
 <p><i>(c) 2007 by Alkacon Software GmbH (http://www.alkacon.com).</i></p>]]></description>
-		<version>7.5.1</version>
+		<version>7.5.1.1</version>
 		<authorname><![CDATA[Alkacon Software GmbH]]></authorname>
 		<authoremail><![CDATA[info@alkacon.com]]></authoremail>
 		<datecreated>Mon, 27 Jun 2005 08:00:00 GMT</datecreated>
Index: modules/pom-template.xml
===================================================================
RCS file: modules/pom-template.xml
diff -N modules/pom-template.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/pom-template.xml	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,139 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.opencms.modules</groupId>
+	<artifactId>@OPENCMS_MODULE_NAME@</artifactId>
+	<packaging>jar</packaging>
+	<version>@OPENCMS_MODULE_VERSION@</version>
+	<name>@OPENCMS_MODULE_NAME@</name>
+	<url>http://opencms.org</url>
+
+	<description><![CDATA[
+		OpenCms-Module '@OPENCMS_MODULE_NAME@'.
+		
+		@OPENCMS_MODULE_DESCRIPTION@
+		
+		OpenCms is a Content Management System that is based on Open
+		Source Software. Complex Intranet and Internet websites can be
+		quickly and cost-effectively created, maintained and managed.
+		
+		
+	]]></description>
+	
+	<inceptionYear>2008</inceptionYear>
+
+	<mailingLists>
+		<!-- Example:
+		<mailingList>
+			<name>OpenCms library User Mailing list - How To, FAQ, etc</name>
+			<subscribe>
+				http://lists.sourceforge.net/lists/listinfo/opencms-user
+			</subscribe>
+			<unsubscribe>
+				http://lists.sourceforge.net/lists/listinfo/opencms-user
+			</unsubscribe>
+			<post />
+			<archive>
+				http://sourceforge.net/mailarchive/forum.php?forum=opencms-user
+			</archive>
+		</mailingList>
+		-->
+	</mailingLists>
+
+	<developers>
+		<!-- Example:
+		<developer>
+			<name>Harald Brabenetz</name>
+			<id>brabenetz</id>
+			<email>brabenetz(at)users.sourceforge.net</email>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		 -->
+	</developers>
+	
+	<contributors>
+	</contributors>
+	
+	<licenses>
+		<license>
+			<name>GNU LESSER GENERAL PUBLIC LICENSE 2.1</name>
+			<url>http://www.gnu.org/licenses/lgpl-2.1.txt</url>
+			<distribution>repo</distribution>
+		</license>
+	</licenses>
+	
+	<build>
+		<defaultGoal>install</defaultGoal>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.0.2</version>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<!-- ########################### -->
+		<!-- Place here the Library-dependencies for OpenCms -->
+		<!-- Possible Scopes: compile, provided, runtime, test -->
+		<!-- see http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope -->
+		<!-- ########################### -->
+
+		<!-- ########################### -->
+		<!--      SCOPE Provided          -->
+		<!-- ########################### -->
+		
+		<!-- All Modules depends on opencms-core -->
+		<!-- Already provided in OpenCms-Webapp -->
+		<dependency>
+			<groupId>org.opencms</groupId>
+			<artifactId>opencms-core</artifactId>
+			<version>7.5.1</version>
+			<scope>provided</scope>
+		</dependency>
+		
+		<!-- OpenCms-Module-Dependencies of Module '@OPENCMS_MODULE_NAME@' -->
+		
+		@OPENCMS_MODULE_DEPENDENCIES@
+		
+	</dependencies>
+
+
+	<repositories>
+		<repository>
+			<id>opencms</id>
+			<url>http://bp-cms-commons.sourceforge.net/m2repo</url>
+		</repository>
+	</repositories>
+
+
+	<!-- Example (required for Maven-Release-Plugin)
+	<scm>
+		<connection>scm:svn:http://opencms.svn.sourceforge.net/svnroot/opencms/${project.artifactId}/trunk</connection>
+		<developerConnection>scm:svn:https://opencms.svn.sourceforge.net/svnroot/opencms/${project.artifactId}/trunk</developerConnection>
+		<url>http://opencms.svn.sourceforge.net/viewcvs.cgi/opencms/${project.artifactId}/trunk</url>
+	</scm>
+	 -->
+	<!--
+		Example (required for deploy the artifact to the repository, or the generated Site to the www) -->
+	<distributionManagement>
+		<repository>
+			<id>scp-be-opencms-repository</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2repo</url>
+		</repository>
+		<snapshotRepository>
+			<id>scp-be-opencms-snapshot-repository</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2snapshot</url>
+		</snapshotRepository>
+		<site>
+			<id>scp-be-opencms-site</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2site/opencms/${project.artifactId}/${project.version}/</url>
+		</site>
+	</distributionManagement>
+</project>
Index: modules/build.bat
===================================================================
RCS file: modules/build.bat
diff -N modules/build.bat
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/build.bat	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,2 @@
+call ant -Dapp.name=opencms_7_5_1
+pause
Index: .settings/org.eclipse.jdt.core.prefs
===================================================================
RCS file: .settings/org.eclipse.jdt.core.prefs
diff -N .settings/org.eclipse.jdt.core.prefs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .settings/org.eclipse.jdt.core.prefs	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,70 @@
+#Thu Jan 07 19:55:34 CET 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=warning
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=enabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=warning
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=warning
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=disabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=enabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameter=warning
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
Index: pom-opencms-core.xml
===================================================================
RCS file: pom-opencms-core.xml
diff -N pom-opencms-core.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pom-opencms-core.xml	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,405 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.opencms</groupId>
+	<artifactId>opencms-core</artifactId>
+	<packaging>jar</packaging>
+	<version>7.5.1.1</version>
+	<name>opencms-core</name>
+	<url>http://opencms.org</url>
+
+	<description>
+		Opencms-core is the JAR-Library for OpenCms.
+	
+		OpenCms is a Content Management System that is based on Open
+		Source Software. Complex Intranet and Internet websites can be
+		quickly and cost-effectively created, maintained and managed.
+	</description>
+
+	<inceptionYear>2008</inceptionYear>
+
+	<mailingLists>
+		<!-- Example:-->
+		<!--
+			<mailingList> <name>OpenCms library User Mailing list - How To, FAQ, etc</name>
+			<subscribe>http://lists.sourceforge.net/lists/listinfo/opencms-user</subscribe>
+			<unsubscribe>http://lists.sourceforge.net/lists/listinfo/opencms-user</unsubscribe>
+			<archive>http://sourceforge.net/mailarchive/forum.php?forum=opencms-user</archive> </mailingList>
+		-->
+	</mailingLists>
+
+	<developers>
+		<!-- Example: -->
+		<!--
+			<developer> <name>Harald Brabenetz</name> <id>brabenetz</id> <email>brabenetz(at)users.sourceforge.net</email>
+			<roles> <role>Developer</role> </roles> <timezone>+1</timezone> </developer>
+		-->
+	</developers>
+
+	<contributors>
+	</contributors>
+
+	<licenses>
+		<license>
+			<name>GNU LESSER GENERAL PUBLIC LICENSE 2.1</name>
+			<url>http://www.gnu.org/licenses/lgpl-2.1.txt</url>
+			<distribution>repo</distribution>
+		</license>
+	</licenses>
+
+	<build>
+		<defaultGoal>install</defaultGoal>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-jar-plugin</artifactId>
+				<version>2.2</version>
+				<executions>
+					<!-- Build test-jars, so it can be reused in other Projects like OpenCms-Modules -->
+					<execution>
+						<goals>
+							<goal>test-jar</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-war-plugin</artifactId>
+				<version>2.0.2</version>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.0.2</version>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+
+
+	<dependencies>
+		<!-- ########################### -->
+		<!-- Place here the Library-dependencies for OpenCms -->
+		<!-- Possible Scopes: compile, provided, runtime, test -->
+		<!-- see http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope -->
+		<!-- ########################### -->
+
+		<!-- ########################### -->
+		<!--      SCOPE Provided         -->
+		<!-- ########################### -->
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>jsp-api</artifactId>
+			<version>2.0</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.4</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- ########################### -->
+		<!--      SCOPE Compile          -->
+		<!-- ########################### -->
+		<dependency>
+			<groupId>javax.activation</groupId>
+			<artifactId>activation</artifactId>
+			<version>1.1.1</version>
+		</dependency>
+		<dependency>
+			<groupId>com.alkacon</groupId>
+			<artifactId>alkacon-diff</artifactId>
+			<version>0.9.2</version>
+		</dependency>
+		<dependency>
+			<groupId>com.alkacon</groupId>
+			<artifactId>alkacon-simapi</artifactId>
+			<version>0.9.8</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-beanutils</groupId>
+			<artifactId>commons-beanutils</artifactId>
+			<version>1.8.0</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-codec</groupId>
+			<artifactId>commons-codec</artifactId>
+			<version>1.3</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-collections</groupId>
+			<artifactId>commons-collections</artifactId>
+			<version>3.2.1</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-dbcp</groupId>
+			<artifactId>commons-dbcp</artifactId>
+			<version>1.2.2</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-digester</groupId>
+			<artifactId>commons-digester</artifactId>
+			<version>1.8</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.commons</groupId>
+			<artifactId>commons-email</artifactId>
+			<version>1.1</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-fileupload</groupId>
+			<artifactId>commons-fileupload</artifactId>
+			<version>1.2.1</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-httpclient</groupId>
+			<artifactId>commons-httpclient</artifactId>
+			<version>3.1</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-io</groupId>
+			<artifactId>commons-io</artifactId>
+			<version>1.4</version>
+		</dependency>
+		<dependency>
+			<groupId>commons-logging</groupId>
+			<artifactId>commons-logging</artifactId>
+			<version>1.1.1</version>
+		</dependency>
+
+		<dependency>
+			<groupId>commons-pool</groupId>
+			<artifactId>commons-pool</artifactId>
+			<version>1.4</version>
+		</dependency>
+		<dependency>
+			<groupId>dom4j</groupId>
+			<artifactId>dom4j</artifactId>
+			<version>1.6.1</version>
+			<exclusions>
+				<exclusion>
+					<groupId>xml-apis</groupId>
+					<artifactId>xml-apis</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.htmlparser</groupId>
+			<artifactId>htmlparser</artifactId>
+			<version>1.6</version>
+		</dependency>
+		<dependency>
+			<groupId>oro</groupId>
+			<artifactId>oro</artifactId>
+			<version>2.0.8</version>
+		</dependency>
+		<dependency>
+			<groupId>jaxen</groupId>
+			<artifactId>jaxen</artifactId>
+			<version>1.1.1</version>
+			<exclusions>
+				<exclusion>
+					<groupId>xom</groupId>
+					<artifactId>xom</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>jdom</groupId>
+					<artifactId>jdom</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>xml-apis</groupId>
+					<artifactId>xml-apis</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>jstl</artifactId>
+			<version>1.1.2</version>
+		</dependency>
+		<dependency>
+			<!-- This is not 100% the same as the OpenCms Library "jtidy-8-svn-2006-05-21b.jar" -->
+			<!-- But the OpenCms jtidy-Library contains java-sources and svn-folders => it seems not a correct release... -->
+			<groupId>org.hibernate</groupId>
+			<artifactId>jtidy</artifactId>
+			<version>r8-20060801</version>
+		</dependency>
+		<dependency>
+			<groupId>org.safehaus.jug</groupId>
+			<artifactId>jug</artifactId>
+			<version>2.0.0</version>
+			<classifier>lgpl</classifier>
+		</dependency>
+		<dependency>
+			<groupId>log4j</groupId>
+			<artifactId>log4j</artifactId>
+			<version>1.2.15</version>
+			<exclusions>
+				<!-- Exclude optional libs. see http://maven.apache.org/guides/introduction/introduction-to-optional-and-excludes-dependencies.html -->
+				<exclusion>
+					<groupId>javax.mail</groupId>
+					<artifactId>mail</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>javax.jms</groupId>
+					<artifactId>jms</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>com.sun.jdmk</groupId>
+					<artifactId>jmxtools</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>com.sun.jmx</groupId>
+					<artifactId>jmxri</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.lucene</groupId>
+			<artifactId>lucene-analyzers</artifactId>
+			<version>2.4.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.lucene</groupId>
+			<artifactId>lucene-core</artifactId>
+			<version>2.4.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.lucene</groupId>
+			<artifactId>lucene-highlighter</artifactId>
+			<version>2.4.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.lucene</groupId>
+			<artifactId>lucene-queries</artifactId>
+			<version>2.4.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.lucene</groupId>
+			<artifactId>lucene-snowball</artifactId>
+			<version>2.4.1</version>
+		</dependency>
+		<dependency>
+			<groupId>javax.mail</groupId>
+			<artifactId>mail</artifactId>
+			<version>1.4.1</version>
+		</dependency>
+		<dependency>
+			<!-- This is not 100% the same Version as the OpenCms Library "PDFBox-0.7.2.jar" -->
+			<!-- But Version 0.7.2 is not in the public repository: http://repo2.maven.org/maven2/pdfbox/pdfbox/ -->
+			<groupId>pdfbox</groupId>
+			<artifactId>pdfbox</artifactId>
+			<version>0.7.3</version>
+			<exclusions>
+				<exclusion>
+					<groupId>org.fontbox</groupId>
+					<artifactId>fontbox</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>org.jempbox</groupId>
+					<artifactId>jempbox</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>bouncycastle</groupId>
+					<artifactId>bcmail-jdk14</artifactId>
+				</exclusion>
+				<exclusion>
+					<groupId>bouncycastle</groupId>
+					<artifactId>bcprov-jdk14</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+		<dependency>
+			<groupId>poi</groupId>
+			<artifactId>poi</artifactId>
+			<version>2.5.1-final-20040804</version>
+		</dependency>
+		<dependency>
+			<groupId>quartz</groupId>
+			<artifactId>quartz</artifactId>
+			<version>1.5.2</version>
+		</dependency>
+		<dependency>
+			<groupId>taglibs</groupId>
+			<artifactId>standard</artifactId>
+			<version>1.1.2</version>
+		</dependency>
+		<dependency>
+			<groupId>org.textmining</groupId>
+			<artifactId>tm-extractors</artifactId>
+			<version>0.4</version>
+		</dependency>
+		<dependency>
+			<groupId>xml-apis</groupId>
+			<artifactId>xml-apis</artifactId>
+			<version>2.9.1</version>
+		</dependency>
+		<dependency>
+			<groupId>xerces</groupId>
+			<artifactId>xercesImpl</artifactId>
+			<version>2.9.1</version>
+			<exclusions>
+				<exclusion>
+					<groupId>xml-apis</groupId>
+					<artifactId>xml-apis</artifactId>
+				</exclusion>
+			</exclusions>
+		</dependency>
+
+		<!-- ########################### -->
+		<!--      SCOPE Test             -->
+		<!-- ########################### -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>3.8.1</version>
+			<scope>test</scope>
+		</dependency>
+
+
+
+
+
+	</dependencies>
+
+
+	<repositories>
+		<repository>
+			<id>opencms</id>
+			<url>http://bp-cms-commons.sourceforge.net/m2repo</url>
+		</repository>
+	</repositories>
+
+
+	<!--
+		Example (required for Maven-Release-Plugin) <scm>
+		<connection>scm:svn:http://opencms.svn.sourceforge.net/svnroot/opencms/${project.artifactId}/trunk</connection>
+		<developerConnection>scm:svn:https://opencms.svn.sourceforge.net/svnroot/opencms/${project.artifactId}/trunk</developerConnection>
+		<url>http://opencms.svn.sourceforge.net/viewcvs.cgi/opencms/${project.artifactId}/trunk</url> </scm>
+	-->
+	<!--
+		Example (required for deploy the artifact to the repository, or the generated Site to the www) -->
+	<distributionManagement>
+		<repository>
+			<id>scp-be-opencms-repository</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2repo</url>
+		</repository>
+		<snapshotRepository>
+			<id>scp-be-opencms-snapshot-repository</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2snapshot</url>
+		</snapshotRepository>
+		<site>
+			<id>scp-be-opencms-site</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2site/opencms/${project.artifactId}/${project.version}/</url>
+		</site>
+	</distributionManagement>
+	
+</project>
Index: maven-deploy-init-all.bat
===================================================================
RCS file: maven-deploy-init-all.bat
diff -N maven-deploy-init-all.bat
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ maven-deploy-init-all.bat	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,7 @@
+echo off
+call set ANT_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo ANT_OPTS: %ANT_OPTS%
+call set MAVEN_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo MAVEN_OPTS: %MAVEN_OPTS%
+call ant maven-deploy-init-all
+pause
Index: modules/maven-install.bat
===================================================================
RCS file: modules/maven-install.bat
diff -N modules/maven-install.bat
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ modules/maven-install.bat	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,5 @@
+echo off
+call set ANT_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo ANT_OPTS: %ANT_OPTS%
+call ant maven-install
+pause
Index: pom-opencms-webapp.xml
===================================================================
RCS file: pom-opencms-webapp.xml
diff -N pom-opencms-webapp.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pom-opencms-webapp.xml	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,155 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.opencms</groupId>
+	<artifactId>opencms-webapp</artifactId>
+	<packaging>war</packaging>
+	<version>7.5.1.1</version>
+	<name>opencms-webapp</name>
+	<url>http://opencms.org</url>
+
+	<description>
+		Opencms-webapp is the Skeleton WAR-File for OpenCms without Modules.
+		It only contains the JSPs, Configs, opencms-core and so on.
+	
+		OpenCms is a Content Management System that is based on Open
+		Source Software. Complex Intranet and Internet websites can be
+		quickly and cost-effectively created, maintained and managed.
+	</description>
+	
+	<inceptionYear>2008</inceptionYear>
+
+	<mailingLists>
+		<!-- Example:
+		<mailingList>
+			<name>OpenCms library User Mailing list - How To, FAQ, etc</name>
+			<subscribe>
+				http://lists.sourceforge.net/lists/listinfo/opencms-user
+			</subscribe>
+			<unsubscribe>
+				http://lists.sourceforge.net/lists/listinfo/opencms-user
+			</unsubscribe>
+			<post />
+			<archive>
+				http://sourceforge.net/mailarchive/forum.php?forum=opencms-user
+			</archive>
+		</mailingList>
+		-->
+	</mailingLists>
+
+	<developers>
+		<!-- Example:
+		<developer>
+			<name>Harald Brabenetz</name>
+			<id>brabenetz</id>
+			<email>brabenetz(at)users.sourceforge.net</email>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		 -->
+	</developers>
+	
+	<contributors>
+	</contributors>
+	
+	<licenses>
+		<license>
+			<name>GNU LESSER GENERAL PUBLIC LICENSE 2.1</name>
+			<url>http://www.gnu.org/licenses/lgpl-2.1.txt</url>
+			<distribution>repo</distribution>
+		</license>
+	</licenses>
+	
+	<build>
+		<defaultGoal>install</defaultGoal>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-war-plugin</artifactId>
+				<version>2.0.2</version>
+			</plugin>
+		
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.0.2</version>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		
+		<!-- ########################### -->
+		<!-- Place here the Library-dependencies for OpenCms -->
+		<!-- Possible Scopes: compile, provided, runtime, test -->
+		<!-- see http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope -->
+		<!-- ########################### -->
+
+		<!-- ########################### -->
+		<!--      SCOPE Provided         -->
+		<!-- ########################### -->
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>jsp-api</artifactId>
+			<version>2.0</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.4</version>
+			<scope>provided</scope>
+		</dependency>
+
+		<!-- ########################### -->
+		<!--      SCOPE Compile          -->
+		<!-- ########################### -->
+		<dependency>
+			<groupId>org.opencms</groupId>
+			<artifactId>opencms-core</artifactId>
+			<version>7.5.1.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.opencms</groupId>
+			<artifactId>opencms-setup</artifactId>
+			<version>7.5.1.1</version>
+		</dependency>
+	</dependencies>
+
+
+	<repositories>
+		<repository>
+			<id>opencms</id>
+			<url>http://bp-cms-commons.sourceforge.net/m2repo</url>
+		</repository>
+	</repositories>
+
+
+	<!-- Example (required for Maven-Release-Plugin)
+	<scm>
+		<connection>scm:svn:http://opencms.svn.sourceforge.net/svnroot/opencms/${project.artifactId}/trunk</connection>
+		<developerConnection>scm:svn:https://opencms.svn.sourceforge.net/svnroot/opencms/${project.artifactId}/trunk</developerConnection>
+		<url>http://opencms.svn.sourceforge.net/viewcvs.cgi/opencms/${project.artifactId}/trunk</url>
+	</scm>
+	 -->
+	<!--
+		Example (required for deploy the artifact to the repository, or the generated Site to the www) -->
+	<distributionManagement>
+		<repository>
+			<id>scp-be-opencms-repository</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2repo</url>
+		</repository>
+		<snapshotRepository>
+			<id>scp-be-opencms-snapshot-repository</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2snapshot</url>
+		</snapshotRepository>
+		<site>
+			<id>scp-be-opencms-site</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2site/opencms/${project.artifactId}/${project.version}/</url>
+		</site>
+	</distributionManagement>
+</project>
Index: maven-install-with-new-modules.bat
===================================================================
RCS file: maven-install-with-new-modules.bat
diff -N maven-install-with-new-modules.bat
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ maven-install-with-new-modules.bat	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,7 @@
+echo off
+call set ANT_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo ANT_OPTS: %ANT_OPTS%
+call set MAVEN_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo MAVEN_OPTS: %MAVEN_OPTS%
+call ant maven-install-with-new-modules
+pause
Index: install-nonpublic-libs.bat
===================================================================
RCS file: install-nonpublic-libs.bat
diff -N install-nonpublic-libs.bat
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ install-nonpublic-libs.bat	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,19 @@
+echo off
+echo Installing Non-Puplic Libraries to the local Maven-Repository....
+call mvn install:install-file -DgroupId=com.alkacon -DartifactId=alkacon-diff -Dversion=0.9.2 -Dpackaging=jar -Dfile=lib/runtime/alkacon-diff-0.9.2.jar
+call mvn install:install-file -DgroupId=com.alkacon -DartifactId=alkacon-simapi -Dversion=0.9.8 -Dpackaging=jar -Dfile=lib/runtime/alkacon-simapi-0.9.8.jar
+call mvn install:install-file -DgroupId=xerces -DartifactId=xercesImpl -Dversion=2.9.1 -Dpackaging=jar -Dfile=lib/runtime/xercesImpl-2.9.1.jar
+call mvn install:install-file -DgroupId=xml-apis -DartifactId=xml-apis -Dversion=2.9.1 -Dpackaging=jar -Dfile=lib/runtime/xml-apis-2.9.1.jar
+
+
+echo Installing ibm.as400-Driver to the local Maven-Repository....
+call mvn install:install-file -DgroupId=com.ibm.as400 -DartifactId=jt400 -Dversion=6.0 -Dpackaging=jar -Dfile=webapp/setup/database/as400/jt400.jar
+
+echo Installing ibm.db2-Driver to the local Maven-Repository....
+call mvn install:install-file -DgroupId=com.ibm.db2.jcc -DartifactId=db2jcc -Dversion=V9 -Dpackaging=jar -Dfile=webapp/setup/database/db2/db2jcc_v9.jar
+call mvn install:install-file -DgroupId=com.ibm.db2.jcc -DartifactId=db2jcc_license_cu -Dversion=V9 -Dpackaging=jar -Dfile=webapp/setup/database/db2/db2jcc_license_cu.jar
+
+echo Installing oracle-Driver to the local Maven-Repository....
+call mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc14 -Dversion=10.2.0.3 -Dpackaging=jar -Dfile=webapp/setup/database/oracle/ojdbc14-10.2.0.3.jar
+
+pause
Index: pom-opencms-setup.xml
===================================================================
RCS file: pom-opencms-setup.xml
diff -N pom-opencms-setup.xml
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ pom-opencms-setup.xml	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,125 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>org.opencms</groupId>
+	<artifactId>opencms-setup</artifactId>
+	<packaging>jar</packaging>
+	<version>7.5.1.1</version>
+	<name>opencms-setup</name>
+	<url>http://opencms.org</url>
+
+	<description>
+		opencms-setup is the JAR-Library for OpenCms to make a initial setup or an update.
+	
+		OpenCms is a Content Management System that is based on Open
+		Source Software. Complex Intranet and Internet websites can be
+		quickly and cost-effectively created, maintained and managed.
+	</description>
+	
+	<inceptionYear>2008</inceptionYear>
+
+	<mailingLists>
+		<!-- Example:
+		<mailingList>
+			<name>OpenCms library User Mailing list - How To, FAQ, etc</name>
+			<subscribe>
+				http://lists.sourceforge.net/lists/listinfo/opencms-user
+			</subscribe>
+			<unsubscribe>
+				http://lists.sourceforge.net/lists/listinfo/opencms-user
+			</unsubscribe>
+			<post />
+			<archive>
+				http://sourceforge.net/mailarchive/forum.php?forum=opencms-user
+			</archive>
+		</mailingList>
+		-->
+	</mailingLists>
+
+	<developers>
+		<!-- Example:
+		<developer>
+			<name>Harald Brabenetz</name>
+			<id>brabenetz</id>
+			<email>brabenetz(at)users.sourceforge.net</email>
+			<roles>
+				<role>Developer</role>
+			</roles>
+			<timezone>+1</timezone>
+		</developer>
+		 -->
+	</developers>
+	
+	<contributors>
+	</contributors>
+	
+	<licenses>
+		<license>
+			<name>GNU LESSER GENERAL PUBLIC LICENSE 2.1</name>
+			<url>http://www.gnu.org/licenses/lgpl-2.1.txt</url>
+			<distribution>repo</distribution>
+		</license>
+	</licenses>
+	
+	<build>
+		<defaultGoal>install</defaultGoal>
+		<plugins>
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-war-plugin</artifactId>
+				<version>2.0.2</version>
+			</plugin>
+		
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>2.0.2</version>
+				<configuration>
+					<source>1.6</source>
+					<target>1.6</target>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
+	<dependencies>
+		<!--###########################
+			#
+			#   Place here the Library-dependencies for OpenCms
+			#	Possible Scopes: compile, provided, runtime, test
+			#   see http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Dependency_Scope
+			#
+			########################### -->
+	</dependencies>
+
+
+	<repositories>
+		<repository>
+			<id>opencms</id>
+			<url>http://bp-cms-commons.sourceforge.net/m2repo</url>
+		</repository>
+	</repositories>
+
+
+	<!-- Example (required for Maven-Release-Plugin)
+	<scm>
+		<connection>scm:svn:http://opencms.svn.sourceforge.net/svnroot/opencms/${project.artifactId}/trunk</connection>
+		<developerConnection>scm:svn:https://opencms.svn.sourceforge.net/svnroot/opencms/${project.artifactId}/trunk</developerConnection>
+		<url>http://opencms.svn.sourceforge.net/viewcvs.cgi/opencms/${project.artifactId}/trunk</url>
+	</scm>
+	 -->
+	<!--
+		Example (required for deploy the artifact to the repository, or the generated Site to the www) -->
+	<distributionManagement>
+		<repository>
+			<id>scp-be-opencms-repository</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2repo</url>
+		</repository>
+		<snapshotRepository>
+			<id>scp-be-opencms-snapshot-repository</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2snapshot</url>
+		</snapshotRepository>
+		<site>
+			<id>scp-be-opencms-site</id>
+			<url>scp://shell.sourceforge.net/home/groups/b/bp/bp-cms-commons/htdocs/m2site/opencms/${project.artifactId}/${project.version}/</url>
+		</site>
+	</distributionManagement>
+</project>
Index: maven-deploy-with-new-modules.bat
===================================================================
RCS file: maven-deploy-with-new-modules.bat
diff -N maven-deploy-with-new-modules.bat
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ maven-deploy-with-new-modules.bat	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,7 @@
+echo off
+call set ANT_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo ANT_OPTS: %ANT_OPTS%
+call set MAVEN_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo MAVEN_OPTS: %MAVEN_OPTS%
+call ant clean maven-deploy-with-new-modules
+pause
Index: maven-install-init-all.bat
===================================================================
RCS file: maven-install-init-all.bat
diff -N maven-install-init-all.bat
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ maven-install-init-all.bat	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,7 @@
+echo off
+call set ANT_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo ANT_OPTS: %ANT_OPTS%
+call set MAVEN_OPTS=-Xms128m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m
+call echo MAVEN_OPTS: %MAVEN_OPTS%
+call ant maven-install-init-all
+pause
Index: .checkstyle
===================================================================
RCS file: .checkstyle
diff -N .checkstyle
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .checkstyle	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<fileset-config file-format-version="1.2.0" simple-config="true">
+  <fileset name="all" enabled="true" check-config-name="OpenCms" local="false">
+    <file-match-pattern match-pattern="." include-pattern="true"/>
+  </fileset>
+</fileset-config>
Index: .project
===================================================================
RCS file: .project
diff -N .project
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .project	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>opencms-7.5.1</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.atlassw.tools.eclipse.checkstyle.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>net.sf.eclipsecs.core.CheckstyleBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>com.atlassw.tools.eclipse.checkstyle.CheckstyleNature</nature>
+		<nature>net.sf.eclipsecs.core.CheckstyleNature</nature>
+	</natures>
+</projectDescription>
Index: .settings/org.eclipse.jdt.ui.prefs
===================================================================
RCS file: .settings/org.eclipse.jdt.ui.prefs
diff -N .settings/org.eclipse.jdt.ui.prefs
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .settings/org.eclipse.jdt.ui.prefs	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,9 @@
+#Thu Jan 07 19:56:06 CET 2010
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_settings_version=11
+internal.default.compliance=default
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=com.alkacon;de.alkacon;org.opencms;com.opencms;java;javax;org.apache;org;com;
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
Index: .classpath
===================================================================
RCS file: .classpath
diff -N .classpath
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .classpath	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="src-modules"/>
+	<classpathentry kind="src" path="src-components"/>
+	<classpathentry kind="src" path="src-setup"/>
+	<classpathentry excluding="data/**|org/opencms/util/ant/" kind="src" path="test"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="lib" path="/opencms-commons/lib/catalina-ant.jar"/>
+	<classpathentry kind="lib" path="/opencms-commons/lib/ojdbc14.jar"/>
+	<classpathentry kind="lib" path="modules/org.opencms.frontend.layoutpage/resources/system/modules/org.opencms.frontend.layoutpage/lib/freemarker-2.3.6.jar"/>
+	<classpathentry kind="lib" path="lib/compile/ant.jar"/>
+	<classpathentry kind="lib" path="lib/compile/ant-contrib-1.0b1.jar"/>
+	<classpathentry kind="lib" path="lib/compile/ant-opencms-1.1.jar"/>
+	<classpathentry kind="lib" path="lib/compile/jsp-api.jar"/>
+	<classpathentry kind="lib" path="lib/compile/junit-3-8-1.jar"/>
+	<classpathentry kind="lib" path="lib/compile/servlet-api.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/alkacon-diff-0.9.2.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-codec-1.3.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-dbcp-1.2.2.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-digester-1.8.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/dom4j-1.6.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/htmlparser-1.6-20060610.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/jakarta-oro-2.0.8.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/jstl-1.1.2.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/jug-lgpl-2.0.0.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/PDFBox-0.7.2.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/poi-2.5.1-final-20040804.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/quartz-1.5.2.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/standard-1.1.2.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/tm-extractors-0.4.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/jtidy-8-svn-2006-05-21b.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/activation-1.1.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/alkacon-simapi-0.9.8.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-beanutils-1.8.0.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-collections-3.2.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-email-1.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-fileupload-1.2.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-httpclient-3.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-io-1.4.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-logging-1.1.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/commons-pool-1.4.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/jaxen-1.1.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/log4j-1.2.15.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/mail-1.4.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/xercesImpl-2.9.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/xml-apis-2.9.1.jar"/>
+	<classpathentry kind="lib" path="lib/compile/dumbster-1.6.jar"/>
+	<classpathentry kind="lib" path="/opencms-commons/lib/hsqldb-1.8.0.10.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/lucene-analyzers-2.4.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/lucene-core-2.4.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/lucene-highlighter-2.4.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/lucene-queries-2.4.1.jar"/>
+	<classpathentry kind="lib" path="lib/runtime/lucene-snowball-2.4.1.jar"/>
+	<classpathentry kind="lib" path="modules/org.opencms.frontend.templateone.form/resources/system/modules/org.opencms.frontend.templateone.form/lib/jcaptcha-1.0-all.jar"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
