diff --git a/src/main/java/com/reliancy/dbo/Bag.java b/src/main/java/com/reliancy/dbo/Bag.java index b473dd8..b16c940 100644 --- a/src/main/java/com/reliancy/dbo/Bag.java +++ b/src/main/java/com/reliancy/dbo/Bag.java @@ -31,6 +31,7 @@ public class Bag extends Observable implements Collection{ final Bag bag; final int operation; final Object[] arguments; + public BagChanged(Bag p,int op,Object ... args){ bag=p; operation=op; diff --git a/src/main/java/com/reliancy/jabba/App.java b/src/main/java/com/reliancy/jabba/App.java index 6c32a6a..09937dd 100644 --- a/src/main/java/com/reliancy/jabba/App.java +++ b/src/main/java/com/reliancy/jabba/App.java @@ -170,10 +170,11 @@ public abstract class App extends Processor{ } return null; } - + /** return special processor which dispatches request.s */ public Router getRouter() { return router; } + /** sets the main request dispatcher. */ public void setRouter(Router router) { if(this.router==router) return; if(this.router!=null) this.router.setParent(null); @@ -232,6 +233,7 @@ public abstract class App extends Processor{ public AppSessionFilter addAppSession(AppSession.Factory f){ return addMiddleWare(new AppSessionFilter(this,f)); } + /** set security policy which will recover users and also enforce permissions. */ public SecurityPolicy setSecurityPolicy(SecurityPolicy secpol){ if(secpol==policy) return secpol; if(policy!=null){ diff --git a/src/main/java/com/reliancy/jabba/AppSessionFilter.java b/src/main/java/com/reliancy/jabba/AppSessionFilter.java index 7ef6c8c..7ea9264 100644 --- a/src/main/java/com/reliancy/jabba/AppSessionFilter.java +++ b/src/main/java/com/reliancy/jabba/AppSessionFilter.java @@ -15,6 +15,7 @@ import java.util.UUID; * and based on it install an app wide sesson dictionary. */ public class AppSessionFilter extends Processor{ + /**special key to identify session cookie. */ public static final String KEY_NAME="jbssid"; AppSession.Factory factory; App app; diff --git a/src/main/java/com/reliancy/jabba/JettyApp.java b/src/main/java/com/reliancy/jabba/JettyApp.java index 7e0ad15..58cca1b 100644 --- a/src/main/java/com/reliancy/jabba/JettyApp.java +++ b/src/main/java/com/reliancy/jabba/JettyApp.java @@ -64,6 +64,7 @@ public class JettyApp extends App implements Handler{ jetty = new Server(); jetty.setHandler(this); _state=State.STOPPED; + this.addShutdownHook(); } public Connector[] getConnectors(){ if(connectors!=null) return connectors; @@ -216,7 +217,7 @@ public class JettyApp extends App implements Handler{ * ctrl-c works but does not perform our shutdown sequence. * this code interrupts jetty and then waits for app to finish. */ - public void addShutdownHook(){ + protected final void addShutdownHook(){ final JettyApp app=this; Runtime.getRuntime().addShutdownHook(new Thread(() -> { if(app.isRunning()){ @@ -268,7 +269,6 @@ public class JettyApp extends App implements Handler{ public static void main( String[] args ) throws Exception{ Config cnf=new ArgsConfig(args).load(); JettyApp app=new JettyApp(); - app.addShutdownHook(); app.run(cnf); } diff --git a/src/main/java/com/reliancy/jabba/Processor.java b/src/main/java/com/reliancy/jabba/Processor.java index 5aacb42..67cdc34 100644 --- a/src/main/java/com/reliancy/jabba/Processor.java +++ b/src/main/java/com/reliancy/jabba/Processor.java @@ -109,7 +109,10 @@ public abstract class Processor { if(ret==null) ret=logger=LoggerFactory.getLogger(this.getId()); return ret; } + /** called before serve. */ public abstract void before(Request request,Response response) throws IOException; + /** called after serve. */ public abstract void after(Request request,Response response) throws IOException; + /** main processing and subprocessing happens here. */ public abstract void serve(Request request,Response response) throws IOException; } diff --git a/src/test/java/com/reliancy/jabba/DemoApp.java b/src/test/java/com/reliancy/jabba/DemoApp.java index 8113a64..9facec4 100644 --- a/src/test/java/com/reliancy/jabba/DemoApp.java +++ b/src/test/java/com/reliancy/jabba/DemoApp.java @@ -24,7 +24,6 @@ public class DemoApp extends JettyApp implements AppModule{ public static void main( String[] args ) throws Exception{ Config cnf=new ArgsConfig(args).load(); JettyApp app=new DemoApp(); - app.addShutdownHook(); app.run(cnf); } /** called from begin just before jetty starts.