[234430] need language packs by means of other than update site
diff --git a/classes/export/generate1.php b/classes/export/generate1.php
index 3a1e5c7..1a391be 100755
--- a/classes/export/generate1.php
+++ b/classes/export/generate1.php
@@ -9,7 +9,8 @@
  * Contributors:
  *    Eclipse Foundation - Initial API and implementation
  *    Motoki MORT mori-m@mxa.nes.nec.co.jp - patch, bug 227366
- *    Kit Lo (IBM) - patch, bug 217339, generate pseudo translations language packs 
+ *    Kit Lo (IBM) - patch, bug 217339, generate pseudo translations language packs
+ *    Kit Lo (IBM) - patch, bug 234430, need language packs by means of other than update site
  *******************************************************************************/
 
 /*
@@ -17,49 +18,63 @@
  */
 
 ob_start();
-ini_set("memory_limit", "12M");
+ini_set("memory_limit", "64M");
 define("BABEL_BASE_DIR", "../../");
-require(BABEL_BASE_DIR."html/common_functions.php");
-require(BABEL_BASE_DIR."classes/system/dbconnection.class.php");
+require(BABEL_BASE_DIR . "html/common_functions.php");
+require(BABEL_BASE_DIR . "classes/system/dbconnection.class.php");
 $dbc = new DBConnection();
 $dbh = $dbc->connect();
 
 $work_dir = "/home/babel-working/";
