Bug 534874 - Fix preview server adaptors if java ee implementations have unexpected BSNs Same change as 60bbd0c, needed in one more place. Change-Id: I372e73a659e7e211e1e4ec7689773361484ae9c6 Signed-off-by: Mat Booth <mat.booth@redhat.com>
diff --git a/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewRuntimeClasspathProvider.java b/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewRuntimeClasspathProvider.java index b3ea20d..0f9554f 100644 --- a/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewRuntimeClasspathProvider.java +++ b/plugins/org.eclipse.jst.server.preview.adapter/src/org/eclipse/jst/server/preview/adapter/internal/core/PreviewRuntimeClasspathProvider.java
@@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007 IBM Corporation and others. + * Copyright (c) 2007, 2018 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -22,18 +22,25 @@ import org.eclipse.wst.server.core.IRuntime; import org.osgi.framework.Bundle; +import org.osgi.framework.FrameworkUtil; + /** * */ public class PreviewRuntimeClasspathProvider extends RuntimeClasspathProviderDelegate { private static final String[] REQUIRED_BUNDLE_IDS = new String[] { - "javax.servlet", - "javax.servlet.jsp" + getBundleForClass(javax.servlet.ServletContext.class), + getBundleForClass(javax.servlet.jsp.JspContext.class), }; - /** (non-Javadoc) - * @see RuntimeClasspathProviderDelegate#resolveClasspathContainer(IProject, IRuntime) + /** + * Gets the symbolic name of the bundle that supplies the given class. */ + private static String getBundleForClass(Class<?> cls) { + return FrameworkUtil.getBundle(cls).getSymbolicName(); + } + + @Override public IClasspathEntry[] resolveClasspathContainer(IProject project, IRuntime runtime) { List<IClasspathEntry> list = new ArrayList<IClasspathEntry>();