/** * * @param config * @param features true for features false for plugins * @return URLs for features or plugins on the site */ private static URL[] getExtensionPluginURLs(IPlatformConfiguration config, boolean features) { ArrayList<URL> extensionPlugins = new ArrayList<>(); IPlatformConfiguration.ISiteEntry[] sites = config.getConfiguredSites(); for (int i = 0; i < sites.length; i++) { URL url = sites[i].getURL(); if ("file".equalsIgnoreCase(url.getProtocol())) { //$NON-NLS-1$ String[] entries; if (features) entries = sites[i].getFeatures(); else entries = sites[i].getPlugins(); for (int j = 0; j < entries.length; j++) { try { extensionPlugins.add(new File(url.getFile(), entries[j]).toURL()); } catch (MalformedURLException e) { } } } } return extensionPlugins.toArray(new URL[extensionPlugins.size()]); }
private long computeFeaturesChangeStamp() { if (featuresChangeStampIsValid) return featuresChangeStamp; long result = 0; ISiteEntry[] sites = config.getSites(); for (int i = 0; i < sites.length; i++) { result = Math.max(result, sites[i].getFeaturesChangeStamp()); } featuresChangeStamp = result; featuresChangeStampIsValid = true; return featuresChangeStamp; }
private long computePluginsChangeStamp() { if (pluginsChangeStampIsValid) return pluginsChangeStamp; long result = 0; ISiteEntry[] sites = config.getSites(); for (int i = 0; i < sites.length; i++) { result = Math.max(result, sites[i].getPluginsChangeStamp()); } pluginsChangeStamp = result; pluginsChangeStampIsValid = true; return pluginsChangeStamp; }
/** * * @param config * @param features true for features false for plugins * @return URLs for features or plugins on the site */ private static URL[] getExtensionPluginURLs(IPlatformConfiguration config, boolean features) { ArrayList extensionPlugins = new ArrayList(); IPlatformConfiguration.ISiteEntry[] sites = config.getConfiguredSites(); for (int i = 0; i < sites.length; i++) { URL url = sites[i].getURL(); if ("file".equalsIgnoreCase(url.getProtocol())) { //$NON-NLS-1$ String[] entries; if(features) entries = sites[i].getFeatures(); else entries = sites[i].getPlugins(); for (int j = 0; j < entries.length; j++) { try { extensionPlugins.add(new File(url.getFile(), entries[j]).toURL()); } catch (MalformedURLException e) { } } } } return (URL[]) extensionPlugins.toArray(new URL[extensionPlugins.size()]); }
@Override public URL[] getPluginPath() { ArrayList<URL> path = new ArrayList<>(); Utils.debug("computed plug-in path:"); //$NON-NLS-1$ ISiteEntry[] sites = getConfiguredSites(); URL pathURL; for (int i = 0; i < sites.length; i++) { String[] plugins = sites[i].getPlugins(); for (int j = 0; j < plugins.length; j++) { try { pathURL = new URL(((SiteEntry) sites[i]).getResolvedURL(), plugins[j]); path.add(pathURL); Utils.debug(" " + pathURL.toString()); //$NON-NLS-1$ } catch (MalformedURLException e) { // skip entry ... Utils.debug(" bad URL: " + e); //$NON-NLS-1$ } } } return path.toArray(new URL[0]); }
public PluginEntry[] getPlugins() { ArrayList<PluginEntry> allPlugins = new ArrayList<>(); Utils.debug("computed plug-ins:"); //$NON-NLS-1$ ISiteEntry[] sites = getConfiguredSites(); for (int i = 0; i < sites.length; i++) { if (!(sites[i] instanceof SiteEntry)) { Utils.debug("Site " + sites[i].getURL() + " is not a SiteEntry"); //$NON-NLS-1$ //$NON-NLS-2$ continue; } PluginEntry[] plugins = ((SiteEntry) sites[i]).getPluginEntries(); for (int j = 0; j < plugins.length; j++) { allPlugins.add(plugins[j]); Utils.debug(" " + plugins[j].getURL()); //$NON-NLS-1$ } } return allPlugins.toArray(new PluginEntry[0]); }
@Override public synchronized void configureSite(ISiteEntry entry, boolean replace) { if (entry == null) return; URL url = entry.getURL(); if (url == null) return; String key = url.toExternalForm(); if (config.getSiteEntry(key) != null && !replace) return; if (entry instanceof SiteEntry) config.addSiteEntry(key, (SiteEntry) entry); }
private void setDefaultPolicy() { // Assumption: If the configuration that we initialize with // has a MANAGED_ONLY policy, then all sites should have default policy // of MANAGED_ONLY. ISiteEntry[] sentries = getConfiguredSites(); if (sentries != null && sentries.length > 0) { int policyType = sentries[0].getSitePolicy().getType(); if (policyType == ISitePolicy.MANAGED_ONLY) { defaultPolicy = policyType; } } }
@Override public synchronized void refresh() { // Reset computed values. Will be lazily refreshed // on next access ISiteEntry[] sites = getConfiguredSites(); for (int i = 0; i < sites.length; i++) { if (sites[i].isUpdateable()) { // reset site entry ((SiteEntry) sites[i]).refresh(); } } }
public Set<String> getPluginPaths() { HashSet<String> paths = new HashSet<>(); ISiteEntry[] sites = getConfiguredSites(); for (int i = 0; i < sites.length; i++) { String[] plugins = sites[i].getPlugins(); for (int j = 0; j < plugins.length; j++) { paths.add(plugins[j]); } } return paths; }
@Override public synchronized void unconfigureSite(ISiteEntry entry) { if (entry == null) return; URL url = entry.getURL(); if (url == null) return; String key = url.toExternalForm(); if (entry instanceof SiteEntry) config.removeSiteEntry(key); }