if (options == null) {
return "";
}
-
return String.format("%s action %s -- %s %s", sbi.getSBICommandPath("sbi"), targetId,
ACTION_BUILDPACKAGE, options);
}
public String[] getEnvsWithProxy() {
String[] envs = sbi.getEnvironmentVariables();
if (PreferencesManager.isProxyUsed()) {
- String protocol = PreferencesManager.getProxyProtocol();
- String host = PreferencesManager.getProxyHost();
- int port = PreferencesManager.getProxyPort();
+ String[] proxyInfo = PreferencesManager.getProxyParsedURL();
+ String protocol = proxyInfo[0];
+ String host = proxyInfo[1];
+ String port = proxyInfo[2];
SmartBuildInterface sbi = SmartBuildInterface.getInstance();
String envKey = String.format("%s_proxy", protocol);
- String envValue = String.format("%s://%s:%d", protocol, host, port);
+ String envValue = String.format("%s://%s:%s", protocol, host, port);
envs = sbi.addEnvironmentVariableArray(envKey, envValue);
}
-
return envs;
}
public void buildPackageDependencyCheck() throws SBIException {
-
IConfiguration config = getCurrentConfiguration();
String targetID = getTargetID(config);
String projectDir = getProjectPath();
String options = getPackageDependencyCheckOption();
-
sbi.actionConsole(ACTION_CHECKPKGDEPS, options, targetID, projectDir, CONSOLE_NAME);
}
+++ /dev/null
-/*
- * Native Platform
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact:
- * Donghyuk Yang <donghyuk.yang@samsung.com>
- * DongHee Yang <donghee.yang@samsung.com>
- * Kangho Kim <kh5325.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-
-package org.tizen.nativeplatform.git;
-
-import java.util.List;
-
-import org.eclipse.cdt.ui.wizards.EntryDescriptor;
-
-public class CachedGitEntries {
- private static List<EntryDescriptor> gitEnties;
-
- public static void setGitEntries(List<EntryDescriptor> g) {
- gitEnties = g;
- }
-
- public static List<EntryDescriptor> getGitEntries() {
- return gitEnties;
- }
-}
package org.tizen.nativeplatform.git;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import org.tizen.nativeplatform.git.model.GitDescription;
public class GitDescManager {
- private static Hashtable<String, GitDescription> gitDescs;
- public static void setDescs(List<GitDescription> descs) {
- gitDescs = new Hashtable<String, GitDescription>();
+ private static Map<String, Map<String, GitDescription>> siteGitDesc = new Hashtable<String, Map<String, GitDescription>>();
+
+ public static void setDescs(String siteConfigName, List<GitDescription> descs) {
+ Map<String, GitDescription> gitDesc = new HashMap<String, GitDescription>();
for (GitDescription desc : descs) {
- gitDescs.put(desc.getProject(), desc);
+ gitDesc.put(desc.getProject(), desc);
}
+ siteGitDesc.put(siteConfigName, gitDesc);
}
- public static List<GitDescription> getDescs() {
+ public static List<GitDescription> getDescs(String siteConfigName) {
List<GitDescription> result = new ArrayList<GitDescription>();
- Iterator<GitDescription> it = gitDescs.values().iterator();
-
+ Map<String, GitDescription> gitDesc = siteGitDesc.get(siteConfigName);
+ if (gitDesc == null) {
+ return result;
+ }
+ Iterator<GitDescription> it = gitDesc.values().iterator();
while (it.hasNext()) {
result.add(it.next());
}
-
return result;
}
- public static GitDescription getDesc(String projectName) {
- return gitDescs.get(projectName);
+ public static GitDescription getDesc(String siteConfigName, String gitPath) {
+ Map<String, GitDescription> gitDesc = siteGitDesc.get(siteConfigName);
+ if (gitDesc == null) {
+ return null;
+ }
+ return gitDesc.get(gitPath);
+ }
+
+ public static void removeDesc(String siteConfigName) {
+ if (siteGitDesc.containsKey(siteConfigName)) {
+ siteGitDesc.remove(siteConfigName);
+ }
}
}
--- /dev/null
+package org.tizen.nativeplatform.git;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.tizen.nativeplatform.git.model.GitDescription;
+import org.tizen.nativeplatform.git.parser.GitIndexParserFactory;
+import org.tizen.nativeplatform.git.parser.IGitIndexParser;
+import org.tizen.nativeplatform.preferences.PreferencesManager;
+import org.tizen.nativeplatform.preferences.PreferencesManager.SiteConfiguration;
+
+public class GitIndexUpdater implements IRunnableWithProgress {
+ private int idx;
+
+ public GitIndexUpdater(int idx) {
+ this.idx = idx;
+ }
+
+ @Override
+ public void run(IProgressMonitor monitor) throws InvocationTargetException,
+ InterruptedException {
+ monitor.beginTask("Updating git index...", -1);
+ try {
+ SiteConfiguration config = PreferencesManager.loadSiteConfiguration(idx);
+ IGitIndexParser parser = GitIndexParserFactory.getIndexParser(config);
+ if (parser == null) {
+ throw new InterruptedException("Failed to get git index parser");
+ }
+ if (!parser.prework(config)) {
+ throw new InterruptedException(String.format("Path is invalid: %s", config.getListLocation()));
+ }
+ List<GitDescription> gitDescs = parser.parse(config);
+ if (gitDescs != null) {
+ String configName = config.getName();
+ GitDescManager.removeDesc(configName);
+ GitDescManager.setDescs(configName, gitDescs);
+ }
+ } finally {
+ monitor.done();
+ }
+ }
+}
+++ /dev/null
-/*
- * Native Platform
- *
- * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd. All rights reserved.
- *
- * Contact:
- * Donghyuk Yang <donghyuk.yang@samsung.com>
- * DongHee Yang <donghee.yang@samsung.com>
- * Kangho Kim <kh5325.kim@samsung.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- * Contributors:
- * - S-Core Co., Ltd
- *
- */
-
-package org.tizen.nativeplatform.git.model;
-
-public class GitConfiguration {
- private String name = "";
- private String gitWeb = "";
- private String sshConn = "";
-
- public GitConfiguration(String name, String gitWeb, String sshConn) {
- this.name = name;
- this.gitWeb = gitWeb;
- this.sshConn = sshConn;
- }
-
- public String getName() {
- return name;
- }
-
- public String getGitWeb() {
- return gitWeb;
- }
-
- public String getSshConn() {
- return sshConn;
- }
-}
package org.tizen.nativeplatform.git.parser;
import static org.tizen.common.util.IOUtil.tryClose;
+
import java.io.BufferedReader;
+import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.List;
import org.tizen.nativeplatform.git.model.GitDescription;
-import org.tizen.nativeplatform.preferences.PreferencesManager;
+import org.tizen.nativeplatform.preferences.PreferencesManager.SiteConfiguration;
public class FileGitIndexParser implements IGitIndexParser {
- List<GitDescription> GitDescs = new ArrayList<GitDescription>();
+ @Override
+ public boolean prework(SiteConfiguration config) {
+ String path = config.getListLocation();
+ if (new File(path).exists()) {
+ return true;
+ }
+ return false;
+ }
@Override
- public List<GitDescription> parse(PreferencesManager.SiteConfiguration config) {
+ public List<GitDescription> parse(SiteConfiguration config) {
+ List<GitDescription> GitDescs = new ArrayList<GitDescription>();
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(config.getListLocation()));
import org.tizen.nativeplatform.preferences.PreferencesManager;
public interface IGitIndexParser {
- List<GitDescription> parse(PreferencesManager.SiteConfiguration config);
+ boolean prework(PreferencesManager.SiteConfiguration config) throws InterruptedException;
+ List<GitDescription> parse(PreferencesManager.SiteConfiguration config) throws InterruptedException;
}
package org.tizen.nativeplatform.git.parser;
import static org.tizen.common.util.IOUtil.tryClose;
+
import java.io.BufferedReader;
+import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
+import java.io.FileWriter;
import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.Writer;
import java.net.MalformedURLException;
+import java.net.Proxy;
+import java.net.URL;
+import java.net.URLConnection;
+import java.security.SecureRandom;
+import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.List;
-import org.tizen.common.util.DialogUtil;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.tizen.common.util.IOUtil;
import org.tizen.nativeplatform.git.model.GitDescription;
import org.tizen.nativeplatform.preferences.PreferencesManager;
+import org.tizen.nativeplatform.preferences.PreferencesManager.SiteConfiguration;
public class WebGitIndexParser implements IGitIndexParser {
+
+ private static final String GIT_LIST_CACHE_FILE_FORMAT = ".%s.index.html";
+
+ @Override
+ public boolean prework(SiteConfiguration config) throws InterruptedException {
+ String name = config.getName();
+ String path = config.getListLocation();
+
+ /*
+ * Disable SSL cert validation because of following exception:
+ * com.sun.jersey.api.client.ClientHandlerException:
+ * javax.net.ssl.SSLHandshakeException:
+ * sun.security.validator.ValidatorException:
+ * PKIX path building failed:
+ * sun.security.provider.certpath.SunCertPathBuilderException:
+ * unable to find valid certification path to requested target
+ * This solution is temporary and can be changed.
+ */
+ // Create a trust manager that does not validate certificate chains
+ TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
+ public X509Certificate[] getAcceptedIssuers() {
+ return null;
+ }
+
+ public void checkClientTrusted(X509Certificate[] certs, String authType) {
+ }
+
+ public void checkServerTrusted(X509Certificate[] certs, String authType) {
+ }
+ } };
+
+ // Install the all-trusting trust manager
+ try {
+ SSLContext sc = SSLContext.getInstance("TLS");
+ sc.init(null, trustAllCerts, new SecureRandom());
+ HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Writer out = null;
+ String cacheFilePath = ResourcesPlugin.getWorkspace().getRoot().getLocation()
+ .append(String.format(GIT_LIST_CACHE_FILE_FORMAT, name)).toString();
+ File cacheFile = new File(cacheFilePath);
+ try {
+ if (cacheFile.exists()) {
+ cacheFile.delete();
+ }
+ URL u = new URL(path);
+ Proxy proxy = PreferencesManager.getProxy();
+ URLConnection yc = null;
+ if (proxy != null) {
+ yc = u.openConnection(proxy);
+ } else {
+ yc = u.openConnection();
+ }
+ BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
+ out = new BufferedWriter(new FileWriter(cacheFilePath));
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ out.write(line + "\n");
+ }
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ throw new InterruptedException(e.toString());
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new InterruptedException(e.toString());
+ } finally {
+ IOUtil.tryClose(out);
+ }
+ if (cacheFile.exists()) {
+ return true;
+ }
+ return false;
+ }
@Override
- public List<GitDescription> parse(PreferencesManager.SiteConfiguration config) {
+ public List<GitDescription> parse(SiteConfiguration config) throws InterruptedException {
boolean startTable = false;
boolean startTr = false;
boolean getProjectName = false;
}
}
} catch (MalformedURLException e) {
- DialogUtil.openErrorDialog(e.toString());
e.printStackTrace();
- return null;
+ throw new InterruptedException(e.toString());
} catch (IOException e) {
- DialogUtil.openErrorDialog(e.toString());
e.printStackTrace();
- return null;
+ throw new InterruptedException(e.toString());
} finally {
tryClose(in);
}
return GitDescs;
}
-
}
package org.tizen.nativeplatform.preferences;
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Writer;
-import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
-import java.net.URL;
-import java.net.URLConnection;
-import java.security.SecureRandom;
-import java.security.cert.X509Certificate;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
import org.eclipse.core.net.proxy.IProxyData;
import org.eclipse.core.net.proxy.IProxyService;
import org.eclipse.core.resources.ResourcesPlugin;
import org.osgi.framework.Bundle;
import org.osgi.framework.FrameworkUtil;
import org.osgi.util.tracker.ServiceTracker;
-import org.tizen.common.util.IOUtil;
public class PreferencesManager {
public static final String PASSWORD_KEY = "org.tizen.nativeplatform.sudo.password";
private static final String GIT_BASE_URI = "org.tizen.nativeplatform.git.base.uri";
private static final String GIT_LIST_TYPE = "org.tizen.nativeplatform.git.list.type";
private static final String GIT_LIST_LOCATION = "org.tizen.nativeplatform.git.list.location";
- private static final String USE_SITE_PROXY = "org.tizen.nativeplatform.site.use.proxy";
- private static final String PROXY_URL = "rg.tizen.nativeplatform.site.use.proxy.url";
private static final String GIT_CONFIG_DELIMITER = "|";
public static final String GIT_LIST_WEB = "GITWEB";
public static final String GIT_LIST_LOCAL = "LOCAL";
private static final String DEFAULT_GIT_BASE_URI = "review.tizen.org";
private static final String DEFAULT_GIT_LIST_TYPE = GIT_LIST_WEB;
private static final String DEFAULT_GIT_LIST_LOCATION = "https://review.tizen.org/git/";
- private static final boolean DEFAULT_USE_SITE_PROXY = false;
- private static final String DEFAULT_PROXY_URL = "";
private static final String GIT_LIST_CACHE_FILE_FORMAT = ".%s.index.html";
private static IPreferenceStore prefStore = org.tizen.nativecommon.Activator.getDefault()
public static void setDefaultValues() {
if (!prefStore.contains(GIT_CONFIG_NAME)) {
addSiteConfiguration(DEFAULT_GIT_CONFIG_NAME, DEFAULT_GIT_BASE_URI,
- DEFAULT_GIT_LIST_TYPE, DEFAULT_GIT_LIST_LOCATION, DEFAULT_USE_SITE_PROXY,
- DEFAULT_PROXY_URL);
+ DEFAULT_GIT_LIST_TYPE, DEFAULT_GIT_LIST_LOCATION);
}
}
}
public static boolean isProxyUsed() {
- if (isSiteProxyUsed()) {
- return true;
- }
- if (isSystemProxyUsed()) {
- return true;
- }
- return false;
+ return isSystemProxyUsed();
}
public static Proxy getProxy() {
return null;
}
Proxy.Type proxyType;
- if (protocol.equals("http") || protocol.equals("https")) {
- proxyType = Proxy.Type.HTTP;
- } else {
+ if (protocol.equals("socks")) {
proxyType = Proxy.Type.SOCKS;
+ } else {
+ proxyType = Proxy.Type.HTTP;
}
return new Proxy(proxyType, new InetSocketAddress(host, port));
} else {
}
public static String getProxyURL() {
- String proxyURL = getSiteProxyURL();
- if (proxyURL == null) {
- proxyURL = getSystemProxyURL();
- }
-
- return proxyURL;
+ return getSystemProxyURL();
}
public static String[] getProxyParsedURL() {
- String[] proxyURL = getSiteProxyParsedURL();
- if (proxyURL == null) {
- proxyURL = getSystemProxyParsedURL();
- }
-
+ String[] proxyURL = getSystemProxyParsedURL();
return proxyURL;
}
-
+
public static String getProxyProtocol() {
String[] proxyURL = getProxyParsedURL();
if (proxyURL == null) {
return Integer.parseInt(proxyURL[ProxyURLParser.PROXY_PORT]);
}
- private static boolean isSiteProxyUsed() {
- SiteConfiguration activeConf = loadActiveSiteConfiguration();
- if (activeConf == null) {
- return false;
- }
-
- return activeConf.isSiteProxyUsed;
- }
-
- private static String getSiteProxyURL() {
- SiteConfiguration activeConf = loadActiveSiteConfiguration();
- if (activeConf == null) {
- return null;
- }
-
- if (activeConf.isSiteProxyUsed) {
- return activeConf.proxyURL;
- } else {
- return null;
- }
- }
-
- private static String[] getSiteProxyParsedURL() {
- SiteConfiguration activeConf = loadActiveSiteConfiguration();
- if (activeConf == null) {
- return null;
- }
-
- if (activeConf.isSiteProxyUsed) {
- return ProxyURLParser.getParsedUrl(activeConf.proxyURL);
- } else {
- return null;
- }
- }
-
private static boolean isSystemProxyUsed() {
return getSystemProxyURL() != null ? true : false;
}
private static String getSystemProxyURL() {
- IProxyData data = getProxyData(IProxyData.SOCKS_PROXY_TYPE);
- if (data != null) {
- return String.format("socks://%s:%d", data.getHost(), data.getPort());
- }
- data = getProxyData(IProxyData.HTTP_PROXY_TYPE);
+ IProxyData data = getProxyData(IProxyData.HTTP_PROXY_TYPE);
if (data != null) {
return String.format("http://%s:%d", data.getHost(), data.getPort());
}
return String.format("https://%s:%d", data.getHost(), data.getPort());
}
+ data = getProxyData(IProxyData.SOCKS_PROXY_TYPE);
+ if (data != null) {
+ return String.format("socks://%s:%d", data.getHost(), data.getPort());
+ }
+
return null;
}
private static String[] getSystemProxyParsedURL() {
String[] parsedUrl = { "", "", "" };
- IProxyData data = getProxyData(IProxyData.SOCKS_PROXY_TYPE);
+ IProxyData data = getProxyData(IProxyData.HTTP_PROXY_TYPE);
if (data != null) {
- parsedUrl[0] = IProxyData.SOCKS_PROXY_TYPE.toLowerCase();
+ parsedUrl[0] = IProxyData.HTTP_PROXY_TYPE.toLowerCase();
parsedUrl[1] = data.getHost();
parsedUrl[2] = Integer.toString(data.getPort());
return parsedUrl;
}
- data = getProxyData(IProxyData.HTTP_PROXY_TYPE);
+ data = getProxyData(IProxyData.HTTPS_PROXY_TYPE);
if (data != null) {
- parsedUrl[0] = IProxyData.HTTP_PROXY_TYPE.toLowerCase();
+ parsedUrl[0] = IProxyData.HTTPS_PROXY_TYPE.toLowerCase();
parsedUrl[1] = data.getHost();
parsedUrl[2] = Integer.toString(data.getPort());
return parsedUrl;
}
- data = getProxyData(IProxyData.HTTPS_PROXY_TYPE);
+ data = getProxyData(IProxyData.SOCKS_PROXY_TYPE);
if (data != null) {
- parsedUrl[0] = IProxyData.HTTPS_PROXY_TYPE.toLowerCase();
+ parsedUrl[0] = IProxyData.SOCKS_PROXY_TYPE.toLowerCase();
parsedUrl[1] = data.getHost();
parsedUrl[2] = Integer.toString(data.getPort());
return parsedUrl;
}
public static String getHttpProxyURL() {
- String proxyURL = getSiteProxyURL();
- if (proxyURL != null && proxyURL.split(":")[0].equals("http")) {
- return proxyURL;
- } else {
- IProxyData data = getProxyData(IProxyData.HTTP_PROXY_TYPE);
- if (data != null) {
- return String.format("http://%s:%d", data.getHost(), data.getPort());
- }
+ IProxyData data = getProxyData(IProxyData.HTTP_PROXY_TYPE);
+ if (data != null) {
+ return String.format("http://%s:%d", data.getHost(), data.getPort());
+ }
+ data = getProxyData(IProxyData.HTTPS_PROXY_TYPE);
+ if (data != null) {
+ return String.format("https://%s:%d", data.getHost(), data.getPort());
}
-
return "";
}
List<String> baseURIs = loadGitBaseURI();
List<String> listTypes = loadGitListType();
List<String> listLocations = loadGitListLocation();
- List<String> listUseSiteProxies = loadUseSiteProxies();
- List<String> listProxyURLs = loadProxyURLs();
int activeId = prefStore.getInt(GIT_ACTIVE_CONFIG);
if (activeId == -1) {
}
SiteConfiguration newConfig = new SiteConfiguration(names.get(activeId),
- baseURIs.get(activeId), listTypes.get(activeId), listLocations.get(activeId),
- listUseSiteProxies.get(activeId).equals("YES") ? true : false,
- listProxyURLs.get(activeId));
+ baseURIs.get(activeId), listTypes.get(activeId), listLocations.get(activeId));
newConfig.setActive(true);
return newConfig;
}
+ public static synchronized SiteConfiguration loadSiteConfiguration(int idx) {
+ String name = loadSiteConfigName(idx);
+ String baseURI = loadGitBaseURI(idx);
+ String listType = loadGitListType(idx);
+ String listLocation = loadGitListLocation(idx);
+ SiteConfiguration newConfig = new SiteConfiguration(name, baseURI, listType, listLocation);
+ return newConfig;
+ }
+
public static synchronized ArrayList<SiteConfiguration> loadSiteConfigurations() {
List<String> names = loadSiteConfigName();
List<String> baseURIs = loadGitBaseURI();
List<String> listTypes = loadGitListType();
List<String> listLocations = loadGitListLocation();
- List<String> listUseSiteProxies = loadUseSiteProxies();
- List<String> listProxyURLs = loadProxyURLs();
int activeId = prefStore.getInt(GIT_ACTIVE_CONFIG);
ArrayList<SiteConfiguration> list = new ArrayList<SiteConfiguration>();
for (int idx = 0; idx < names.size(); idx++) {
SiteConfiguration newConfig = new SiteConfiguration(names.get(idx), baseURIs.get(idx),
- listTypes.get(idx), listLocations.get(idx), listUseSiteProxies.get(idx).equals(
- "YES") ? true : false, listProxyURLs.get(idx));
+ listTypes.get(idx), listLocations.get(idx));
if (activeId == idx) {
newConfig.setActive(true);
}
}
public static synchronized void addSiteConfiguration(String name, String baseURI,
- String listType, String location, boolean useSiteProxy, String proxyURL) {
+ String listType, String location) {
List<String> newList = loadSiteConfigName();
newList.add(name);
newList.add(location);
saveGitListLocation(newList);
- newList = loadUseSiteProxies();
- newList.add(useSiteProxy ? "YES" : "NO");
- saveUseSiteProxies(newList);
-
- newList = loadProxyURLs();
- newList.add(proxyURL);
- saveProxyURLs(newList);
-
if (newList.size() == 1) {
setActiveSiteConfiguration(0);
}
}
public static synchronized void updateSiteConfiguration(int id, String name, String baseURI,
- String listType, String location, boolean useSiteProxy, String proxyURL) {
+ String listType, String location) {
List<String> newList = loadSiteConfigName();
newList.set(id, name);
newList = loadGitListLocation();
newList.set(id, location);
saveGitListLocation(newList);
-
- newList = loadUseSiteProxies();
- newList.set(id, useSiteProxy ? "YES" : "NO");
- saveUseSiteProxies(newList);
-
- newList = loadProxyURLs();
- newList.set(id, proxyURL);
- saveProxyURLs(newList);
}
public static synchronized void setActiveSiteConfiguration(int id) {
}
}
- public static synchronized void refreshGitWebConfiguration(int idx) throws IOException {
- String name = loadSiteConfigName().get(idx);
- String path = loadGitListLocation().get(idx);
-
- /*
- * Disable SSL cert validation because of following exception:
- * com.sun.jersey.api.client.ClientHandlerException:
- * javax.net.ssl.SSLHandshakeException:
- * sun.security.validator.ValidatorException:
- * PKIX path building failed:
- * sun.security.provider.certpath.SunCertPathBuilderException:
- * unable to find valid certification path to requested target
- * This solution is temporary and can be changed.
- */
- // Create a trust manager that does not validate certificate chains
- TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
- public X509Certificate[] getAcceptedIssuers() {
- return null;
- }
-
- public void checkClientTrusted(X509Certificate[] certs, String authType) {
- }
-
- public void checkServerTrusted(X509Certificate[] certs, String authType) {
- }
- } };
-
- // Install the all-trusting trust manager
- try {
- SSLContext sc = SSLContext.getInstance("TLS");
- sc.init(null, trustAllCerts, new SecureRandom());
- HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
- } catch (Exception e) {
- ;
- }
-
- Writer out = null;
- try {
- URL u = new URL(path);
- String cacheFile = ResourcesPlugin.getWorkspace().getRoot().getLocation()
- .append(String.format(GIT_LIST_CACHE_FILE_FORMAT, name)).toString();
- URLConnection yc = u.openConnection();
- BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
- out = new BufferedWriter(new FileWriter(cacheFile));
- String line = null;
- while ((line = in.readLine()) != null) {
- out.write(line + "\n");
- }
- } finally {
- IOUtil.tryClose(out);
- }
- }
-
private static List<String> loadSiteConfigName() {
String values = prefStore.getString(GIT_CONFIG_NAME);
if (!values.isEmpty()) {
}
}
+ private static String loadSiteConfigName(int idx) {
+ List<String> values = loadSiteConfigName();
+ if (!values.isEmpty()) {
+ return values.get(idx);
+ } else {
+ return "";
+ }
+ }
+
private static void saveGitConfigName(List<String> list) {
prefStore.setValue(GIT_CONFIG_NAME, generateListString(list));
}
}
}
+ private static String loadGitBaseURI(int idx) {
+ List<String> values = loadGitBaseURI();
+ if (!values.isEmpty()) {
+ return values.get(idx);
+ } else {
+ return "";
+ }
+ }
+
private static void saveGitBaseURI(List<String> list) {
prefStore.setValue(GIT_BASE_URI, generateListString(list));
}
}
}
- private static void saveGitListType(List<String> list) {
- prefStore.setValue(GIT_LIST_TYPE, generateListString(list));
- }
-
- private static List<String> loadGitListLocation() {
- String values = prefStore.getString(GIT_LIST_LOCATION);
+ private static String loadGitListType(int idx) {
+ List<String> values = loadGitListType();
if (!values.isEmpty()) {
- return new ArrayList<String>(Arrays.asList(values.split("[|]")));
+ return values.get(idx);
} else {
- return new ArrayList<String>();
+ return "";
}
}
- private static void saveGitListLocation(List<String> list) {
- prefStore.setValue(GIT_LIST_LOCATION, generateListString(list));
+ private static void saveGitListType(List<String> list) {
+ prefStore.setValue(GIT_LIST_TYPE, generateListString(list));
}
- private static List<String> loadUseSiteProxies() {
- String values = prefStore.getString(USE_SITE_PROXY);
+ private static List<String> loadGitListLocation() {
+ String values = prefStore.getString(GIT_LIST_LOCATION);
if (!values.isEmpty()) {
return new ArrayList<String>(Arrays.asList(values.split("[|]")));
} else {
}
}
- private static void saveUseSiteProxies(List<String> list) {
- prefStore.setValue(USE_SITE_PROXY, generateListString(list));
- }
-
- private static List<String> loadProxyURLs() {
- String values = prefStore.getString(PROXY_URL);
+ private static String loadGitListLocation(int idx) {
+ List<String> values = loadGitListLocation();
if (!values.isEmpty()) {
- ArrayList<String> newList = new ArrayList<String>();
- for (String url : values.split("[|]")) {
- if (url.equals("EMPTY")) {
- newList.add("");
- } else {
- newList.add(url);
- }
- }
- return newList;
+ return values.get(idx);
} else {
- return new ArrayList<String>();
+ return "";
}
}
- private static void saveProxyURLs(List<String> list) {
- ArrayList<String> newList = new ArrayList<String>();
- for (String url : list) {
- if (url.isEmpty()) {
- newList.add("EMPTY");
- } else {
- newList.add(url);
- }
- }
-
- prefStore.setValue(PROXY_URL, generateListString(newList));
+ private static void saveGitListLocation(List<String> list) {
+ prefStore.setValue(GIT_LIST_LOCATION, generateListString(list));
}
private static String generateListString(List<String> list) {
private String listType;
private String listLocation;
private boolean isActive;
- private boolean isSiteProxyUsed;
- private String proxyURL;
public SiteConfiguration(String name1, String baseURI1, String listType1,
- String listLocation1, boolean isSiteProxyUsed1, String proxyURL1) {
+ String listLocation1) {
name = name1;
baseURI = baseURI1;
listType = listType1;
listLocation = listLocation1;
- isSiteProxyUsed = isSiteProxyUsed1;
- proxyURL = proxyURL1;
-
isActive = false;
}
return listLocation;
}
- public String getProxyUrl() {
- return proxyURL;
- }
-
public String getBaseURI() {
return baseURI;
}
- public boolean useProxy() {
- return isSiteProxyUsed;
- }
-
public boolean isSetActive() {
return isActive;
}
package org.tizen.nativeplatform.preferences.ui;
-import java.net.MalformedURLException;
-import java.net.URL;
import java.util.ResourceBundle;
import org.eclipse.core.runtime.IPath;
private Combo gitListTypeCombo;
private Text gitListLocationText;
private Button fileBrowseBt;
- private Button useSiteProxyBt;
- private Text proxyURLText;
private String siteConfigName = "";
private String gitBaseURI = "";
private String gitListType = "";
private String gitListLocation = "";
- private boolean useSiteProxy = false;
- private String proxyURL = "";
private int x = 0;
private int y = 0;
gitBaseURI = "";
gitListType = "";
gitListLocation = "";
- useSiteProxy = false;
- proxyURL = "";
this.shell = parentShell;
}
protected SiteConfigurationDialog(Shell parentShell, String gitConfigName1, String gitBaseURI1,
- String gitListType1, String gitListLocation1, boolean useSiteProxy1, String proxyURL1) {
+ String gitListType1, String gitListLocation1) {
super(parentShell);
siteConfigName = gitConfigName1;
gitBaseURI = gitBaseURI1;
gitListType = gitListType1;
gitListLocation = gitListLocation1;
- useSiteProxy = useSiteProxy1;
- proxyURL = proxyURL1;
this.shell = parentShell;
}
createSiteConfigNameComposite(composite);
createGitConfigGroupComposite(composite);
- createProxyConfigGroupComposite(composite);
return null;
}
});
}
- private void createProxyConfigGroupComposite(Composite parent) {
- Group group = new Group(parent, SWT.NONE);
- group.setLayout(new GridLayout(2, false));
- group.setText(resources.getString("SiteConfDlg.Group.Proxy"));
- GridData gridData = new GridData(GridData.FILL_BOTH);
- group.setLayoutData(gridData);
-
- // check box
- useSiteProxyBt = new Button(group, SWT.CHECK);
- useSiteProxyBt.setText(resources.getString("SiteConfDlg.Button.UseSiteProxy"));
- gridData = new GridData(GridData.FILL_HORIZONTAL | GridData.HORIZONTAL_ALIGN_BEGINNING);
- gridData.horizontalSpan = 2;
- useSiteProxyBt.setLayoutData(gridData);
- useSiteProxyBt.setSelection(useSiteProxy);
- useSiteProxyBt.addSelectionListener(new SelectionListener() {
-
- @Override
- public void widgetSelected(SelectionEvent e) {
- useSiteProxy = useSiteProxyBt.getSelection();
- proxyURLText.setEnabled(useSiteProxy);
- }
-
- @Override
- public void widgetDefaultSelected(SelectionEvent e) {
- }
-
- });
-
- // label , text
- Label proxyURLLabel = new Label(group, SWT.NONE);
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
- gridData.widthHint = 100;
- proxyURLLabel.setLayoutData(gridData);
- proxyURLLabel.setAlignment(SWT.RIGHT);
- proxyURLLabel.setText(resources.getString("SiteConfDlg.Label.ProxyURL"));
-
- proxyURLText = new Text(group, SWT.SINGLE | SWT.BORDER | SWT.SEARCH);
- gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL);
- proxyURLText.setLayoutData(gridData);
- proxyURLText.setText(proxyURL);
- if (!useSiteProxy) {
- proxyURLText.setEnabled(false);
- }
-
- new Label(group, SWT.NONE);
-
- Label gitBaseURIExLabel = new Label(group, SWT.NONE);
- gridData = new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
- gitBaseURIExLabel.setLayoutData(gridData);
- gitBaseURIExLabel.setText(resources.getString("SiteConfDlg.Label.ProxyURL.Ex"));
- }
-
@Override
protected void okPressed() {
siteConfigName = siteConfigNameText.getText().trim();
gitBaseURI = gitBaseURIText.getText().trim();
gitListType = gitListTypeCombo.getText();
gitListLocation = gitListLocationText.getText().trim();
- useSiteProxy = useSiteProxyBt.getSelection();
- proxyURL = proxyURLText.getText().trim();
if (siteConfigName.isEmpty()) {
DialogUtil.openErrorDialog(resources.getString("GitConfDlg.Error.NoName"));
DialogUtil.openErrorDialog(resources.getString("GitConfDlg.Error.NoLocation"));
return;
}
- if (useSiteProxy) {
- if (proxyURL.isEmpty()) {
- DialogUtil.openErrorDialog(resources.getString("GitConfDlg.Error.NoProxyURL"));
- }
-
- try {
- URL url = new URL(proxyURL);
- String protocol = url.getProtocol();
- String host = url.getHost();
- int port = url.getPort();
-
- if ((protocol.compareToIgnoreCase("socks") != 0
- && protocol.compareToIgnoreCase("http") != 0 && protocol
- .compareToIgnoreCase("https") != 0) || host == null || host.isEmpty()) {
- DialogUtil
- .openErrorDialog(resources.getString("GitConfDlg.Error.MalformedURL"));
- return;
- }
- // use default port
- if (port == -1) {
- port = 8080;
- }
-
- // make new URL
- proxyURL = String.format("%s://%s:%d", protocol, host, port);
-
- } catch (MalformedURLException e) {
- DialogUtil.openErrorDialog(resources.getString("GitConfDlg.Error.MalformedURL"));
- return;
- }
-
- }
-
super.okPressed();
}
public String getGitListLocation() {
return gitListLocation;
}
-
- public boolean isSiteProxyUsed() {
- return useSiteProxy;
- }
-
- public String getProxyURL() {
- if (useSiteProxy) {
- return proxyURL;
- } else {
- return "";
- }
- }
}
package org.tizen.nativeplatform.preferences.ui;
-import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.ResourceBundle;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.jface.preference.PreferencePage;
import org.eclipse.jface.viewers.ArrayContentProvider;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.jface.viewers.TableViewer;
-import org.eclipse.jface.dialogs.ProgressMonitorDialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.MouseEvent;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
import org.tizen.common.util.DialogUtil;
+import org.tizen.nativeplatform.git.GitIndexUpdater;
import org.tizen.nativeplatform.preferences.PreferencesManager;
public class SiteConfigurationPreferencePage extends PreferencePage implements
public void selectionChanged(SelectionChangedEvent event) {
int idx = gitConfigTable.getTable().getSelectionIndex();
if (idx != -1) {
- String gitListType = siteConfigList.get(idx).getListType();
- if (gitListType.equals(PreferencesManager.GIT_LIST_WEB)) {
- updateBt.setEnabled(true);
- } else {
- updateBt.setEnabled(false);
- }
+ updateBt.setEnabled(true);
editBt.setEnabled(true);
setActiveBt.setEnabled(true);
removeBt.setEnabled(true);
if (dialog.open() == SiteConfigurationDialog.OK) {
PreferencesManager.addSiteConfiguration(dialog.getSiteConfigName(),
dialog.getGitBaseURI(), dialog.getGitListType(),
- dialog.getGitListLocation(), dialog.isSiteProxyUsed(),
- dialog.getProxyURL());
+ dialog.getGitListLocation());
updateData();
}
String gitBaseURI = siteConfigList.get(idx).getBaseURI();
String gitListType = siteConfigList.get(idx).getListType();
String gitListLocation = siteConfigList.get(idx).getListLocation();
- boolean useSiteProxy = siteConfigList.get(idx).useProxy();
- String proxyURL = siteConfigList.get(idx).getProxyUrl();
-
SiteConfigurationDialog dialog = new SiteConfigurationDialog(getShell(),
- siteConfigName, gitBaseURI, gitListType, gitListLocation, useSiteProxy,
- proxyURL);
+ siteConfigName, gitBaseURI, gitListType, gitListLocation);
if (dialog.open() == SiteConfigurationDialog.OK) {
PreferencesManager.updateSiteConfiguration(gitConfigTable.getTable()
.getSelectionIndex(), dialog.getSiteConfigName(), dialog
- .getGitBaseURI(), dialog.getGitListType(), dialog.getGitListLocation(),
- dialog.isSiteProxyUsed(), dialog.getProxyURL());
+ .getGitBaseURI(), dialog.getGitListType(), dialog.getGitListLocation());
updateData();
}
}
public void mouseDown(MouseEvent e) {
try {
new ProgressMonitorDialog(getShell()).run(true, false,
- new RefreshGitWebOperation(gitConfigTable.getTable()
+ new GitIndexUpdater(gitConfigTable.getTable()
.getSelectionIndex()));
- DialogUtil.openMessageDialog("Refreshing Git Web succeeded!");
+ DialogUtil.openMessageDialog("Updating git index succeeded!");
} catch (InvocationTargetException e1) {
- DialogUtil.openErrorDialog("Refreshing Git Web Failed!\n:" + e1.getMessage());
+ e1.printStackTrace();
+ DialogUtil.openErrorDialog("Failed to update git index:\n" + e1.getMessage());
} catch (InterruptedException e1) {
- // do nothing
+ e1.printStackTrace();
+ DialogUtil.openErrorDialog("Failed to update git index:\n" + e1.getMessage());
}
}
}
}
}
-
- private static class RefreshGitWebOperation implements IRunnableWithProgress {
- private int idx;
-
- public RefreshGitWebOperation(int idx1) {
- idx = idx1;
- }
-
- public void run(IProgressMonitor monitor) throws InvocationTargetException,
- InterruptedException {
-
- monitor.beginTask("Refreshing Git Web...", IProgressMonitor.UNKNOWN);
- try {
- PreferencesManager.refreshGitWebConfiguration(idx);
- } catch (IOException e) {
- throw new InvocationTargetException(e, e.getMessage());
- }
- monitor.done();
- }
- }
}
String command;
Map<String, String> env = null;
if (PreferencesManager.isProxyUsed()) {
- String protocol = PreferencesManager.getProxyProtocol();
- String host = PreferencesManager.getProxyHost();
- int port = PreferencesManager.getProxyPort();
+ String[] proxyInfo = PreferencesManager.getProxyParsedURL();
+ String protocol = proxyInfo[0];
+ String host = proxyInfo[1];
+ String port = proxyInfo[2];
SmartBuildInterface sbi = SmartBuildInterface.getInstance();
String envKey = String.format("%s_proxy", protocol);
- String envValue = String.format("%s://%s:%d", protocol, host, port);
+ String envValue = String.format("%s://%s:%s", protocol, host, port);
env = sbi.addEnvironmentVariable(envKey, envValue);
}
}
} else {
if (!CommandLauncher.executeSudoWithExpect(command, tempDirPath, env,
- "Platform Internal",
- monitor)) {
+ "Platform Internal", monitor)) {
return false;
}
return true;
}
- public static boolean generate(String rootstrapPath, String arch,
- List<Repository> reposURLs, IPath confFile, IProgressMonitor monitor)
- throws InterruptedException {
+ public static boolean generate(String rootstrapPath, String arch, List<Repository> reposURLs,
+ IPath confFile, IProgressMonitor monitor) throws InterruptedException {
List<String> repos = new ArrayList<String>();
for (Repository repo : reposURLs) {
repos.add(repo.getUri());
EntryDescriptor gitEntryDes = null;
List<GitDescription> gitDescs = null;
- IGitIndexParser parser = GitIndexParserFactory.getIndexParser(config);
- if (parser == null) {
- return items.toArray(new EntryDescriptor[items.size()]);
- }
- gitDescs = parser.parse(config);
- if (gitDescs != null) {
- GitDescManager.setDescs(gitDescs);
+ gitDescs = GitDescManager.getDescs(profileName);
+ if (gitDescs == null || gitDescs.isEmpty()) {
+ IGitIndexParser parser = GitIndexParserFactory.getIndexParser(config);
+ if (parser == null) {
+ return items.toArray(new EntryDescriptor[items.size()]);
+ }
+ try {
+ gitDescs = parser.parse(config);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ if (gitDescs != null) {
+ GitDescManager.setDescs(profileName, gitDescs);
+ }
}
if (gitDescs != null) {
for (GitDescription n : gitDescs) {
import org.tizen.nativeappcommon.wizards.WizardConstants;
import org.tizen.nativecommon.templateengine.TizenTemplateEngine;
import org.tizen.nativeplatform.git.GitDescManager;
+import org.tizen.nativeplatform.git.model.GitDescription;
+import org.tizen.nativeplatform.preferences.PreferencesManager;
import org.tizen.nativeplatform.util.PackageUtil;
import org.tizen.nativeplatform.wizards.model.TizenPlatformTemplateModel;
import org.w3c.dom.Element;
&& tempPath != null) {
// substring "Git/PROFILE_NAME"
descPath = new Path(tempPath.substring(17) + "/" + ed.getName());
+ PreferencesManager.SiteConfiguration config = PreferencesManager
+ .loadActiveSiteConfiguration();
+ GitDescription desc = null;
+ if (config != null) {
+ String siteConfigName = config.getName();
+ desc = GitDescManager.getDesc(siteConfigName, descPath.toOSString());
+ }
Category entry = addChildEntry(fModel, platformInfo, categories);
TizenPlatformTemplateModel template2 = new TizenPlatformTemplateModel(
- platformInfo,
- ed.getName(), ed, null, null, null, GitDescManager.getDesc(descPath
- .toOSString()), "Platform Git");
+ platformInfo, ed.getName(), ed, null, null, null, desc,
+ "Platform Git");
entry.addTemplate(template2);
} else {
if (descPath == null) {