// // ======================================================================== // Copyright (c) 1995-2017 Mort Bay Consulting Pty. Ltd. // ------------------------------------------------------------------------ // All rights reserved. This program and the accompanying materials // are made available under the terms of the Eclipse Public License v1.0 // and Apache License v2.0 which accompanies this distribution. // // The Eclipse Public License is available at // http://www.eclipse.org/legal/epl-v10.html // // The Apache License v2.0 is available at // http://www.opensource.org/licenses/apache2.0.php // // You may elect to redistribute this code under either of these licenses. // ======================================================================== // package org.eclipse.jetty.embedded; import java.io.File; import org.eclipse.jetty.annotations.AnnotationConfiguration; import org.eclipse.jetty.plus.jndi.EnvEntry; import org.eclipse.jetty.plus.jndi.Resource; import org.eclipse.jetty.plus.jndi.Transaction; import org.eclipse.jetty.plus.webapp.EnvConfiguration; import org.eclipse.jetty.plus.webapp.PlusConfiguration; import org.eclipse.jetty.security.HashLoginService; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.webapp.WebAppContext; /** * ServerWithAnnotations */ public class ServerWithAnnotations { public static final void main( String args[] ) throws Exception { // Create the server Server server = new Server(8080); // Create a WebApp WebAppContext webapp = new WebAppContext(); // Enable parsing of jndi-related parts of web.xml and jetty-env.xml webapp.addConfiguration(new EnvConfiguration(),new PlusConfiguration(),new AnnotationConfiguration()); webapp.setContextPath("/"); File warFile = new File( "../../jetty-distribution/target/distribution/demo-base/webapps/test.war"); webapp.setWar(warFile.getAbsolutePath()); webapp.setAttribute( "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern", ".*/javax.servlet-[^/]*\\.jar$|.*/servlet-api-[^/]*\\.jar$"); server.setHandler(webapp); // Register new transaction manager in JNDI // At runtime, the webapp accesses this as java:comp/UserTransaction new Transaction(new com.acme.MockUserTransaction()); // Define an env entry with webapp scope. new EnvEntry(webapp, "maxAmount", new Double(100), true); // Register a mock DataSource scoped to the webapp new Resource(webapp, "jdbc/mydatasource", new com.acme.MockDataSource()); // Configure a LoginService HashLoginService loginService = new HashLoginService(); loginService.setName("Test Realm"); loginService.setConfig("src/test/resources/realm.properties"); server.addBean(loginService); server.start(); server.join(); } }