Author: snjeza
Date: 2011-10-04 17:27:43 -0400 (Tue, 04 Oct 2011)
New Revision: 35336
Added:
trunk/examples/tests/org.jboss.tools.project.examples.test/resources/
trunk/examples/tests/org.jboss.tools.project.examples.test/resources/testRelativePath.zip
Modified:
trunk/examples/plugins/org.jboss.tools.project.examples.cheatsheet/.project
trunk/examples/plugins/org.jboss.tools.project.examples/.project
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/model/ProjectUtil.java
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/model/SiteCategory.java
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/preferences/SiteDialog.java
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/preferences/Sites.java
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/wizard/NewProjectExamplesWizardPage.java
trunk/examples/tests/org.jboss.tools.project.examples.test/.project
trunk/examples/tests/org.jboss.tools.project.examples.test/build.properties
trunk/examples/tests/org.jboss.tools.project.examples.test/src/org/jboss/tools/project/examples/test/ProjectTest.java
trunk/examples/tests/org.jboss.tools.project.examples.test/src/org/jboss/tools/project/examples/test/SiteTest.java
Log:
JBIDE-9708 project examples should resolve its path relative to the location of the
projectexample.xml file by default
Modified: trunk/examples/plugins/org.jboss.tools.project.examples/.project
===================================================================
--- trunk/examples/plugins/org.jboss.tools.project.examples/.project 2011-10-04 19:45:52
UTC (rev 35335)
+++ trunk/examples/plugins/org.jboss.tools.project.examples/.project 2011-10-04 21:27:43
UTC (rev 35336)
@@ -31,11 +31,4 @@
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
</natures>
- <linkedResources>
- <link>
- <name>lib-org.jboss.tools.jst.web.kb_3.3.0.v20110915-1635-H19-M3</name>
- <type>2</type>
- <location>E:/eclipse-3.7/plugins/org.jboss.tools.jst.web.kb_3.3.0.v20110915-1635-H19-M3</location>
- </link>
- </linkedResources>
</projectDescription>
Modified:
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/model/ProjectUtil.java
===================================================================
---
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/model/ProjectUtil.java 2011-10-04
19:45:52 UTC (rev 35335)
+++
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/model/ProjectUtil.java 2011-10-04
21:27:43 UTC (rev 35336)
@@ -82,16 +82,16 @@
private static String EXPERIMENTAL_EXT = "experimental"; //$NON-NLS-1$
- private static Set<ProjectExampleSite> pluginSites;
+ private static Set<IProjectExampleSite> pluginSites;
- private static HashSet<ProjectExampleSite> invalidSites = new
HashSet<ProjectExampleSite>();
+ private static HashSet<IProjectExampleSite> invalidSites = new
HashSet<IProjectExampleSite>();
private ProjectUtil() {
}
- public static Set<ProjectExampleSite> getPluginSites() {
+ public static Set<IProjectExampleSite> getPluginSites() {
if (pluginSites == null) {
- pluginSites = new HashSet<ProjectExampleSite>();
+ pluginSites = new HashSet<IProjectExampleSite>();
IExtensionRegistry registry = Platform.getExtensionRegistry();
IExtensionPoint extensionPoint = registry
.getExtensionPoint(PROJECT_EXAMPLES_XML_EXTENSION_ID);
@@ -100,7 +100,7 @@
IExtension extension = extensions[i];
IConfigurationElement[] configurationElements = extension
.getConfigurationElements();
- ProjectExampleSite site = new ProjectExampleSite();
+ IProjectExampleSite site = new ProjectExampleSite();
site.setName(extension.getLabel());
for (int j = 0; j < configurationElements.length; j++) {
IConfigurationElement configurationElement = configurationElements[j];
@@ -126,8 +126,8 @@
return pluginSites;
}
- public static Set<ProjectExampleSite> getUserSites() {
- Set<ProjectExampleSite> sites = new HashSet<ProjectExampleSite>();
+ public static Set<IProjectExampleSite> getUserSites() {
+ Set<IProjectExampleSite> sites = new HashSet<IProjectExampleSite>();
ProjectExampleSite site = getSite(getProjectExamplesXml());
if (site != null) {
sites.add(site);
@@ -172,8 +172,8 @@
return sites;
}
- private static Set<ProjectExampleSite> getSites() {
- Set<ProjectExampleSite> sites = new HashSet<ProjectExampleSite>();
+ private static Set<IProjectExampleSite> getSites() {
+ Set<IProjectExampleSite> sites = new HashSet<IProjectExampleSite>();
sites.addAll(getPluginSites());
sites.addAll(getUserSites());
return sites;
@@ -207,15 +207,19 @@
}
return null;
}
+
+ public static List<Category> getProjects(IProgressMonitor monitor) {
+ return getProjects(getSites(), monitor);
+ }
- public static List<Category> getProjects(IProgressMonitor monitor) {
+ public static List<Category> getProjects(Set<IProjectExampleSite> sites,
IProgressMonitor monitor) {
monitor.setTaskName(Messages.ProjectUtil_Parsing_project_description_files);
- Set<ProjectExampleSite> sites = getSites();
+
List<Category> list = new ArrayList<Category>();
invalidSites.clear();
Category other = Category.OTHER;
try {
- for (ProjectExampleSite site : sites) {
+ for (IProjectExampleSite site : sites) {
boolean showExperimentalSites =
ProjectExamplesActivator.getDefault().getPreferenceStore().getBoolean(ProjectExamplesActivator.SHOW_EXPERIMENTAL_SITES);
if (!showExperimentalSites && site.isExperimental()) {
continue;
@@ -535,7 +539,7 @@
return doc;
}
- public static String getAsXML(Set<ProjectExampleSite> sites)
+ public static String getAsXML(Set<IProjectExampleSite> sites)
throws ParserConfigurationException, TransformerException,
UnsupportedEncodingException {
if (sites == null || sites.size() == 0) {
@@ -544,7 +548,7 @@
Document doc = getDocument();
Element sitesElement = doc.createElement(SITES);
doc.appendChild(sitesElement);
- for (ProjectExampleSite site : sites) {
+ for (IProjectExampleSite site : sites) {
Element siteElement = doc.createElement(SITE);
siteElement.setAttribute(NAME, site.getName());
siteElement.setAttribute(URL, site.getUrl().toString());
@@ -583,7 +587,7 @@
return root;
}
- public static HashSet<ProjectExampleSite> getInvalidSites() {
+ public static HashSet<IProjectExampleSite> getInvalidSites() {
return invalidSites;
}
}
Modified:
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/model/SiteCategory.java
===================================================================
---
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/model/SiteCategory.java 2011-10-04
19:45:52 UTC (rev 35335)
+++
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/model/SiteCategory.java 2011-10-04
21:27:43 UTC (rev 35336)
@@ -21,7 +21,7 @@
public class SiteCategory implements IProjectExampleSite {
private String name;
- private Set<ProjectExampleSite> sites;
+ private Set<IProjectExampleSite> sites;
public SiteCategory(String name) {
this.name = name;
@@ -31,11 +31,11 @@
return name;
}
- public Set<ProjectExampleSite> getSites() {
+ public Set<IProjectExampleSite> getSites() {
return sites;
}
- public void setSites(Set<ProjectExampleSite> sites) {
+ public void setSites(Set<IProjectExampleSite> sites) {
this.sites = sites;
}
Modified:
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/preferences/SiteDialog.java
===================================================================
---
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/preferences/SiteDialog.java 2011-10-04
19:45:52 UTC (rev 35335)
+++
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/preferences/SiteDialog.java 2011-10-04
21:27:43 UTC (rev 35336)
@@ -175,7 +175,7 @@
setErrorMessage(Messages.SiteDialog_The_name_field_is_required);
return updateButton(false);
}
- Set<ProjectExampleSite> siteList = sites.getSites();
+ Set<IProjectExampleSite> siteList = sites.getSites();
for(IProjectExampleSite site:siteList) {
if (site != selectedSite && nameText.getText().equals(site.getName())) {
setErrorMessage(Messages.SiteDialog_The_site_already_exists);
Modified:
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/preferences/Sites.java
===================================================================
---
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/preferences/Sites.java 2011-10-04
19:45:52 UTC (rev 35335)
+++
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/preferences/Sites.java 2011-10-04
21:27:43 UTC (rev 35336)
@@ -27,20 +27,20 @@
public class Sites {
private SiteCategory[] siteCategories;
private SiteCategory userSite;
- private Set<ProjectExampleSite> sites;
+ private Set<IProjectExampleSite> sites;
public SiteCategory[] getSiteCategories() {
if (siteCategories == null) {
siteCategories = new SiteCategory[2];
userSite = new SiteCategory(Messages.Sites_User_sites);
- Set<ProjectExampleSite> userSites = ProjectUtil.getUserSites();
+ Set<IProjectExampleSite> userSites = ProjectUtil.getUserSites();
userSite.setSites(userSites);
siteCategories[0]=userSite;
SiteCategory pluginSite = new SiteCategory(Messages.Sites_Plugin_provided_sites);
- Set<ProjectExampleSite> pluginSites = ProjectUtil.getPluginSites();
+ Set<IProjectExampleSite> pluginSites = ProjectUtil.getPluginSites();
pluginSite.setSites(pluginSites);
siteCategories[1]=pluginSite;
- sites = new HashSet<ProjectExampleSite>();
+ sites = new HashSet<IProjectExampleSite>();
sites.addAll(pluginSites);
sites.addAll(userSites);
}
@@ -57,11 +57,11 @@
sites.add(site);
}
- public Set<ProjectExampleSite> getSites() {
+ public Set<IProjectExampleSite> getSites() {
return sites;
}
- public Set<ProjectExampleSite> getUserSites() {
+ public Set<IProjectExampleSite> getUserSites() {
return userSite.getSites();
}
}
\ No newline at end of file
Modified:
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/wizard/NewProjectExamplesWizardPage.java
===================================================================
---
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/wizard/NewProjectExamplesWizardPage.java 2011-10-04
19:45:52 UTC (rev 35335)
+++
trunk/examples/plugins/org.jboss.tools.project.examples/src/org/jboss/tools/project/examples/wizard/NewProjectExamplesWizardPage.java 2011-10-04
21:27:43 UTC (rev 35336)
@@ -59,13 +59,10 @@
import org.jboss.tools.project.examples.Messages;
import org.jboss.tools.project.examples.ProjectExamplesActivator;
import org.jboss.tools.project.examples.dialog.FixDialog;
-import org.jboss.tools.project.examples.fixes.PluginFix;
-import org.jboss.tools.project.examples.fixes.SeamRuntimeFix;
-import org.jboss.tools.project.examples.fixes.WTPRuntimeFix;
import org.jboss.tools.project.examples.model.Category;
import org.jboss.tools.project.examples.model.IImportProjectExample;
+import org.jboss.tools.project.examples.model.IProjectExampleSite;
import org.jboss.tools.project.examples.model.Project;
-import org.jboss.tools.project.examples.model.ProjectExampleSite;
import org.jboss.tools.project.examples.model.ProjectFix;
import org.jboss.tools.project.examples.model.ProjectUtil;
@@ -419,11 +416,11 @@
} catch (Exception e) {
ProjectExamplesActivator.log(e);
}
- HashSet<ProjectExampleSite> invalidSites = ProjectUtil.getInvalidSites();
+ HashSet<IProjectExampleSite> invalidSites = ProjectUtil.getInvalidSites();
boolean showInvalidSites =
ProjectExamplesActivator.getDefault().getPreferenceStore().getBoolean(ProjectExamplesActivator.SHOW_INVALID_SITES);
if (invalidSites.size() > 0 && showInvalidSites && show) {
String message =
Messages.NewProjectExamplesWizardPage_Cannot_access_the_following_sites;
- for (ProjectExampleSite site:invalidSites) {
+ for (IProjectExampleSite site:invalidSites) {
message = message + site.getName() + "\n"; //$NON-NLS-1$
ProjectExamplesActivator.log(NLS.bind(Messages.InvalideSite, new Object[]
{site.getName(), site.getUrl()} ));
}
Modified: trunk/examples/plugins/org.jboss.tools.project.examples.cheatsheet/.project
===================================================================
--- trunk/examples/plugins/org.jboss.tools.project.examples.cheatsheet/.project 2011-10-04
19:45:52 UTC (rev 35335)
+++ trunk/examples/plugins/org.jboss.tools.project.examples.cheatsheet/.project 2011-10-04
21:27:43 UTC (rev 35336)
@@ -33,21 +33,6 @@
</natures>
<linkedResources>
<link>
- <name>lib-org.jboss.tools.common.text.ext_3.3.0.v20111001-0437-H476-M4</name>
- <type>2</type>
- <location>E:/eclipse-3.7.1/plugins/org.jboss.tools.common.text.ext_3.3.0.v20111001-0437-H476-M4</location>
- </link>
- <link>
- <name>lib-org.jboss.tools.common.text.xml_3.3.0.v20111001-0437-H476-M4</name>
- <type>2</type>
- <location>E:/eclipse-3.7.1/plugins/org.jboss.tools.common.text.xml_3.3.0.v20111001-0437-H476-M4</location>
- </link>
- <link>
- <name>lib-org.jboss.tools.common_3.3.0.v20111001-0437-H476-M4</name>
- <type>2</type>
- <location>E:/eclipse-3.7.1/plugins/org.jboss.tools.common_3.3.0.v20111001-0437-H476-M4</location>
- </link>
- <link>
<name>lib-org.jboss.tools.jst.jsp_3.3.0.v20111001-0515-H542-M4</name>
<type>2</type>
<location>E:/eclipse-3.7.1/plugins/org.jboss.tools.jst.jsp_3.3.0.v20111001-0515-H542-M4</location>
Modified: trunk/examples/tests/org.jboss.tools.project.examples.test/.project
===================================================================
--- trunk/examples/tests/org.jboss.tools.project.examples.test/.project 2011-10-04
19:45:52 UTC (rev 35335)
+++ trunk/examples/tests/org.jboss.tools.project.examples.test/.project 2011-10-04
21:27:43 UTC (rev 35336)
@@ -33,11 +33,6 @@
</natures>
<linkedResources>
<link>
- <name>lib-org.jboss.tools.jsf.vpe.seam_3.3.0.v20111001-0617-H456-M4</name>
- <type>2</type>
- <location>E:/eclipse-3.7.1/plugins/org.jboss.tools.jsf.vpe.seam_3.3.0.v20111001-0617-H456-M4</location>
- </link>
- <link>
<name>lib-org.jboss.tools.jst.web.kb_3.3.0.v20111001-0515-H542-M4</name>
<type>2</type>
<location>E:/eclipse-3.7.1/plugins/org.jboss.tools.jst.web.kb_3.3.0.v20111001-0515-H542-M4</location>
Modified: trunk/examples/tests/org.jboss.tools.project.examples.test/build.properties
===================================================================
--- trunk/examples/tests/org.jboss.tools.project.examples.test/build.properties 2011-10-04
19:45:52 UTC (rev 35335)
+++ trunk/examples/tests/org.jboss.tools.project.examples.test/build.properties 2011-10-04
21:27:43 UTC (rev 35336)
@@ -2,4 +2,5 @@
output.. = bin/
bin.includes = META-INF/,\
.,\
- plugin.properties
+ plugin.properties,\
+ resources/
Added:
trunk/examples/tests/org.jboss.tools.project.examples.test/resources/testRelativePath.zip
===================================================================
(Binary files differ)
Property changes on:
trunk/examples/tests/org.jboss.tools.project.examples.test/resources/testRelativePath.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified:
trunk/examples/tests/org.jboss.tools.project.examples.test/src/org/jboss/tools/project/examples/test/ProjectTest.java
===================================================================
---
trunk/examples/tests/org.jboss.tools.project.examples.test/src/org/jboss/tools/project/examples/test/ProjectTest.java 2011-10-04
19:45:52 UTC (rev 35335)
+++
trunk/examples/tests/org.jboss.tools.project.examples.test/src/org/jboss/tools/project/examples/test/ProjectTest.java 2011-10-04
21:27:43 UTC (rev 35336)
@@ -14,31 +14,46 @@
import static org.junit.Assert.assertTrue;
import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.resources.WorkspaceJob;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.PlatformUI;
import org.jboss.tools.project.examples.Messages;
import org.jboss.tools.project.examples.ProjectExamplesActivator;
import org.jboss.tools.project.examples.model.Category;
import org.jboss.tools.project.examples.model.IImportProjectExample;
+import org.jboss.tools.project.examples.model.IProjectExampleSite;
import org.jboss.tools.project.examples.model.Project;
+import org.jboss.tools.project.examples.model.ProjectExampleSite;
import org.jboss.tools.project.examples.model.ProjectUtil;
import org.jboss.tools.project.examples.wizard.NewProjectExamplesWizard;
import org.jboss.tools.test.util.JobUtils;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
+import org.osgi.framework.Bundle;
/**
*
@@ -58,6 +73,60 @@
}
@Test
+ public void testRelativePath() throws Exception {
+ Bundle bundle = Platform.getBundle("org.jboss.tools.project.examples.test");
+ URL entry = bundle.getEntry("/resources/testRelativePath.zip");
+
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ File rootLocation = root.getLocation().toFile();
+ File destination = new File(rootLocation,"testRelativePath");
+ destination.mkdirs();
+ File file = new File(destination, "testRelativePath.zip");
+ InputStream is = null;
+ OutputStream os = null;
+ try {
+ is = entry.openStream();
+ os = new FileOutputStream(file);
+ copy(is,os);
+ ProjectExamplesActivator.extractZipFile(file, destination, new
NullProgressMonitor());
+ } finally {
+ if (is != null) {
+ try {
+ is.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ is = null;
+ }
+ if (os != null) {
+ try {
+ os.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ }
+ }
+ IProjectExampleSite site = new ProjectExampleSite();
+ site.setExperimental(false);
+ site.setName("Test Relative Path");
+ File projectExamplesFile = new File(destination, "test-examples.xml");
+ URL url = projectExamplesFile.toURI().toURL();
+ site.setUrl(url);
+ Set<IProjectExampleSite> sites = new HashSet<IProjectExampleSite>();
+ sites.add(site);
+ List<Category> categories = ProjectUtil.getProjects(sites , new
NullProgressMonitor());
+ Category category = categories.get(0);
+ assertTrue("Test".equals(category.getName()));
+ Project project = category.getProjects().get(0);
+ String urlString = project.getUrl();
+ assertTrue(urlString.startsWith("file:"));
+ url = new URL(urlString);
+ is = url.openStream();
+ assertTrue(is != null);
+ is.close();
+ }
+
+ @Test
public void importNumberguess() throws Exception {
WorkspaceJob workspaceJob = new
WorkspaceJob(Messages.NewProjectExamplesWizard_Downloading) {
@@ -149,4 +218,13 @@
}
assertTrue("The '" + projectName + "' contains " +
markers.size() + " error(s).", markers.size() == 0);
}
+
+
+ public static void copy(InputStream in, OutputStream out) throws IOException {
+ byte[] buffer = new byte[16 * 1024];
+ int len;
+ while ((len = in.read(buffer)) >= 0) {
+ out.write(buffer, 0, len);
+ }
+ }
}
Modified:
trunk/examples/tests/org.jboss.tools.project.examples.test/src/org/jboss/tools/project/examples/test/SiteTest.java
===================================================================
---
trunk/examples/tests/org.jboss.tools.project.examples.test/src/org/jboss/tools/project/examples/test/SiteTest.java 2011-10-04
19:45:52 UTC (rev 35335)
+++
trunk/examples/tests/org.jboss.tools.project.examples.test/src/org/jboss/tools/project/examples/test/SiteTest.java 2011-10-04
21:27:43 UTC (rev 35336)
@@ -16,6 +16,7 @@
import java.util.Set;
import org.eclipse.core.runtime.NullProgressMonitor;
+import org.jboss.tools.project.examples.model.IProjectExampleSite;
import org.jboss.tools.project.examples.model.ProjectExampleSite;
import org.jboss.tools.project.examples.model.ProjectUtil;
import org.junit.Test;
@@ -29,7 +30,7 @@
@Test
public void sitesPresent() {
- Set<ProjectExampleSite> sites = new HashSet<ProjectExampleSite>();
+ Set<IProjectExampleSite> sites = new HashSet<IProjectExampleSite>();
sites.addAll(ProjectUtil.getPluginSites());
sites.addAll(ProjectUtil.getUserSites());
assertTrue(sites.size() > 0);
@@ -38,7 +39,7 @@
@Test
public void testInvalidSites() {
ProjectUtil.getProjects(new NullProgressMonitor());
- HashSet<ProjectExampleSite> invalidSites = ProjectUtil.getInvalidSites();
+ HashSet<IProjectExampleSite> invalidSites = ProjectUtil.getInvalidSites();
assertTrue(invalidSites.size() <= 0);
}