Experimental export script for ClearlyDefined data.

Change-Id: I63edfce7750e3d58c794a94bbebb0c9b1a17893a
diff --git a/export/clearlydefined.json.php b/export/clearlydefined.json.php
new file mode 100755
index 0000000..6cd5635
--- /dev/null
+++ b/export/clearlydefined.json.php
@@ -0,0 +1,78 @@
+<?php
+/*******************************************************************************
+ * Copyright (c) 2018 Eclipse Foundation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *******************************************************************************/
+require_once(dirname(__FILE__) . "/../../eclipse.org-common/system/app.class.php");
+$App = new App();
+require_once(dirname(__FILE__) . "/../classes/common.php");
+require_once(dirname(__FILE__) . "/../classes/debug.php");
+require_once(dirname(__FILE__) . "/../classes/database.inc");
+
+function getSource($url) {
+	if (preg_match('/https:\/\/github.com\/.*\/commit\/([0-9a-f]+)$/', $url, $matches)) {
+		return array(
+			'url' => $url,
+			'type' => 'git',
+			'provider' => 'github',
+			'revision' => $matches[1]
+		);
+	} elseif (preg_match('/https:\/\/git-wip-us\.apache\.org\/repos\/asf\?.*p=([^;]*)\.git.*h=([0-9a-f]+)/', $url, $matches)) {
+		return array(
+				'url' => "https://github.com/apache/{$matches[1]}/commit/{$matches[2]}",
+				'type' => 'git',
+				'provider' => 'github',
+				'revision' => $matches[2]
+		);
+	}
+	return null;
+}
+
+$sql = "
+	select
+		CQ.id,
+		description,
+		CQ.version,
+		sourceUrl,
+		spdx as license,
+		mvn.pattern as mvn,
+		mvn.groupid as groupid,
+		mvn.artifactid as artifactid,
+		mvn.version as mvnversion
+	from CQ left
+		join CQMavenMap as mvn on CQ.id=mvn.cq
+	where cq_type='thirdparty'
+		and mvn.groupid is not null
+		and mvn.artifactid is not null
+		and mvn.artifactid != '*'
+		and mvn.groupid not like 'org.eclipse.orbit%'
+		and CQ.version != ''
+		and licenses != ''
+		and (spdx='Apache-2.0' or licenses=spdx)";
+$values = array();
+query('dashboard', $sql, array(), function($row) use (&$values) {
+	$coordinates = "maven/mavencentral/{$row['groupid']}/{$row['artifactid']}";
+	$source = getSource($row['sourceUrl']);
+	if ($source) {
+		if (!isset($values[$coordinates])) {
+			$values[$coordinates] = array(
+				'coordinates' => array(
+					'name' => $row['artifactid'],
+					'namespace' => $row['groupid'],
+					'provider' => 'mavencentral',
+					'type' => 'maven'
+				)
+			);
+		}
+		$values[$coordinates]['revisions'][$row['version']] = $source;
+		$values[$coordinates]['revisions'][$row['version']]['licensed']['declared'] = $row['license'];
+	}
+});
+
+echo json_encode($values, true);
+?>