[148717] TaglibIndex does not return records for taglibs defined in web.xml that point to jars
diff --git a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/TestIndex.java b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/TestIndex.java
index 841b4e7..fa44379 100644
--- a/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/TestIndex.java
+++ b/tests/org.eclipse.jst.jsp.core.tests/src/org/eclipse/jst/jsp/core/tests/taglibindex/TestIndex.java
@@ -16,8 +16,11 @@
import junit.framework.TestCase;
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.Path;
+import org.eclipse.jst.jsp.core.taglib.IJarRecord;
import org.eclipse.jst.jsp.core.taglib.ITaglibRecord;
import org.eclipse.jst.jsp.core.taglib.IURLRecord;
import org.eclipse.jst.jsp.core.taglib.TaglibIndex;
@@ -181,4 +184,39 @@
records = TaglibIndex.getAvailableTaglibRecords(new Path("/bug_118251-g/Web Content/WEB-INF/web.xml"));
assertEquals("wrong number of taglib records found after copying", 4, records.length);
}
+
+ public void test_148717_a() throws Exception {
+ IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject("bug_148717");
+ if (!project.exists()) {
+ // Create new project
+ project = BundleResourceUtil.createSimpleProject("bug_148717", null, null);
+ assertTrue(project.exists());
+ BundleResourceUtil.copyBundleEntriesIntoWorkspace("/testfiles/bug_148717", "/bug_148717");
+ }
+
+ IFile file = project.getFile("/WebContent/WEB-INF/lib/internal.jar");
+ assertTrue(file.exists());
+
+ String uri = "http://example.com/external-uri";
+ ITaglibRecord taglibRecord = TaglibIndex.resolve("/bug_148717/WebContent/", uri, false);
+ assertNotNull("record not found for " + uri, taglibRecord);
+ assertEquals(ITaglibRecord.JAR, taglibRecord.getRecordType());
+ assertEquals(uri, ((IJarRecord) taglibRecord).getURI());
+
+ ITaglibRecord taglibRecord2 = null;
+ ITaglibRecord[] records = TaglibIndex.getAvailableTaglibRecords(new Path("/bug_148717/WebContent/"));
+ for (int i = 0; i < records.length; i++) {
+ int type = records[i].getRecordType();
+ switch (type) {
+ case ITaglibRecord.JAR : {
+ taglibRecord2 = records[i];
+ }
+ break;
+ }
+ }
+ assertNotNull("record not returned for " + uri, taglibRecord2);
+ assertEquals(ITaglibRecord.JAR, taglibRecord2.getRecordType());
+ assertEquals(uri, ((IJarRecord) taglibRecord2).getURI());
+ }
+
}
\ No newline at end of file
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.classpath b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.classpath
new file mode 100644
index 0000000..cc2ae42
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+ <classpathentry kind="con" path="org.eclipse.jst.server.core.container"/>
+ <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
+ <classpathentry kind="output" path="build/classes"/>
+</classpath>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.project b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.project
new file mode 100644
index 0000000..ac7bfe4
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.project
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>bug_148717</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.common.project.facet.core.builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
+ <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
+ </natures>
+</projectDescription>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jdt.core.prefs b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..fe8bc9f
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
+#Mon May 01 13:41:18 EDT 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
+org.eclipse.jdt.core.compiler.compliance=1.4
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.4
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jst.common.project.facet.core.prefs b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jst.common.project.facet.core.prefs
new file mode 100644
index 0000000..ffc0129
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.jst.common.project.facet.core.prefs
@@ -0,0 +1,4 @@
+#Mon May 01 13:41:24 EDT 2006
+classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER\:\:org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType\:\:1.5.0_03/owners=jst.java\:5.0
+classpath.helper/org.eclipse.jst.server.core.container\:\:org.eclipse.jst.server.tomcat.runtimeTarget\:\:Apache\ Tomcat\ v5.5.9/owners=jst.web\:2.4
+eclipse.preferences.version=1
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.component b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.component
new file mode 100644
index 0000000..76ed56f
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.component
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project-modules id="moduleCoreId" project-version="1.5.0">
+<wb-module deploy-name="bug_148717">
+<wb-resource deploy-path="/" source-path="/WebContent"/>
+<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
+<property name="context-root" value="bug_148717"/>
+<property name="java-output-path" value="build/classes"/>
+</wb-module>
+</project-modules>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.project.facet.core.xml b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644
index 0000000..39b9b4c
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<faceted-project>
+ <runtime name="Apache Tomcat v5.5.9"/>
+ <fixed facet="jst.java"/>
+ <fixed facet="jst.web"/>
+ <installed facet="jst.java" version="5.0"/>
+ <installed facet="jst.web" version="2.4"/>
+</faceted-project>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/META-INF/MANIFEST.MF b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..254272e
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path:
+
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/lib/internal.jar b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/lib/internal.jar
new file mode 100644
index 0000000..ebad27b
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/lib/internal.jar
Binary files differ
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/web.xml b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/web.xml
new file mode 100644
index 0000000..1853669
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/WebContent/WEB-INF/web.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app id="prj119576_c" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+ <display-name>prj119576_c</display-name>
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.htm</welcome-file>
+ <welcome-file>index.jsp</welcome-file>
+ <welcome-file>default.html</welcome-file>
+ <welcome-file>default.htm</welcome-file>
+ <welcome-file>default.jsp</welcome-file>
+ </welcome-file-list>
+ <taglib>
+ <taglib-uri>http://example.com/external-uri</taglib-uri>
+ <taglib-location>/WEB-INF/lib/internal.jar</taglib-location>
+ </taglib>
+</web-app>
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/bin/.keepme b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/bin/.keepme
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/bin/.keepme
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/build/classes/.keepme b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/build/classes/.keepme
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/build/classes/.keepme
diff --git a/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/src/.keepme b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/src/.keepme
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/org.eclipse.jst.jsp.core.tests/testfiles/bug_148717/src/.keepme