// 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. package net.sourceforge.eclipsejetty.jetty.embedded; import java.io.File; import java.io.IOException; import java.util.Collection; import net.sourceforge.eclipsejetty.JettyPlugin; import net.sourceforge.eclipsejetty.jetty.DependencyBasedJettyLibStrategy; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.FileLocator; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Status; /** * Resolve libs for embedded Jetty * * @author Manfred Hantschel */ public class JettyEmbeddedLibStrategy extends DependencyBasedJettyLibStrategy { @Override protected void addServerDependencies(Collection<String> dependencies) { dependencies.add("javax.servlet"); dependencies.add("jetty-server"); dependencies.add("jetty-continuation"); dependencies.add("jetty-http"); dependencies.add("jetty-io"); dependencies.add("jetty-util"); dependencies.add("jetty-security"); dependencies.add("jetty-servlet"); dependencies.add("jetty-webapp"); dependencies.add("jetty-xml"); dependencies.add("jetty-util"); } @Override protected void addJSPDependencies(Collection<String> dependencies) { dependencies.add("jetty-jsp"); dependencies.add("javax.servlet.jsp"); dependencies.add("javax.servlet"); dependencies.add("org.apache.jasper.glassfish"); dependencies.add("javax.servlet.jsp.jstl"); dependencies.add("org.apache.taglibs.standard.glassfish"); dependencies.add("javax.el"); dependencies.add("com.sun.el"); dependencies.add("org.eclipse.jdt.core"); } @Override protected void addJMXDependencies(Collection<String> dependencies) { dependencies.add("jetty-jmx"); } @Override protected void addJNDIDependencies(Collection<String> dependencies) { dependencies.add("jetty-jndi"); dependencies.add("javax.mail.glassfish"); dependencies.add("javax.activation"); dependencies.add("jetty-plus"); } @Override protected void addAnnotationsDependencies(Collection<String> dependencies) { dependencies.add("jetty-annotations"); dependencies.add("javax.annotation"); dependencies.add("org.objectweb.asm"); dependencies.add("jetty-plus"); } @Override protected void addAJPDependencies(Collection<String> dependencies) { dependencies.add("jetty-ajp"); } @Override protected void addWebsocketSupport(Collection<String> dependencies) { // TODO websockets } /** * {@inheritDoc} * * @see net.sourceforge.eclipsejetty.jetty.DependencyBasedJettyLibStrategy#resolveDependencies(java.util.Collection, * java.io.File, java.util.Collection) */ @Override protected void resolveDependencies(Collection<File> results, File path, Collection<String> dependencies) throws CoreException { for (String dependency : dependencies) { results.add(resolveDependency(dependency)); } } protected File resolveDependency(String dependency) throws CoreException { try { return new File(FileLocator.toFileURL( FileLocator.find(JettyPlugin.getDefault().getBundle(), Path.fromOSString(String.format("lib/jetty/%s.jar", dependency)), null)).getFile()); } catch (IOException e) { throw new CoreException(new Status(IStatus.ERROR, JettyPlugin.PLUGIN_ID, "Failed to include embedded Jetty libraries", e)); } } }