001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017: package org.apache.wicket.protocol.http;
018:
019: import java.util.List;
020:
021: import org.apache.wicket.Application;
022: import org.apache.wicket.IRequestTarget;
023: import org.apache.wicket.protocol.http.RequestLogger.SessionData;
024: import org.apache.wicket.session.ISessionStore;
025:
026: /**
027: * Interface for the request logger and viewer.
028: * @see Application#setRequestLogger(IRequestLogger)
029: *
030: * @author jcompagner
031: */
032: public interface IRequestLogger {
033:
034: /**
035: * @return The total created sessions counter
036: */
037: public abstract int getTotalCreatedSessions();
038:
039: /**
040: * @return The peak sessions counter
041: */
042: public abstract int getPeakSessions();
043:
044: /**
045: * This method returns a List of the current requests that are in mem.
046: * This is a readonly list.
047: *
048: * @return Collection of the current requests
049: */
050: public abstract List getRequests();
051:
052: /**
053: * @return Collection of live Sessions Data
054: */
055: public SessionData[] getLiveSessions();
056:
057: /**
058: * @return The current active requests
059: */
060: public int getCurrentActiveRequestCount();
061:
062: /**
063: * called when the session is created and has an id.
064: * (for http it means that the http session is created)
065: *
066: * @param id
067: */
068: public abstract void sessionCreated(String id);
069:
070: /**
071: * Method used to cleanup a livesession when the session was
072: * invalidated by the webcontainer
073: *
074: * @param sessionId
075: */
076: public abstract void sessionDestroyed(String sessionId);
077:
078: /**
079: * This method is called when the request is over this will
080: * set the total time a request takes and cleans up the current
081: * request data.
082: *
083: * @param timeTaken
084: */
085: public abstract void requestTime(long timeTaken);
086:
087: /**
088: * Called to monitor removals of objects out of the {@link ISessionStore}
089: *
090: * @param value
091: */
092: public abstract void objectRemoved(Object value);
093:
094: /**
095: * Called to monitor updates of objects in the {@link ISessionStore}
096: *
097: * @param value
098: */
099: public abstract void objectUpdated(Object value);
100:
101: /**
102: * Called to monitor additions of objects in the {@link ISessionStore}
103: *
104: * @param value
105: */
106: public abstract void objectCreated(Object value);
107:
108: /**
109: * Sets the target that was the response target for the current request
110: *
111: * @param target
112: */
113: public abstract void logResponseTarget(IRequestTarget target);
114:
115: /**
116: * Sets the target that was the event target for the current request
117: *
118: * @param target
119: */
120: public abstract void logEventTarget(IRequestTarget target);
121:
122: }
|