-if (!($ini = @parse_ini_file(BABEL_BASE_DIR."classes/base.conf"))) {
+if (!($ini = @parse_ini_file(BABEL_BASE_DIR . "classes/base.conf"))) {
 	errorLog("Failed to find/read database conf file - aborting.");
 	exitTo("error.php?errNo=101300","error: 101300 - database conf can not be found");
 }
 $context = $ini['context'];
 
-$work_context_dir = $work_dir.$context."/";
-$tmp_dir = $work_context_dir."tmp/";
-$output_dir = $work_context_dir."output/";
+$work_context_dir = $work_dir . $context . "/";
+$tmp_dir = $work_context_dir . "tmp/";
+$babel_language_packs_dir = $work_context_dir . "babel_language_packs/";
+$output_dir = $work_context_dir . "output/";
 $source_files_dir = "source_files_for_generate/";
 
 $leader = ". . ";
 $timestamp = date("Ymdhis");
 
-exec("rm -rf $work_dir*");
-exec("mkdir $work_context_dir");
-exec("mkdir $output_dir");
+exec("rm -rf $work_dir");
+exec("mkdir -p $output_dir");
+
+/*
+ * Create language pack links file
+ */
+exec("mkdir -p $babel_language_packs_dir");
+$language_pack_links_file = fopen("${babel_language_packs_dir}index.html", "w");
+fwrite($language_pack_links_file, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">" .
+	"\n<html>\n<head>\n<title>Babel Language Packs</title>" .
+	"\n<meta http-equiv=Content-Type content=\"text/html; charset=UTF-8\">\n</head>" .
+	"\n<body>\n\t<h1>Babel Language Packs</h1>" .
+	"\n\t<h2>Build ID: $timestamp</h2>");
 
 echo "Generating update site\n";
-$train_result = mysql_query('SELECT DISTINCT train_id FROM release_train_projects');
+$train_result = mysql_query("SELECT DISTINCT train_id FROM release_train_projects");
 while (($train_row = mysql_fetch_assoc($train_result)) != null) {
 	$train_id = $train_row['train_id'];
 	$train_version = "3.4.0";
 	if (strcmp($train_id, "europa") == 0) {
 		$train_version = "3.3.0";
 	}
-	$site_xml = '';
+	$train_version_timestamp = "$train_version.v$timestamp";
+	$site_xml = "";
 
 	$output_dir_for_train = $output_dir . $train_row['train_id'] . "/";
 	exec("mkdir $output_dir_for_train");
 	exec("mkdir ${output_dir_for_train}features/");
 	exec("mkdir ${output_dir_for_train}plugins/");
 
-	$language_result = mysql_query('SELECT * FROM languages WHERE languages.is_active');
-	while( ($language_row = mysql_fetch_assoc($language_result)) != null ) {
+	fwrite($language_pack_links_file, "\n\t<h3>Release Train: $train_id</h3>\n\t<ul>");
+
+	$language_result = mysql_query("SELECT * FROM languages WHERE languages.is_active");
+	while (($language_row = mysql_fetch_assoc($language_result)) != null) {
 		$language_name = $language_row['name'];
 		$language_iso = $language_row['iso_code'];
 		$language_locale = $language_row['locale'];
@@ -71,6 +86,13 @@
 		if ($language_locale != null) {
 			$language_name = $language_locale . " " . $language_name;
 		}
+
+		$site_xml .= "\n\t<category-def name=\"Babel Language Packs in $language_name\" label=\"Babel Language Packs in $language_name\">";
+		$site_xml .= "\n\t\t<description>Babel Language Packs in $language_name</description>";
+		$site_xml .= "\n\t</category-def>";
+
+		fwrite($language_pack_links_file, "\n\t<h4>Language: $language_name</h4>\n\t<ul>");
+
 		echo "${leader}Generating language pack for $train_id - $language_name ($language_iso) (language_id=" . $language_id . ")\n";
 
 		/*
@@ -83,11 +105,6 @@
 				INNER JOIN release_train_projects as v ON (f.project_id = v.project_id AND f.version = v.version)
 				WHERE f.is_active
 				AND v.train_id = '" . $train_row['train_id'] . "'");
-
-			$index_file = fopen("${output_dir}BabelPseudoTranslationsIndex.html", "w");
-			fwrite($index_file, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">\n<html>\n<head>\n<title>Babel Pseudo Translations Index</title>\n" .
-				"<meta http-equiv=Content-Type content=\"text/html; charset=UTF-8\">\n</head>\n<body>\n\t<h1>Babel Pseudo Translations Index</h1>\n" .
-				"\t<h2>" . $train_version . ".v" . $timestamp . "</h2>\n\t<ul>\n");
 		} else {
 			$file_result = mysql_query("SELECT DISTINCT f.project_id, f.version, f.file_id, f.name
 				FROM files AS f
@@ -100,6 +117,9 @@
 		}
 
 		$plugins = array();
+		$projects = array();
+		$project_versions = array();
+		$pseudo_translations_indexes = array();
 		while (($file_row = mysql_fetch_assoc($file_result)) != null) {
 			# save original filename
 			$file_row['origname'] = $file_row['name'];
@@ -135,7 +155,6 @@
 			} else {
 				exec("mkdir $tmp_dir");
 			}
-
 			/*
 			 * Generate each *.properties file
 			 */
@@ -158,23 +177,23 @@
 				 * Start writing to the file
 				 */
 				$outp = fopen($fullpath, "w");
-				fwrite($outp, "# Copyright by many contributors; see http://babel.eclipse.org/\n");
+				fwrite($outp, "# Copyright by many contributors; see http://babel.eclipse.org/");
 				if (strcmp($language_iso, "en_AA") == 0) {
 					$sql = "SELECT string_id, name, value FROM strings WHERE file_id = " . $properties_file['file_id'] .
 						" AND is_active AND non_translatable = 0";
 					$strings_result = mysql_query($sql);
 					while (($strings_row = mysql_fetch_assoc($strings_result)) != null) {
-						fwrite($outp, $strings_row['name'] . "=");
-						fwrite($outp, $properties_file['project_id'] . $strings_row['string_id'] . ":" . $strings_row['value']);
-						fwrite($outp, "\n");
+						fwrite($outp, "\n" . $strings_row['name'] . "=" . $properties_file['project_id'] . $strings_row['string_id'] .
+							":" . $strings_row['value']);
 
 						$value = htmlspecialchars($strings_row['value']);
 						if (strlen($value) > 100) {
 							$value = substr($value, 0, 100) . " ...";
 						}
-						fwrite($index_file, "\t\t<li><a href=\"http://babel.eclipse.org/babel/translate.php?project=" . $properties_file['project_id'] .
-							"&version=" . $properties_file['version'] . "&file=" . $properties_file['origname'] . "&string=" . $strings_row['name'] .
-							"\">" . $properties_file['project_id'] . $strings_row['string_id'] . "</a>&nbsp;" . $value . "</li>\n");
+						$pseudo_translations_indexes[$properties_file['project_id']][] = "\n\t\t<li><a href=\"http://babel.eclipse.org/babel/translate.php?project=" .
+						$properties_file['project_id'] . "&version=" . $properties_file['version'] . "&file=" .
+						$properties_file['origname'] . "&string=" . $strings_row['name'] . "\">" .
+						$properties_file['project_id'] . $strings_row['string_id'] . "</a>&nbsp;" . $value . "</li>";
 					}
 				} else {
 					$sql = "SELECT
@@ -189,7 +208,7 @@
 					$strings_result = mysql_query($sql);
 					while (($strings_row = mysql_fetch_assoc($strings_result)) != null) {
 						fwrite($outp, $strings_row['key'] . "=");
-						#echo "${leader1S}${leaderS}${leaderS}${leaderS}" . $strings_row['key'] . "=";
+						# echo "${leader1S}${leaderS}${leaderS}${leaderS}" . $strings_row['key'] . "=";
 						if ($strings_row['trans']) {
 							# json_encode returns the string with quotes fore and aft.  Need to strip them.
 							# $tr_string = preg_replace('/^"(.*)"$/', '${1}', json_encode($strings_row['trans']));
@@ -212,25 +231,25 @@
 			/*
 			 * Copy in the various legal files
 			 */
-			exec("cp ${source_files_dir}about.html ${tmp_dir}");
+			exec("cp ${source_files_dir}about.html $tmp_dir");
 			/*
 			 * Generate the META-INF/MANIFEST.MF file
 			 */
 			$parent_plugin_id = $plugin_name;
-			$fragment_id = "${parent_plugin_id}.nl_$language_iso";
-			$fragment_version = $train_version . ".v" . $timestamp;
-			$fragment_filename = $fragment_id . "_" . $fragment_version . ".jar";
+			$project_id = $properties_file['project_id'];
+			$fragment_id = "$parent_plugin_id.nl-$language_iso";
+			$fragment_filename = "${fragment_id}_$train_version_timestamp.jar";
 
 			$plugins[$plugin_name]['id'] = $fragment_id;
-			$plugins[$plugin_name]['version'] = $fragment_version;
+			$plugins[$plugin_name]['version'] = $train_version_timestamp;
 
 			exec("mkdir $tmp_dir/META-INF" );
 			$outp = fopen("$tmp_dir/META-INF/MANIFEST.MF", "w");
 			fwrite($outp, "Manifest-Version: 1.0\n");
 			fwrite($outp, "Bundle-Name: $parent_plugin_id $language_name NLS Support\n");
 			fwrite($outp, "Bundle-SymbolicName: $fragment_id ;singleton=true\n");
-			fwrite($outp, "Bundle-Version: $fragment_version\n");
-			fwrite($outp, "Bundle-Vendor: Eclipse Foundation Inc.\n");
+			fwrite($outp, "Bundle-Version: $train_version_timestamp\n");
+			fwrite($outp, "Bundle-Vendor: Eclipse.org\n");
 			fwrite($outp, "Fragment-Host: $parent_plugin_id\n");
 			fclose($outp);
 			/*
@@ -238,96 +257,157 @@
 			 */
 			system("cd $tmp_dir; jar cfM ${output_dir_for_train}plugins/$fragment_filename .");
 			echo "${leader}${leader}Completed  plug-in fragment $plugin_name\n";
-		}
-		/*
-		 * Clean and create the temporary directory
-		 */
-		if (file_exists($tmp_dir)) {
-			exec("rm -rf $tmp_dir; mkdir $tmp_dir");
-		} else {
-			exec("mkdir $tmp_dir");
-		}
-		/*
-		 * Create the feature.xml
-		 *
-		 * TODO <url><update label=... url=... and <url><discovery label=... url=... are not implemented
-		 *
-		 * <url>
-		 *   <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.2" />
-		 *   <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.2" />
-		 * </url>
-		 */
-		$feature_id = "org.eclipse.babel.nls.$language_iso";
-		$feature_version = $train_version . ".v" . $timestamp;
-		$feature_filename = $feature_id . "_" . $feature_version . ".jar";
 
-		$outp = fopen("$tmp_dir/feature.xml", "w");
-		fwrite($outp, "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>
-<feature
-	id=\"$feature_id\"
-	label=\"Eclipse Language Pack for $language_name\"
-	image=\"eclipse_update_120.jpg\"
-	provider-name=\"Eclipse Foundation Inc.\"
-	version=\"$feature_version\">
-	<license url=\"license.html\">\n" . htmlspecialchars(file_get_contents("${source_files_dir}license.txt")) . "\t</license>
-	<description>Translations in $language_name for all Eclipse Projects</description>" );
-		foreach ($plugins as $plugin_name => $plugin_row) {
-			fwrite($outp, '
-	<plugin fragment="true" id="' .
-			$plugin_row['id'] . '" unpack="false" version="' .
-			$plugin_row['version'] . '"/>');
+			$projects[$project_id][] = $fragment_id;
+			$project_versions[$project_id] = $properties_file['version'];
 		}
-		fwrite($outp, '
-</feature>');
-		fclose($outp);
-		/*
-		 * Copy in the various legal files
-		 */
-		exec("cp ${source_files_dir}about.html ${tmp_dir}");
-		exec("cp ${source_files_dir}license.html ${tmp_dir}");
-		exec("cp ${source_files_dir}epl-v10.html ${tmp_dir}");
-		exec("cp ${source_files_dir}eclipse_update_120.jpg ${tmp_dir}");
-		/*
-		 * Copy in the Babel Pseudo Translations Index file
-		 */
-		if (strcmp($language_iso, "en_AA") == 0) {
-			fwrite($index_file, "\t</ul>\n</body>\n</html>");
-			fclose($index_file);
-			exec("cp ${output_dir}BabelPseudoTranslationsIndex.html ${tmp_dir}");
-			exec("rm ${output_dir}BabelPseudoTranslationsIndex.html");
+		foreach ($projects as $project_id => $fragment_ids) {
+			/*
+			 * Sort fragment names
+			 */
+			asort($fragment_ids);
+			/*
+			 * Create ${babel_language_packs_dir}tmp
+			 */
+			exec("mkdir -p ${babel_language_packs_dir}tmp/eclipse/features");
+			exec("mkdir -p ${babel_language_packs_dir}tmp/eclipse/plugins");
+			/*
+			 * Clean and create the temporary directory
+			 */
+			if (file_exists($tmp_dir)) {
+				exec("rm -rf $tmp_dir; mkdir $tmp_dir");
+			} else {
+				exec("mkdir $tmp_dir");
+			}
+			/*
+			 * Create the feature.xml
+			 *
+			 * TODO <url><update label=... url=... and <url><discovery label=... url=... are not implemented
+			 *
+			 * <url>
+			 *   <update label="%updateSiteName" url="http://update.eclipse.org/updates/3.2" />
+			 *   <discovery label="%updateSiteName" url="http://update.eclipse.org/updates/3.2" />
+			 * </url>
+			 */
+			$feature_id = "org.eclipse.babel.nls-$project_id-$language_iso";
+			$feature_version = "$train_version.v$timestamp";
+			$feature_filename = "${feature_id}_$train_version_timestamp.jar";
+
+			$project_version = $project_versions[$project_id];
+			$sql = "SELECT pct_complete
+				FROM project_progress
+				WHERE project_id = \"$project_id\"
+					AND version = \"$project_version\"
+					AND language_id = $language_id";
+			$project_pct_complete_result = mysql_query($sql);
+			$project_pct_complete = mysql_result($project_pct_complete_result, 0);
+			if (strcmp($language_iso, "en_AA") == 0) {
+				$project_pct_complete = 100;
+			}
+
+			$outp = fopen("$tmp_dir/feature.xml", "w");
+			fwrite($outp, "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>" .
+				"\n<feature" .
+				"\n\tid=\"$feature_id\"" .
+				"\n\tlabel=\"Babel Language Pack for $project_id in $language_name ($project_pct_complete%)\"" .
+				"\n\timage=\"eclipse_update_120.jpg\"" .
+				"\n\tprovider-name=\"%providerName\"" .
+				"\n\tversion=\"$train_version_timestamp\">" .
+				"\n\t<copyright>\n\t\t%copyright\n\t</copyright>" .
+				"\n\t<license url=\"%licenseURL\">\n\t\t%license\n\t</license>" .
+				"\n\t<description>Babel Language Pack for $project_id in $language_name</description>" );
+			foreach ($fragment_ids as $fragment_id) {
+				$jar_name = "${output_dir_for_train}plugins/${fragment_id}_$train_version_timestamp.jar";
+				$size = filesize($jar_name);
+				fwrite($outp, "\n\t<plugin fragment=\"true\" id=\"$fragment_id\" unpack=\"false\" " .
+					"version=\"$train_version_timestamp\" download-size=\"$size\" install-size=\"$size\" />");
+				/*
+				 * Copy the plugin to ${babel_language_packs_dir}tmp
+				 */
+				exec("cp ${output_dir_for_train}plugins/${fragment_id}_$train_version_timestamp.jar ${babel_language_packs_dir}tmp/eclipse/plugins");
+			}
+			fwrite($outp, "\n</feature>");
+			fclose($outp);
+			/*
+			 * Copy in the various legal files
+			 */
+			exec("cp ${source_files_dir}about.html $tmp_dir");
+			exec("cp ${source_files_dir}eclipse_update_120.jpg $tmp_dir");
+			exec("cp ${source_files_dir}epl-v10.html $tmp_dir");
+			exec("cp ${source_files_dir}feature.properties $tmp_dir");
+			exec("cp ${source_files_dir}license.html $tmp_dir");
+			/*
+			 * Copy in the Babel Pseudo Translations Index file
+			 */
+			if (strcmp($language_iso, "en_AA") == 0) {
+				$pseudo_translations_index_file = fopen("${output_dir}BabelPseudoTranslationsIndex-$project_id.html", "w");
+				fwrite($pseudo_translations_index_file, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0//EN\">" .
+					"\n<html>\n<head>\n<title>Babel Pseudo Translations Index for $project_id</title>" .
+					"\n<meta http-equiv=Content-Type content=\"text/html; charset=UTF-8\">\n</head>" .
+					"\n<body>\n\t<h1>Babel Pseudo Translations Index for $project_id</h1>" .
+					"\n\t<h2>Version: $train_version_timestamp</h2>\n\t<ul>");
+				foreach ($pseudo_translations_indexes[$project_id] as $index) {
+					fwrite($pseudo_translations_index_file, $index);
+				}
+				fwrite($pseudo_translations_index_file, "\n\t</ul>\n</body>\n</html>");
+				fclose($pseudo_translations_index_file);
+				exec("cp ${output_dir}BabelPseudoTranslationsIndex-$project_id.html $tmp_dir");
+				exec("rm ${output_dir}BabelPseudoTranslationsIndex-$project_id.html");
+			}
+			/*
+			 * Copy the feature to ${babel_language_packs_dir}tmp before jar'ing up
+			 */
+			exec("mkdir -p ${babel_language_packs_dir}tmp/eclipse/features/${fragment_id}_$train_version_timestamp");
+			exec("cd $tmp_dir; cp * ${babel_language_packs_dir}tmp/eclipse/features/${fragment_id}_$train_version_timestamp");
+			/*
+			 * Zip up language pack
+			 */
+			$language_pack_name = "BabelLanguagePack-$project_id-${language_iso}_$train_version_timestamp.zip";
+			exec("cd ${babel_language_packs_dir}tmp; zip -r $babel_language_packs_dir$language_pack_name eclipse");
+			/*
+			 * Clean up ${babel_language_packs_dir}tmp
+			 */
+			exec("rm -rf ${babel_language_packs_dir}tmp");
+			/*
+			 * Add project language pack link to language pack links file
+			 */
+			fwrite($language_pack_links_file, "\n\t<li><a href=\"$language_pack_name\">$language_pack_name</a></li>");
+			/*
+			 * Jar up this directory as the feature jar
+			 */
+			system("cd $tmp_dir; jar cfM ${output_dir_for_train}features/$feature_filename .");
+			/*
+			 * Register this feature with the site.xml
+			 */
+			$site_xml .= "\n\t<feature url=\"features/$feature_filename\" id=\"$feature_id\" version=\"$feature_version\">";
+			$site_xml .= "\n\t\t<category name=\"Babel Language Packs in $language_name\"/>";
+			$site_xml .= "\n\t</feature>";
+			echo "${leader}Completed language pack for $language_name ($language_iso)\n";
 		}
-		/*
-		 * Jar up this directory as the feature jar
-		 */
-		system("cd $tmp_dir; jar cfM ${output_dir_for_train}features/$feature_filename .");
-		/*
-		 * Register this feature with the site.xml
-		 */
-		$site_xml .= "	<feature url=\"features/$feature_filename\" id=\"$feature_id\" version=\"$feature_version\">
-		<category name=\"Language Packs\"/>
-	</feature>\n";
-		echo "${leader}Completed language pack for $language_name ($language_iso)\n";
+		fwrite($language_pack_links_file, "\n\t</ul>");
 	}
 	/*
 	 * <site mirrorsURL=... implemented in the weekly build process by sed'ing <site>
 	 */
 	$outp = fopen("${output_dir_for_train}site.xml", "w");
-	fwrite($outp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
-<site>
-	<description url=\"http://babel.eclipse.org/\">
-		This update site contains user-contributed translations of the strings in all Eclipse projects.
-		Please see the http://babel.eclipse.org/ Babel project web pages for a full how-to-use explanation of
-		these translations as well as how you can contribute to the translations of this and future versions of Eclipse.
-	</description>
-	<category-def name=\"Language Packs\" label=\"Language Packs\">
-		<description>Language packs for all Eclipse projects</description>
-	</category-def>\n");
+	fwrite($outp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" .
+		"\n<site>" .
+		"\n\t<description url=\"http://babel.eclipse.org/\">" .
+		"\n\t\tThis update site contains user-contributed translations of the strings in all Eclipse projects." .
+		"\n\t\tPlease see the http://babel.eclipse.org/ Babel project web pages for a full how-to-use explanation of" .
+		"\n\t\tthese translations as well as how you can contribute to the translations of this and future versions of Eclipse." .
+		"\n\t</description>");
 	fwrite($outp, $site_xml);
-	fwrite($outp, "</site>");
+	fwrite($outp, "\n</site>");
 	fclose($outp);
+
+	fwrite($language_pack_links_file, "\n\t</ul>");
 }
 echo "Completed generating update site\n";
 
+fwrite($language_pack_links_file, "\n</body>\n</html>");
+fclose($language_pack_links_file);
+
 /*
  2. what happens if the translation feature includes plug-in fragments for
  plug-ins that are not in the current image?
diff --git a/classes/export/source_files_for_generate/feature.properties b/classes/export/source_files_for_generate/feature.properties
new file mode 100644
index 0000000..e30ac0e
--- /dev/null
+++ b/classes/export/source_files_for_generate/feature.properties
@@ -0,0 +1,113 @@
+providerName=Eclipse.org
+
+copyright=\
+Copyright (c) 2000, 2008 IBM Corporation and others.\n\
+All rights reserved. This program and the accompanying materials\n\
+are made available under the terms of the Eclipse Public License v1.0\n\
+which accompanies this distribution, and is available at\n\
+http://www.eclipse.org/legal/epl-v10.html\n\
+\n\
+Contributors:\n\
+    IBM Corporation - initial API and implementation\n
+################ end of copyright property ####################################
+
+licenseURL=license.html
+
+license=\
+ECLIPSE FOUNDATION SOFTWARE USER AGREEMENT\n\
+March 17, 2005\n\
+\n\
+Usage Of Content\n\
+\n\
+THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
+OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
+USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
+AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
+NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU\n\
+AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
+AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
+OR NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE\n\
+TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
+OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
+BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
+\n\
+Applicable Licenses\n\
+\n\
+Unless otherwise indicated, all Content made available by the Eclipse Foundation\n\
+is provided to you under the terms and conditions of the Eclipse Public\n\
+License Version 1.0 ("EPL"). A copy of the EPL is provided with this\n\
+Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
+For purposes of the EPL, "Program" will mean the Content.\n\
+\n\
+Content includes, but is not limited to, source code, object code,\n\
+documentation and other files maintained in the Eclipse.org CVS\n\
+repository ("Repository") in CVS modules ("Modules") and made available\n\
+as downloadable archives ("Downloads").\n\
+\n\
+   - Content may be structured and packaged into modules to facilitate delivering,\n\
+     extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
+     plug-in fragments ("Fragments"), and features ("Features").\n\
+   - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java? ARchive)\n\
+     in a directory named "plugins".\n\
+   - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
+     Each Feature may be packaged as a sub-directory in a directory named "features".\n\
+     Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
+     numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
+   - Features may also include other Features ("Included Features"). Within a Feature, files\n\
+     named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
+\n\
+Features may also include other Features ("Included Features"). Files named\n\
+"feature.xml" may contain a list of the names and version numbers of\n\
+Included Features.\n\
+\n\
+The terms and conditions governing Plug-ins and Fragments should be\n\
+contained in files named "about.html" ("Abouts"). The terms and\n\
+conditions governing Features and Included Features should be contained\n\
+in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
+Licenses may be located in any directory of a Download or Module\n\
+including, but not limited to the following locations:\n\
+\n\
+   - The top-level (root) directory\n\
+   - Plug-in and Fragment directories\n\
+   - Inside Plug-ins and Fragments packaged as JARs\n\
+   - Sub-directories of the directory named "src" of certain Plug-ins\n\
+   - Feature directories\n\
+\n\
+Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
+Eclipse Update Manager, you must agree to a license ("Feature Update\n\
+License") during the installation process. If the Feature contains\n\
+Included Features, the Feature Update License should either provide you\n\
+with the terms and conditions governing the Included Features or inform\n\
+you where you can locate them. Feature Update Licenses may be found in\n\
+the "license" property of files named "feature.properties". Such Abouts,\n\
+Feature Licenses and Feature Update Licenses contain the terms and\n\
+conditions (or references to such terms and conditions) that govern your\n\
+use of the associated Content in that directory.\n\
+\n\
+THE ABOUTS, FEATURE LICENSES AND FEATURE UPDATE LICENSES MAY REFER\n\
+TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
+SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
+\n\
+    - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
+    - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
+    - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
+    - IBM Public License 1.0 (available at http://oss.software.ibm.com/developerworks/opensource/license10.html)\n\
+    - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
+    - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
+\n\
+IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
+TO USE OF THE CONTENT. If no About, Feature License or Feature Update License\n\
+is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
+govern that particular Content.\n\
+\n\
+Cryptography\n\
+\n\
+Content may contain encryption software. The country in which you are\n\
+currently may have restrictions on the import, possession, and use,\n\
+and/or re-export to another country, of encryption software. BEFORE\n\
+using any encryption software, please check the country's laws,\n\
+regulations and policies concerning the import, possession, or use,\n\
+and re-export of encryption software, to see if this is permitted.\n\
+\n\
+Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.\n
+########### end of license property ##########################################