import org.restlet.Application;
import org.restlet.Component;
import org.restlet.resource.Directory;
import org.restlet.Restlet;
import org.restlet.routing.Router;
import org.restlet.Server;
import org.restlet.data.Protocol;
import org.restlet.ext.jetty.AjpServerHelper;
import org.restlet.ext.jetty.HttpServerHelper;
import org.restlet.ext.jetty.JettyServerHelper;

public class JettyAJPApplication extends Application {
    public static void main(String[] argv) throws Exception{
        Component component=new Component();

        Application application=new Application(component.getContext()){
            @Override
            public synchronized Restlet createInboundRoot(){
                final String DIR_ROOT_URI="file:///proc/";

                Router router=new Router(getContext());
                Directory dir=new Directory(getContext(),DIR_ROOT_URI);
                dir.setListingAllowed(true);
                dir.setDeeplyAccessible(true);
                router.attach("/www/",dir);
                return router;
            }
        };

        //create embedding jetty server
        Server embedingJettyServer=new Server(
                component.getContext(),
                Protocol.HTTP,
                8182,
                component
            );
        //construct and start JettyServerHelper
        JettyServerHelper jettyServerHelper=new HttpServerHelper(embedingJettyServer);
        jettyServerHelper.start();

        //create embedding AJP Server
        Server embedingJettyAJPServer=new Server(
                component.getContext(),
                Protocol.HTTP,
                8183,
                component
            );

        //construct and start AjpServerHelper
        AjpServerHelper ajpServerHelper=new AjpServerHelper(embedingJettyAJPServer);
        ajpServerHelper.start();

    }
}
