Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/Generated.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/PostConstruct.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/PreDestroy.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/Resource.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/Resources.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/security/DeclareRoles.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/security/DenyAll.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/security/PermitAll.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/security/RolesAllowed.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/annotation/security/RunAs.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/ejb/EJB.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/ejb/EJBs.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ArrayELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/BeanELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/CompositeELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ELContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ELContextEvent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ELContextListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ELException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/Expression.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ExpressionFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/FunctionMapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ListELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/LocalStrings.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/LocalStrings_es.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/MapELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/MethodExpression.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/MethodInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/MethodNotFoundException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/PropertyNotFoundException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/PropertyNotWritableException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ResourceBundleELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/ValueExpression.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/el/VariableMapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/persistence/PersistenceContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/persistence/PersistenceContexts.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/persistence/PersistenceProperty.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/persistence/PersistenceUnit.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/persistence/PersistenceUnits.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/Filter.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/FilterChain.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/FilterConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/GenericServlet.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/LocalStrings.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/LocalStrings_es.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/LocalStrings_fr.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/LocalStrings_ja.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/RequestDispatcher.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/Servlet.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletConfig.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletContextAttributeEvent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletContextAttributeListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletContextEvent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletContextListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletInputStream.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletOutputStream.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletRequest.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletRequestAttributeEvent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletRequestAttributeListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletRequestEvent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletRequestListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletRequestWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletResponse.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/ServletResponseWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/SingleThreadModel.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/UnavailableException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/Cookie.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpServlet.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpServletRequest.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpServletRequestWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpServletResponse.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpServletResponseWrapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpSession.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpSessionActivationListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpSessionAttributeListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpSessionBindingEvent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpSessionBindingListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpSessionContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpSessionEvent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpSessionListener.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/HttpUtils.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/LocalStrings.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/LocalStrings_es.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/LocalStrings_fr.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/LocalStrings_ja.properties'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/http/package.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/ErrorData.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/HttpJspPage.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/JspApplicationContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/JspContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/JspEngineInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/JspException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/JspFactory.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/JspPage.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/JspTagException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/JspWriter.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/PageContext.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/SkipPageException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/ELException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/ELParseException.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/Expression.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/ExpressionEvaluator.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/FunctionMapper.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/ImplicitObjectELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/ScopedAttributeELResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/VariableResolver.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/el/package.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/package.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/resources/jsp_2_0.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/resources/jsp_2_1.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/resources/jspxml.dtd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/resources/jspxml.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/resources/web-jsptaglibrary_1_1.dtd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/resources/web-jsptaglibrary_1_2.dtd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/resources/web-jsptaglibrary_2_0.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/resources/web-jsptaglibrary_2_1.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/BodyContent.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/BodyTag.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/BodyTagSupport.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/DynamicAttributes.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/FunctionInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/IterationTag.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/JspFragment.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/JspIdConsumer.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/JspTag.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/PageData.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/SimpleTag.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/SimpleTagSupport.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/Tag.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagAdapter.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagAttributeInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagData.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagExtraInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagFileInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagLibraryInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagLibraryValidator.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagSupport.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TagVariableInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/TryCatchFinally.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/ValidationMessage.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/VariableInfo.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/doc-files/BodyTagProtocol.gif =================================================================== diff -u -rddc5768c149d4049055f71b517524016f8f43b9c -r2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 Binary files differ Index: 3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/doc-files/IterationTagProtocol.gif =================================================================== diff -u -rddc5768c149d4049055f71b517524016f8f43b9c -r2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 Binary files differ Index: 3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/doc-files/TagProtocol.gif =================================================================== diff -u -rddc5768c149d4049055f71b517524016f8f43b9c -r2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 Binary files differ Index: 3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/doc-files/VariableInfo-1.gif =================================================================== diff -u -rddc5768c149d4049055f71b517524016f8f43b9c -r2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 Binary files differ Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/jsp/tagext/package.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/package.html'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/XMLSchema.dtd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/datatypes.dtd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/j2ee_1_4.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/j2ee_web_services_1_1.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/j2ee_web_services_client_1_1.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/web-app_2_2.dtd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/web-app_2_3.dtd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/web-app_2_4.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/web-app_2_5.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/servlet/resources/xml.xsd'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/xml/ws/WebServiceRef.java'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131 refers to a dead (removed) revision in file `3rdParty_sources/jbossweb/javax/xml/ws/WebServiceRefs.java'. Fisheye: No comparison available. Pass `N' to diff? Index: 3rdParty_sources/servlet-api/javax/servlet/AsyncContext.java =================================================================== diff -u --- 3rdParty_sources/servlet-api/javax/servlet/AsyncContext.java (revision 0) +++ 3rdParty_sources/servlet-api/javax/servlet/AsyncContext.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131) @@ -0,0 +1,507 @@ +/* + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. + * + * Copyright (c) 2008-2013 Oracle and/or its affiliates. All rights reserved. + * + * The contents of this file are subject to the terms of either the GNU + * General Public License Version 2 only ("GPL") or the Common Development + * and Distribution License("CDDL") (collectively, the "License"). You + * may not use this file except in compliance with the License. You can + * obtain a copy of the License at + * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html + * or packager/legal/LICENSE.txt. See the License for the specific + * language governing permissions and limitations under the License. + * + * When distributing the software, include this License Header Notice in each + * file and include the License file at packager/legal/LICENSE.txt. + * + * GPL Classpath Exception: + * Oracle designates this particular file as subject to the "Classpath" + * exception as provided by Oracle in the GPL Version 2 section of the License + * file that accompanied this code. + * + * Modifications: + * If applicable, add the following below the License Header, with the fields + * enclosed by brackets [] replaced by your own identifying information: + * "Portions Copyright [year] [name of copyright owner]" + * + * Contributor(s): + * If you wish your version of this file to be governed by only the CDDL or + * only the GPL Version 2, indicate your decision by adding "[Contributor] + * elects to include this software in this distribution under the [CDDL or GPL + * Version 2] license." If you don't indicate a single choice of license, a + * recipient has the option to distribute your version of this file under + * either the CDDL, the GPL Version 2 or to extend the choice of license to + * its licensees as provided above. However, if you add GPL Version 2 code + * and therefore, elected the GPL Version 2 license, then the option applies + * only if the new code is made subject to such option by the copyright + * holder. + */ + +package javax.servlet; + +/** + * Class representing the execution context for an asynchronous operation + * that was initiated on a ServletRequest. + * + *
An AsyncContext is created and initialized by a call to + * {@link ServletRequest#startAsync()} or + * {@link ServletRequest#startAsync(ServletRequest, ServletResponse)}. + * Repeated invocations of these methods will return the same AsyncContext + * instance, reinitialized as appropriate. + * + *
In the event that an asynchronous operation has timed out, the + * container must run through these steps: + *
This information may be used by filters invoked in the + * outbound direction, after a request was put into + * asynchronous mode, to determine whether any request and/or response + * wrappers that they added during their inbound invocation need + * to be preserved for the duration of the asynchronous operation, or may + * be released. + * + * @return true if this AsyncContext was initialized with the original + * request and response objects by calling + * {@link ServletRequest#startAsync()}, or if it was initialized by + * calling + * {@link ServletRequest#startAsync(ServletRequest, ServletResponse)}, + * and neither the ServletRequest nor ServletResponse arguments + * carried any application-provided wrappers; false otherwise + */ + public boolean hasOriginalRequestAndResponse(); + + + /** + * Dispatches the request and response objects of this AsyncContext + * to the servlet container. + * + *
If the asynchronous cycle was started with + * {@link ServletRequest#startAsync(ServletRequest, ServletResponse)}, + * and the request passed is an instance of HttpServletRequest, + * then the dispatch is to the URI returned by + * {@link javax.servlet.http.HttpServletRequest#getRequestURI}. + * Otherwise, the dispatch is to the URI of the request when it was + * last dispatched by the container. + * + *
The following sequence illustrates how this will work:
+ *
+ *
+ *
+ * // REQUEST dispatch to /url/A
+ * AsyncContext ac = request.startAsync();
+ * ...
+ * ac.dispatch(); // ASYNC dispatch to /url/A
+ *
+ * // REQUEST to /url/A
+ * // FORWARD dispatch to /url/B
+ * request.getRequestDispatcher("/url/B").forward(request,response);
+ * // Start async operation from within the target of the FORWARD
+ * // dispatch
+ * ac = request.startAsync();
+ * ...
+ * ac.dispatch(); // ASYNC dispatch to /url/A
+ *
+ * // REQUEST to /url/A
+ * // FORWARD dispatch to /url/B
+ * request.getRequestDispatcher("/url/B").forward(request,response);
+ * // Start async operation from within the target of the FORWARD
+ * // dispatch
+ * ac = request.startAsync(request,response);
+ * ...
+ * ac.dispatch(); // ASYNC dispatch to /url/B
+ *
This method returns immediately after passing the request + * and response objects to a container managed thread, on which the + * dispatch operation will be performed. + * If this method is called before the container-initiated dispatch + * that called startAsync has returned to the container, the + * dispatch operation will be delayed until after the container-initiated + * dispatch has returned to the container. + * + *
The dispatcher type of the request is set to + * DispatcherType.ASYNC. Unlike + * {@link RequestDispatcher#forward(ServletRequest, ServletResponse) + * forward dispatches}, the response buffer and + * headers will not be reset, and it is legal to dispatch even if the + * response has already been committed. + * + *
Control over the request and response is delegated + * to the dispatch target, and the response will be closed when the + * dispatch target has completed execution, unless + * {@link ServletRequest#startAsync()} or + * {@link ServletRequest#startAsync(ServletRequest, ServletResponse)} + * are called. + * + *
Any errors or exceptions that may occur during the execution + * of this method must be caught and handled by the container, as + * follows: + *
There can be at most one asynchronous dispatch operation per + * asynchronous cycle, which is started by a call to one of the + * {@link ServletRequest#startAsync} methods. Any attempt to perform an + * additional asynchronous dispatch operation within the same + * asynchronous cycle will result in an IllegalStateException. + * If startAsync is subsequently called on the dispatched request, + * then any of the dispatch or {@link #complete} methods may be called. + * + * @throws IllegalStateException if one of the dispatch methods + * has been called and the startAsync method has not been + * called during the resulting dispatch, or if {@link #complete} + * was called + * + * @see ServletRequest#getDispatcherType + */ + public void dispatch(); + + + /** + * Dispatches the request and response objects of this AsyncContext + * to the given path. + * + *
The path parameter is interpreted in the same way + * as in {@link ServletRequest#getRequestDispatcher(String)}, within + * the scope of the {@link ServletContext} from which this + * AsyncContext was initialized. + * + *
All path related query methods of the request must reflect the + * dispatch target, while the original request URI, context path, + * path info, servlet path, and query string may be recovered from + * the {@link #ASYNC_REQUEST_URI}, {@link #ASYNC_CONTEXT_PATH}, + * {@link #ASYNC_PATH_INFO}, {@link #ASYNC_SERVLET_PATH}, and + * {@link #ASYNC_QUERY_STRING} attributes of the request. These + * attributes will always reflect the original path elements, even under + * repeated dispatches. + * + *
There can be at most one asynchronous dispatch operation per + * asynchronous cycle, which is started by a call to one of the + * {@link ServletRequest#startAsync} methods. Any attempt to perform an + * additional asynchronous dispatch operation within the same + * asynchronous cycle will result in an IllegalStateException. + * If startAsync is subsequently called on the dispatched request, + * then any of the dispatch or {@link #complete} methods may be called. + * + *
See {@link #dispatch()} for additional details, including error + * handling. + * + * @param path the path of the dispatch target, scoped to the + * ServletContext from which this AsyncContext was initialized + * + * @throws IllegalStateException if one of the dispatch methods + * has been called and the startAsync method has not been + * called during the resulting dispatch, or if {@link #complete} + * was called + * + * @see ServletRequest#getDispatcherType + */ + public void dispatch(String path); + + + /** + * Dispatches the request and response objects of this AsyncContext + * to the given path scoped to the given context. + * + *
The path parameter is interpreted in the same way + * as in {@link ServletRequest#getRequestDispatcher(String)}, except that + * it is scoped to the given context. + * + *
All path related query methods of the request must reflect the + * dispatch target, while the original request URI, context path, + * path info, servlet path, and query string may be recovered from + * the {@link #ASYNC_REQUEST_URI}, {@link #ASYNC_CONTEXT_PATH}, + * {@link #ASYNC_PATH_INFO}, {@link #ASYNC_SERVLET_PATH}, and + * {@link #ASYNC_QUERY_STRING} attributes of the request. These + * attributes will always reflect the original path elements, even under + * repeated dispatches. + * + *
There can be at most one asynchronous dispatch operation per + * asynchronous cycle, which is started by a call to one of the + * {@link ServletRequest#startAsync} methods. Any attempt to perform an + * additional asynchronous dispatch operation within the same + * asynchronous cycle will result in an IllegalStateException. + * If startAsync is subsequently called on the dispatched request, + * then any of the dispatch or {@link #complete} methods may be called. + * + *
See {@link #dispatch()} for additional details, including error + * handling. + * + * @param context the ServletContext of the dispatch target + * @param path the path of the dispatch target, scoped to the given + * ServletContext + * + * @throws IllegalStateException if one of the dispatch methods + * has been called and the startAsync method has not been + * called during the resulting dispatch, or if {@link #complete} + * was called + * + * @see ServletRequest#getDispatcherType + */ + public void dispatch(ServletContext context, String path); + + + /** + * Completes the asynchronous operation that was started on the request + * that was used to initialze this AsyncContext, closing the response + * that was used to initialize this AsyncContext. + * + *
Any listeners of type {@link AsyncListener} that were registered + * with the ServletRequest for which this AsyncContext was created will + * be invoked at their {@link AsyncListener#onComplete(AsyncEvent) + * onComplete} method. + * + *
It is legal to call this method any time after a call to + * {@link ServletRequest#startAsync()} or + * {@link ServletRequest#startAsync(ServletRequest, ServletResponse)}, + * and before a call to one of the dispatch methods + * of this class. + * If this method is called before the container-initiated dispatch + * that called startAsync has returned to the container, then + * the call will not take effect (and any invocations of + * {@link AsyncListener#onComplete(AsyncEvent)} will be delayed) until + * after the container-initiated dispatch has returned to the container. + */ + public void complete(); + + + /** + * Causes the container to dispatch a thread, possibly from a managed + * thread pool, to run the specified Runnable. The container may + * propagate appropriate contextual information to the Runnable. + * + * @param run the asynchronous handler + */ + public void start(Runnable run); + + + /** + * Registers the given {@link AsyncListener} with the most recent + * asynchronous cycle that was started by a call to one of the + * {@link ServletRequest#startAsync} methods. + * + *
The given AsyncListener will receive an {@link AsyncEvent} when + * the asynchronous cycle completes successfully, times out, results + * in an error, or a new asynchronous cycle is being initiated via + * one of the {@link ServletRequest#startAsync} methods. + * + *
AsyncListener instances will be notified in the order in which + * they were added. + * + *
If {@link ServletRequest#startAsync(ServletRequest, ServletResponse)} + * or {@link ServletRequest#startAsync} is called, + * the exact same request and response objects are available from the + * {@link AsyncEvent} when the {@link AsyncListener} is notified. + * + * @param listener the AsyncListener to be registered + * + * @throws IllegalStateException if this method is called after + * the container-initiated dispatch, during which one of the + * {@link ServletRequest#startAsync} methods was called, has + * returned to the container + */ + public void addListener(AsyncListener listener); + + + /** + * Registers the given {@link AsyncListener} with the most recent + * asynchronous cycle that was started by a call to one of the + * {@link ServletRequest#startAsync} methods. + * + *
The given AsyncListener will receive an {@link AsyncEvent} when + * the asynchronous cycle completes successfully, times out, results + * in an error, or a new asynchronous cycle is being initiated via + * one of the {@link ServletRequest#startAsync} methods. + * + *
AsyncListener instances will be notified in the order in which + * they were added. + * + *
The given ServletRequest and ServletResponse objects will + * be made available to the given AsyncListener via the + * {@link AsyncEvent#getSuppliedRequest getSuppliedRequest} and + * {@link AsyncEvent#getSuppliedResponse getSuppliedResponse} methods, + * respectively, of the {@link AsyncEvent} delivered to it. These objects + * should not be read from or written to, respectively, at the time the + * AsyncEvent is delivered, because additional wrapping may have + * occurred since the given AsyncListener was registered, but may be used + * in order to release any resources associated with them. + * + * @param listener the AsyncListener to be registered + * @param servletRequest the ServletRequest that will be included + * in the AsyncEvent + * @param servletResponse the ServletResponse that will be included + * in the AsyncEvent + * + * @throws IllegalStateException if this method is called after + * the container-initiated dispatch, during which one of the + * {@link ServletRequest#startAsync} methods was called, has + * returned to the container + */ + public void addListener(AsyncListener listener, + ServletRequest servletRequest, + ServletResponse servletResponse); + + + /** + * Instantiates the given {@link AsyncListener} class. + * + *
The returned AsyncListener instance may be further customized
+ * before it is registered with this AsyncContext via a call to one of
+ * the addListener
methods.
+ *
+ *
The given AsyncListener class must define a zero argument + * constructor, which is used to instantiate it. + * + *
This method supports resource injection if the given + * clazz represents a Managed Bean. + * See the Java EE platform and JSR 299 specifications for additional + * details about Managed Beans and resource injection. + + *
This method supports any annotations applicable to AsyncListener.
+ *
+ * @param clazz the AsyncListener class to instantiate
+ *
+ * @return the new AsyncListener instance
+ *
+ * @throws ServletException if the given clazz fails to be
+ * instantiated
+ */
+ public The timeout applies to this AsyncContext once the
+ * container-initiated dispatch during which one of the
+ * {@link ServletRequest#startAsync} methods was called has
+ * returned to the container.
+ *
+ * The timeout will expire if neither the {@link #complete} method
+ * nor any of the dispatch methods are called. A timeout value of
+ * zero or less indicates no timeout.
+ *
+ * If {@link #setTimeout} is not called, then the container's
+ * default timeout, which is available via a call to
+ * {@link #getTimeout}, will apply.
+ *
+ * The default value is This method returns the container's default timeout for
+ * asynchronous operations, or the timeout value passed to the most
+ * recent invocation of {@link #setTimeout}.
+ *
+ * A timeout value of zero or less indicates no timeout.
+ *
+ * @return the timeout in milliseconds
+ */
+ public long getTimeout();
+
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/AsyncEvent.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/AsyncEvent.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/AsyncEvent.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,166 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+/**
+ * Event that gets fired when the asynchronous operation initiated on a
+ * ServletRequest (via a call to {@link ServletRequest#startAsync} or
+ * {@link ServletRequest#startAsync(ServletRequest, ServletResponse)})
+ * has completed, timed out, or produced an error.
+ *
+ * @since Servlet 3.0
+ */
+public class AsyncEvent {
+
+ private AsyncContext context;
+ private ServletRequest request;
+ private ServletResponse response;
+ private Throwable throwable;
+
+
+ /**
+ * Constructs an AsyncEvent from the given AsyncContext.
+ *
+ * @param context the AsyncContex to be delivered with this AsyncEvent
+ */
+ public AsyncEvent(AsyncContext context) {
+ this(context, context.getRequest(), context.getResponse(), null);
+ }
+
+ /**
+ * Constructs an AsyncEvent from the given AsyncContext, ServletRequest,
+ * and ServletResponse.
+ *
+ * @param context the AsyncContex to be delivered with this AsyncEvent
+ * @param request the ServletRequest to be delivered with this AsyncEvent
+ * @param response the ServletResponse to be delivered with this
+ * AsyncEvent
+ */
+ public AsyncEvent(AsyncContext context, ServletRequest request,
+ ServletResponse response) {
+ this(context, request, response, null);
+ }
+
+ /**
+ * Constructs an AsyncEvent from the given AsyncContext and Throwable.
+ *
+ * @param context the AsyncContex to be delivered with this AsyncEvent
+ * @param throwable the Throwable to be delivered with this AsyncEvent
+ */
+ public AsyncEvent(AsyncContext context, Throwable throwable) {
+ this(context, context.getRequest(), context.getResponse(), throwable);
+ }
+
+ /**
+ * Constructs an AsyncEvent from the given AsyncContext, ServletRequest,
+ * ServletResponse, and Throwable.
+ *
+ * @param context the AsyncContex to be delivered with this AsyncEvent
+ * @param request the ServletRequest to be delivered with this AsyncEvent
+ * @param response the ServletResponse to be delivered with this
+ * AsyncEvent
+ * @param throwable the Throwable to be delivered with this AsyncEvent
+ */
+ public AsyncEvent(AsyncContext context, ServletRequest request,
+ ServletResponse response, Throwable throwable) {
+ this.context = context;
+ this.request = request;
+ this.response = response;
+ this.throwable = throwable;
+ }
+
+ /**
+ * Gets the AsyncContext from this AsyncEvent.
+ *
+ * @return the AsyncContext that was used to initialize this AsyncEvent
+ */
+ public AsyncContext getAsyncContext() {
+ return context;
+ }
+
+ /**
+ * Gets the ServletRequest from this AsyncEvent.
+ *
+ * If the AsyncListener to which this AsyncEvent is being delivered
+ * was added using {@link AsyncContext#addListener(AsyncListener,
+ * ServletRequest, ServletResponse)}, the returned ServletRequest
+ * will be the same as the one supplied to the above method.
+ * If the AsyncListener was added via
+ * {@link AsyncContext#addListener(AsyncListener)}, this method
+ * must return null.
+ *
+ * @return the ServletRequest that was used to initialize this AsyncEvent,
+ * or null if this AsyncEvent was initialized without any ServletRequest
+ */
+ public ServletRequest getSuppliedRequest() {
+ return request;
+ }
+
+ /**
+ * Gets the ServletResponse from this AsyncEvent.
+ *
+ * If the AsyncListener to which this AsyncEvent is being delivered
+ * was added using {@link AsyncContext#addListener(AsyncListener,
+ * ServletRequest, ServletResponse)}, the returned ServletResponse
+ * will be the same as the one supplied to the above method.
+ * If the AsyncListener was added via
+ * {@link AsyncContext#addListener(AsyncListener)}, this method
+ * must return null.
+ *
+ * @return the ServletResponse that was used to initialize this AsyncEvent,
+ * or null if this AsyncEvent was initialized without any ServletResponse
+ */
+ public ServletResponse getSuppliedResponse() {
+ return response;
+ }
+
+ /**
+ * Gets the Throwable from this AsyncEvent.
+ *
+ * @return the Throwable that was used to initialize this AsyncEvent,
+ * or null if this AsyncEvent was initialized without any Throwable
+ */
+ public Throwable getThrowable() {
+ return throwable;
+ }
+
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/AsyncListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/AsyncListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/AsyncListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,164 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+import java.io.IOException;
+import java.util.EventListener;
+
+/**
+ * Listener that will be notified in the event that an asynchronous
+ * operation initiated on a ServletRequest to which the listener had been
+ * added has completed, timed out, or resulted in an error.
+ *
+ * @since Servlet 3.0
+ */
+public interface AsyncListener extends EventListener {
+
+ /**
+ * Notifies this AsyncListener that an asynchronous operation
+ * has been completed.
+ *
+ * The {@link AsyncContext} corresponding to the asynchronous
+ * operation that has been completed may be obtained by calling
+ * {@link AsyncEvent#getAsyncContext getAsyncContext} on the given
+ * event.
+ *
+ * In addition, if this AsyncListener had been registered via a call
+ * to {@link AsyncContext#addListener(AsyncListener,
+ * ServletRequest, ServletResponse)}, the supplied ServletRequest and
+ * ServletResponse objects may be retrieved by calling
+ * {@link AsyncEvent#getSuppliedRequest getSuppliedRequest} and
+ * {@link AsyncEvent#getSuppliedResponse getSuppliedResponse},
+ * respectively, on the given event.
+ *
+ * @param event the AsyncEvent indicating that an asynchronous
+ * operation has been completed
+ *
+ * @throws IOException if an I/O related error has occurred during the
+ * processing of the given AsyncEvent
+ */
+ public void onComplete(AsyncEvent event) throws IOException;
+
+
+ /**
+ * Notifies this AsyncListener that an asynchronous operation
+ * has timed out.
+ *
+ * The {@link AsyncContext} corresponding to the asynchronous
+ * operation that has timed out may be obtained by calling
+ * {@link AsyncEvent#getAsyncContext getAsyncContext} on the given
+ * event.
+ *
+ * In addition, if this AsyncListener had been registered via a call
+ * to {@link AsyncContext#addListener(AsyncListener,
+ * ServletRequest, ServletResponse)}, the supplied ServletRequest and
+ * ServletResponse objects may be retrieved by calling
+ * {@link AsyncEvent#getSuppliedRequest getSuppliedRequest} and
+ * {@link AsyncEvent#getSuppliedResponse getSuppliedResponse},
+ * respectively, on the given event.
+ *
+ * @param event the AsyncEvent indicating that an asynchronous
+ * operation has timed out
+ *
+ * @throws IOException if an I/O related error has occurred during the
+ * processing of the given AsyncEvent
+ */
+ public void onTimeout(AsyncEvent event) throws IOException;
+
+
+ /**
+ * Notifies this AsyncListener that an asynchronous operation
+ * has failed to complete.
+ *
+ * The {@link AsyncContext} corresponding to the asynchronous
+ * operation that failed to complete may be obtained by calling
+ * {@link AsyncEvent#getAsyncContext getAsyncContext} on the given
+ * event.
+ *
+ * In addition, if this AsyncListener had been registered via a call
+ * to {@link AsyncContext#addListener(AsyncListener,
+ * ServletRequest, ServletResponse)}, the supplied ServletRequest and
+ * ServletResponse objects may be retrieved by calling
+ * {@link AsyncEvent#getSuppliedRequest getSuppliedRequest} and
+ * {@link AsyncEvent#getSuppliedResponse getSuppliedResponse},
+ * respectively, on the given event.
+ *
+ * @param event the AsyncEvent indicating that an asynchronous
+ * operation has failed to complete
+ *
+ * @throws IOException if an I/O related error has occurred during the
+ * processing of the given AsyncEvent
+ */
+ public void onError(AsyncEvent event) throws IOException;
+
+
+ /**
+ * Notifies this AsyncListener that a new asynchronous cycle is being
+ * initiated via a call to one of the {@link ServletRequest#startAsync}
+ * methods.
+ *
+ * The {@link AsyncContext} corresponding to the asynchronous
+ * operation that is being reinitialized may be obtained by calling
+ * {@link AsyncEvent#getAsyncContext getAsyncContext} on the given
+ * event.
+ *
+ * In addition, if this AsyncListener had been registered via a call
+ * to {@link AsyncContext#addListener(AsyncListener,
+ * ServletRequest, ServletResponse)}, the supplied ServletRequest and
+ * ServletResponse objects may be retrieved by calling
+ * {@link AsyncEvent#getSuppliedRequest getSuppliedRequest} and
+ * {@link AsyncEvent#getSuppliedResponse getSuppliedResponse},
+ * respectively, on the given event.
+ *
+ * This AsyncListener will not receive any events related to the
+ * new asynchronous cycle unless it registers itself (via a call
+ * to {@link AsyncContext#addListener}) with the AsyncContext that
+ * is delivered as part of the given AsyncEvent.
+ *
+ * @param event the AsyncEvent indicating that a new asynchronous
+ * cycle is being initiated
+ *
+ * @throws IOException if an I/O related error has occurred during the
+ * processing of the given AsyncEvent
+ */
+ public void onStartAsync(AsyncEvent event) throws IOException;
+
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/DispatcherType.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/DispatcherType.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/DispatcherType.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,54 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+/**
+ * Enumeration of filter dispatcher types.
+ *
+ * @since Servlet 3.0
+ */
+public enum DispatcherType {
+ FORWARD,
+ INCLUDE,
+ REQUEST,
+ ASYNC,
+ ERROR
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/Filter.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/Filter.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/Filter.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,162 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.IOException;
+
+/**
+ * A filter is an object that performs filtering tasks on either the
+ * request to a resource (a servlet or static content), or on the response
+ * from a resource, or both.
+ *
+ * Filters perform filtering in the Filters are configured in the deployment descriptor of a web
+ * application.
+ *
+ * Examples that have been identified for this design are:
+ * The servlet container calls the init
+ * method exactly once after instantiating the filter. The init
+ * method must complete successfully before the filter is asked to do any
+ * filtering work.
+ *
+ * The web container cannot place the filter into service if the init
+ * method either
+ * A typical implementation of this method would follow the following
+ * pattern:
+ * This method is only called once all threads within the filter's
+ * doFilter method have exited or after a timeout period has passed.
+ * After the web container calls this method, it will not call the
+ * doFilter method again on this instance of the filter.
+ *
+ * This method gives the filter an opportunity to clean up any
+ * resources that are being held (for example, memory, file handles,
+ * threads) and make sure that any persistent state is synchronized
+ * with the filter's current state in memory.
+ */
+ public void destroy();
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/FilterChain.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/FilterChain.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/FilterChain.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,86 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.IOException;
+
+ /**
+ * A FilterChain is an object provided by the servlet container to the developer
+ * giving a view into the invocation chain of a filtered request for a resource. Filters
+ * use the FilterChain to invoke the next filter in the chain, or if the calling filter
+ * is the last filter in the chain, to invoke the resource at the end of the chain.
+ *
+ * @see Filter
+ * @since Servlet 2.3
+ **/
+
+public interface FilterChain {
+
+ /**
+ * Causes the next filter in the chain to be invoked, or if the calling filter is the last filter
+ * in the chain, causes the resource at the end of the chain to be invoked.
+ *
+ * @param request the request to pass along the chain.
+ * @param response the response to pass along the chain.
+ */
+
+ public void doFilter ( ServletRequest request, ServletResponse response ) throws IOException, ServletException;
+
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/FilterConfig.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/FilterConfig.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/FilterConfig.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,117 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.util.Enumeration;
+
+/**
+ * A filter configuration object used by a servlet container
+ * to pass information to a filter during initialization.
+ *
+ * @see Filter
+ * @since Servlet 2.3
+ */
+public interface FilterConfig {
+
+ /**
+ * Returns the filter-name of this filter as defined in the deployment
+ * descriptor.
+ */
+ public String getFilterName();
+
+
+ /**
+ * Returns a reference to the {@link ServletContext} in which the caller
+ * is executing.
+ *
+ * @return a {@link ServletContext} object, used by the caller to
+ * interact with its servlet container
+ *
+ * @see ServletContext
+ */
+ public ServletContext getServletContext();
+
+
+ /**
+ * Returns a Filter mappings are matched in the order in which they were
+ * added.
+ *
+ * Depending on the value of the isMatchAfter parameter, the
+ * given filter mapping will be considered after or before any
+ * declared filter mappings of the ServletContext from which this
+ * FilterRegistration was obtained.
+ *
+ * If this method is called multiple times, each successive call
+ * adds to the effects of the former.
+ *
+ * @param dispatcherTypes the dispatcher types of the filter mapping,
+ * or null if the default DispatcherType.REQUEST is to be used
+ * @param isMatchAfter true if the given filter mapping should be matched
+ * after any declared filter mappings, and false if it is supposed to
+ * be matched before any declared filter mappings of the ServletContext
+ * from which this FilterRegistration was obtained
+ * @param servletNames the servlet names of the filter mapping
+ *
+ * @throws IllegalArgumentException if servletNames is null or
+ * empty
+ * @throws IllegalStateException if the ServletContext from which this
+ * FilterRegistration was obtained has already been initialized
+ */
+ public void addMappingForServletNames(
+ EnumSet If permitted, any changes to the returned Filter mappings are matched in the order in which they were
+ * added.
+ *
+ * Depending on the value of the isMatchAfter parameter, the
+ * given filter mapping will be considered after or before any
+ * declared filter mappings of the ServletContext from which
+ * this FilterRegistration was obtained.
+ *
+ * If this method is called multiple times, each successive call
+ * adds to the effects of the former.
+ *
+ * @param dispatcherTypes the dispatcher types of the filter mapping,
+ * or null if the default DispatcherType.REQUEST is to be used
+ * @param isMatchAfter true if the given filter mapping should be matched
+ * after any declared filter mappings, and false if it is supposed to
+ * be matched before any declared filter mappings of the ServletContext
+ * from which this FilterRegistration was obtained
+ * @param urlPatterns the url patterns of the filter mapping
+ *
+ * @throws IllegalArgumentException if urlPatterns is null or
+ * empty
+ * @throws IllegalStateException if the ServletContext from which this
+ * FilterRegistration was obtained has already been initialized
+ */
+ public void addMappingForUrlPatterns(
+ EnumSet If permitted, any changes to the returned To write a generic servlet, you need only
+ * override the abstract This method is supplied for convenience. It gets the
+ * value of the named parameter from the servlet's
+ * This method is supplied for convenience. It gets the
+ * parameter names from the servlet's This method is supplied for convenience. It gets the
+ * context from the servlet's This implementation stores the {@link ServletConfig}
+ * object it receives from the servlet container for later use.
+ * When overriding this form of the method, call
+ * Instead of overriding {@link #init(ServletConfig)}, simply override
+ * this method and it will be called by
+ * This method is declared abstract so subclasses, such as
+ * This value is insignificant when Duplicate role names appearing in getRolesAllowed are insignificant
+ * and may be discarded. The String "*" has no special meaning
+ * as a role name (should it occur in getRolesAllowed).
+ *
+ * @return a (possibly empty) array of role names. When the
+ * array is empty, its meaning depends on the value of
+ * {@link #getEmptyRoleSemantic}. If its value is DENY,
+ * and
+ * This class represents a call-back mechanism that will notify implementations
+ * as HTTP request data becomes available to be read without blocking.
+ * A Registration object whose {@link #getClassName} method returns null
+ * is considered preliminary. Servlets and Filters whose implementation
+ * class is container implementation specific may be declared without
+ * any servlet-class or filter-class elements, respectively,
+ * and will be represented as preliminary Registration objects.
+ * Preliminary registrations must be completed by calling one of the
+ * addServlet or addFilter methods on
+ * {@link ServletContext}, and passing in the Servlet or Filter name
+ * (obtained via {@link #getName}) along with the supporting Servlet or Filter
+ * implementation class name, Class object, or instance, respectively.
+ * In most cases, preliminary registrations will be completed by an
+ * appropriate, container-provided {@link ServletContainerInitializer}.
+ *
+ * @since Servlet 3.0
+ */
+public interface Registration {
+
+ /**
+ * Gets the name of the Servlet or Filter that is represented by this
+ * Registration.
+ *
+ * @return the name of the Servlet or Filter that is represented by this
+ * Registration
+ */
+ public String getName();
+
+ /**
+ * Gets the fully qualified class name of the Servlet or Filter that
+ * is represented by this Registration.
+ *
+ * @return the fully qualified class name of the Servlet or Filter
+ * that is represented by this Registration, or null if this
+ * Registration is preliminary
+ */
+ public String getClassName();
+
+ /**
+ * Sets the initialization parameter with the given name and value
+ * on the Servlet or Filter that is represented by this Registration.
+ *
+ * @param name the initialization parameter name
+ * @param value the initialization parameter value
+ *
+ * @return true if the update was successful, i.e., an initialization
+ * parameter with the given name did not already exist for the Servlet
+ * or Filter represented by this Registration, and false otherwise
+ *
+ * @throws IllegalStateException if the ServletContext from which this
+ * Registration was obtained has already been initialized
+ * @throws IllegalArgumentException if the given name or value is
+ * null
+ */
+ public boolean setInitParameter(String name, String value);
+
+ /**
+ * Gets the value of the initialization parameter with the given name
+ * that will be used to initialize the Servlet or Filter represented
+ * by this Registration object.
+ *
+ * @param name the name of the initialization parameter whose value is
+ * requested
+ *
+ * @return the value of the initialization parameter with the given
+ * name, or null if no initialization parameter with the given
+ * name exists
+ */
+ public String getInitParameter(String name);
+
+ /**
+ * Sets the given initialization parameters on the Servlet or Filter
+ * that is represented by this Registration.
+ *
+ * The given map of initialization parameters is processed
+ * by-value, i.e., for each initialization parameter contained
+ * in the map, this method calls {@link #setInitParameter(String,String)}.
+ * If that method would return false for any of the
+ * initialization parameters in the given map, no updates will be
+ * performed, and false will be returned. Likewise, if the map contains
+ * an initialization parameter with a null name or value, no
+ * updates will be performed, and an IllegalArgumentException will be
+ * thrown.
+ *
+ * @param initParameters the initialization parameters
+ *
+ * @return the (possibly empty) Set of initialization parameter names
+ * that are in conflict
+ *
+ * @throws IllegalStateException if the ServletContext from which this
+ * Registration was obtained has already been initialized
+ * @throws IllegalArgumentException if the given map contains an
+ * initialization parameter with a null name or value
+ */
+ public Set By default, servlet and filters do not support asynchronous
+ * operations.
+ *
+ * A call to this method overrides any previous setting.
+ *
+ * @param isAsyncSupported true if the Servlet or Filter represented
+ * by this dynamic Registration supports asynchronous operations,
+ * false otherwise
+ *
+ * @throws IllegalStateException if the ServletContext from which
+ * this dynamic Registration was obtained has already been
+ * initialized
+ */
+ public void setAsyncSupported(boolean isAsyncSupported);
+ }
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/RequestDispatcher.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/RequestDispatcher.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/RequestDispatcher.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,280 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.IOException;
+
+/**
+ * Defines an object that receives requests from the client
+ * and sends them to any resource (such as a servlet,
+ * HTML file, or JSP file) on the server. The servlet
+ * container creates the This interface is intended to wrap servlets,
+ * but a servlet container can create For a The request and response parameters must be either the same
+ * objects as were passed to the calling servlet's service method or be
+ * subclasses of the {@link ServletRequestWrapper} or
+ * {@link ServletResponseWrapper} classes
+ * that wrap them.
+ *
+ * This method sets the dispatcher type of the given request to
+ * The {@link ServletResponse} object has its path elements
+ * and parameters remain unchanged from the caller's. The included
+ * servlet cannot change the response status code or set headers;
+ * any attempt to make a change is ignored.
+ *
+ * The request and response parameters must be either the same
+ * objects as were passed to the calling servlet's service method or be
+ * subclasses of the {@link ServletRequestWrapper} or
+ * {@link ServletResponseWrapper} classes that wrap them.
+ *
+ * This method sets the dispatcher type of the given request to
+ * A servlet is a small Java program that runs within a Web server.
+ * Servlets receive and respond to requests from Web clients,
+ * usually across HTTP, the HyperText Transfer Protocol.
+ *
+ * To implement this interface, you can write a generic servlet
+ * that extends
+ * This interface defines methods to initialize a servlet,
+ * to service requests, and to remove a servlet from the server.
+ * These are known as life-cycle methods and are called in the
+ * following sequence:
+ * In addition to the life-cycle methods, this interface
+ * provides the The servlet container calls the The servlet container cannot place the servlet into service
+ * if the Implementations of this interface are responsible for storing the
+ * This method is only called after the servlet's The status code of the response always should be set for a servlet
+ * that throws or sends an error.
+ *
+ *
+ * Servlets typically run inside multithreaded servlet containers
+ * that can handle multiple requests concurrently. Developers must
+ * be aware to synchronize access to any shared resources such as files,
+ * network connections, and as well as the servlet's class and instance
+ * variables.
+ * More information on multithreaded programming in Java is available in
+ *
+ * the Java tutorial on multi-threaded programming.
+ *
+ *
+ * @param req the The string that this method returns should
+ * be plain text and not markup of any kind (such as HTML, XML,
+ * etc.).
+ *
+ * @return a This method gives the servlet an opportunity
+ * to clean up any resources that are being held (for example, memory,
+ * file handles, threads) and make sure that any persistent state is
+ * synchronized with the servlet's current state in memory.
+ *
+ */
+
+ public void destroy();
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletConfig.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletConfig.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletConfig.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,117 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.util.Enumeration;
+
+/**
+ * A servlet configuration object used by a servlet container
+ * to pass information to a servlet during initialization.
+ */
+ public interface ServletConfig {
+
+ /**
+ * Returns the name of this servlet instance.
+ * The name may be provided via server administration, assigned in the
+ * web application deployment descriptor, or for an unregistered (and thus
+ * unnamed) servlet instance it will be the servlet's class name.
+ *
+ * @return the name of the servlet instance
+ */
+ public String getServletName();
+
+
+ /**
+ * Returns a reference to the {@link ServletContext} in which the caller
+ * is executing.
+ *
+ * @return a {@link ServletContext} object, used
+ * by the caller to interact with its servlet container
+ *
+ * @see ServletContext
+ */
+ public ServletContext getServletContext();
+
+
+ /**
+ * Gets the value of the initialization parameter with the given name.
+ *
+ * @param name the name of the initialization parameter whose value to
+ * get
+ *
+ * @return a Implementations of this interface may be annotated with
+ * {@link javax.servlet.annotation.HandlesTypes HandlesTypes}, in order to
+ * receive (at their {@link #onStartup} method) the Set of application
+ * classes that implement, extend, or have been annotated with the class
+ * types specified by the annotation.
+ *
+ * If an implementation of this interface does not use HandlesTypes
+ * annotation, or none of the application classes match the ones specified
+ * by the annotation, the container must pass a null Set of classes
+ * to {@link #onStartup}.
+ *
+ * When examining the classes of an application to see if they match
+ * any of the criteria specified by the HandlesTypes annontation
+ * of a ServletContainerInitializer, the container may run into
+ * classloading problems if any of the application's optional JAR
+ * files are missing. Because the container is not in a position to decide
+ * whether these types of classloading failures will prevent
+ * the application from working correctly, it must ignore them,
+ * while at the same time providing a configuration option that would
+ * log them.
+ *
+ * Implementations of this interface must be declared by a JAR file
+ * resource located inside the META-INF/services directory and
+ * named for the fully qualified class name of this interface, and will be
+ * discovered using the runtime's service provider lookup mechanism
+ * or a container specific mechanism that is semantically equivalent to
+ * it. In either case, ServletContainerInitializer services from web
+ * fragment JAR files excluded from an absolute ordering must be ignored,
+ * and the order in which these services are discovered must follow the
+ * application's classloading delegation model.
+ *
+ * @see javax.servlet.annotation.HandlesTypes
+ *
+ * @since Servlet 3.0
+ */
+public interface ServletContainerInitializer {
+
+ /**
+ * Notifies this ServletContainerInitializer of the startup
+ * of the application represented by the given ServletContext.
+ *
+ * If this ServletContainerInitializer is bundled in a JAR
+ * file inside the WEB-INF/lib directory of an application,
+ * its onStartup method will be invoked only once during the
+ * startup of the bundling application. If this
+ * ServletContainerInitializer is bundled inside a JAR file
+ * outside of any WEB-INF/lib directory, but still
+ * discoverable as described above, its onStartup method
+ * will be invoked every time an application is started.
+ *
+ * @param c the Set of application classes that extend, implement, or
+ * have been annotated with the class types specified by the
+ * {@link javax.servlet.annotation.HandlesTypes HandlesTypes} annotation,
+ * or null if there are no matches, or this
+ * ServletContainerInitializer has not been annotated with
+ * HandlesTypes
+ *
+ * @param ctx the ServletContext of the web application that
+ * is being started and in which the classes contained in c
+ * were found
+ *
+ * @throws ServletException if an error has occurred
+ */
+ public void onStartup(Set There is one context per "web application" per Java Virtual Machine. (A
+ * "web application" is a collection of servlets and content installed under a
+ * specific subset of the server's URL namespace such as In the case of a web
+ * application marked "distributed" in its deployment descriptor, there will
+ * be one context instance for each virtual machine. In this situation, the
+ * context cannot be used as a location to share global information (because
+ * the information won't be truly global). Use an external resource like
+ * a database instead.
+ *
+ * The The context path is the portion of the request URI that is used
+ * to select the context of the request. The context path always comes
+ * first in a request URI. If this context is the “default” context
+ * rooted at the base of the Web server’s URL name space, this path
+ * will be an empty string. Otherwise, if the context is not rooted at
+ * the root of the server’s name space, the path starts with a /
+ * character but does not end with a / character.
+ *
+ * It is possible that a servlet container may match a context by
+ * more than one context path. In such cases the
+ * {@link javax.servlet.http.HttpServletRequest#getContextPath()}
+ * will return the actual context path used by the request and it may
+ * differ from the path returned by this method.
+ * The context path returned by this method should be considered as the
+ * prime or preferred context path of the application.
+ *
+ * @return The context path of the web application, or "" for the
+ * default (root) context
+ *
+ * @see javax.servlet.http.HttpServletRequest#getContextPath()
+ *
+ * @since Servlet 2.5
+ */
+ public String getContextPath();
+
+
+ /**
+ * Returns a This method allows servlets to gain
+ * access to the context for various parts of the server, and as
+ * needed obtain {@link RequestDispatcher} objects from the context.
+ * The given path must be begin with /, is interpreted relative
+ * to the server's document root and is matched against the context
+ * roots of other web applications hosted on this container.
+ *
+ * In a security conscious environment, the servlet container may
+ * return The value returned may be different from {@link #getMajorVersion},
+ * which returns the major version of the Servlet specification
+ * supported by the Servlet container.
+ *
+ * @return the major version of the Servlet specification that the
+ * application represented by this ServletContext is based on
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The value returned may be different from {@link #getMinorVersion},
+ * which returns the minor version of the Servlet specification
+ * supported by the Servlet container.
+ *
+ * @return the minor version of the Servlet specification that the
+ * application xrepresented by this ServletContext is based on
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * Paths indicating subdirectory paths end with a /.
+ *
+ * The returned paths are all relative to the root of the web
+ * application, or relative to the /META-INF/resources
+ * directory of a JAR file inside the web application's
+ * /WEB-INF/lib directory, and have a leading /.
+ *
+ * For example, for a web application containing:
+ *
+ * The path must begin with a / and is interpreted
+ * as relative to the current context root,
+ * or relative to the /META-INF/resources directory
+ * of a JAR file inside the web application's /WEB-INF/lib
+ * directory.
+ * This method will first search the document root of the
+ * web application for the requested resource, before searching
+ * any of the JAR files inside /WEB-INF/lib.
+ * The order in which the JAR files inside /WEB-INF/lib
+ * are searched is undefined.
+ *
+ * This method allows the servlet container to make a resource
+ * available to servlets from any source. Resources
+ * can be located on a local or remote
+ * file system, in a database, or in a The servlet container must implement the URL handlers
+ * and This method returns Some containers may allow writing to the URL returned by
+ * this method using the methods of the URL class.
+ *
+ * The resource content is returned directly, so be aware that
+ * requesting a This method has a different purpose than
+ * The data in the Meta-information such as content length and content type
+ * that is available via The servlet container must implement the URL handlers
+ * and This method is different from
+ * The pathname must begin with a / and is interpreted as
+ * relative to the current context root. Use This method returns Servlets (and JSP pages also) may be given names via server
+ * administration or via a web application deployment descriptor.
+ * A servlet instance can determine its name using
+ * {@link ServletConfig#getServletName}.
+ *
+ * This method returns This method was originally defined to retrieve a servlet
+ * from a In lieu of this method, servlets can share information using the
+ * This method was originally defined to return an
+ * This method was originally defined to return an
+ * This method was originally defined to write an
+ * exception's stack trace and an explanatory error message
+ * to the servlet log file.
+ */
+ public void log(Exception exception, String msg);
+
+
+ /**
+ * Writes an explanatory message and a stack trace
+ * for a given For example, if path is equal to /index.html,
+ * this method will return the absolute file path on the server's
+ * filesystem to which a request of the form
+ * http://<host>:<port>/<contextPath>/index.html
+ * would be mapped, where <contextPath> corresponds to the
+ * context path of this ServletContext.
+ *
+ * The real path returned will be in a form
+ * appropriate to the computer and operating system on
+ * which the servlet container is running, including the
+ * proper path separators.
+ *
+ * Resources inside the /META-INF/resources
+ * directories of JAR files bundled in the application's
+ * /WEB-INF/lib directory must be considered only if the
+ * container has unpacked them from their containing JAR file, in
+ * which case the path to the unpacked location must be returned.
+ *
+ * This method returns The form of the returned string is
+ * servername/versionnumber.
+ * For example, the JavaServer Web Development Kit may return the string
+ * The servlet container may return other optional information
+ * after the primary string in parentheses, for example,
+ * This method can make available configuration information useful
+ * to an entire web application. For example, it can provide a
+ * webmaster's email address or the name of a system that holds
+ * critical data.
+ *
+ * @param name a An attribute allows a servlet container to give the
+ * servlet additional information not
+ * already provided by this interface. See your
+ * server documentation for information about its attributes.
+ * A list of supported attributes can be retrieved using
+ * The attribute is returned as a Attribute names should follow the same convention as package
+ * names. The Java Servlet API specification reserves names
+ * matching Use the {@link #getAttribute} method with an attribute name
+ * to get the value of an attribute.
+ *
+ * @return an If listeners are configured on the
+ * If a null value is passed, the effect is the same as calling
+ * Attribute names should follow the same convention as package
+ * names. The Java Servlet API specification reserves names
+ * matching If listeners are configured on the The registered servlet may be further configured via the returned
+ * {@link ServletRegistration} object.
+ *
+ * The specified className will be loaded using the
+ * classloader associated with the application represented by this
+ * ServletContext.
+ *
+ * If this ServletContext already contains a preliminary
+ * ServletRegistration for a servlet with the given servletName,
+ * it will be completed (by assigning the given className to it)
+ * and returned.
+ *
+ * This method introspects the class with the given className
+ * for the {@link javax.servlet.annotation.ServletSecurity},
+ * {@link javax.servlet.annotation.MultipartConfig},
+ * javax.annotation.security.RunAs, and
+ * javax.annotation.security.DeclareRoles annotations.
+ * In addition, this method supports resource injection if the
+ * class with the given className represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param servletName the name of the servlet
+ * @param className the fully qualified class name of the servlet
+ *
+ * @return a ServletRegistration object that may be used to further
+ * configure the registered servlet, or null if this
+ * ServletContext already contains a complete ServletRegistration for
+ * a servlet with the given servletName
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws IllegalArgumentException if The registered servlet may be further configured via the returned
+ * {@link ServletRegistration} object.
+ *
+ * If this ServletContext already contains a preliminary
+ * ServletRegistration for a servlet with the given servletName,
+ * it will be completed (by assigning the class name of the given servlet
+ * instance to it) and returned.
+ *
+ * @param servletName the name of the servlet
+ * @param servlet the servlet instance to register
+ *
+ * @return a ServletRegistration object that may be used to further
+ * configure the given servlet, or null if this
+ * ServletContext already contains a complete ServletRegistration for a
+ * servlet with the given servletName or if the same servlet
+ * instance has already been registered with this or another
+ * ServletContext in the same container
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The registered servlet may be further configured via the returned
+ * {@link ServletRegistration} object.
+ *
+ * If this ServletContext already contains a preliminary
+ * ServletRegistration for a servlet with the given servletName,
+ * it will be completed (by assigning the name of the given
+ * servletClass to it) and returned.
+ *
+ * This method introspects the given servletClass for
+ * the {@link javax.servlet.annotation.ServletSecurity},
+ * {@link javax.servlet.annotation.MultipartConfig},
+ * javax.annotation.security.RunAs, and
+ * javax.annotation.security.DeclareRoles annotations.
+ * In addition, this method supports resource injection if the
+ * given servletClass represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param servletName the name of the servlet
+ * @param servletClass the class object from which the servlet will be
+ * instantiated
+ *
+ * @return a ServletRegistration object that may be used to further
+ * configure the registered servlet, or null if this
+ * ServletContext already contains a complete ServletRegistration for
+ * the given servletName
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws IllegalArgumentException if The returned Servlet instance may be further customized before it
+ * is registered with this ServletContext via a call to
+ * {@link #addServlet(String,Servlet)}.
+ *
+ * The given Servlet class must define a zero argument constructor,
+ * which is used to instantiate it.
+ *
+ * This method introspects the given clazz for
+ * the following annotations:
+ * {@link javax.servlet.annotation.ServletSecurity},
+ * {@link javax.servlet.annotation.MultipartConfig},
+ * javax.annotation.security.RunAs, and
+ * javax.annotation.security.DeclareRoles.
+ * In addition, this method supports resource injection if the
+ * given clazz represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param clazz the Servlet class to instantiate
+ *
+ * @return the new Servlet instance
+ *
+ * @throws ServletException if the given clazz fails to be
+ * instantiated
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The returned Map includes the ServletRegistration objects
+ * corresponding to all declared and annotated servlets, as well as the
+ * ServletRegistration objects corresponding to all servlets that have
+ * been added via one of the addServlet methods.
+ *
+ * If permitted, any changes to the returned Map must not affect this
+ * ServletContext.
+ *
+ * @return Map of the (complete and preliminary) ServletRegistration
+ * objects corresponding to all servlets currently registered with this
+ * ServletContext
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The registered filter may be further configured via the returned
+ * {@link FilterRegistration} object.
+ *
+ * The specified className will be loaded using the
+ * classloader associated with the application represented by this
+ * ServletContext.
+ *
+ * If this ServletContext already contains a preliminary
+ * FilterRegistration for a filter with the given filterName,
+ * it will be completed (by assigning the given className to it)
+ * and returned.
+ *
+ * This method supports resource injection if the class with the
+ * given className represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param filterName the name of the filter
+ * @param className the fully qualified class name of the filter
+ *
+ * @return a FilterRegistration object that may be used to further
+ * configure the registered filter, or null if this
+ * ServletContext already contains a complete FilterRegistration for
+ * a filter with the given filterName
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws IllegalArgumentException if The registered filter may be further configured via the returned
+ * {@link FilterRegistration} object.
+ *
+ * If this ServletContext already contains a preliminary
+ * FilterRegistration for a filter with the given filterName,
+ * it will be completed (by assigning the class name of the given filter
+ * instance to it) and returned.
+ *
+ * @param filterName the name of the filter
+ * @param filter the filter instance to register
+ *
+ * @return a FilterRegistration object that may be used to further
+ * configure the given filter, or null if this
+ * ServletContext already contains a complete FilterRegistration for a
+ * filter with the given filterName or if the same filter
+ * instance has already been registered with this or another
+ * ServletContext in the same container
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws IllegalArgumentException if The registered filter may be further configured via the returned
+ * {@link FilterRegistration} object.
+ *
+ * If this ServletContext already contains a preliminary
+ * FilterRegistration for a filter with the given filterName,
+ * it will be completed (by assigning the name of the given
+ * filterClass to it) and returned.
+ *
+ * This method supports resource injection if the given
+ * filterClass represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param filterName the name of the filter
+ * @param filterClass the class object from which the filter will be
+ * instantiated
+ *
+ * @return a FilterRegistration object that may be used to further
+ * configure the registered filter, or null if this
+ * ServletContext already contains a complete FilterRegistration for a
+ * filter with the given filterName
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws IllegalArgumentException if The returned Filter instance may be further customized before it
+ * is registered with this ServletContext via a call to
+ * {@link #addFilter(String,Filter)}.
+ *
+ * The given Filter class must define a zero argument constructor,
+ * which is used to instantiate it.
+ *
+ * This method supports resource injection if the given
+ * clazz represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param clazz the Filter class to instantiate
+ *
+ * @return the new Filter instance
+ *
+ * @throws ServletException if the given clazz fails to be
+ * instantiated
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The returned Map includes the FilterRegistration objects
+ * corresponding to all declared and annotated filters, as well as the
+ * FilterRegistration objects corresponding to all filters that have
+ * been added via one of the addFilter methods.
+ *
+ * Any changes to the returned Map must not affect this
+ * ServletContext.
+ *
+ * @return Map of the (complete and preliminary) FilterRegistration
+ * objects corresponding to all filters currently registered with this
+ * ServletContext
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * Repeated invocations of this method will return the same
+ * SessionCookieConfig instance.
+ *
+ * @return the SessionCookieConfig object through which
+ * various properties of the session tracking cookies created on
+ * behalf of this ServletContext may be configured
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The given sessionTrackingModes replaces any
+ * session tracking modes set by a previous invocation of this
+ * method on this ServletContext.
+ *
+ * @param sessionTrackingModes the set of session tracking modes to
+ * become effective for this ServletContext
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The session tracking modes in effect are those provided to
+ * {@link #setSessionTrackingModes setSessionTrackingModes}.
+ *
+ * By default, the session tracking modes returned by
+ * {@link #getDefaultSessionTrackingModes getDefaultSessionTrackingModes}
+ * are in effect.
+ *
+ * @return set of the session tracking modes in effect for this
+ * ServletContext
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The class with the given name will be loaded using the
+ * classloader associated with the application represented by this
+ * ServletContext, and must implement one or more of the following
+ * interfaces:
+ * If this ServletContext was passed to
+ * {@link ServletContainerInitializer#onStartup}, then the class with
+ * the given name may also implement {@link ServletContextListener},
+ * in addition to the interfaces listed above.
+ *
+ * As part of this method call, the container must load the class
+ * with the specified class name to ensure that it implements one of
+ * the required interfaces.
+ *
+ * If the class with the given name implements a listener interface
+ * whose invocation order corresponds to the declaration order (i.e.,
+ * if it implements {@link ServletRequestListener},
+ * {@link ServletContextListener}, or
+ * {@link javax.servlet.http.HttpSessionListener}),
+ * then the new listener will be added to the end of the ordered list of
+ * listeners of that interface.
+ *
+ * This method supports resource injection if the class with the
+ * given className represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param className the fully qualified class name of the listener
+ *
+ * @throws IllegalArgumentException if the class with the given name
+ * does not implement any of the above interfaces, or if it implements
+ * {@link ServletContextListener} and this ServletContext was not
+ * passed to {@link ServletContainerInitializer#onStartup}
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The given listener must be an instance of one or more of the
+ * following interfaces:
+ * If this ServletContext was passed to
+ * {@link ServletContainerInitializer#onStartup}, then the given
+ * listener may also be an instance of {@link ServletContextListener},
+ * in addition to the interfaces listed above.
+ *
+ * If the given listener is an instance of a listener interface whose
+ * invocation order corresponds to the declaration order (i.e., if it
+ * is an instance of {@link ServletRequestListener},
+ * {@link ServletContextListener}, or
+ * {@link javax.servlet.http.HttpSessionListener}),
+ * then the listener will be added to the end of the ordered list of
+ * listeners of that interface.
+ *
+ * @param t the listener to be added
+ *
+ * @throws IllegalArgumentException if the given listener is not
+ * an instance of any of the above interfaces, or if it is an instance
+ * of {@link ServletContextListener} and this ServletContext was not
+ * passed to {@link ServletContainerInitializer#onStartup}
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The given listenerClass must implement one or more of the
+ * following interfaces:
+ * If this ServletContext was passed to
+ * {@link ServletContainerInitializer#onStartup}, then the given
+ * listenerClass may also implement
+ * {@link ServletContextListener}, in addition to the interfaces listed
+ * above.
+ *
+ * If the given listenerClass implements a listener
+ * interface whose invocation order corresponds to the declaration order
+ * (i.e., if it implements {@link ServletRequestListener},
+ * {@link ServletContextListener}, or
+ * {@link javax.servlet.http.HttpSessionListener}),
+ * then the new listener will be added to the end of the ordered list
+ * of listeners of that interface.
+ *
+ * This method supports resource injection if the given
+ * listenerClass represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param listenerClass the listener class to be instantiated
+ *
+ * @throws IllegalArgumentException if the given listenerClass
+ * does not implement any of the above interfaces, or if it implements
+ * {@link ServletContextListener} and this ServletContext was not passed
+ * to {@link ServletContainerInitializer#onStartup}
+ *
+ * @throws IllegalStateException if this ServletContext has already
+ * been initialized
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * The specified EventListener class must implement at least one of
+ * the The returned EventListener instance may be further customized
+ * before it is registered with this ServletContext via a call to
+ * {@link #addListener(EventListener)}.
+ *
+ * The given EventListener class must define a zero argument
+ * constructor, which is used to instantiate it.
+ *
+ * This method supports resource injection if the given
+ * clazz represents a Managed Bean.
+ * See the Java EE platform and JSR 299 specifications for additional
+ * details about Managed Beans and resource injection.
+ *
+ * @param clazz the EventListener class to instantiate
+ *
+ * @return the new EventListener instance
+ *
+ * @throws ServletException if the given clazz fails to be
+ * instantiated
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * If a security manager exists, and the caller's class loader
+ * is not the same as, or an ancestor of the requested class loader,
+ * then the security manager's Roles that are implicitly declared as a result of their use within
+ * the {@link ServletRegistration.Dynamic#setServletSecurity
+ * setServletSecurity} or {@link ServletRegistration.Dynamic#setRunAsRole
+ * setRunAsRole} methods of the {@link ServletRegistration} interface need
+ * not be declared.
+ *
+ * @param roleNames the role names being declared
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * If the attribute was added, this is the value of the attribute.
+ * If the attribute was removed, this is the value of the removed
+ * attribute. If the attribute was replaced, this is the old value of
+ * the attribute.
+ *
+ * @return the value of the ServletContext attribute that changed
+ */
+ public Object getValue() {
+ return this.value;
+ }
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletContextAttributeListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletContextAttributeListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletContextAttributeListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,113 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.util.EventListener;
+
+/**
+ * Interface for receiving notification events about ServletContext
+ * attribute changes.
+ *
+ * In order to receive these notification events, the implementation
+ * class must be either declared in the deployment descriptor of the web
+ * application, annotated with {@link javax.servlet.annotation.WebListener},
+ * or registered via one of the addListener methods defined on
+ * {@link ServletContext}.
+ *
+ * The order in which implementations of this interface are invoked is
+ * unspecified.
+ *
+ * @see ServletContextAttributeEvent
+ *
+ * @since Servlet 2.3
+ */
+
+public interface ServletContextAttributeListener extends EventListener {
+
+ /**
+ * Receives notification that an attribute has been added to the
+ * ServletContext.
+ *
+ * @param event the ServletContextAttributeEvent containing the
+ * ServletContext to which the attribute was added, along with the
+ * attribute name and value
+ */
+ public void attributeAdded(ServletContextAttributeEvent event);
+
+ /**
+ * Receives notification that an attribute has been removed
+ * from the ServletContext.
+ *
+ * @param event the ServletContextAttributeEvent containing the
+ * ServletContext from which the attribute was removed, along with
+ * the attribute name and value
+ */
+ public void attributeRemoved(ServletContextAttributeEvent event);
+
+ /*
+ * Receives notification that an attribute has been replaced
+ * in the ServletContext.
+ *
+ * @param event the ServletContextAttributeEvent containing the
+ * ServletContext in which the attribute was replaced, along with
+ * the attribute name and its old value
+ */
+ public void attributeReplaced(ServletContextAttributeEvent event);
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletContextEvent.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletContextEvent.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletContextEvent.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,89 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+/**
+ * This is the event class for notifications about changes to
+ * the servlet context of a web application.
+ * @see ServletContextListener
+ *
+ * @since Servlet 2.3
+ */
+
+public class ServletContextEvent extends java.util.EventObject {
+
+ private static final long serialVersionUID = -7501701636134222423L;
+
+ /** Construct a ServletContextEvent from the given context.
+ *
+ * @param source - the ServletContext that is sending the event.
+ */
+ public ServletContextEvent(ServletContext source) {
+ super(source);
+ }
+
+ /**
+ * Return the ServletContext that changed.
+ *
+ * @return the ServletContext that sent the event.
+ */
+ public ServletContext getServletContext () {
+ return (ServletContext) super.getSource();
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletContextListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletContextListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletContextListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,110 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.util.EventListener;
+
+/**
+ * Interface for receiving notification events about ServletContext
+ * lifecycle changes.
+ *
+ * In order to receive these notification events, the implementation
+ * class must be either declared in the deployment descriptor of the web
+ * application, annotated with {@link javax.servlet.annotation.WebListener},
+ * or registered via one of the addListener methods defined on
+ * {@link ServletContext}.
+ *
+ * Implementations of this interface are invoked at their
+ * {@link #contextInitialized} method in the order in which they have been
+ * declared, and at their {@link #contextDestroyed} method in reverse
+ * order.
+ *
+ * @see ServletContextEvent
+ *
+ * @since Servlet 2.3
+ */
+public interface ServletContextListener extends EventListener {
+
+ /**
+ * Receives notification that the web application initialization
+ * process is starting.
+ *
+ * All ServletContextListeners are notified of context
+ * initialization before any filters or servlets in the web
+ * application are initialized.
+ *
+ * @param sce the ServletContextEvent containing the ServletContext
+ * that is being initialized
+ */
+ public void contextInitialized(ServletContextEvent sce);
+
+ /**
+ * Receives notification that the ServletContext is about to be
+ * shut down.
+ *
+ * All servlets and filters will have been destroyed before any
+ * ServletContextListeners are notified of context
+ * destruction.
+ *
+ * @param sce the ServletContextEvent containing the ServletContext
+ * that is being destroyed
+ */
+ public void contextDestroyed(ServletContextEvent sce);
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletException.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletException.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletException.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,182 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+
+/**
+ * Defines a general exception a servlet can throw when it
+ * encounters difficulty.
+ *
+ * @author Various
+ */
+
+
+public class ServletException extends Exception {
+
+ private Throwable rootCause;
+
+
+
+
+
+ /**
+ * Constructs a new servlet exception.
+ *
+ */
+
+ public ServletException() {
+ super();
+ }
+
+
+
+
+
+ /**
+ * Constructs a new servlet exception with the
+ * specified message. The message can be written
+ * to the server log and/or displayed for the user.
+ *
+ * @param message a This method calls the A This is an abstract class that a servlet container implements.
+ * Subclasses of this class
+ * must implement the This method returns -1 if it reaches the end of the input
+ * stream before reading the maximum number of bytes.
+ *
+ *
+ *
+ * @param b an array of bytes into which data is read
+ *
+ * @param off an integer specifying the character at which
+ * this method begins reading
+ *
+ * @param len an integer specifying the maximum number of
+ * bytes to read
+ *
+ * @return an integer specifying the actual number of bytes
+ * read, or -1 if the end of the stream is reached
+ *
+ * @exception IOException if an input or output exception has occurred
+ *
+ */
+ public int readLine(byte[] b, int off, int len) throws IOException {
+
+ if (len <= 0) {
+ return 0;
+ }
+ int count = 0, c;
+
+ while ((c = read()) != -1) {
+ b[off++] = (byte)c;
+ count++;
+ if (c == '\n' || count == len) {
+ break;
+ }
+ }
+ return count > 0 ? count : -1;
+ }
+
+
+ /**
+ * Returns true when all the data from the stream has been read else
+ * it returns false.
+ *
+ * @return This is an abstract class that the servlet container implements.
+ * Subclasses of this class
+ * must implement the If any of the specified URL patterns are already mapped to a
+ * different Servlet, no updates will be performed.
+ *
+ * If this method is called multiple times, each successive call
+ * adds to the effects of the former.
+ *
+ * @param urlPatterns the URL patterns of the servlet mapping
+ *
+ * @return the (possibly empty) Set of URL patterns that are already
+ * mapped to a different Servlet
+ *
+ * @throws IllegalArgumentException if urlPatterns is null
+ * or empty
+ * @throws IllegalStateException if the ServletContext from which this
+ * ServletRegistration was obtained has already been initialized
+ */
+ public Set If permitted, any changes to the returned A loadOnStartup value of greater than or equal to
+ * zero indicates to the container the initialization priority of
+ * the Servlet. In this case, the container must instantiate and
+ * initialize the Servlet during the initialization phase of the
+ * ServletContext, that is, after it has invoked all of the
+ * ServletContextListener objects configured for the ServletContext
+ * at their {@link ServletContextListener#contextInitialized}
+ * method.
+ *
+ * If loadOnStartup is a negative integer, the container
+ * is free to instantiate and initialize the Servlet lazily.
+ *
+ * The default value for loadOnStartup is A call to this method overrides any previous setting.
+ *
+ * @param loadOnStartup the initialization priority of the Servlet
+ *
+ * @throws IllegalStateException if the ServletContext from which
+ * this ServletRegistration was obtained has already been initialized
+ */
+ public void setLoadOnStartup(int loadOnStartup);
+
+ /**
+ * Sets the {@link ServletSecurityElement} to be applied to the
+ * mappings defined for this This method applies to all mappings added to this
+ * If a URL pattern of this ServletRegistration is an exact target
+ * of a If a URL pattern of this ServletRegistration is an exact
+ * target of a security constraint that was established via the
+ * {@link javax.servlet.annotation.ServletSecurity} annotation
+ * or a previous call to this method, then this method replaces
+ * the security constraint for that pattern.
+ *
+ * If a URL pattern of this ServletRegistration is neither the
+ * exact target of a security constraint that was established via
+ * the {@link javax.servlet.annotation.ServletSecurity} annotation
+ * or a previous call to this method, nor the exact target of a
+ * A Attributes can be set two ways. The servlet container may set
+ * attributes to make available custom information about a request.
+ * For example, for requests made using HTTPS, the attribute
+ * Attribute names should follow the same conventions as package
+ * names. This specification reserves names matching You should only use this method when you are sure the
+ * parameter has only one value. If the parameter might have
+ * more than one value, use {@link #getParameterValues}.
+ *
+ * If you use this method with a multivalued
+ * parameter, the value returned is equal to the first value
+ * in the array returned by If the parameter data was sent in the request body, such as occurs
+ * with an HTTP POST request, then reading the body directly via {@link
+ * #getInputStream} or {@link #getReader} can interfere
+ * with the execution of this method.
+ *
+ * @param name a If the parameter has a single value, the array has a length
+ * of 1.
+ *
+ * @param name a Request parameters are extra information sent with the request.
+ * For HTTP servlets, parameters are contained in the query string or
+ * posted form data.
+ *
+ * @return an immutable java.util.Map containing parameter names as
+ * keys and parameter values as map values. The keys in the parameter
+ * map are of type String. The values in the parameter map are of type
+ * String array.
+ */
+ public Map Attribute names should follow the same conventions as
+ * package names. Names beginning with Attribute names should follow the same conventions as
+ * package names. Names beginning with The pathname specified may be relative, although it cannot extend
+ * outside the current servlet context. If the path begins with
+ * a "/" it is interpreted as relative to the current context root.
+ * This method returns The difference between this method and {@link
+ * ServletContext#getRequestDispatcher} is that this method can take a
+ * relative path.
+ *
+ * @param path a Calling this method will cause committal of the associated
+ * response to be delayed until {@link AsyncContext#complete} is
+ * called on the returned {@link AsyncContext}, or the asynchronous
+ * operation has timed out.
+ *
+ * Calling {@link AsyncContext#hasOriginalRequestAndResponse()} on
+ * the returned AsyncContext will return This method clears the list of {@link AsyncListener} instances
+ * (if any) that were registered with the AsyncContext returned by the
+ * previous call to one of the startAsync methods, after calling each
+ * AsyncListener at its {@link AsyncListener#onStartAsync onStartAsync}
+ * method.
+ *
+ * Subsequent invocations of this method, or its overloaded
+ * variant, will return the same AsyncContext instance, reinitialized
+ * as appropriate.
+ *
+ * @return the (re)initialized AsyncContext
+ *
+ * @throws IllegalStateException if this request is within the scope of
+ * a filter or servlet that does not support asynchronous operations
+ * (that is, {@link #isAsyncSupported} returns false),
+ * or if this method is called again without any asynchronous dispatch
+ * (resulting from one of the {@link AsyncContext#dispatch} methods),
+ * is called outside the scope of any such dispatch, or is called again
+ * within the scope of the same dispatch, or if the response has
+ * already been closed
+ *
+ * @see AsyncContext#dispatch()
+ * @since Servlet 3.0
+ */
+ public AsyncContext startAsync() throws IllegalStateException;
+
+ /**
+ * Puts this request into asynchronous mode, and initializes its
+ * {@link AsyncContext} with the given request and response objects.
+ *
+ * The ServletRequest and ServletResponse arguments must be
+ * the same instances, or instances of {@link ServletRequestWrapper} and
+ * {@link ServletResponseWrapper} that wrap them, that were passed to the
+ * {@link Servlet#service service} method of the Servlet or the
+ * {@link Filter#doFilter doFilter} method of the Filter, respectively,
+ * in whose scope this method is being called.
+ *
+ * Calling this method will cause committal of the associated
+ * response to be delayed until {@link AsyncContext#complete} is
+ * called on the returned {@link AsyncContext}, or the asynchronous
+ * operation has timed out.
+ *
+ * Calling {@link AsyncContext#hasOriginalRequestAndResponse()} on
+ * the returned AsyncContext will return This method clears the list of {@link AsyncListener} instances
+ * (if any) that were registered with the AsyncContext returned by the
+ * previous call to one of the startAsync methods, after calling each
+ * AsyncListener at its {@link AsyncListener#onStartAsync onStartAsync}
+ * method.
+ *
+ * Subsequent invocations of this method, or its zero-argument
+ * variant, will return the same AsyncContext instance, reinitialized
+ * as appropriate. If a call to this method is followed by a call to its
+ * zero-argument variant, the specified (and possibly wrapped) request
+ * and response objects will remain locked in on the returned
+ * AsyncContext.
+ *
+ * @param servletRequest the ServletRequest used to initialize the
+ * AsyncContext
+ * @param servletResponse the ServletResponse used to initialize the
+ * AsyncContext
+ *
+ * @return the (re)initialized AsyncContext
+ *
+ * @throws IllegalStateException if this request is within the scope of
+ * a filter or servlet that does not support asynchronous operations
+ * (that is, {@link #isAsyncSupported} returns false),
+ * or if this method is called again without any asynchronous dispatch
+ * (resulting from one of the {@link AsyncContext#dispatch} methods),
+ * is called outside the scope of any such dispatch, or is called again
+ * within the scope of the same dispatch, or if the response has
+ * already been closed
+ *
+ * @since Servlet 3.0
+ */
+ public AsyncContext startAsync(ServletRequest servletRequest,
+ ServletResponse servletResponse)
+ throws IllegalStateException;
+
+ /**
+ * Checks if this request has been put into asynchronous mode.
+ *
+ * A ServletRequest is put into asynchronous mode by calling
+ * {@link #startAsync} or
+ * {@link #startAsync(ServletRequest,ServletResponse)} on it.
+ *
+ * This method returns false if this request was
+ * put into asynchronous mode, but has since been dispatched using
+ * one of the {@link AsyncContext#dispatch} methods or released
+ * from asynchronous mode via a call to {@link AsyncContext#complete}.
+ *
+ * @return true if this request has been put into asynchronous mode,
+ * false otherwise
+ *
+ * @since Servlet 3.0
+ */
+ public boolean isAsyncStarted();
+
+ /**
+ * Checks if this request supports asynchronous operation.
+ *
+ * Asynchronous operation is disabled for this request if this request
+ * is within the scope of a filter or servlet that has not been annotated
+ * or flagged in the deployment descriptor as being able to support
+ * asynchronous handling.
+ *
+ * @return true if this request supports asynchronous operation, false
+ * otherwise
+ *
+ * @since Servlet 3.0
+ */
+ public boolean isAsyncSupported();
+
+ /**
+ * Gets the AsyncContext that was created or reinitialized by the
+ * most recent invocation of {@link #startAsync} or
+ * {@link #startAsync(ServletRequest,ServletResponse)} on this request.
+ *
+ * @return the AsyncContext that was created or reinitialized by the
+ * most recent invocation of {@link #startAsync} or
+ * {@link #startAsync(ServletRequest,ServletResponse)} on
+ * this request
+ *
+ * @throws IllegalStateException if this request has not been put
+ * into asynchronous mode, i.e., if neither {@link #startAsync} nor
+ * {@link #startAsync(ServletRequest,ServletResponse)} has been called
+ *
+ * @since Servlet 3.0
+ */
+ public AsyncContext getAsyncContext();
+
+ /**
+ * Gets the dispatcher type of this request.
+ *
+ * The dispatcher type of a request is used by the container
+ * to select the filters that need to be applied to the request:
+ * Only filters with matching dispatcher type and url patterns will
+ * be applied.
+ *
+ * Allowing a filter that has been configured for multiple
+ * dispatcher types to query a request for its dispatcher type
+ * allows the filter to process the request differently depending on
+ * its dispatcher type.
+ *
+ * The initial dispatcher type of a request is defined as
+ * Notifications will be generated while the request
+ * is within the scope of the web application. A ServletRequest
+ * is defined as coming into scope of a web application when it
+ * is about to enter the first servlet or filter of the web
+ * application, and as going out of scope when it exits the last
+ * servlet or the first filter in the chain.
+ *
+ * In order to receive these notification events, the implementation
+ * class must be either declared in the deployment descriptor of the web
+ * application, annotated with {@link javax.servlet.annotation.WebListener},
+ * or registered via one of the addListener methods defined on
+ * {@link ServletContext}.
+ *
+ * The order in which implementations of this interface are invoked is
+ * unspecified.
+ *
+ * @since Servlet 2.4
+ */
+
+public interface ServletRequestAttributeListener extends EventListener {
+
+ /**
+ * Receives notification that an attribute has been added to the
+ * ServletRequest.
+ *
+ * @param srae the ServletRequestAttributeEvent containing the
+ * ServletRequest and the name and value of the attribute that was
+ * added
+ */
+ public void attributeAdded(ServletRequestAttributeEvent srae);
+
+ /**
+ * Receives notification that an attribute has been removed from the
+ * ServletRequest.
+ *
+ * @param srae the ServletRequestAttributeEvent containing the
+ * ServletRequest and the name and value of the attribute that was
+ * removed
+ */
+ public void attributeRemoved(ServletRequestAttributeEvent srae);
+
+ /**
+ * Receives notification that an attribute has been replaced on the
+ * ServletRequest.
+ *
+ * @param srae the ServletRequestAttributeEvent containing the
+ * ServletRequest and the name and (old) value of the attribute
+ * that was replaced
+ */
+ public void attributeReplaced(ServletRequestAttributeEvent srae);
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletRequestEvent.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletRequestEvent.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletRequestEvent.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,97 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+/**
+ * Events of this kind indicate lifecycle events for a ServletRequest.
+ * The source of the event is the ServletContext of this web application.
+ *
+ * @see ServletRequestListener
+ * @since Servlet 2.4
+ */
+public class ServletRequestEvent extends java.util.EventObject {
+
+ private static final long serialVersionUID = -7467864054698729101L;
+
+ private final transient ServletRequest request;
+
+ /** Construct a ServletRequestEvent for the given ServletContext
+ * and ServletRequest.
+ *
+ * @param sc the ServletContext of the web application.
+ * @param request the ServletRequest that is sending the event.
+ */
+ public ServletRequestEvent(ServletContext sc, ServletRequest request) {
+ super(sc);
+ this.request = request;
+ }
+
+ /**
+ * Returns the ServletRequest that is changing.
+ */
+ public ServletRequest getServletRequest () {
+ return this.request;
+ }
+
+ /**
+ * Returns the ServletContext of this web application.
+ */
+ public ServletContext getServletContext () {
+ return (ServletContext) super.getSource();
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletRequestListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletRequestListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletRequestListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,105 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.util.EventListener;
+
+/**
+ * Interface for receiving notification events about requests coming
+ * into and going out of scope of a web application.
+ *
+ * A ServletRequest is defined as coming into scope of a web
+ * application when it is about to enter the first servlet or filter
+ * of the web application, and as going out of scope as it exits
+ * the last servlet or the first filter in the chain.
+ *
+ * In order to receive these notification events, the implementation
+ * class must be either declared in the deployment descriptor of the web
+ * application, annotated with {@link javax.servlet.annotation.WebListener},
+ * or registered via one of the addListener methods defined on
+ * {@link ServletContext}.
+ *
+ * Implementations of this interface are invoked at their
+ * {@link #requestInitialized} method in the order in which they have been
+ * declared, and at their {@link #requestDestroyed} method in reverse
+ * order.
+ *
+ * @since Servlet 2.4
+ */
+
+public interface ServletRequestListener extends EventListener {
+
+ /**
+ * Receives notification that a ServletRequest is about to go out
+ * of scope of the web application.
+ *
+ * @param sre the ServletRequestEvent containing the ServletRequest
+ * and the ServletContext representing the web application
+ */
+ public void requestDestroyed(ServletRequestEvent sre);
+
+ /**
+ * Receives notification that a ServletRequest is about to come
+ * into scope of the web application.
+ *
+ * @param sre the ServletRequestEvent containing the ServletRequest
+ * and the ServletContext representing the web application
+ */
+ public void requestInitialized(ServletRequestEvent sre);
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletRequestWrapper.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletRequestWrapper.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletRequestWrapper.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,590 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.UnsupportedEncodingException;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
+
+/**
+ * Provides a convenient implementation of the ServletRequest interface that
+ * can be subclassed by developers wishing to adapt the request to a Servlet.
+ * This class implements the Wrapper or Decorator pattern. Methods default to
+ * calling through to the wrapped request object.
+ *
+ * @see javax.servlet.ServletRequest
+ *
+ * @since Servlet 2.3
+ */
+
+public class ServletRequestWrapper implements ServletRequest {
+
+ private ServletRequest request;
+
+ /**
+ * Creates a ServletRequest adaptor wrapping the given request object.
+ * @throws java.lang.IllegalArgumentException if the request is null
+ */
+ public ServletRequestWrapper(ServletRequest request) {
+ if (request == null) {
+ throw new IllegalArgumentException("Request cannot be null");
+ }
+ this.request = request;
+ }
+
+
+ /**
+ * Return the wrapped request object.
+ */
+ public ServletRequest getRequest() {
+ return this.request;
+ }
+
+
+ /**
+ * Sets the request object being wrapped.
+ * @throws java.lang.IllegalArgumentException if the request is null.
+ */
+ public void setRequest(ServletRequest request) {
+ if (request == null) {
+ throw new IllegalArgumentException("Request cannot be null");
+ }
+ this.request = request;
+ }
+
+
+ /**
+ * The default behavior of this method is to call getAttribute(String name)
+ * on the wrapped request object.
+ */
+ public Object getAttribute(String name) {
+ return this.request.getAttribute(name);
+ }
+
+
+ /**
+ * The default behavior of this method is to return getAttributeNames()
+ * on the wrapped request object.
+ */
+ public Enumeration To send binary data in a MIME body response, use
+ * the {@link ServletOutputStream} returned by {@link #getOutputStream}.
+ * To send character data, use the The charset for the MIME body response can be specified
+ * explicitly using the {@link #setCharacterEncoding} and
+ * {@link #setContentType} methods, or implicitly
+ * using the {@link #setLocale} method.
+ * Explicit specifications take precedence over
+ * implicit specifications. If no charset is specified, ISO-8859-1 will be
+ * used. The See the Internet RFCs such as
+ *
+ * RFC 2045 for more information on MIME. Protocols such as SMTP
+ * and HTTP define profiles of MIME, and those standards
+ * are still evolving.
+ *
+ * @author Various
+ *
+ * @see ServletOutputStream
+ */
+
+public interface ServletResponse {
+
+ /**
+ * Returns the name of the character encoding (MIME charset)
+ * used for the body sent in this response.
+ * The character encoding may have been specified explicitly
+ * using the {@link #setCharacterEncoding} or
+ * {@link #setContentType} methods, or implicitly using the
+ * {@link #setLocale} method. Explicit specifications take
+ * precedence over implicit specifications. Calls made
+ * to these methods after See RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)
+ * for more information about character encoding and MIME.
+ *
+ * @return a Calling flush() on the ServletOutputStream commits the response.
+ *
+ * Either this method or {@link #getWriter} may
+ * be called to write the body, not both, except when {@link #reset}
+ * has been called.
+ *
+ * @return a {@link ServletOutputStream} for writing binary data
+ *
+ * @exception IllegalStateException if the Calling flush() on the Either this method or {@link #getOutputStream} may be called
+ * to write the body, not both, except when {@link #reset}
+ * has been called.
+ *
+ * @return a This method can be called repeatedly to change the character
+ * encoding.
+ * This method has no effect if it is called after
+ * Containers must communicate the character encoding used for
+ * the servlet response's writer to the client if the protocol
+ * provides a way for doing so. In the case of HTTP, the character
+ * encoding is communicated as part of the This method may be called repeatedly to change content type and
+ * character encoding.
+ * This method has no effect if called after the response
+ * has been committed. It does not set the response's character
+ * encoding if it is called after Containers must communicate the content type and the character
+ * encoding used for the servlet response's writer to the client if
+ * the protocol provides a way for doing so. In the case of HTTP,
+ * the A larger buffer allows more content to be written before anything is
+ * actually sent, thus providing the servlet with more time to set
+ * appropriate status codes and headers. A smaller buffer decreases
+ * server memory load and allows the client to start receiving data more
+ * quickly.
+ *
+ * This method must be called before any response body content is
+ * written; if content has been written or the response object has
+ * been committed, this method throws an
+ * This method may be called repeatedly to change locale and
+ * character encoding. The method has no effect if called after the
+ * response has been committed. It does not set the response's
+ * character encoding if it is called after {@link #setContentType}
+ * has been called with a charset specification, after
+ * {@link #setCharacterEncoding} has been called, after
+ * Containers must communicate the locale and the character encoding
+ * used for the servlet response's writer to the client if the protocol
+ * provides a way for doing so. In the case of HTTP, the locale is
+ * communicated via the If permitted, any changes to the returned If permitted, any changes to the returned An instance of this class is acquired by a call to
+ * {@link ServletContext#getSessionCookieConfig}.
+ *
+ * @since Servlet 3.0
+ */
+public interface SessionCookieConfig {
+
+ /**
+ * Sets the name that will be assigned to any session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * NOTE: Changing the name of session tracking cookies may break
+ * other tiers (for example, a load balancing frontend) that assume
+ * the cookie name to be equal to the default JSESSIONID,
+ * and therefore should only be done cautiously.
+ *
+ * @param name the cookie name to use
+ *
+ * @throws IllegalStateException if the ServletContext
+ * from which this SessionCookieConfig was acquired has
+ * already been initialized
+ */
+ public void setName(String name);
+
+
+ /**
+ * Gets the name that will be assigned to any session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * By default, JSESSIONID will be used as the cookie name.
+ *
+ * @return the cookie name set via {@link #setName}, or
+ * null if {@link #setName} was never called
+ *
+ * @see javax.servlet.http.Cookie#getName()
+ */
+ public String getName();
+
+
+ /**
+ * Sets the domain name that will be assigned to any session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * @param domain the cookie domain to use
+ *
+ * @throws IllegalStateException if the ServletContext
+ * from which this SessionCookieConfig was acquired has
+ * already been initialized
+ *
+ * @see javax.servlet.http.Cookie#setDomain(String)
+ */
+ public void setDomain(String domain);
+
+
+ /**
+ * Gets the domain name that will be assigned to any session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * @return the cookie domain set via {@link #setDomain}, or
+ * null if {@link #setDomain} was never called
+ *
+ * @see javax.servlet.http.Cookie#getDomain()
+ */
+ public String getDomain();
+
+
+ /**
+ * Sets the path that will be assigned to any session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * @param path the cookie path to use
+ *
+ * @throws IllegalStateException if the ServletContext
+ * from which this SessionCookieConfig was acquired has
+ * already been initialized
+ *
+ * @see javax.servlet.http.Cookie#setPath(String)
+ */
+ public void setPath(String path);
+
+
+ /**
+ * Gets the path that will be assigned to any session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * By default, the context path of the ServletContext
+ * from which this SessionCookieConfig was acquired will
+ * be used.
+ *
+ * @return the cookie path set via {@link #setPath}, or null
+ * if {@link #setPath} was never called
+ *
+ * @see javax.servlet.http.Cookie#getPath()
+ */
+ public String getPath();
+
+
+ /**
+ * Sets the comment that will be assigned to any session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * As a side effect of this call, the session tracking cookies
+ * will be marked with a A cookie is marked as HttpOnly by adding the
+ * HttpOnly attribute to it. HttpOnly cookies are
+ * not supposed to be exposed to client-side scripting code, and may
+ * therefore help mitigate certain kinds of cross-site scripting
+ * attacks.
+ *
+ * @param httpOnly true if the session tracking cookies created
+ * on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired shall be marked as HttpOnly, false otherwise
+ *
+ * @throws IllegalStateException if the ServletContext
+ * from which this SessionCookieConfig was acquired has
+ * already been initialized
+ *
+ * @see javax.servlet.http.Cookie#setHttpOnly(boolean)
+ */
+ public void setHttpOnly(boolean httpOnly);
+
+
+ /**
+ * Checks if the session tracking cookies created on behalf of the
+ * application represented by the ServletContext from which
+ * this SessionCookieConfig was acquired will be marked as
+ * HttpOnly.
+ *
+ * @return true if the session tracking cookies created on behalf of
+ * the application represented by the ServletContext from
+ * which this SessionCookieConfig was acquired will be marked
+ * as HttpOnly, false otherwise
+ *
+ * @see javax.servlet.http.Cookie#isHttpOnly()
+ */
+ public boolean isHttpOnly();
+
+
+ /**
+ * Marks or unmarks the session tracking cookies created on behalf of
+ * the application represented by the ServletContext from which
+ * this SessionCookieConfig was acquired as secure.
+ *
+ * One use case for marking a session tracking cookie as
+ * secure, even though the request that initiated the session
+ * came over HTTP, is to support a topology where the web container is
+ * front-ended by an SSL offloading load balancer.
+ * In this case, the traffic between the client and the load balancer
+ * will be over HTTPS, whereas the traffic between the load balancer
+ * and the web container will be over HTTP.
+ *
+ * @param secure true if the session tracking cookies created on
+ * behalf of the application represented by the ServletContext
+ * from which this SessionCookieConfig was acquired shall be
+ * marked as secure even if the request that initiated the
+ * corresponding session is using plain HTTP instead of HTTPS, and false
+ * if they shall be marked as secure only if the request that
+ * initiated the corresponding session was also secure
+ *
+ * @throws IllegalStateException if the ServletContext
+ * from which this SessionCookieConfig was acquired has
+ * already been initialized
+ *
+ * @see javax.servlet.http.Cookie#setSecure(boolean)
+ * @see ServletRequest#isSecure()
+ */
+ public void setSecure(boolean secure);
+
+
+ /**
+ * Checks if the session tracking cookies created on behalf of the
+ * application represented by the ServletContext from which
+ * this SessionCookieConfig was acquired will be marked as
+ * secure even if the request that initiated the corresponding
+ * session is using plain HTTP instead of HTTPS.
+ *
+ * @return true if the session tracking cookies created on behalf of the
+ * application represented by the ServletContext from which
+ * this SessionCookieConfig was acquired will be marked as
+ * secure even if the request that initiated the corresponding
+ * session is using plain HTTP instead of HTTPS, and false if they will
+ * be marked as secure only if the request that initiated the
+ * corresponding session was also secure
+ *
+ * @see javax.servlet.http.Cookie#getSecure()
+ * @see ServletRequest#isSecure()
+ */
+ public boolean isSecure();
+
+
+ /**
+ * Sets the lifetime (in seconds) for the session tracking cookies
+ * created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * @param maxAge the lifetime (in seconds) of the session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * @throws IllegalStateException if the ServletContext
+ * from which this SessionCookieConfig was acquired has
+ * already been initialized
+ *
+ * @see javax.servlet.http.Cookie#setMaxAge
+ */
+ public void setMaxAge(int maxAge);
+
+
+ /**
+ * Gets the lifetime (in seconds) of the session tracking cookies
+ * created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * By default, -1 is returned.
+ *
+ * @return the lifetime (in seconds) of the session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired, or -1 (the default)
+ *
+ * @see javax.servlet.http.Cookie#getMaxAge
+ */
+ public int getMaxAge();
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/SessionTrackingMode.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/SessionTrackingMode.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/SessionTrackingMode.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,52 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+/**
+ * Enumeration of session tracking modes.
+ *
+ * @since Servlet 3.0
+ */
+public enum SessionTrackingMode {
+ COOKIE,
+ URL,
+ SSL
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/SingleThreadModel.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/SingleThreadModel.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/SingleThreadModel.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,90 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+/**
+ * Ensures that servlets handle
+ * only one request at a time. This interface has no methods.
+ *
+ * If a servlet implements this interface, you are guaranteed
+ * that no two threads will execute concurrently in the
+ * servlet's Note that SingleThreadModel does not solve all thread safety
+ * issues. For example, session attributes and static variables can
+ * still be accessed by multiple requests on multiple threads
+ * at the same time, even when SingleThreadModel servlets are used.
+ * It is recommended that a developer take other means to resolve
+ * those issues instead of implementing this interface, such as
+ * avoiding the usage of an instance variable or synchronizing
+ * the block of the code accessing those resources.
+ * This interface is deprecated in Servlet API version 2.4.
+ *
+ *
+ * @author Various
+ *
+ * @deprecated As of Java Servlet API 2.4, with no direct
+ * replacement.
+ */
+
+public interface SingleThreadModel {
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/UnavailableException.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/UnavailableException.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/UnavailableException.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,246 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+
+/**
+ * Defines an exception that a servlet or filter throws to indicate
+ * that it is permanently or temporarily unavailable.
+ *
+ * When a servlet or filter is permanently unavailable, something is wrong
+ * with it, and it cannot handle
+ * requests until some action is taken. For example, a servlet
+ * might be configured incorrectly, or a filter's state may be corrupted.
+ * The component should log both the error and the corrective action
+ * that is needed.
+ *
+ * A servlet or filter is temporarily unavailable if it cannot handle
+ * requests momentarily due to some system-wide problem. For example,
+ * a third-tier server might not be accessible, or there may be
+ * insufficient memory or disk storage to handle requests. A system
+ * administrator may need to take corrective action.
+ *
+ * Servlet containers can safely treat both types of unavailable
+ * exceptions in the same way. However, treating temporary unavailability
+ * effectively makes the servlet container more robust. Specifically,
+ * the servlet container might block requests to the servlet or filter for a period
+ * of time suggested by the exception, rather than rejecting them until
+ * the servlet container restarts.
+ *
+ *
+ * @author Various
+ *
+ */
+
+public class UnavailableException
+extends ServletException {
+
+ private Servlet servlet; // what's unavailable
+ private boolean permanent; // needs admin action?
+ private int seconds; // unavailability estimate
+
+ /**
+ *
+ * @deprecated As of Java Servlet API 2.2, use {@link
+ * #UnavailableException(String)} instead.
+ *
+ * @param servlet the In some cases, the servlet cannot make an estimate. For
+ * example, the servlet might know that a server it needs is
+ * not running, but not be able to report how long it will take
+ * to be restored to functionality. This can be indicated with
+ * a negative or zero value for the If this method returns a negative number, the servlet
+ * is permanently unavailable or cannot provide an estimate of
+ * how long it will be unavailable. No effort is
+ * made to correct for the time elapsed since the exception was
+ * first reported.
+ *
+ * @return an integer specifying the number of seconds
+ * the servlet will be temporarily unavailable,
+ * or a negative number if the servlet is permanently
+ * unavailable or cannot make an estimate
+ *
+ */
+
+ public int getUnavailableSeconds() {
+ return permanent ? -1 : seconds;
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/WriteListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/WriteListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/WriteListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,72 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2011-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+
+package javax.servlet;
+
+import java.io.IOException;
+import java.util.EventListener;
+
+/**
+ *
+ * Callback notification mechanism that signals to the developer it's possible
+ * to write content without blocking.
+ *
+ * @since Servlet 3.1
+ */
+public interface WriteListener extends EventListener {
+
+ /**
+ * When an instance of the WriteListener is registered with a {@link ServletOutputStream},
+ * this method will be invoked by the container the first time when it is possible
+ * to write data. Subsequently the container will invoke this method if and only
+ * if {@link javax.servlet.ServletOutputStream#isReady()} method
+ * has been called and has returned If an implementation of ServletContainerInitializer
+ * specifies this annotation, the Servlet container must pass the
+ * Set of application classes that extend, implement, or have
+ * been annotated with the class types listed by this annotation to
+ * the {@link javax.servlet.ServletContainerInitializer#onStartup}
+ * method of the ServletContainerInitializer (if no matching classes
+ * are found, null must be passed instead)
+ */
+ Class>[] value();
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/HttpConstraint.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/HttpConstraint.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/HttpConstraint.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,113 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import javax.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
+import javax.servlet.annotation.ServletSecurity.TransportGuarantee;
+
+/**
+ * This annotation is used within the {@link ServletSecurity} annotation to
+ * represent the security constraints to be applied to all HTTP protocol
+ * methods for which a corresponding {@link HttpMethodConstraint} element does
+ * NOT occur within the {@link ServletSecurity} annotation.
+ *
+ * For the special case where an Servlets annotated with MultipartConfig may retrieve the
+ * {@link javax.servlet.http.Part} components of a given
+ * multipart/form-data request by calling
+ * {@link javax.servlet.http.HttpServletRequest#getPart getPart} or
+ * {@link javax.servlet.http.HttpServletRequest#getParts getParts}.
+ */
+
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface MultipartConfig {
+
+ /**
+ * The directory location where files will be stored
+ */
+ String location() default "";
+
+ /**
+ * The maximum size allowed for uploaded files.
+ *
+ * The default is -1L, which means unlimited.
+ */
+ long maxFileSize() default -1L;
+
+ /**
+ * The maximum size allowed for multipart/form-data
+ * requests
+ *
+ * The default is -1L, which means unlimited.
+ */
+ long maxRequestSize() default -1L;
+
+ /**
+ * The size threshold after which the file will be written to disk
+ */
+ int fileSizeThreshold() default 0;
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/ServletSecurity.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/ServletSecurity.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/ServletSecurity.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,121 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Target;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * This annotation is used on a Servlet implementation class to specify security
+ * constraints to be enforced by a Servlet container on HTTP protocol messages.
+ * The Servlet container will enforce these constraints on the url-patterns
+ * mapped to the servlets mapped to the annotated class.
+ *
+ * @since Servlet 3.0
+ */
+
+@Inherited
+@Documented
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ServletSecurity {
+
+ /**
+ * Defines the access semantic to be applied to an empty rolesAllowed array.
+ */
+ enum EmptyRoleSemantic {
+ /**
+ * access is to be permitted independent of authentication state and
+ * identity.
+ */
+ PERMIT,
+ /**
+ * access is to be denied independent of authentication state and
+ * identity.
+ */
+ DENY
+ }
+
+ /**
+ * Defines the data protection requirements that must be satisfied by
+ * the transport
+ */
+ enum TransportGuarantee {
+ /**
+ * no protection of user data must be performed by the transport.
+ */
+ NONE,
+ /**
+ * All user data must be encrypted by the transport (typically
+ * using SSL/TLS).
+ */
+ CONFIDENTIAL
+ }
+
+ /**
+ * Get the {@link HttpConstraint} that defines the protection
+ * that is to be applied to all HTTP methods that are NOT represented in
+ * the array returned by httpMethodConstraints.
+ *
+ * @return a This annotation is processed by the container at deployment time,
+ * and the corresponding filter applied to the specified URL patterns,
+ * servlets, and dispatcher types.
+ *
+ * @see javax.servlet.Filter
+ *
+ * @since Servlet 3.0
+ */
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface WebFilter {
+
+ /**
+ * The description of the filter
+ */
+ String description() default "";
+
+ /**
+ * The display name of the filter
+ */
+ String displayName() default "";
+
+ /**
+ * The init parameters of the filter
+ */
+ WebInitParam[] initParams() default {};
+
+ /**
+ * The name of the filter
+ */
+ String filterName() default "";
+
+ /**
+ * The small-icon of the filter
+ */
+ String smallIcon() default "";
+
+ /**
+ * The large-icon of the filter
+ */
+ String largeIcon() default "";
+
+ /**
+ * The names of the servlets to which the filter applies.
+ */
+ String[] servletNames() default {};
+
+ /**
+ * The URL patterns to which the filter applies
+ */
+ String[] value() default {};
+
+ /**
+ * The URL patterns to which the filter applies
+ */
+ String[] urlPatterns() default {};
+
+ /**
+ * The dispatcher types to which the filter applies
+ */
+ DispatcherType[] dispatcherTypes() default {DispatcherType.REQUEST};
+
+ /**
+ * Declares whether the filter supports asynchronous operation mode.
+ *
+ * @see javax.servlet.ServletRequest#startAsync
+ * @see javax.servlet.ServletRequest#startAsync(ServletRequest,
+ * ServletResponse)
+ */
+ boolean asyncSupported() default false;
+
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/WebInitParam.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/WebInitParam.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/WebInitParam.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,74 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import java.lang.annotation.Documented;
+
+/**
+ * This annotation is used on a Servlet or Filter implementation class
+ * to specify an initialization parameter.
+ *
+ * @since Servlet 3.0
+ */
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface WebInitParam {
+
+ /**
+ * Name of the initialization parameter
+ */
+ String name();
+
+ /**
+ * Value of the initialization parameter
+ */
+ String value();
+
+ /**
+ * Description of the initialization parameter
+ */
+ String description() default "";
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/WebListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/WebListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/WebListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,71 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * This annotation is used to declare a WebListener.
+ *
+ * Any class annotated with WebListener must implement one or more of
+ * the {@link javax.servlet.ServletContextListener},
+ * {@link javax.servlet.ServletContextAttributeListener},
+ * {@link javax.servlet.ServletRequestListener},
+ * {@link javax.servlet.ServletRequestAttributeListener},
+ * {@link javax.servlet.http.HttpSessionListener}, or
+ * {@link javax.servlet.http.HttpSessionAttributeListener}, or
+ * {@link javax.servlet.http.HttpSessionIdListener} interfaces.
+ *
+ * @since Servlet 3.0
+ */
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface WebListener {
+ /**
+ * Description of the listener
+ */
+ String value() default "";
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/WebServlet.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/WebServlet.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/WebServlet.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,119 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Target;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Documented;
+
+/**
+ * Annotation used to declare a servlet.
+ *
+ * This annotation is processed by the container at deployment time,
+ * and the corresponding servlet made available at the specified URL
+ * patterns.
+ *
+ * @see javax.servlet.Servlet
+ *
+ * @since Servlet 3.0
+ */
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface WebServlet {
+
+ /**
+ * The name of the servlet
+ */
+ String name() default "";
+
+ /**
+ * The URL patterns of the servlet
+ */
+ String[] value() default {};
+
+ /**
+ * The URL patterns of the servlet
+ */
+ String[] urlPatterns() default {};
+
+ /**
+ * The load-on-startup order of the servlet
+ */
+ int loadOnStartup() default -1;
+
+ /**
+ * The init parameters of the servlet
+ */
+ WebInitParam [] initParams() default {};
+
+ /**
+ * Declares whether the servlet supports asynchronous operation mode.
+ *
+ * @see javax.servlet.ServletRequest#startAsync
+ * @see javax.servlet.ServletRequest#startAsync(ServletRequest,
+ * ServletResponse)
+ */
+ boolean asyncSupported() default false;
+
+ /**
+ * The small-icon of the servlet
+ */
+ String smallIcon() default "";
+
+ /**
+ * The large-icon of the servlet
+ */
+ String largeIcon() default "";
+
+ /**
+ * The description of the servlet
+ */
+ String description() default "";
+
+ /**
+ * The display name of the servlet
+ */
+ String displayName() default "";
+
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/package.html
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/package.html (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/package.html (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,57 @@
+
+
+
+
+ The configuration is aggregated from the Any changes to the returned Any changes to the returned The configuration is aggregated from the Any changes to the returned Any changes to the returned Any changes to the returned The configuration is aggregated from the A cookie has a name, a single value, and optional attributes
+ * such as a comment, path and domain qualifiers, a maximum age, and a
+ * version number. Some Web browsers have bugs in how they handle the
+ * optional attributes, so use them sparingly to improve the interoperability
+ * of your servlets.
+ *
+ * The servlet sends cookies to the browser by using the
+ * {@link HttpServletResponse#addCookie} method, which adds
+ * fields to HTTP response headers to send cookies to the
+ * browser, one at a time. The browser is expected to
+ * support 20 cookies for each Web server, 300 cookies total, and
+ * may limit cookie size to 4 KB each.
+ *
+ * The browser returns cookies to the servlet by adding
+ * fields to HTTP request headers. Cookies can be retrieved
+ * from a request by using the {@link HttpServletRequest#getCookies} method.
+ * Several cookies might have the same name but different path attributes.
+ *
+ * Cookies affect the caching of the Web pages that use them.
+ * HTTP 1.0 does not cache pages that use cookies created with
+ * this class. This class does not support the cache control
+ * defined with HTTP 1.1.
+ *
+ * This class supports both the Version 0 (by Netscape) and Version 1
+ * (by RFC 2109) cookie specifications. By default, cookies are
+ * created using Version 0 to ensure the best interoperability.
+ *
+ * @author Various
+ */
+public class Cookie implements Cloneable, Serializable {
+
+ private static final long serialVersionUID = -6454587001725327448L;
+
+ private static final String TSPECIALS;
+
+ private static final String LSTRING_FILE =
+ "javax.servlet.http.LocalStrings";
+
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+ static {
+ if (Boolean.valueOf(System.getProperty("org.glassfish.web.rfc2109_cookie_names_enforced", "true"))) {
+ TSPECIALS = "/()<>@,;:\\\"[]?={} \t";
+ } else {
+ TSPECIALS = ",; ";
+ }
+ }
+
+ //
+ // The value of the cookie itself.
+ //
+
+ private String name; // NAME= ... "$Name" style is reserved
+ private String value; // value of NAME
+
+ //
+ // Attributes encoded in the header's cookie fields.
+ //
+
+ private String comment; // ;Comment=VALUE ... describes cookie's use
+ // ;Discard ... implied by maxAge < 0
+ private String domain; // ;Domain=VALUE ... domain that sees cookie
+ private int maxAge = -1; // ;Max-Age=VALUE ... cookies auto-expire
+ private String path; // ;Path=VALUE ... URLs that see the cookie
+ private boolean secure; // ;Secure ... e.g. use SSL
+ private int version = 0; // ;Version=1 ... means RFC 2109++ style
+ private boolean isHttpOnly = false;
+
+ /**
+ * Constructs a cookie with the specified name and value.
+ *
+ * The name must conform to RFC 2109. However, vendors may
+ * provide a configuration option that allows cookie names conforming
+ * to the original Netscape Cookie Specification to be accepted.
+ *
+ * The name of a cookie cannot be changed once the cookie has
+ * been created.
+ *
+ * The value can be anything the server chooses to send. Its
+ * value is probably of interest only to the server. The cookie's
+ * value can be changed after creation with the
+ * By default, cookies are created according to the Netscape
+ * cookie specification. The version can be changed with the
+ * The form of the domain name is specified by RFC 2109. A domain
+ * name begins with a dot ( Domain names are formatted according to RFC 2109.
+ *
+ * @return the domain name of this Cookie
+ *
+ * @see #setDomain
+ */
+ public String getDomain() {
+ return domain;
+ }
+
+ /**
+ * Sets the maximum age in seconds for this Cookie.
+ *
+ * A positive value indicates that the cookie will expire
+ * after that many seconds have passed. Note that the value is
+ * the maximum age when the cookie will expire, not the cookie's
+ * current age.
+ *
+ * A negative value means
+ * that the cookie is not stored persistently and will be deleted
+ * when the Web browser exits. A zero value causes the cookie
+ * to be deleted.
+ *
+ * @param expiry an integer specifying the maximum age of the
+ * cookie in seconds; if negative, means
+ * the cookie is not stored; if zero, deletes
+ * the cookie
+ *
+ * @see #getMaxAge
+ */
+ public void setMaxAge(int expiry) {
+ maxAge = expiry;
+ }
+
+ /**
+ * Gets the maximum age in seconds of this Cookie.
+ *
+ * By default, The cookie is visible to all the pages in the directory
+ * you specify, and all the pages in that directory's subdirectories.
+ * A cookie's path must include the servlet that set the cookie,
+ * for example, /catalog, which makes the cookie
+ * visible to all directories on the server under /catalog.
+ *
+ * Consult RFC 2109 (available on the Internet) for more
+ * information on setting path names for cookies.
+ *
+ *
+ * @param uri a The default value is If you use a binary value, you may want to use BASE64 encoding.
+ *
+ * With Version 0 cookies, values should not contain white
+ * space, brackets, parentheses, equals signs, commas,
+ * double quotes, slashes, question marks, at signs, colons,
+ * and semicolons. Empty values may not behave the same way
+ * on all browsers.
+ *
+ * @param newValue the new value of the cookie
+ *
+ * @see #getValue
+ */
+ public void setValue(String newValue) {
+ value = newValue;
+ }
+
+ /**
+ * Gets the current value of this Cookie.
+ *
+ * @return the current value of this Cookie
+ *
+ * @see #setValue
+ */
+ public String getValue() {
+ return value;
+ }
+
+ /**
+ * Returns the version of the protocol this cookie complies
+ * with. Version 1 complies with RFC 2109,
+ * and version 0 complies with the original
+ * cookie specification drafted by Netscape. Cookies provided
+ * by a browser use and identify the browser's cookie version.
+ *
+ * @return 0 if the cookie complies with the
+ * original Netscape specification; 1
+ * if the cookie complies with RFC 2109
+ *
+ * @see #setVersion
+ */
+ public int getVersion() {
+ return version;
+ }
+
+ /**
+ * Sets the version of the cookie protocol that this Cookie complies
+ * with.
+ *
+ * Version 0 complies with the original Netscape cookie
+ * specification. Version 1 complies with RFC 2109.
+ *
+ * Since RFC 2109 is still somewhat new, consider
+ * version 1 as experimental; do not use it yet on production sites.
+ *
+ * @param v 0 if the cookie should comply with the original Netscape
+ * specification; 1 if the cookie should comply with RFC 2109
+ *
+ * @see #getVersion
+ */
+ public void setVersion(int v) {
+ version = v;
+ }
+
+ /*
+ * Tests a string and returns true if the string counts as a
+ * reserved token in the Java language.
+ *
+ * @param value the If isHttpOnly is set to true, this cookie is
+ * marked as HttpOnly, by adding the HttpOnly attribute
+ * to it.
+ *
+ * HttpOnly cookies are not supposed to be exposed to
+ * client-side scripting code, and may therefore help mitigate certain
+ * kinds of cross-site scripting attacks.
+ *
+ * @param isHttpOnly true if this cookie is to be marked as
+ * HttpOnly, false otherwise
+ *
+ * @since Servlet 3.0
+ */
+ public void setHttpOnly(boolean isHttpOnly) {
+ this.isHttpOnly = isHttpOnly;
+ }
+
+ /**
+ * Checks whether this Cookie has been marked as HttpOnly.
+ *
+ * @return true if this Cookie has been marked as HttpOnly,
+ * false otherwise
+ *
+ * @since Servlet 3.0
+ */
+ public boolean isHttpOnly() {
+ return isHttpOnly;
+ }
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpServlet.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpServlet.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpServlet.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,957 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.io.OutputStreamWriter;
+import java.io.UnsupportedEncodingException;
+import java.lang.reflect.Method;
+import java.text.MessageFormat;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import javax.servlet.*;
+
+
+/**
+ *
+ * Provides an abstract class to be subclassed to create
+ * an HTTP servlet suitable for a Web site. A subclass of
+ * There's almost no reason to override the Likewise, there's almost no reason to override the
+ * Servlets typically run on multithreaded servers,
+ * so be aware that a servlet must handle concurrent
+ * requests and be careful to synchronize access to shared resources.
+ * Shared resources include in-memory data such as
+ * instance or class variables and external objects
+ * such as files, database connections, and network
+ * connections.
+ * See the
+ *
+ * Java Tutorial on Multithreaded Programming for more
+ * information on handling multiple threads in a Java program.
+ *
+ * @author Various
+ */
+
+public abstract class HttpServlet extends GenericServlet
+{
+ private static final String METHOD_DELETE = "DELETE";
+ private static final String METHOD_HEAD = "HEAD";
+ private static final String METHOD_GET = "GET";
+ private static final String METHOD_OPTIONS = "OPTIONS";
+ private static final String METHOD_POST = "POST";
+ private static final String METHOD_PUT = "PUT";
+ private static final String METHOD_TRACE = "TRACE";
+
+ private static final String HEADER_IFMODSINCE = "If-Modified-Since";
+ private static final String HEADER_LASTMOD = "Last-Modified";
+
+ private static final String LSTRING_FILE =
+ "javax.servlet.http.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+
+ /**
+ * Does nothing, because this is an abstract class.
+ *
+ */
+
+ public HttpServlet() { }
+
+
+ /**
+ *
+ * Called by the server (via the Overriding this method to support a GET request also
+ * automatically supports an HTTP HEAD request. A HEAD
+ * request is a GET request that returns no body in the
+ * response, only the request header fields.
+ *
+ * When overriding this method, read the request data,
+ * write the response headers, get the response's writer or
+ * output stream object, and finally, write the response data.
+ * It's best to include content type and encoding. When using
+ * a The servlet container must write the headers before
+ * committing the response, because in HTTP the headers must be sent
+ * before the response body.
+ *
+ * Where possible, set the Content-Length header (with the
+ * {@link javax.servlet.ServletResponse#setContentLength} method),
+ * to allow the servlet container to use a persistent connection
+ * to return its response to the client, improving performance.
+ * The content length is automatically set if the entire response fits
+ * inside the response buffer.
+ *
+ * When using HTTP 1.1 chunked encoding (which means that the response
+ * has a Transfer-Encoding header), do not set the Content-Length header.
+ *
+ * The GET method should be safe, that is, without
+ * any side effects for which users are held responsible.
+ * For example, most form queries have no side effects.
+ * If a client request is intended to change stored data,
+ * the request should use some other HTTP method.
+ *
+ * The GET method should also be idempotent, meaning
+ * that it can be safely repeated. Sometimes making a
+ * method safe also makes it idempotent. For example,
+ * repeating queries is both safe and idempotent, but
+ * buying a product online or modifying data is neither
+ * safe nor idempotent.
+ *
+ * If the request is incorrectly formatted, Servlets that support HTTP GET requests and can quickly determine
+ * their last modification time should override this method.
+ * This makes browser and proxy caches work more effectively,
+ * reducing the load on server and network resources.
+ *
+ * @param req the Receives an HTTP HEAD request from the protected
+ * If you override this method, you can avoid computing
+ * the response body and just set the response headers
+ * directly to improve performance. Make sure that the
+ * If the HTTP HEAD request is incorrectly formatted,
+ * When overriding this method, read the request data,
+ * write the response headers, get the response's writer or output
+ * stream object, and finally, write the response data. It's best
+ * to include content type and encoding. When using a
+ * The servlet container must write the headers before committing the
+ * response, because in HTTP the headers must be sent before the
+ * response body.
+ *
+ * Where possible, set the Content-Length header (with the
+ * {@link javax.servlet.ServletResponse#setContentLength} method),
+ * to allow the servlet container to use a persistent connection
+ * to return its response to the client, improving performance.
+ * The content length is automatically set if the entire response fits
+ * inside the response buffer.
+ *
+ * When using HTTP 1.1 chunked encoding (which means that the response
+ * has a Transfer-Encoding header), do not set the Content-Length header.
+ *
+ * This method does not need to be either safe or idempotent.
+ * Operations requested through POST can have side effects for
+ * which the user can be held accountable, for example,
+ * updating stored data or buying items online.
+ *
+ * If the HTTP POST request is incorrectly formatted,
+ * When overriding this method, leave intact
+ * any content headers sent with the request (including
+ * Content-Length, Content-Type, Content-Transfer-Encoding,
+ * Content-Encoding, Content-Base, Content-Language, Content-Location,
+ * Content-MD5, and Content-Range). If your method cannot
+ * handle a content header, it must issue an error message
+ * (HTTP 501 - Not Implemented) and discard the request.
+ * For more information on HTTP 1.1, see RFC 2616
+ * .
+ *
+ * This method does not need to be either safe or idempotent.
+ * Operations that If the HTTP PUT request is incorrectly formatted,
+ * This method does not need to be either safe
+ * or idempotent. Operations requested through
+ * DELETE can have side effects for which users
+ * can be held accountable. When using
+ * this method, it may be useful to save a copy of the
+ * affected URL in temporary storage.
+ *
+ * If the HTTP DELETE request is incorrectly formatted,
+ * There's no need to override this method unless the
+ * servlet implements new HTTP methods, beyond those
+ * implemented by HTTP 1.1.
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * OPTIONS request
+ *
+ * @exception ServletException if the request for the
+ * OPTIONS cannot be handled
+ */
+ protected void doOptions(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ Method[] methods = getAllDeclaredMethods(this.getClass());
+
+ boolean ALLOW_GET = false;
+ boolean ALLOW_HEAD = false;
+ boolean ALLOW_POST = false;
+ boolean ALLOW_PUT = false;
+ boolean ALLOW_DELETE = false;
+ boolean ALLOW_TRACE = true;
+ boolean ALLOW_OPTIONS = true;
+
+ for (int i=0; i The servlet container creates an Same as the value of the CGI variable AUTH_TYPE.
+ *
+ * @return one of the static members BASIC_AUTH,
+ * FORM_AUTH, CLIENT_CERT_AUTH, DIGEST_AUTH
+ * (suitable for == comparison) or
+ * the container-specific string indicating
+ * the authentication scheme, or
+ * The date is returned as
+ * the number of milliseconds since January 1, 1970 GMT.
+ * The header name is case insensitive.
+ *
+ * If the request did not have a header of the
+ * specified name, this method returns -1. If the header
+ * can't be converted to a date, the method throws
+ * an Some headers, such as If the request did not include any headers
+ * of the specified name, this method returns an empty
+ * Some servlet containers do not allow
+ * servlets to access headers using this method, in
+ * which case this method returns The header name is case insensitive.
+ *
+ * @param name a This method returns Same as the value of the CGI variable PATH_INFO.
+ *
+ * @return a If the URL does not have any extra path information,
+ * this method returns It is possible that a servlet container may match a context by
+ * more than one context path. In such cases this method will return the
+ * actual context path used by the request and it may differ from the
+ * path returned by the
+ * {@link javax.servlet.ServletContext#getContextPath()} method.
+ * The context path returned by
+ * {@link javax.servlet.ServletContext#getContextPath()}
+ * should be considered as the prime or preferred context path of the
+ * application.
+ *
+ * @return a The role name “*” should never be used as an argument in calling
+ * To reconstruct an URL with a scheme and host, use
+ * {@link HttpUtils#getRequestURL}.
+ *
+ * @return a If this request has been forwarded using
+ * {@link javax.servlet.RequestDispatcher#forward}, the server path in the
+ * reconstructed URL must reflect the path used to obtain the
+ * RequestDispatcher, and not the server path specified by the client.
+ *
+ * Because this method returns a This method is useful for creating redirect messages
+ * and for reporting errors.
+ *
+ * @return a This method will return an empty string ("") if the
+ * servlet used to process this request was matched using
+ * the "/*" pattern.
+ *
+ * @return a If To make sure the session is properly maintained,
+ * you must call this method before
+ * the response is committed. If the container is using cookies
+ * to maintain session integrity and is asked to create a new session
+ * when the response is committed, an IllegalStateException is thrown.
+ *
+ * @param create If the client did not specify any session ID, this method returns
+ * This method may modify and commit the argument
+ * This method returns without throwing a When this method returns without throwing an exception, it must
+ * have established non-null values as the values returned by
+ * If this request is of type Any changes to the returned This class implements the Wrapper or Decorator pattern. Methods default
+ * to calling through to the wrapped request object.
+ *
+ * @see javax.servlet.http.HttpServletRequest
+ * @since Servlet 2.3
+ */
+
+
+public class HttpServletRequestWrapper extends ServletRequestWrapper implements HttpServletRequest {
+
+ /**
+ * Constructs a request object wrapping the given request.
+ * @throws java.lang.IllegalArgumentException if the request is null
+ */
+ public HttpServletRequestWrapper(HttpServletRequest request) {
+ super(request);
+ }
+
+ private HttpServletRequest _getHttpServletRequest() {
+ return (HttpServletRequest) super.getRequest();
+ }
+
+ /**
+ * The default behavior of this method is to return getAuthType()
+ * on the wrapped request object.
+ */
+ @Override
+ public String getAuthType() {
+ return this._getHttpServletRequest().getAuthType();
+ }
+
+ /**
+ * The default behavior of this method is to return getCookies()
+ * on the wrapped request object.
+ */
+ @Override
+ public Cookie[] getCookies() {
+ return this._getHttpServletRequest().getCookies();
+ }
+
+ /**
+ * The default behavior of this method is to return getDateHeader(String name)
+ * on the wrapped request object.
+ */
+ @Override
+ public long getDateHeader(String name) {
+ return this._getHttpServletRequest().getDateHeader(name);
+ }
+
+ /**
+ * The default behavior of this method is to return getHeader(String name)
+ * on the wrapped request object.
+ */
+ @Override
+ public String getHeader(String name) {
+ return this._getHttpServletRequest().getHeader(name);
+ }
+
+ /**
+ * The default behavior of this method is to return getHeaders(String name)
+ * on the wrapped request object.
+ */
+ @Override
+ public Enumeration Any changes to the returned The servlet container creates an For robust session tracking, all URLs emitted by a servlet
+ * should be run through this
+ * method. Otherwise, URL rewriting cannot be used with browsers
+ * which do not support cookies.
+ *
+ * If the URL is relative, it is always relative to the current
+ * HttpServletRequest.
+ *
+ * @param url the url to be encoded.
+ * @return the encoded URL if encoding is needed;
+ * the unchanged URL otherwise.
+ * @exception IllegalArgumentException if the url is not valid
+ */
+ public String encodeURL(String url);
+
+ /**
+ * Encodes the specified URL for use in the
+ * All URLs sent to the If the URL is relative, it is always relative to the current
+ * HttpServletRequest.
+ *
+ * @param url the url to be encoded.
+ * @return the encoded URL if encoding is needed;
+ * the unchanged URL otherwise.
+ * @exception IllegalArgumentException if the url is not valid
+ *
+ * @see #sendRedirect
+ * @see #encodeUrl
+ */
+ public String encodeRedirectURL(String url);
+
+ /**
+ * @deprecated As of version 2.1, use encodeURL(String url) instead
+ *
+ * @param url the url to be encoded.
+ * @return the encoded URL if encoding is needed;
+ * the unchanged URL otherwise.
+ * @exception IllegalArgumentException if the url is not valid
+ */
+ public String encodeUrl(String url);
+
+ /**
+ * @deprecated As of version 2.1, use
+ * encodeRedirectURL(String url) instead
+ *
+ * @param url the url to be encoded.
+ * @return the encoded URL if encoding is needed;
+ * the unchanged URL otherwise.
+ * @exception IllegalArgumentException if the url is not valid
+ */
+ public String encodeRedirectUrl(String url);
+
+ /**
+ * Sends an error response to the client using the specified
+ * status and clears the buffer. The server defaults to creating the
+ * response to look like an HTML-formatted server error page
+ * containing the specified message, setting the content type
+ * to "text/html". The server will preserve cookies and may clear or
+ * update any headers needed to serve the error page as a valid response.
+ *
+ * If an error-page declaration has been made for the web application
+ * corresponding to the status code passed in, it will be served back in
+ * preference to the suggested msg parameter and the msg parameter will
+ * be ignored.
+ *
+ * If the response has already been committed, this method throws
+ * an IllegalStateException.
+ * After using this method, the response should be considered
+ * to be committed and should not be written to.
+ *
+ * @param sc the error status code
+ * @param msg the descriptive message
+ * @exception IOException If an input or output exception occurs
+ * @exception IllegalStateException If the response was committed
+ */
+ public void sendError(int sc, String msg) throws IOException;
+
+ /**
+ * Sends an error response to the client using the specified status
+ * code and clears the buffer.
+ *
+ * The server will preserve cookies and may clear or
+ * update any headers needed to serve the error page as a valid response.
+ *
+ * If an error-page declaration has been made for the web application
+ * corresponding to the status code passed in, it will be served back
+ * the error page
+ *
+ * If the response has already been committed, this method throws
+ * an IllegalStateException.
+ * After using this method, the response should be considered
+ * to be committed and should not be written to.
+ *
+ * @param sc the error status code
+ * @exception IOException If an input or output exception occurs
+ * @exception IllegalStateException If the response was committed
+ * before this method call
+ */
+ public void sendError(int sc) throws IOException;
+
+ /**
+ * Sends a temporary redirect response to the client using the
+ * specified redirect location URL and clears the buffer. The buffer will
+ * be replaced with the data set by this method. Calling this method sets the
+ * status code to {@link #SC_FOUND} 302 (Found).
+ * This method can accept relative URLs;the servlet container must convert
+ * the relative URL to an absolute URL
+ * before sending the response to the client. If the location is relative
+ * without a leading '/' the container interprets it as relative to
+ * the current request URI. If the location is relative with a leading
+ * '/' the container interprets it as relative to the servlet container root.
+ * If the location is relative with two leading '/' the container interprets
+ * it as a network-path reference (see
+ *
+ * RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, section 4.2
+ * "Relative Reference").
+ *
+ * If the response has already been committed, this method throws
+ * an IllegalStateException.
+ * After using this method, the response should be considered
+ * to be committed and should not be written to.
+ *
+ * @param location the redirect location URL
+ * @exception IOException If an input or output exception occurs
+ * @exception IllegalStateException If the response was committed or
+ * if a partial URL is given and cannot be converted into a valid URL
+ */
+ public void sendRedirect(String location) throws IOException;
+
+ /**
+ *
+ * Sets a response header with the given name and
+ * date-value. The date is specified in terms of
+ * milliseconds since the epoch. If the header had already
+ * been set, the new value overwrites the previous one. The
+ * This method is used to set the return status code when there is
+ * no error (for example, for the SC_OK or SC_MOVED_TEMPORARILY status
+ * codes).
+ *
+ * If this method is used to set an error code, then the container's
+ * error page mechanism will not be triggered. If there is an error and
+ * the caller wishes to invoke an error page defined in the web
+ * application, then {@link #sendError} must be used instead.
+ *
+ * This method preserves any cookies and other response headers.
+ *
+ * Valid status codes are those in the 2XX, 3XX, 4XX, and 5XX ranges.
+ * Other status codes are treated as container specific.
+ *
+ * @param sc the status code
+ *
+ * @see #sendError
+ */
+ public void setStatus(int sc);
+
+
+ /**
+ * @deprecated As of version 2.1, due to ambiguous meaning of the
+ * message parameter. To set a status code
+ * use If a response header with the given name exists and contains
+ * multiple values, the value that was added first will be returned.
+ *
+ * This method considers only response headers set or added via
+ * {@link #setHeader}, {@link #addHeader}, {@link #setDateHeader},
+ * {@link #addDateHeader}, {@link #setIntHeader}, or
+ * {@link #addIntHeader}, respectively.
+ *
+ * @param name the name of the response header whose value to return
+ *
+ * @return the value of the response header with the given name,
+ * or null if no header with the given name has been set
+ * on this response
+ *
+ * @since Servlet 3.0
+ */
+ public String getHeader(String name);
+
+ /**
+ * Gets the values of the response header with the given name.
+ *
+ * This method considers only response headers set or added via
+ * {@link #setHeader}, {@link #addHeader}, {@link #setDateHeader},
+ * {@link #addDateHeader}, {@link #setIntHeader}, or
+ * {@link #addIntHeader}, respectively.
+ *
+ * Any changes to the returned This method considers only response headers set or added via
+ * {@link #setHeader}, {@link #addHeader}, {@link #setDateHeader},
+ * {@link #addDateHeader}, {@link #setIntHeader}, or
+ * {@link #addIntHeader}, respectively.
+ *
+ * Any changes to the returned Any changes to the returned Any changes to the returned The servlet container uses this interface to create a session
+ * between an HTTP client and an HTTP server. The session persists
+ * for a specified time period, across more than one connection or
+ * page request from the user. A session usually corresponds to one
+ * user, who may visit a site many times. The server can maintain a
+ * session in many ways such as using cookies or rewriting URLs.
+ *
+ * This interface allows servlets to
+ * When an application stores an object in or removes an object from a
+ * session, the session checks whether the object implements
+ * {@link HttpSessionBindingListener}. If it does,
+ * the servlet notifies the object that it has been bound to or unbound
+ * from the session. Notifications are sent after the binding methods complete.
+ * For session that are invalidated or expire, notifications are sent after
+ * the session has been invalidated or expired.
+ *
+ * When container migrates a session between VMs in a distributed container
+ * setting, all session attributes implementing the {@link HttpSessionActivationListener}
+ * interface are notified.
+ *
+ * A servlet should be able to handle cases in which
+ * the client does not choose to join a session, such as when cookies are
+ * intentionally turned off. Until the client joins the session,
+ * Session information is scoped only to the current web application
+ * ( Actions that your application takes, such as getting or setting
+ * a value associated with the session, do not affect the access
+ * time.
+ *
+ * @return a An interval value of zero or less indicates that the
+ * session should never timeout.
+ *
+ * @param interval An integer specifying the number
+ * of seconds
+ */
+ public void setMaxInactiveInterval(int interval);
+
+
+ /**
+ * Returns the maximum time interval, in seconds, that
+ * the servlet container will keep this session open between
+ * client accesses. After this interval, the servlet container
+ * will invalidate the session. The maximum time interval can be set
+ * with the A return value of zero or less indicates that the
+ * session will never timeout.
+ *
+ * @return an integer specifying the number of
+ * seconds this session remains open
+ * between client requests
+ *
+ * @see #setMaxInactiveInterval
+ */
+ public int getMaxInactiveInterval();
+
+
+ /**
+ *
+ * @deprecated As of Version 2.1, this method is
+ * deprecated and has no replacement.
+ * It will be removed in a future
+ * version of the Java Servlet API.
+ *
+ */
+ public HttpSessionContext getSessionContext();
+
+
+ /**
+ * Returns the object bound with the specified name in this session, or
+ * After this method executes, and if the new object
+ * implements If an object was already bound to this session of this name
+ * that implements If the value passed in is null, this has the same effect as calling
+ * After this method executes, and if the object
+ * implements In order to receive these notification events, the implementation
+ * class must be either declared in the deployment descriptor of the web
+ * application, annotated with {@link javax.servlet.annotation.WebListener},
+ * or registered via one of the addListener methods defined on
+ * {@link javax.servlet.ServletContext}.
+ *
+ * The order in which implementations of this interface are invoked is
+ * unspecified.
+ *
+ * @since Servlet 2.3
+ */
+
+public interface HttpSessionAttributeListener extends EventListener {
+
+ /**
+ * Receives notification that an attribute has been added to a
+ * session.
+ *
+ * @param event the HttpSessionBindingEvent containing the session
+ * and the name and value of the attribute that was added
+ */
+ public void attributeAdded(HttpSessionBindingEvent event);
+
+ /**
+ * Receives notification that an attribute has been removed from a
+ * session.
+ *
+ * @param event the HttpSessionBindingEvent containing the session
+ * and the name and value of the attribute that was removed
+ */
+ public void attributeRemoved(HttpSessionBindingEvent event);
+
+ /**
+ * Receives notification that an attribute has been replaced in a
+ * session.
+ *
+ * @param event the HttpSessionBindingEvent containing the session
+ * and the name and (old) value of the attribute that was replaced
+ */
+ public void attributeReplaced(HttpSessionBindingEvent event);
+
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionBindingEvent.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionBindingEvent.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionBindingEvent.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,156 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+/**
+ *
+ * Events of this type are either sent to an object that implements
+ * {@link HttpSessionBindingListener} when it is bound or unbound from a
+ * session, or to a {@link HttpSessionAttributeListener} that has been
+ * configured in the deployment descriptor when any attribute is bound, unbound
+ * or replaced in a session.
+ *
+ * The session binds the object by a call to
+ * In order to receive these notification events, the implementation
+ * class must be either declared in the deployment descriptor of the web
+ * application, annotated with {@link javax.servlet.annotation.WebListener},
+ * or registered via one of the addListener methods defined on
+ * {@link javax.servlet.ServletContext}.
+ *
+ * The order in which implementations of this interface are invoked is
+ * unspecified.
+ *
+ * @since Servlet 3.1
+ */
+
+public interface HttpSessionIdListener extends EventListener {
+
+ /**
+ * Receives notification that session id has been changed in a
+ * session.
+ *
+ * @param event the HttpSessionBindingEvent containing the session
+ * and the name and (old) value of the attribute that was replaced
+ *
+ * @param oldSessionId the old session id
+ */
+ public void sessionIdChanged(HttpSessionEvent event, String oldSessionId);
+
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,99 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.util.EventListener;
+
+/**
+ * Interface for receiving notification events about HttpSession
+ * lifecycle changes.
+ *
+ * In order to receive these notification events, the implementation
+ * class must be either declared in the deployment descriptor of the web
+ * application, annotated with {@link javax.servlet.annotation.WebListener},
+ * or registered via one of the addListener methods defined on
+ * {@link javax.servlet.ServletContext}.
+ *
+ * Implementations of this interface are invoked at their
+ * {@link #sessionCreated} method in the order in which they have been
+ * declared, and at their {@link #sessionDestroyed} method in reverse
+ * order.
+ *
+ * @see HttpSessionEvent
+ *
+ * @since Servlet 2.3
+ */
+public interface HttpSessionListener extends EventListener {
+
+ /**
+ * Receives notification that a session has been created.
+ *
+ * @param se the HttpSessionEvent containing the session
+ */
+ public void sessionCreated(HttpSessionEvent se);
+
+ /**
+ * Receives notification that a session is about to be invalidated.
+ *
+ * @param se the HttpSessionEvent containing the session
+ */
+ public void sessionDestroyed(HttpSessionEvent se);
+
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpUpgradeHandler.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpUpgradeHandler.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpUpgradeHandler.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,64 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2012 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.http;
+
+/**
+ * This interface encapsulates the upgrade protocol processing.
+ * A HttpUpgradeHandler implementation would allow the servlet container
+ * to communicate with it.
+ *
+ * @since Servlet 3.1
+ */
+
+public interface HttpUpgradeHandler {
+ /**
+ * It is called once the HTTP Upgrade process has been completed and
+ * the upgraded connection is ready to start using the new protocol.
+ *
+ * @param wc the WebConnection object associated to this upgrade request
+ */
+ public void init(WebConnection wc);
+
+ /**
+ * It is called when the client is disconnected.
+ */
+ public void destroy();
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpUtils.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpUtils.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpUtils.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,327 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import javax.servlet.ServletInputStream;
+import java.util.Hashtable;
+import java.util.ResourceBundle;
+import java.util.StringTokenizer;
+import java.io.IOException;
+
+/**
+ * @deprecated As of Java(tm) Servlet API 2.3.
+ * These methods were only useful
+ * with the default encoding and have been moved
+ * to the request interfaces.
+ *
+ */
+public class HttpUtils {
+
+ private static final String LSTRING_FILE =
+ "javax.servlet.http.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+
+ /**
+ * Constructs an empty A key can appear more than once in the query string
+ * with different values. However, the key appears only once in
+ * the hashtable, with its value being
+ * an array of strings containing the multiple values sent
+ * by the query string.
+ *
+ * The keys and values in the hashtable are stored in their
+ * decoded form, so
+ * any + characters are converted to spaces, and characters
+ * sent in hexadecimal notation (like %xx) are
+ * converted to ASCII characters.
+ *
+ * @param s a string containing the query to be parsed
+ *
+ * @return a The data sent by the POST method contains key-value
+ * pairs. A key can appear more than once in the POST data
+ * with different values. However, the key appears only once in
+ * the hashtable, with its value being
+ * an array of strings containing the multiple values sent
+ * by the POST method.
+ *
+ * The keys and values in the hashtable are stored in their
+ * decoded form, so
+ * any + characters are converted to spaces, and characters
+ * sent in hexadecimal notation (like %xx) are
+ * converted to ASCII characters.
+ *
+ * @param len an integer specifying the length,
+ * in characters, of the
+ * Because this method returns a This method is useful for creating redirect messages
+ * and for reporting errors.
+ *
+ * @param req a This class represents a part or form item that was received within a
+ * This method is not guaranteed to succeed if called more than once for
+ * the same part. This allows a particular implementation to use, for
+ * example, file renaming, where possible, rather than copying all of the
+ * underlying data, thus gaining a significant performance benefit.
+ *
+ * @param fileName the name of the file to which the stream will be
+ * written. The file is created relative to the location as
+ * specified in the MultipartConfig
+ *
+ * @throws IOException if an error occurs.
+ */
+ public void write(String fileName) throws IOException;
+
+ /**
+ * Deletes the underlying storage for a file item, including deleting any
+ * associated temporary disk file.
+ *
+ * @throws IOException if an error occurs.
+ */
+ public void delete() throws IOException;
+
+ /**
+ *
+ * Returns the value of the specified mime header
+ * as a Any changes to the returned Part header names are case insensitive.
+ *
+ * @param name the header name whose values to return
+ *
+ * @return a (possibly empty) Some servlet containers do not allow
+ * servlets to access headers using this method, in
+ * which case this method returns Any changes to the returned 30000
ms.
+ *
+ * @param timeout the timeout in milliseconds
+ *
+ * @throws IllegalStateException if this method is called after
+ * the container-initiated dispatch, during which one of the
+ * {@link ServletRequest#startAsync} methods was called, has
+ * returned to the container
+ */
+ public void setTimeout(long timeout);
+
+
+ /**
+ * Gets the timeout (in milliseconds) for this AsyncContext.
+ *
+ * doFilter
method.
+ * Every Filter has access to a FilterConfig object from which it can obtain
+ * its initialization parameters, and a reference to the ServletContext which
+ * it can use, for example, to load resources needed for filtering tasks.
+ *
+ *
+ *
+ *
+ * @since Servlet 2.3
+ */
+
+public interface Filter {
+
+ /**
+ * Called by the web container to indicate to a filter that it is
+ * being placed into service.
+ *
+ *
+ *
+ */
+ public void init(FilterConfig filterConfig) throws ServletException;
+
+
+ /**
+ * The doFilter
method of the Filter is called by the
+ * container each time a request/response pair is passed through the
+ * chain due to a client request for a resource at the end of the chain.
+ * The FilterChain passed in to this method allows the Filter to pass
+ * on the request and response to the next entity in the chain.
+ *
+ *
+ *
+ */
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain)
+ throws IOException, ServletException;
+
+
+ /**
+ * Called by the web container to indicate to a filter that it is being
+ * taken out of service.
+ *
+ *
+ *
+ * chain.doFilter()
),
+ * String
containing the value of the
+ * named initialization parameter, or null
if
+ * the initialization parameter does not exist.
+ *
+ * @param name a String
specifying the name of the
+ * initialization parameter
+ *
+ * @return a String
containing the value of the
+ * initialization parameter, or null
if
+ * the initialization parameter does not exist
+ */
+ public String getInitParameter(String name);
+
+
+ /**
+ * Returns the names of the filter's initialization parameters
+ * as an Enumeration
of String
objects,
+ * or an empty Enumeration
if the filter has
+ * no initialization parameters.
+ *
+ * @return an Enumeration
of String
objects
+ * containing the names of the filter's initialization parameters
+ */
+ public EnumerationFilterRegistration
.
+ *
+ * Collection
must not
+ * affect this FilterRegistration
.
+ *
+ * @return a (possibly empty) Collection
of the currently
+ * available servlet name mappings of the Filter represented by this
+ * FilterRegistration
+ */
+ public CollectionFilterRegistration
.
+ *
+ * Collection
must not
+ * affect this FilterRegistration
.
+ *
+ * @return a (possibly empty) Collection
of the currently
+ * available URL pattern mappings of the Filter represented by this
+ * FilterRegistration
+ */
+ public CollectionGenericServlet
implements the Servlet
+ * and ServletConfig
interfaces. GenericServlet
+ * may be directly extended by a servlet, although it's more common to extend
+ * a protocol-specific subclass such as HttpServlet
.
+ *
+ * GenericServlet
makes writing servlets
+ * easier. It provides simple versions of the lifecycle methods
+ * init
and destroy
and of the methods
+ * in the ServletConfig
interface. GenericServlet
+ * also implements the log
method, declared in the
+ * ServletContext
interface.
+ *
+ * service
method.
+ *
+ *
+ * @author Various
+ */
+
+
+public abstract class GenericServlet
+ implements Servlet, ServletConfig, java.io.Serializable
+{
+ private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+ private transient ServletConfig config;
+
+
+ /**
+ *
+ * Does nothing. All of the servlet initialization
+ * is done by one of the init
methods.
+ *
+ */
+ public GenericServlet() { }
+
+
+ /**
+ * Called by the servlet container to indicate to a servlet that the
+ * servlet is being taken out of service. See {@link Servlet#destroy}.
+ *
+ *
+ */
+ public void destroy() {
+ }
+
+
+ /**
+ * Returns a String
containing the value of the named
+ * initialization parameter, or null
if the parameter does
+ * not exist. See {@link ServletConfig#getInitParameter}.
+ *
+ * ServletConfig
object.
+ *
+ * @param name a String
specifying the name
+ * of the initialization parameter
+ *
+ * @return String a String
containing the value
+ * of the initialization parameter
+ *
+ */
+ public String getInitParameter(String name) {
+ ServletConfig sc = getServletConfig();
+ if (sc == null) {
+ throw new IllegalStateException(
+ lStrings.getString("err.servlet_config_not_initialized"));
+ }
+
+ return sc.getInitParameter(name);
+ }
+
+
+ /**
+ * Returns the names of the servlet's initialization parameters
+ * as an Enumeration
of String
objects,
+ * or an empty Enumeration
if the servlet has no
+ * initialization parameters. See {@link
+ * ServletConfig#getInitParameterNames}.
+ *
+ * ServletConfig
object.
+ *
+ *
+ * @return Enumeration an enumeration of String
+ * objects containing the names of
+ * the servlet's initialization parameters
+ */
+ public EnumerationServletConfig
object
+ * that initialized this servlet
+ */
+ public ServletConfig getServletConfig() {
+ return config;
+ }
+
+
+ /**
+ * Returns a reference to the {@link ServletContext} in which this servlet
+ * is running. See {@link ServletConfig#getServletContext}.
+ *
+ * ServletConfig
object.
+ *
+ *
+ * @return ServletContext the ServletContext
object
+ * passed to this servlet by the init
+ * method
+ */
+ public ServletContext getServletContext() {
+ ServletConfig sc = getServletConfig();
+ if (sc == null) {
+ throw new IllegalStateException(
+ lStrings.getString("err.servlet_config_not_initialized"));
+ }
+
+ return sc.getServletContext();
+ }
+
+
+ /**
+ * Returns information about the servlet, such as
+ * author, version, and copyright.
+ * By default, this method returns an empty string. Override this method
+ * to have it return a meaningful value. See {@link
+ * Servlet#getServletInfo}.
+ *
+ *
+ * @return String information about this servlet, by default an
+ * empty string
+ */
+ public String getServletInfo() {
+ return "";
+ }
+
+
+ /**
+ * Called by the servlet container to indicate to a servlet that the
+ * servlet is being placed into service. See {@link Servlet#init}.
+ *
+ * super.init(config)
.
+ *
+ * @param config the ServletConfig
object
+ * that contains configutation
+ * information for this servlet
+ *
+ * @exception ServletException if an exception occurs that
+ * interrupts the servlet's normal
+ * operation
+ *
+ * @see UnavailableException
+ */
+ public void init(ServletConfig config) throws ServletException {
+ this.config = config;
+ this.init();
+ }
+
+
+ /**
+ * A convenience method which can be overridden so that there's no need
+ * to call super.init(config)
.
+ *
+ * GenericServlet.init(ServletConfig config)
.
+ * The ServletConfig
object can still be retrieved via {@link
+ * #getServletConfig}.
+ *
+ * @exception ServletException if an exception occurs that
+ * interrupts the servlet's
+ * normal operation
+ */
+ public void init() throws ServletException {
+
+ }
+
+
+ /**
+ * Writes the specified message to a servlet log file, prepended by the
+ * servlet's name. See {@link ServletContext#log(String)}.
+ *
+ * @param msg a String
specifying
+ * the message to be written to the log file
+ */
+ public void log(String msg) {
+ getServletContext().log(getServletName() + ": "+ msg);
+ }
+
+
+ /**
+ * Writes an explanatory message and a stack trace
+ * for a given Throwable
exception
+ * to the servlet log file, prepended by the servlet's name.
+ * See {@link ServletContext#log(String, Throwable)}.
+ *
+ *
+ * @param message a String
that describes
+ * the error or exception
+ *
+ * @param t the java.lang.Throwable
error
+ * or exception
+ */
+ public void log(String message, Throwable t) {
+ getServletContext().log(getServletName() + ": " + message, t);
+ }
+
+
+ /**
+ * Called by the servlet container to allow the servlet to respond to
+ * a request. See {@link Servlet#service}.
+ *
+ * HttpServlet
, must override it.
+ *
+ * @param req the ServletRequest
object
+ * that contains the client's request
+ *
+ * @param res the ServletResponse
object
+ * that will contain the servlet's response
+ *
+ * @exception ServletException if an exception occurs that
+ * interferes with the servlet's
+ * normal operation occurred
+ *
+ * @exception IOException if an input or output
+ * exception occurs
+ */
+
+ public abstract void service(ServletRequest req, ServletResponse res)
+ throws ServletException, IOException;
+
+
+ /**
+ * Returns the name of this servlet instance.
+ * See {@link ServletConfig#getServletName}.
+ *
+ * @return the name of this servlet instance
+ */
+ public String getServletName() {
+ ServletConfig sc = getServletConfig();
+ if (sc == null) {
+ throw new IllegalStateException(
+ lStrings.getString("err.servlet_config_not_initialized"));
+ }
+
+ return sc.getServletName();
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/HttpConstraintElement.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/HttpConstraintElement.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/HttpConstraintElement.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,172 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+import java.util.*;
+import javax.servlet.annotation.HttpConstraint;
+import javax.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
+import javax.servlet.annotation.ServletSecurity.TransportGuarantee;
+
+/**
+ * Java Class representation of an {@link HttpConstraint} annotation value.
+ *
+ * @since Servlet 3.0
+ */
+public class HttpConstraintElement {
+
+ private EmptyRoleSemantic emptyRoleSemantic;
+ private TransportGuarantee transportGuarantee;
+ private String[] rolesAllowed;
+
+ /**
+ * Constructs a default HTTP constraint element
+ */
+ public HttpConstraintElement() {
+ this(EmptyRoleSemantic.PERMIT);
+ }
+
+ /**
+ * Convenience constructor to establish EmptyRoleSemantic.DENY
+ *
+ * @param semantic should be EmptyRoleSemantic.DENY
+ */
+ public HttpConstraintElement(EmptyRoleSemantic semantic) {
+ this(semantic, TransportGuarantee.NONE, new String[0]);
+ }
+
+ /**
+ * Constructor to establish non-empty getRolesAllowed and/or
+ * TransportGuarantee.CONFIDENTIAL.
+ *
+ * @param guarantee TransportGuarantee.NONE or
+ * TransportGuarantee.CONFIDENTIAL
+ * @param roleNames the names of the roles that are to be
+ * allowed access
+ */
+ public HttpConstraintElement(TransportGuarantee guarantee,
+ String... roleNames) {
+ this(EmptyRoleSemantic.PERMIT, guarantee, roleNames);
+ }
+
+ /**
+ * Constructor to establish all of getEmptyRoleSemantic,
+ * getRolesAllowed, and getTransportGuarantee.
+ *
+ * @param semantic EmptyRoleSemantic.DENY or
+ * EmptyRoleSemantic.PERMIT
+ * @param guarantee TransportGuarantee.NONE or
+ * TransportGuarantee.CONFIDENTIAL
+ * @param roleNames the names of the roles that are to be allowed
+ * access, or missing if the semantic is EmptyRoleSemantic.DENY
+ */
+ public HttpConstraintElement(EmptyRoleSemantic semantic,
+ TransportGuarantee guarantee, String... roleNames) {
+ if (semantic == EmptyRoleSemantic.DENY && roleNames.length > 0) {
+ throw new IllegalArgumentException(
+ "Deny semantic with rolesAllowed");
+ }
+ this.emptyRoleSemantic = semantic;
+ this.transportGuarantee = guarantee;
+ this.rolesAllowed = copyStrings(roleNames);
+ }
+
+ /**
+ * Gets the default authorization semantic.
+ *
+ * getRolesAllowed
+ * returns a non-empty array, and should not be specified when a
+ * non-empty array is specified for getRolesAllowed.
+ *
+ * @return the {@link EmptyRoleSemantic} to be applied when
+ * getRolesAllowed
returns an empty (that is, zero-length)
+ * array
+ */
+ public EmptyRoleSemantic getEmptyRoleSemantic() {
+ return this.emptyRoleSemantic;
+ }
+
+ /**
+ * Gets the data protection requirement (i.e., whether or not SSL/TLS is
+ * required) that must be satisfied by the transport connection.
+ *
+ * @return the {@link TransportGuarantee} indicating the data
+ * protection that must be provided by the connection
+ */
+ public TransportGuarantee getTransportGuarantee() {
+ return this.transportGuarantee;
+ }
+
+ /**
+ * Gets the names of the authorized roles.
+ *
+ * getRolesAllowed
returns an empty array,
+ * access is to be denied independent of authentication state and
+ * identity. Conversely, if its value is PERMIT
, it
+ * indicates that access is to be allowed independent of authentication
+ * state and identity. When the array contains the names of one or
+ * more roles, it indicates that access is contingent on membership in at
+ * least one of the named roles (independent of the value of
+ * {@link #getEmptyRoleSemantic}).
+ */
+ public String[] getRolesAllowed() {
+ return copyStrings(this.rolesAllowed);
+ }
+
+ private String[] copyStrings(String[] strings) {
+ String[] arr = null;
+ if (strings != null) {
+ int len = strings.length;
+ arr = new String[len];
+ if (len > 0) {
+ System.arraycopy(strings, 0, arr, 0, len);
+ }
+ }
+
+ return ((arr != null) ? arr : new String[0]);
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/HttpMethodConstraintElement.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/HttpMethodConstraintElement.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/HttpMethodConstraintElement.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,98 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+import javax.servlet.annotation.HttpMethodConstraint;
+
+/**
+ * Java Class represntation of an {@link HttpMethodConstraint} annotation value.
+ *
+ * @since Servlet 3.0
+ */
+public class HttpMethodConstraintElement extends HttpConstraintElement {
+
+ private String methodName;
+
+ /**
+ * Constructs an instance with default {@link HttpConstraintElement}
+ * value.
+ *
+ * @param methodName the name of an HTTP protocol method. The name must
+ * not be null, or the empty string, and must be a legitimate HTTP
+ * Method name as defined by RFC 2616
+ */
+ public HttpMethodConstraintElement(String methodName) {
+ if (methodName == null || methodName.length() == 0) {
+ throw new IllegalArgumentException("invalid HTTP method name");
+ }
+ this.methodName = methodName;
+ }
+ /**
+ * Constructs an instance with specified {@link HttpConstraintElement}
+ * value.
+ *
+ * @param methodName the name of an HTTP protocol method. The name must
+ * not be null, or the empty string, and must be a legitimate HTTP
+ * Method name as defined by RFC 2616
+ *
+ * @param constraint the HTTPconstraintElement value to assign to the
+ * named HTTP method
+ */
+ public HttpMethodConstraintElement(String methodName,
+ HttpConstraintElement constraint) {
+ super(constraint.getEmptyRoleSemantic(),
+ constraint.getTransportGuarantee(),
+ constraint.getRolesAllowed());
+ if (methodName == null || methodName.length() == 0) {
+ throw new IllegalArgumentException("invalid HTTP method name");
+ }
+ this.methodName = methodName;
+ }
+
+ /**
+ * Gets the HTTP method name.
+ *
+ * @return the Http method name
+ */
+ public String getMethodName() {
+ return this.methodName;
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/LocalStrings.properties
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/LocalStrings.properties (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/LocalStrings.properties (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,65 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common Development
+# and Distribution License("CDDL") (collectively, the "License"). You
+# may not use this file except in compliance with the License. You can
+# obtain a copy of the License at
+# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+# or packager/legal/LICENSE.txt. See the License for the specific
+# language governing permissions and limitations under the License.
+#
+# When distributing the software, include this License Header Notice in each
+# file and include the License file at packager/legal/LICENSE.txt.
+#
+# GPL Classpath Exception:
+# Oracle designates this particular file as subject to the "Classpath"
+# exception as provided by Oracle in the GPL Version 2 section of the License
+# file that accompanied this code.
+#
+# Modifications:
+# If applicable, add the following below the License Header, with the fields
+# enclosed by brackets [] replaced by your own identifying information:
+# "Portions Copyright [year] [name of copyright owner]"
+#
+# Contributor(s):
+# If you wish your version of this file to be governed by only the CDDL or
+# only the GPL Version 2, indicate your decision by adding "[Contributor]
+# elects to include this software in this distribution under the [CDDL or GPL
+# Version 2] license." If you don't indicate a single choice of license, a
+# recipient has the option to distribute your version of this file under
+# either the CDDL, the GPL Version 2 or to extend the choice of license to
+# its licensees as provided above. However, if you add GPL Version 2 code
+# and therefore, elected the GPL Version 2 license, then the option applies
+# only if the new code is made subject to such option by the copyright
+# holder.
+#
+#
+# This file incorporates work covered by the following copyright and
+# permission notice:
+#
+# Copyright 2004 The Apache Software Foundation
+#
+# 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.
+#
+
+# Default localized string information
+# Localized for Locale en_US
+
+err.not_iso8859_1=Not an ISO 8859-1 character: {0}
+err.servlet_config_not_initialized=ServletConfig has not been initialized
+value.true=true
+value.false=false
Index: 3rdParty_sources/servlet-api/javax/servlet/LocalStrings_fr.properties
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/LocalStrings_fr.properties (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/LocalStrings_fr.properties (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,66 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common Development
+# and Distribution License("CDDL") (collectively, the "License"). You
+# may not use this file except in compliance with the License. You can
+# obtain a copy of the License at
+# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+# or packager/legal/LICENSE.txt. See the License for the specific
+# language governing permissions and limitations under the License.
+#
+# When distributing the software, include this License Header Notice in each
+# file and include the License file at packager/legal/LICENSE.txt.
+#
+# GPL Classpath Exception:
+# Oracle designates this particular file as subject to the "Classpath"
+# exception as provided by Oracle in the GPL Version 2 section of the License
+# file that accompanied this code.
+#
+# Modifications:
+# If applicable, add the following below the License Header, with the fields
+# enclosed by brackets [] replaced by your own identifying information:
+# "Portions Copyright [year] [name of copyright owner]"
+#
+# Contributor(s):
+# If you wish your version of this file to be governed by only the CDDL or
+# only the GPL Version 2, indicate your decision by adding "[Contributor]
+# elects to include this software in this distribution under the [CDDL or GPL
+# Version 2] license." If you don't indicate a single choice of license, a
+# recipient has the option to distribute your version of this file under
+# either the CDDL, the GPL Version 2 or to extend the choice of license to
+# its licensees as provided above. However, if you add GPL Version 2 code
+# and therefore, elected the GPL Version 2 license, then the option applies
+# only if the new code is made subject to such option by the copyright
+# holder.
+#
+#
+# This file incorporates work covered by the following copyright and
+# permission notice:
+#
+# Copyright 2004 The Apache Software Foundation
+#
+# 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.
+#
+
+# Default localized string information
+# Localized for Locale fr_FR
+
+err.not_iso8859_1={0} n''est pas un caract�re ISO 8859-1
+value.true=true
+value.false=false
+
+
Index: 3rdParty_sources/servlet-api/javax/servlet/LocalStrings_ja.properties
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/LocalStrings_ja.properties (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/LocalStrings_ja.properties (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,64 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common Development
+# and Distribution License("CDDL") (collectively, the "License"). You
+# may not use this file except in compliance with the License. You can
+# obtain a copy of the License at
+# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+# or packager/legal/LICENSE.txt. See the License for the specific
+# language governing permissions and limitations under the License.
+#
+# When distributing the software, include this License Header Notice in each
+# file and include the License file at packager/legal/LICENSE.txt.
+#
+# GPL Classpath Exception:
+# Oracle designates this particular file as subject to the "Classpath"
+# exception as provided by Oracle in the GPL Version 2 section of the License
+# file that accompanied this code.
+#
+# Modifications:
+# If applicable, add the following below the License Header, with the fields
+# enclosed by brackets [] replaced by your own identifying information:
+# "Portions Copyright [year] [name of copyright owner]"
+#
+# Contributor(s):
+# If you wish your version of this file to be governed by only the CDDL or
+# only the GPL Version 2, indicate your decision by adding "[Contributor]
+# elects to include this software in this distribution under the [CDDL or GPL
+# Version 2] license." If you don't indicate a single choice of license, a
+# recipient has the option to distribute your version of this file under
+# either the CDDL, the GPL Version 2 or to extend the choice of license to
+# its licensees as provided above. However, if you add GPL Version 2 code
+# and therefore, elected the GPL Version 2 license, then the option applies
+# only if the new code is made subject to such option by the copyright
+# holder.
+#
+#
+# This file incorporates work covered by the following copyright and
+# permission notice:
+#
+# Copyright 2004 The Apache Software Foundation
+#
+# 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.
+#
+
+# Default localized string information
+# Localized for Locale ja_JP
+
+err.not_iso8859_1=ISO 8859-1 \u306e\u6587\u5b57\u3067\u306f\u3042\u308a\u307e\u305b\u3093: {0}
+value.true=true
+value.false=false
Index: 3rdParty_sources/servlet-api/javax/servlet/MultipartConfigElement.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/MultipartConfigElement.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/MultipartConfigElement.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,142 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+import javax.servlet.annotation.MultipartConfig;
+
+/**
+ * Java Class represntation of an {@link MultipartConfig} annotation value.
+ *
+ * @since Servlet 3.0
+ */
+public class MultipartConfigElement {
+
+ private String location;
+ private long maxFileSize;
+ private long maxRequestSize;
+ private int fileSizeThreshold;
+
+ /**
+ * Constructs an instance with defaults for all but location.
+ *
+ * @param location defualts to "" if values is null.
+ */
+ public MultipartConfigElement(String location) {
+ if (location == null) {
+ this.location = "";
+ } else {
+ this.location = location;
+ }
+ this.maxFileSize = -1L;
+ this.maxRequestSize = -1L;
+ this.fileSizeThreshold = 0;
+ }
+
+ /**
+ * Constructs an instance with all values specified.
+ *
+ * @param location the directory location where files will be stored
+ * @param maxFileSize the maximum size allowed for uploaded files
+ * @param maxRequestSize the maximum size allowed for
+ * multipart/form-data requests
+ * @param fileSizeThreshold the size threshold after which files will
+ * be written to disk
+ */
+ public MultipartConfigElement(String location, long maxFileSize,
+ long maxRequestSize, int fileSizeThreshold) {
+ if (location == null) {
+ this.location = "";
+ } else {
+ this.location = location;
+ }
+ this.maxFileSize = maxFileSize;
+ this.maxRequestSize = maxRequestSize;
+ this.fileSizeThreshold = fileSizeThreshold;
+ }
+
+ /**
+ * Constructs an instance from a {@link MultipartConfig} annotation value.
+ *
+ * @param annotation the annotation value
+ */
+ public MultipartConfigElement(MultipartConfig annotation) {
+ this.location = annotation.location();
+ this.fileSizeThreshold = annotation.fileSizeThreshold();
+ this.maxFileSize = annotation.maxFileSize();
+ this.maxRequestSize = annotation.maxRequestSize();
+ }
+
+ /**
+ * Gets the directory location where files will be stored.
+ *
+ * @return the directory location where files will be stored
+ */
+ public String getLocation() {
+ return this.location;
+ }
+
+ /**
+ * Gets the maximum size allowed for uploaded files.
+ *
+ * @return the maximum size allowed for uploaded files
+ */
+ public long getMaxFileSize() {
+ return this.maxFileSize;
+ }
+
+ /**
+ * Gets the maximum size allowed for multipart/form-data requests.
+ *
+ * @return the maximum size allowed for multipart/form-data requests
+ */
+ public long getMaxRequestSize() {
+ return this.maxRequestSize;
+ }
+
+ /**
+ * Gets the size threshold after which files will be written to disk.
+ *
+ * @return the size threshold after which files will be written to disk
+ */
+ public int getFileSizeThreshold() {
+ return this.fileSizeThreshold;
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/ReadListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ReadListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ReadListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,82 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2011-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+
+package javax.servlet;
+
+import java.io.IOException;
+import java.util.EventListener;
+
+/**
+ * ReadListener
is registered with a {@link ServletInputStream},
+ * this method will be invoked by the container the first time when it is possible
+ * to read data. Subsequently the container will invoke this method if and only
+ * if {@link javax.servlet.ServletInputStream#isReady()} method
+ * has been called and has returned false
.
+ *
+ * @throws IOException if an I/O related error has occurred during processing
+ */
+ public void onDataAvailable() throws IOException;
+
+ /**
+ * Invoked when all data for the current request has been read.
+ *
+ * @throws IOException if an I/O related error has occurred during processing
+ */
+
+ public void onAllDataRead() throws IOException;
+
+ /**
+ * Invoked when an error occurs processing the request.
+ */
+ public void onError(Throwable t);
+
+
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/Registration.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/Registration.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/Registration.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,183 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+import java.util.Map;
+import java.util.Set;
+
+/**
+ * Interface through which a {@link Servlet} or {@link Filter} may be
+ * further configured.
+ *
+ * RequestDispatcher
object,
+ * which is used as a wrapper around a server resource located
+ * at a particular path or given by a particular name.
+ *
+ * RequestDispatcher
+ * objects to wrap any type of resource.
+ *
+ * @author Various
+ *
+ * @see ServletContext#getRequestDispatcher(java.lang.String)
+ * @see ServletContext#getNamedDispatcher(java.lang.String)
+ * @see ServletRequest#getRequestDispatcher(java.lang.String)
+ */
+
+public interface RequestDispatcher {
+
+ /**
+ * The name of the request attribute under which the original
+ * request URI is made available to the target of a
+ * {@link #forward(ServletRequest,ServletResponse) forward}
+ */
+ static final String FORWARD_REQUEST_URI = "javax.servlet.forward.request_uri";
+
+ /**
+ * The name of the request attribute under which the original
+ * context path is made available to the target of a
+ * {@link #forward(ServletRequest,ServletResponse) forward}
+ */
+ static final String FORWARD_CONTEXT_PATH = "javax.servlet.forward.context_path";
+
+ /**
+ * The name of the request attribute under which the original
+ * path info is made available to the target of a
+ * {@link #forward(ServletRequest,ServletResponse) forward}
+ */
+ static final String FORWARD_PATH_INFO = "javax.servlet.forward.path_info";
+
+ /**
+ * The name of the request attribute under which the original
+ * servlet path is made available to the target of a
+ * {@link #forward(ServletRequest,ServletResponse) forward}
+ */
+ static final String FORWARD_SERVLET_PATH = "javax.servlet.forward.servlet_path";
+
+ /**
+ * The name of the request attribute under which the original
+ * query string is made available to the target of a
+ * {@link #forward(ServletRequest,ServletResponse) forward}
+ */
+ static final String FORWARD_QUERY_STRING = "javax.servlet.forward.query_string";
+
+ /**
+ * The name of the request attribute under which the request URI
+ * of the target of an {@link #include(ServletRequest,ServletResponse)
+ * include} is stored
+ */
+ static final String INCLUDE_REQUEST_URI = "javax.servlet.include.request_uri";
+
+ /**
+ * The name of the request attribute under which the context path
+ * of the target of an {@link #include(ServletRequest,ServletResponse)
+ * include} is stored
+ */
+ static final String INCLUDE_CONTEXT_PATH = "javax.servlet.include.context_path";
+
+ /**
+ * The name of the request attribute under which the path info
+ * of the target of an {@link #include(ServletRequest,ServletResponse)
+ * include} is stored
+ */
+ static final String INCLUDE_PATH_INFO = "javax.servlet.include.path_info";
+
+ /**
+ * The name of the request attribute under which the servlet path
+ * of the target of an {@link #include(ServletRequest,ServletResponse)
+ * include} is stored
+ */
+ static final String INCLUDE_SERVLET_PATH = "javax.servlet.include.servlet_path";
+
+ /**
+ * The name of the request attribute under which the query string
+ * of the target of an {@link #include(ServletRequest,ServletResponse)
+ * include} is stored
+ */
+ static final String INCLUDE_QUERY_STRING = "javax.servlet.include.query_string";
+
+ /**
+ * The name of the request attribute under which the exception object
+ * is propagated during an error dispatch
+ */
+ public static final String ERROR_EXCEPTION = "javax.servlet.error.exception";
+
+ /**
+ * The name of the request attribute under which the type of the
+ * exception object is propagated during an error dispatch
+ */
+ public static final String ERROR_EXCEPTION_TYPE = "javax.servlet.error.exception_type";
+
+ /**
+ * The name of the request attribute under which the exception message
+ * is propagated during an error dispatch
+ */
+ public static final String ERROR_MESSAGE = "javax.servlet.error.message";
+
+ /**
+ * The name of the request attribute under which the request URI
+ * whose processing caused the error is propagated during an error
+ * dispatch
+ */
+ public static final String ERROR_REQUEST_URI = "javax.servlet.error.request_uri";
+
+ /**
+ * The name of the request attribute under which the name of the servlet
+ * in which the error occurred is propagated during an error dispatch
+ */
+ public static final String ERROR_SERVLET_NAME = "javax.servlet.error.servlet_name";
+
+ /**
+ * The name of the request attribute under which the response status
+ * is propagated during an error dispatch
+ */
+ public static final String ERROR_STATUS_CODE = "javax.servlet.error.status_code";
+
+
+ /**
+ * Forwards a request from
+ * a servlet to another resource (servlet, JSP file, or
+ * HTML file) on the server. This method allows
+ * one servlet to do preliminary processing of
+ * a request and another resource to generate
+ * the response.
+ *
+ * RequestDispatcher
obtained via
+ * getRequestDispatcher()
, the ServletRequest
+ * object has its path elements and parameters adjusted to match
+ * the path of the target resource.
+ *
+ * forward
should be called before the response has been
+ * committed to the client (before response body output has been flushed).
+ * If the response already has been committed, this method throws
+ * an IllegalStateException
.
+ * Uncommitted output in the response buffer is automatically cleared
+ * before the forward.
+ *
+ * DispatcherType.FORWARD
.
+ *
+ * @param request a {@link ServletRequest} object that represents the
+ * request the client makes of the servlet
+ *
+ * @param response a {@link ServletResponse} object that represents
+ * the response the servlet returns to the client
+ *
+ * @throws ServletException if the target resource throws this exception
+ *
+ * @throws IOException if the target resource throws this exception
+ *
+ * @throws IllegalStateException if the response was already committed
+ *
+ * @see ServletRequest#getDispatcherType
+ */
+ public void forward(ServletRequest request, ServletResponse response)
+ throws ServletException, IOException;
+
+ /**
+ *
+ * Includes the content of a resource (servlet, JSP page,
+ * HTML file) in the response. In essence, this method enables
+ * programmatic server-side includes.
+ *
+ * DispatcherType.INCLUDE
.
+ *
+ * @param request a {@link ServletRequest} object that contains the
+ * client's request
+ *
+ * @param response a {@link ServletResponse} object that contains the
+ * servlet's response
+ *
+ * @throws ServletException if the included resource throws this
+ * exception
+ *
+ * @throws IOException if the included resource throws this exception
+ *
+ * @see ServletRequest#getDispatcherType
+ */
+ public void include(ServletRequest request, ServletResponse response)
+ throws ServletException, IOException;
+}
+
+
+
+
+
+
+
+
Index: 3rdParty_sources/servlet-api/javax/servlet/Servlet.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/Servlet.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/Servlet.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,233 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.IOException;
+
+
+/**
+ * Defines methods that all servlets must implement.
+ *
+ * javax.servlet.GenericServlet
or an HTTP servlet that
+ * extends javax.servlet.http.HttpServlet
.
+ *
+ *
+ *
+ *
+ * init
method.
+ * service
method are handled.
+ * destroy
method, then garbage collected and finalized.
+ * getServletConfig
method, which the servlet
+ * can use to get any startup information, and the getServletInfo
+ * method, which allows the servlet to return basic information about itself,
+ * such as author, version, and copyright.
+ *
+ * @author Various
+ *
+ * @see GenericServlet
+ * @see javax.servlet.http.HttpServlet
+ *
+ */
+
+
+public interface Servlet {
+
+ /**
+ * Called by the servlet container to indicate to a servlet that the
+ * servlet is being placed into service.
+ *
+ * init
+ * method exactly once after instantiating the servlet.
+ * The init
method must complete successfully
+ * before the servlet can receive any requests.
+ *
+ * init
method
+ *
+ *
+ *
+ *
+ * @param config a ServletException
+ * ServletConfig
object
+ * containing the servlet's
+ * configuration and initialization parameters
+ *
+ * @exception ServletException if an exception has occurred that
+ * interferes with the servlet's normal
+ * operation
+ *
+ * @see UnavailableException
+ * @see #getServletConfig
+ *
+ */
+
+ public void init(ServletConfig config) throws ServletException;
+
+
+
+ /**
+ *
+ * Returns a {@link ServletConfig} object, which contains
+ * initialization and startup parameters for this servlet.
+ * The ServletConfig
object returned is the one
+ * passed to the init
method.
+ *
+ * ServletConfig
object so that this
+ * method can return it. The {@link GenericServlet}
+ * class, which implements this interface, already does this.
+ *
+ * @return the ServletConfig
object
+ * that initializes this servlet
+ *
+ * @see #init
+ *
+ */
+
+ public ServletConfig getServletConfig();
+
+
+
+ /**
+ * Called by the servlet container to allow the servlet to respond to
+ * a request.
+ *
+ * init()
+ * method has completed successfully.
+ *
+ * ServletRequest
object that contains
+ * the client's request
+ *
+ * @param res the ServletResponse
object that contains
+ * the servlet's response
+ *
+ * @exception ServletException if an exception occurs that interferes
+ * with the servlet's normal operation
+ *
+ * @exception IOException if an input or output exception occurs
+ *
+ */
+
+ public void service(ServletRequest req, ServletResponse res)
+ throws ServletException, IOException;
+
+
+
+ /**
+ * Returns information about the servlet, such
+ * as author, version, and copyright.
+ *
+ * String
containing servlet information
+ *
+ */
+
+ public String getServletInfo();
+
+
+
+ /**
+ *
+ * Called by the servlet container to indicate to a servlet that the
+ * servlet is being taken out of service. This method is
+ * only called once all threads within the servlet's
+ * service
method have exited or after a timeout
+ * period has passed. After the servlet container calls this
+ * method, it will not call the service
method again
+ * on this servlet.
+ *
+ * String
containing the value
+ * of the initialization parameter, or null
if
+ * the initialization parameter does not exist
+ */
+ public String getInitParameter(String name);
+
+
+ /**
+ * Returns the names of the servlet's initialization parameters
+ * as an Enumeration
of String
objects,
+ * or an empty Enumeration
if the servlet has
+ * no initialization parameters.
+ *
+ * @return an Enumeration
of String
+ * objects containing the names of the servlet's
+ * initialization parameters
+ */
+ public Enumeration/catalog
+ * and possibly installed via a .war
file.)
+ *
+ * ServletContext
object is contained within
+ * the {@link ServletConfig} object, which the Web server provides the
+ * servlet when the servlet is initialized.
+ *
+ * @author Various
+ *
+ * @see Servlet#getServletConfig
+ * @see ServletConfig#getServletContext
+ */
+
+public interface ServletContext {
+
+ /**
+ * The name of the ServletContext attribute which stores
+ * the private temporary directory (of type java.io.File)
+ * provided by the servlet container for the ServletContext
+ */
+ public static final String TEMPDIR = "javax.servlet.context.tempdir";
+
+
+ /**
+ * The name of the ServletContext
attribute whose value
+ * (of type java.util.List<java.lang.String>
) contains
+ * the list of names of JAR files in WEB-INF/lib
ordered by
+ * their web fragment names (with possible exclusions if
+ * <absolute-ordering>
without any
+ * <others/>
is being used), or null if no
+ * absolute or relative ordering has been specified
+ */
+ public static final String ORDERED_LIBS =
+ "javax.servlet.context.orderedLibs";
+
+
+ /**
+ * Returns the context path of the web application.
+ *
+ * ServletContext
object that
+ * corresponds to a specified URL on the server.
+ *
+ * null
for a given URL.
+ *
+ * @param uripath a String
specifying the context path of
+ * another web application in the container.
+ * @return the ServletContext
object that
+ * corresponds to the named URL, or null if either
+ none exists or the container wishes to restrict
+ * this access.
+ *
+ * @see RequestDispatcher
+ */
+ public ServletContext getContext(String uripath);
+
+
+ /**
+ * Returns the major version of the Servlet API that this
+ * servlet container supports. All implementations that comply
+ * with Version 3.0 must have this method return the integer 3.
+ *
+ * @return 3
+ */
+ public int getMajorVersion();
+
+
+ /**
+ * Returns the minor version of the Servlet API that this
+ * servlet container supports. All implementations that comply
+ * with Version 3.0 must have this method return the integer 0.
+ *
+ * @return 0
+ */
+ public int getMinorVersion();
+
+
+ /**
+ * Gets the major version of the Servlet specification that the
+ * application represented by this ServletContext is based on.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public int getEffectiveMajorVersion();
+
+
+ /**
+ * Gets the minor version of the Servlet specification that the
+ * application represented by this ServletContext is based on.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public int getEffectiveMinorVersion();
+
+
+ /**
+ * Returns the MIME type of the specified file, or null
if
+ * the MIME type is not known. The MIME type is determined
+ * by the configuration of the servlet container, and may be specified
+ * in a web application deployment descriptor. Common MIME
+ * types include text/html
and image/gif
.
+ *
+ * @param file a String
specifying the name of a file
+ *
+ * @return a String
specifying the file's MIME type
+ */
+ public String getMimeType(String file);
+
+
+ /**
+ * Returns a directory-like listing of all the paths to resources
+ * within the web application whose longest sub-path matches the
+ * supplied path argument.
+ *
+ *
+ *
+ * getResourcePaths("/") would return
+ * {"/welcome.html", "/catalog/", "/customer/", "/WEB-INF/"},
+ * and getResourcePaths("/catalog/") would return
+ * {"/catalog/index.html", "/catalog/products.html",
+ * "/catalog/offers/", "/catalog/moreOffers/"}.
+ *
+ * @param path the partial path used to match the resources,
+ * which must start with a /
+ * @return a Set containing the directory listing, or null if there
+ * are no resources in the web application whose path
+ * begins with the supplied path.
+ *
+ * @since Servlet 2.3
+ */
+ public Set
+ * /welcome.html
+ * /catalog/index.html
+ * /catalog/products.html
+ * /catalog/offers/books.html
+ * /catalog/offers/music.html
+ * /customer/login.jsp
+ * /WEB-INF/web.xml
+ * /WEB-INF/classes/com.acme.OrderServlet.class
+ * /WEB-INF/lib/catalog.jar!/META-INF/resources/catalog/moreOffers/books.html
+ *
.war
file.
+ *
+ * URLConnection
objects that are necessary
+ * to access the resource.
+ *
+ * null
+ * if no resource is mapped to the pathname.
+ *
+ * .jsp
page returns the JSP source code.
+ * Use a RequestDispatcher
instead to include results of
+ * an execution.
+ *
+ * java.lang.Class.getResource
,
+ * which looks up resources based on a class loader. This
+ * method does not use class loaders.
+ *
+ * @param path a String
specifying
+ * the path to the resource
+ *
+ * @return the resource located at the named path,
+ * or null
if there is no resource at that path
+ *
+ * @exception MalformedURLException if the pathname is not given in
+ * the correct form
+ */
+ public URL getResource(String path) throws MalformedURLException;
+
+
+ /**
+ * Returns the resource located at the named path as
+ * an InputStream
object.
+ *
+ * InputStream
can be
+ * of any type or length. The path must be specified according
+ * to the rules given in getResource
.
+ * This method returns null
if no resource exists at
+ * the specified path.
+ *
+ * getResource
+ * method is lost when using this method.
+ *
+ * URLConnection
objects necessary to access
+ * the resource.
+ *
+ * java.lang.Class.getResourceAsStream
,
+ * which uses a class loader. This method allows servlet containers
+ * to make a resource available
+ * to a servlet from any location, without using a class loader.
+ *
+ *
+ * @param path a String
specifying the path
+ * to the resource
+ *
+ * @return the InputStream
returned to the
+ * servlet, or null
if no resource
+ * exists at the specified path
+ */
+ public InputStream getResourceAsStream(String path);
+
+
+ /**
+ *
+ * Returns a {@link RequestDispatcher} object that acts
+ * as a wrapper for the resource located at the given path.
+ * A RequestDispatcher
object can be used to forward
+ * a request to the resource or to include the resource in a response.
+ * The resource can be dynamic or static.
+ *
+ * getContext
+ * to obtain a RequestDispatcher
for resources in foreign
+ * contexts.
+ *
+ * null
if the
+ * ServletContext
cannot return a
+ * RequestDispatcher
.
+ *
+ * @param path a String
specifying the pathname
+ * to the resource
+ *
+ * @return a RequestDispatcher
object
+ * that acts as a wrapper for the resource
+ * at the specified path, or null
if
+ * the ServletContext
cannot return
+ * a RequestDispatcher
+ *
+ * @see RequestDispatcher
+ * @see ServletContext#getContext
+ */
+ public RequestDispatcher getRequestDispatcher(String path);
+
+
+ /**
+ * Returns a {@link RequestDispatcher} object that acts
+ * as a wrapper for the named servlet.
+ *
+ * null
if the
+ * ServletContext
+ * cannot return a RequestDispatcher
for any reason.
+ *
+ * @param name a String
specifying the name
+ * of a servlet to wrap
+ *
+ * @return a RequestDispatcher
object
+ * that acts as a wrapper for the named servlet,
+ * or null
if the ServletContext
+ * cannot return a RequestDispatcher
+ *
+ * @see RequestDispatcher
+ * @see ServletContext#getContext
+ * @see ServletConfig#getServletName
+ */
+ public RequestDispatcher getNamedDispatcher(String name);
+
+
+ /**
+ * @deprecated As of Java Servlet API 2.1, with no direct replacement.
+ *
+ * ServletContext
. In this version, this method
+ * always returns null
and remains only to preserve
+ * binary compatibility. This method will be permanently removed
+ * in a future version of the Java Servlet API.
+ *
+ * ServletContext
class and can perform shared business logic
+ * by invoking methods on common non-servlet classes.
+ */
+ public Servlet getServlet(String name) throws ServletException;
+
+
+ /**
+ * @deprecated As of Java Servlet API 2.0, with no replacement.
+ *
+ * Enumeration
of all the servlets known to this servlet
+ * context.
+ * In this version, this method always returns an empty enumeration and
+ * remains only to preserve binary compatibility. This method
+ * will be permanently removed in a future version of the Java
+ * Servlet API.
+ */
+ public EnumerationEnumeration
+ * of all the servlet names known to this context. In this version,
+ * this method always returns an empty Enumeration
and
+ * remains only to preserve binary compatibility. This method will
+ * be permanently removed in a future version of the Java Servlet API.
+ */
+ public EnumerationString
specifying the
+ * message to be written to the log file
+ */
+ public void log(String msg);
+
+
+ /**
+ * @deprecated As of Java Servlet API 2.1, use
+ * {@link #log(String message, Throwable throwable)}
+ * instead.
+ *
+ * Throwable
exception
+ * to the servlet log file. The name and type of the servlet log
+ * file is specific to the servlet container, usually an event log.
+ *
+ * @param message a String
that
+ * describes the error or exception
+ *
+ * @param throwable the Throwable
error
+ * or exception
+ */
+ public void log(String message, Throwable throwable);
+
+
+ /**
+ * Gets the real path corresponding to the given
+ * virtual path.
+ *
+ * null
if the servlet container
+ * is unable to translate the given virtual path to a
+ * real path.
+ *
+ * @param path the virtual path to be translated to a
+ * real path
+ *
+ * @return the real path, or null if the
+ * translation cannot be performed
+ */
+ public String getRealPath(String path);
+
+
+ /**
+ * Returns the name and version of the servlet container on which
+ * the servlet is running.
+ *
+ * JavaServer Web Dev Kit/1.0
.
+ *
+ * JavaServer Web Dev Kit/1.0 (JDK 1.1.6; Windows NT 4.0 x86)
.
+ *
+ *
+ * @return a String
containing at least the
+ * servlet container name and version number
+ */
+ public String getServerInfo();
+
+
+ /**
+ * Returns a String
containing the value of the named
+ * context-wide initialization parameter, or null
if the
+ * parameter does not exist.
+ *
+ * String
containing the name of the
+ * parameter whose value is requested
+ *
+ * @return a String
containing at least the
+ * servlet container name and version number
+ *
+ * @see ServletConfig#getInitParameter
+ */
+ public String getInitParameter(String name);
+
+
+ /**
+ * Returns the names of the context's initialization parameters as an
+ * Enumeration
of String
objects, or an
+ * empty Enumeration
if the context has no initialization
+ * parameters.
+ *
+ * @return an Enumeration
of String
+ * objects containing the names of the context's
+ * initialization parameters
+ *
+ * @see ServletConfig#getInitParameter
+ */
+ public Enumerationweb.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public boolean setInitParameter(String name, String value);
+
+
+ /**
+ * Returns the servlet container attribute with the given name,
+ * or null
if there is no attribute by that name.
+ *
+ * getAttributeNames
.
+ *
+ * java.lang.Object
+ * or some subclass.
+ *
+ * java.*
, javax.*
,
+ * and sun.*
.
+ *
+ * @param name a String
specifying the name
+ * of the attribute
+ *
+ * @return an Object
containing the value
+ * of the attribute, or null
+ * if no attribute exists matching the given
+ * name
+ *
+ * @see ServletContext#getAttributeNames
+ */
+ public Object getAttribute(String name);
+
+
+ /**
+ * Returns an Enumeration
containing the
+ * attribute names available within this ServletContext.
+ *
+ * Enumeration
of attribute
+ * names
+ *
+ * @see #getAttribute
+ */
+ public EnumerationServletContext
the
+ * container notifies them accordingly.
+ * removeAttribute()
.
+ *
+ * java.*
, javax.*
, and
+ * sun.*
.
+ *
+ * @param name a String
specifying the name
+ * of the attribute
+ *
+ * @param object an Object
representing the
+ * attribute to be bound
+ */
+ public void setAttribute(String name, Object object);
+
+
+ /**
+ * Removes the attribute with the given name from
+ * this ServletContext. After removal, subsequent calls to
+ * {@link #getAttribute} to retrieve the attribute's value
+ * will return null
.
+ *
+ * ServletContext
the
+ * container notifies them accordingly.
+ *
+ * @param name a String
specifying the name
+ * of the attribute to be removed
+ */
+ public void removeAttribute(String name);
+
+
+ /**
+ * Returns the name of this web application corresponding to this
+ * ServletContext as specified in the deployment descriptor for this
+ * web application by the display-name element.
+ *
+ * @return The name of the web application or null if no name has been
+ * declared in the deployment descriptor.
+ *
+ * @since Servlet 2.3
+ */
+ public String getServletContextName();
+
+
+ /**
+ * Adds the servlet with the given name and class name to this servlet
+ * context.
+ *
+ * servletName
is null
+ * or an empty String
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public ServletRegistration.Dynamic addServlet(
+ String servletName, String className);
+
+
+ /**
+ * Registers the given servlet instance with this ServletContext
+ * under the given servletName.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @throws IllegalArgumentException if the given servlet instance
+ * implements {@link SingleThreadModel}, or servletName
is null
+ * or an empty String
+ *
+ * @since Servlet 3.0
+ */
+ public ServletRegistration.Dynamic addServlet(
+ String servletName, Servlet servlet);
+
+
+ /**
+ * Adds the servlet with the given name and class type to this servlet
+ * context.
+ *
+ * servletName
is null
+ * or an empty String
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public ServletRegistration.Dynamic addServlet(String servletName,
+ Class extends Servlet> servletClass);
+
+
+ /**
+ * Instantiates the given Servlet class.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public ServletRegistration getServletRegistration(String servletName);
+
+
+ /**
+ * Gets a (possibly empty) Map of the ServletRegistration
+ * objects (keyed by servlet name) corresponding to all servlets
+ * registered with this ServletContext.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public MapfilterName
is null or
+ * an empty String
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public FilterRegistration.Dynamic addFilter(
+ String filterName, String className);
+
+
+ /**
+ * Registers the given filter instance with this ServletContext
+ * under the given filterName.
+ *
+ * filterName
is null or
+ * an empty String
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public FilterRegistration.Dynamic addFilter(
+ String filterName, Filter filter);
+
+
+ /**
+ * Adds the filter with the given name and class type to this servlet
+ * context.
+ *
+ * filterName
is null or
+ * an empty String
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public FilterRegistration.Dynamic addFilter(String filterName,
+ Class extends Filter> filterClass);
+
+
+ /**
+ * Instantiates the given Filter class.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public FilterRegistration getFilterRegistration(String filterName);
+
+
+ /**
+ * Gets a (possibly empty) Map of the FilterRegistration
+ * objects (keyed by filter name) corresponding to all filters
+ * registered with this ServletContext.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public Mapweb.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public SessionCookieConfig getSessionCookieConfig();
+
+
+ /**
+ * Sets the session tracking modes that are to become effective for this
+ * ServletContext.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @throws IllegalArgumentException if sessionTrackingModes
+ * specifies a combination of SessionTrackingMode.SSL with a
+ * session tracking mode other than SessionTrackingMode.SSL,
+ * or if sessionTrackingModes specifies a session tracking mode
+ * that is not supported by the servlet container
+ *
+ * @since Servlet 3.0
+ */
+ public void setSessionTrackingModes(Setweb.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public Setweb.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public Set
+ *
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public void addListener(String className);
+
+
+ /**
+ * Adds the given listener to this ServletContext.
+ *
+ *
+ *
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public
+ *
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.0
+ */
+ public void addListener(Class extends EventListener> listenerClass);
+
+
+ /**
+ * Instantiates the given EventListener class.
+ *
+ * {@link ServletContextListener}
,
+ * {@link ServletContextAttributeListener}
,
+ * {@link ServletRequestListener}
,
+ * {@link ServletRequestAttributeListener}
,
+ * {@link javax.servlet.http.HttpSessionAttributeListener}
+ * {@link javax.servlet.http.HttpSessionIdListener}
, or
+ * {@link javax.servlet.http.HttpSessionListener}
, or
+ * interfaces.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @throws IllegalArgumentException if the specified EventListener class
+ * does not implement any of the
+ * {@link ServletContextListener}
,
+ * {@link ServletContextAttributeListener}
,
+ * {@link ServletRequestListener}
,
+ * {@link ServletRequestAttributeListener}
,
+ * {@link javax.servlet.http.HttpSessionAttributeListener}
+ * {@link javax.servlet.http.HttpSessionIdListener}
, or
+ * {@link javax.servlet.http.HttpSessionListener}
, or
+ * interfaces.
+ *
+ * @since Servlet 3.0
+ */
+ public <jsp-config>
related configuration
+ * that was aggregated from the web.xml
and
+ * web-fragment.xml
descriptor files of the web application
+ * represented by this ServletContext.
+ *
+ * @return the <jsp-config>
related configuration
+ * that was aggregated from the web.xml
and
+ * web-fragment.xml
descriptor files of the web application
+ * represented by this ServletContext, or null if no such configuration
+ * exists
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @see javax.servlet.descriptor.JspConfigDescriptor
+ *
+ * @since Servlet 3.0
+ */
+ public JspConfigDescriptor getJspConfigDescriptor();
+
+
+ /**
+ * Gets the class loader of the web application represented by this
+ * ServletContext.
+ *
+ * checkPermission
method is
+ * called with a RuntimePermission("getClassLoader")
+ * permission to check whether access to the requested class loader
+ * should be granted.
+ *
+ * @return the class loader of the web application represented by this
+ * ServletContext
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @throws SecurityException if a security manager denies access to
+ * the requested class loader
+ *
+ * @since Servlet 3.0
+ */
+ public ClassLoader getClassLoader();
+
+
+ /**
+ * Declares role names that are tested using isUserInRole
.
+ *
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @throws IllegalArgumentException if any of the argument roleNames is
+ * null or the empty string
+ *
+ * @throws IllegalStateException if the ServletContext has already
+ * been initialized
+ *
+ * @since Servlet 3.0
+ */
+ public void declareRoles(String... roleNames);
+
+
+ /**
+ * Returns the configuration name of the logical host on which the
+ * ServletContext is deployed.
+ *
+ * Servlet containers may support multiple logical hosts. This method must
+ * return the same name for all the servlet contexts deployed on a logical
+ * host, and the name returned by this method must be distinct, stable per
+ * logical host, and suitable for use in associating server configuration
+ * information with the logical host. The returned value is NOT expected
+ * or required to be equivalent to a network address or hostname of the
+ * logical host.
+ *
+ * @return a String
containing the configuration name of the
+ * logical host on which the servlet context is deployed.
+ *
+ * @throws UnsupportedOperationException if this ServletContext was
+ * passed to the {@link ServletContextListener#contextInitialized} method
+ * of a {@link ServletContextListener} that was neither declared in
+ * web.xml
or web-fragment.xml
, nor annotated
+ * with {@link javax.servlet.annotation.WebListener}
+ *
+ * @since Servlet 3.1
+ */
+ public String getVirtualServerName();
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletContextAttributeEvent.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletContextAttributeEvent.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletContextAttributeEvent.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,115 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+/**
+ * Event class for notifications about changes to the attributes of
+ * the ServletContext of a web application.
+ *
+ * @see ServletContextAttributeListener
+ *
+ * @since Servlet 2.3
+ */
+
+public class ServletContextAttributeEvent extends ServletContextEvent {
+
+ private static final long serialVersionUID = -5804680734245618303L;
+
+ private String name;
+ private Object value;
+
+ /**
+ * Constructs a ServletContextAttributeEvent from the given
+ * ServletContext, attribute name, and attribute value.
+ *
+ * @param source the ServletContext whose attribute changed
+ * @param name the name of the ServletContext attribute that changed
+ * @param value the value of the ServletContext attribute that changed
+ */
+ public ServletContextAttributeEvent(ServletContext source,
+ String name, Object value) {
+ super(source);
+ this.name = name;
+ this.value = value;
+ }
+
+ /**
+ * Gets the name of the ServletContext attribute that changed.
+ *
+ * @return the name of the ServletContext attribute that changed
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ * Gets the value of the ServletContext attribute that changed.
+ *
+ * String
+ * specifying the text of
+ * the exception message
+ *
+ */
+
+ public ServletException(String message) {
+ super(message);
+ }
+
+
+
+
+
+ /**
+ * Constructs a new servlet exception when the servlet
+ * needs to throw an exception and include a message
+ * about the "root cause" exception that interfered with its
+ * normal operation, including a description message.
+ *
+ *
+ * @param message a String
containing
+ * the text of the exception message
+ *
+ * @param rootCause the Throwable
exception
+ * that interfered with the servlet's
+ * normal operation, making this servlet
+ * exception necessary
+ *
+ */
+
+ public ServletException(String message, Throwable rootCause) {
+ super(message, rootCause);
+ this.rootCause = rootCause;
+ }
+
+
+
+
+
+ /**
+ * Constructs a new servlet exception when the servlet
+ * needs to throw an exception and include a message
+ * about the "root cause" exception that interfered with its
+ * normal operation. The exception's message is based on the localized
+ * message of the underlying exception.
+ *
+ * getLocalizedMessage
method
+ * on the Throwable
exception to get a localized exception
+ * message. When subclassing ServletException
,
+ * this method can be overridden to create an exception message
+ * designed for a specific locale.
+ *
+ * @param rootCause the Throwable
exception
+ * that interfered with the servlet's
+ * normal operation, making the servlet exception
+ * necessary
+ *
+ */
+
+ public ServletException(Throwable rootCause) {
+ super(rootCause);
+ this.rootCause = rootCause;
+ }
+
+
+
+
+
+ /**
+ * Returns the exception that caused this servlet exception.
+ *
+ *
+ * @return the Throwable
+ * that caused this servlet exception
+ *
+ */
+
+ public Throwable getRootCause() {
+ return rootCause;
+ }
+}
+
+
+
+
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletInputStream.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletInputStream.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletInputStream.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,189 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.InputStream;
+import java.io.IOException;
+
+/**
+ *
+ * Provides an input stream for reading binary data from a client
+ * request, including an efficient readLine
method
+ * for reading data one line at a time. With some protocols, such
+ * as HTTP POST and PUT, a ServletInputStream
+ * object can be used to read data sent from the client.
+ *
+ * ServletInputStream
object is normally retrieved via
+ * the {@link ServletRequest#getInputStream} method.
+ *
+ *
+ * java.io.InputStream.read()
method.
+ *
+ *
+ * @author Various
+ *
+ * @see ServletRequest
+ *
+ */
+
+public abstract class ServletInputStream extends InputStream {
+
+
+
+ /**
+ * Does nothing, because this is an abstract class.
+ *
+ */
+
+ protected ServletInputStream() { }
+
+
+
+
+ /**
+ *
+ * Reads the input stream, one line at a time. Starting at an
+ * offset, reads bytes into an array, until it reads a certain number
+ * of bytes or reaches a newline character, which it reads into the
+ * array as well.
+ *
+ * true
when all data for this particular request
+ * has been read, otherwise returns false
.
+ *
+ * @since Servlet 3.1
+ */
+ public abstract boolean isFinished();
+
+ /**
+ * Returns true if data can be read without blocking else returns
+ * false.
+ *
+ * @return true
if data can be obtained without blocking,
+ * otherwise returns false
.
+ *
+ * @since Servlet 3.1
+ */
+ public abstract boolean isReady();
+
+ /**
+ * Instructs the ServletInputStream
to invoke the provided
+ * {@link ReadListener} when it is possible to read
+ *
+ * @param readListener the {@link ReadListener} that should be notified
+ * when it's possible to read.
+ *
+ * @exception IllegalStateException if one of the following conditions is true
+ *
+ *
+ *
+ * @throws NullPointerException if readListener is null
+ *
+ * @since Servlet 3.1
+
+ */
+ public abstract void setReadListener(ReadListener readListener);
+}
+
+
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletOutputStream.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletOutputStream.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletOutputStream.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,436 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.OutputStream;
+import java.io.IOException;
+import java.io.CharConversionException;
+import java.text.MessageFormat;
+import java.util.ResourceBundle;
+
+/**
+ * Provides an output stream for sending binary data to the
+ * client. A ServletOutputStream
object is normally retrieved
+ * via the {@link ServletResponse#getOutputStream} method.
+ *
+ * java.io.OutputStream.write(int)
+ * method.
+ *
+ *
+ * @author Various
+ *
+ * @see ServletResponse
+ *
+ */
+
+public abstract class ServletOutputStream extends OutputStream {
+
+ private static final String LSTRING_FILE = "javax.servlet.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+
+
+ /**
+ *
+ * Does nothing, because this is an abstract class.
+ *
+ */
+
+ protected ServletOutputStream() { }
+
+
+ /**
+ * Writes a String
to the client,
+ * without a carriage return-line feed (CRLF)
+ * character at the end.
+ *
+ *
+ * @param s the String
to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void print(String s) throws IOException {
+ if (s==null) s="null";
+ int len = s.length();
+ for (int i = 0; i < len; i++) {
+ char c = s.charAt (i);
+
+ //
+ // XXX NOTE: This is clearly incorrect for many strings,
+ // but is the only consistent approach within the current
+ // servlet framework. It must suffice until servlet output
+ // streams properly encode their output.
+ //
+ if ((c & 0xff00) != 0) { // high order byte must be zero
+ String errMsg = lStrings.getString("err.not_iso8859_1");
+ Object[] errArgs = new Object[1];
+ errArgs[0] = Character.valueOf(c);
+ errMsg = MessageFormat.format(errMsg, errArgs);
+ throw new CharConversionException(errMsg);
+ }
+ write (c);
+ }
+ }
+
+
+
+ /**
+ * Writes a boolean
value to the client,
+ * with no carriage return-line feed (CRLF)
+ * character at the end.
+ *
+ * @param b the boolean
value
+ * to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void print(boolean b) throws IOException {
+ String msg;
+ if (b) {
+ msg = lStrings.getString("value.true");
+ } else {
+ msg = lStrings.getString("value.false");
+ }
+ print(msg);
+ }
+
+
+
+ /**
+ * Writes a character to the client,
+ * with no carriage return-line feed (CRLF)
+ * at the end.
+ *
+ * @param c the character to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void print(char c) throws IOException {
+ print(String.valueOf(c));
+ }
+
+
+
+
+ /**
+ *
+ * Writes an int to the client,
+ * with no carriage return-line feed (CRLF)
+ * at the end.
+ *
+ * @param i the int to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void print(int i) throws IOException {
+ print(String.valueOf(i));
+ }
+
+
+
+
+ /**
+ *
+ * Writes a long
value to the client,
+ * with no carriage return-line feed (CRLF) at the end.
+ *
+ * @param l the long
value
+ * to send to the client
+ *
+ * @exception IOException if an input or output exception
+ * occurred
+ *
+ */
+
+ public void print(long l) throws IOException {
+ print(String.valueOf(l));
+ }
+
+
+
+ /**
+ *
+ * Writes a float
value to the client,
+ * with no carriage return-line feed (CRLF) at the end.
+ *
+ * @param f the float
value
+ * to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ *
+ */
+
+ public void print(float f) throws IOException {
+ print(String.valueOf(f));
+ }
+
+
+
+ /**
+ *
+ * Writes a double
value to the client,
+ * with no carriage return-line feed (CRLF) at the end.
+ *
+ * @param d the double
value
+ * to send to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void print(double d) throws IOException {
+ print(String.valueOf(d));
+ }
+
+
+
+ /**
+ * Writes a carriage return-line feed (CRLF)
+ * to the client.
+ *
+ *
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println() throws IOException {
+ print("\r\n");
+ }
+
+
+
+ /**
+ * Writes a String
to the client,
+ * followed by a carriage return-line feed (CRLF).
+ *
+ *
+ * @param s the String
to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(String s) throws IOException {
+ print(s);
+ println();
+ }
+
+
+
+
+ /**
+ *
+ * Writes a boolean
value to the client,
+ * followed by a
+ * carriage return-line feed (CRLF).
+ *
+ *
+ * @param b the boolean
value
+ * to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(boolean b) throws IOException {
+ print(b);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes a character to the client, followed by a carriage
+ * return-line feed (CRLF).
+ *
+ * @param c the character to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(char c) throws IOException {
+ print(c);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes an int to the client, followed by a
+ * carriage return-line feed (CRLF) character.
+ *
+ *
+ * @param i the int to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(int i) throws IOException {
+ print(i);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes a long
value to the client, followed by a
+ * carriage return-line feed (CRLF).
+ *
+ *
+ * @param l the long
value to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(long l) throws IOException {
+ print(l);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes a float
value to the client,
+ * followed by a carriage return-line feed (CRLF).
+ *
+ * @param f the float
value
+ * to write to the client
+ *
+ *
+ * @exception IOException if an input or output exception
+ * occurred
+ *
+ */
+
+ public void println(float f) throws IOException {
+ print(f);
+ println();
+ }
+
+
+
+ /**
+ *
+ * Writes a double
value to the client,
+ * followed by a carriage return-line feed (CRLF).
+ *
+ *
+ * @param d the double
value
+ * to write to the client
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ */
+
+ public void println(double d) throws IOException {
+ print(d);
+ println();
+ }
+
+ /**
+ * This method can be used to determine if data can be written without blocking.
+ *
+ * @return true
if a write to this ServletOutputStream
+ * will succeed, otherwise returns false
.
+ *
+ * @since Servlet 3.1
+ */
+ public abstract boolean isReady();
+
+ /**
+ * Instructs the ServletOutputStream
to invoke the provided
+ * {@link WriteListener} when it is possible to write
+ *
+ *
+ * @param writeListener the {@link WriteListener} that should be notified
+ * when it's possible to write
+ *
+ * @exception IllegalStateException if one of the following conditions is true
+ *
+ *
+ *
+ * @throws NullPointerException if writeListener is null
+ *
+ * @since Servlet 3.1
+ */
+ public abstract void setWriteListener(WriteListener writeListener);
+
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletRegistration.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletRegistration.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletRegistration.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,212 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+import java.util.*;
+
+/**
+ * Interface through which a {@link Servlet} may be further configured.
+ *
+ * @since Servlet 3.0
+ */
+public interface ServletRegistration extends Registration {
+
+ /**
+ * Adds a servlet mapping with the given URL patterns for the Servlet
+ * represented by this ServletRegistration.
+ *
+ * ServletRegistration
.
+ *
+ * Collection
must not
+ * affect this ServletRegistration
.
+ *
+ * @return a (possibly empty) Collection
of the currently
+ * available mappings of the Servlet represented by this
+ * ServletRegistration
+ */
+ public CollectionServletRegistration
.
+ *
+ * @return the name of the runAs role, or null if the Servlet is
+ * configured to run as its caller
+ */
+ public String getRunAsRole();
+
+ /**
+ * Interface through which a {@link Servlet} registered via one of the
+ * addServlet methods on {@link ServletContext} may be further
+ * configured.
+ */
+ interface Dynamic extends ServletRegistration, Registration.Dynamic {
+
+ /**
+ * Sets the loadOnStartup
priority on the Servlet
+ * represented by this dynamic ServletRegistration.
+ *
+ * -1
.
+ *
+ * ServletRegistration
.
+ *
+ * ServletRegistration
up until the point that the
+ * ServletContext
from which it was obtained has been
+ * initialized.
+ *
+ * security-constraint
that was established via
+ * the portable deployment descriptor, then this method does not
+ * change the security-constraint
for that pattern,
+ * and the pattern will be included in the return value.
+ *
+ * security-constraint
in the portable deployment
+ * descriptor, then this method establishes the security constraint
+ * for that pattern from the argument
+ * ServletSecurityElement
.
+ *
+ * @param constraint the {@link ServletSecurityElement} to be applied
+ * to the patterns mapped to this ServletRegistration
+ *
+ * @return the (possibly empty) Set of URL patterns that were already
+ * the exact target of a security-constraint
that was
+ * established via the portable deployment descriptor. This method
+ * has no effect on the patterns included in the returned set
+ *
+ * @throws IllegalArgumentException if constraint is null
+ *
+ * @throws IllegalStateException if the {@link ServletContext} from
+ * which this ServletRegistration
was obtained has
+ * already been initialized
+ */
+ public SetServletRegistration
. If this
+ * method is called multiple times, each successive call overrides the
+ * effects of the former.
+ *
+ * @param multipartConfig the {@link MultipartConfigElement} to be
+ * applied to the patterns mapped to the registration
+ *
+ * @throws IllegalArgumentException if multipartConfig is
+ * null
+ *
+ * @throws IllegalStateException if the {@link ServletContext} from
+ * which this ServletRegistration was obtained has already been
+ * initialized
+ */
+ public void setMultipartConfig(
+ MultipartConfigElement multipartConfig);
+
+ /**
+ * Sets the name of the runAs
role for this
+ * ServletRegistration
.
+ *
+ * @param roleName the name of the runAs
role
+ *
+ * @throws IllegalArgumentException if roleName is null
+ *
+ * @throws IllegalStateException if the {@link ServletContext} from
+ * which this ServletRegistration was obtained has already been
+ * initialized
+ */
+ public void setRunAsRole(String roleName);
+
+ }
+
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletRequest.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletRequest.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletRequest.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,718 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * Defines an object to provide client request information to a servlet. The
+ * servlet container creates a ServletRequest
object and passes
+ * it as an argument to the servlet's service
method.
+ *
+ * ServletRequest
object provides data including
+ * parameter name and values, attributes, and an input stream.
+ * Interfaces that extend ServletRequest
can provide
+ * additional protocol-specific data (for example, HTTP data is
+ * provided by {@link javax.servlet.http.HttpServletRequest}.
+ *
+ * @author Various
+ *
+ * @see javax.servlet.http.HttpServletRequest
+ *
+ */
+public interface ServletRequest {
+
+ /**
+ * Returns the value of the named attribute as an Object
,
+ * or null
if no attribute of the given name exists.
+ *
+ * javax.servlet.request.X509Certificate
can be used to
+ * retrieve information on the certificate of the client. Attributes
+ * can also be set programatically using
+ * {@link ServletRequest#setAttribute}. This allows information to be
+ * embedded into a request before a {@link RequestDispatcher} call.
+ *
+ * java.*
,
+ * javax.*
, and sun.*
.
+ *
+ * @param name a String
specifying the name of the attribute
+ *
+ * @return an Object
containing the value of the attribute,
+ * or null
if the attribute does not exist
+ */
+ public Object getAttribute(String name);
+
+ /**
+ * Returns an Enumeration
containing the
+ * names of the attributes available to this request.
+ * This method returns an empty Enumeration
+ * if the request has no attributes available to it.
+ *
+ * @return an Enumeration
of strings containing the names
+ * of the request's attributes
+ */
+ public Enumerationnull
if the request
+ * does not specify a character encoding
+ *
+ * @return a String
containing the name of the character
+ * encoding, or null
if the request does not specify a
+ * character encoding
+ */
+ public String getCharacterEncoding();
+
+ /**
+ * Overrides the name of the character encoding used in the body of this
+ * request. This method must be called prior to reading request parameters
+ * or reading input using getReader(). Otherwise, it has no effect.
+ *
+ * @param env String
containing the name of
+ * the character encoding.
+ *
+ * @throws UnsupportedEncodingException if this ServletRequest is still
+ * in a state where a character encoding may be set,
+ * but the specified encoding is invalid
+ */
+ public void setCharacterEncoding(String env) throws UnsupportedEncodingException;
+
+ /**
+ * Returns the length, in bytes, of the request body and made available by
+ * the input stream, or -1 if the length is not known ir is greater than
+ * Integer.MAX_VALUE. For HTTP servlets,
+ * same as the value of the CGI variable CONTENT_LENGTH.
+ *
+ * @return an integer containing the length of the request body or -1 if
+ * the length is not known or is greater than Integer.MAX_VALUE.
+ */
+ public int getContentLength();
+
+ /**
+ * Returns the length, in bytes, of the request body and made available by
+ * the input stream, or -1 if the length is not known. For HTTP servlets,
+ * same as the value of the CGI variable CONTENT_LENGTH.
+ *
+ * @return a long containing the length of the request body or -1L if
+ * the length is not known
+ *
+ * @since Servlet 3.1
+ */
+ public long getContentLengthLong();
+
+ /**
+ * Returns the MIME type of the body of the request, or
+ * null
if the type is not known. For HTTP servlets,
+ * same as the value of the CGI variable CONTENT_TYPE.
+ *
+ * @return a String
containing the name of the MIME type
+ * of the request, or null if the type is not known
+ */
+ public String getContentType();
+
+ /**
+ * Retrieves the body of the request as binary data using
+ * a {@link ServletInputStream}. Either this method or
+ * {@link #getReader} may be called to read the body, not both.
+ *
+ * @return a {@link ServletInputStream} object containing
+ * the body of the request
+ *
+ * @exception IllegalStateException if the {@link #getReader} method
+ * has already been called for this request
+ *
+ * @exception IOException if an input or output exception occurred
+ */
+ public ServletInputStream getInputStream() throws IOException;
+
+ /**
+ * Returns the value of a request parameter as a String
,
+ * or null
if the parameter does not exist. Request parameters
+ * are extra information sent with the request. For HTTP servlets,
+ * parameters are contained in the query string or posted form data.
+ *
+ * getParameterValues
.
+ *
+ * String
specifying the name of the parameter
+ *
+ * @return a String
representing the single value of
+ * the parameter
+ *
+ * @see #getParameterValues
+ */
+ public String getParameter(String name);
+
+ /**
+ *
+ * Returns an Enumeration
of String
+ * objects containing the names of the parameters contained
+ * in this request. If the request has
+ * no parameters, the method returns an empty Enumeration
.
+ *
+ * @return an Enumeration
of String
+ * objects, each String
containing the name of
+ * a request parameter; or an empty Enumeration
+ * if the request has no parameters
+ */
+ public EnumerationString
objects containing
+ * all of the values the given request parameter has, or
+ * null
if the parameter does not exist.
+ *
+ * String
containing the name of
+ * the parameter whose value is requested
+ *
+ * @return an array of String
objects
+ * containing the parameter's values
+ *
+ * @see #getParameter
+ */
+ public String[] getParameterValues(String name);
+
+ /**
+ * Returns a java.util.Map of the parameters of this request.
+ *
+ * SERVER_PROTOCOL
.
+ *
+ * @return a String
containing the protocol
+ * name and version number
+ */
+ public String getProtocol();
+
+ /**
+ * Returns the name of the scheme used to make this request,
+ * for example,
+ * http
, https
, or ftp
.
+ * Different schemes have different rules for constructing URLs,
+ * as noted in RFC 1738.
+ *
+ * @return a String
containing the name
+ * of the scheme used to make this request
+ */
+ public String getScheme();
+
+ /**
+ * Returns the host name of the server to which the request was sent.
+ * It is the value of the part before ":" in the Host
+ * header value, if any, or the resolved server name, or the server IP
+ * address.
+ *
+ * @return a String
containing the name of the server
+ */
+ public String getServerName();
+
+ /**
+ * Returns the port number to which the request was sent.
+ * It is the value of the part after ":" in the Host
+ * header value, if any, or the server port where the client connection
+ * was accepted on.
+ *
+ * @return an integer specifying the port number
+ */
+ public int getServerPort();
+
+ /**
+ * Retrieves the body of the request as character data using
+ * a BufferedReader
. The reader translates the character
+ * data according to the character encoding used on the body.
+ * Either this method or {@link #getInputStream} may be called to read the
+ * body, not both.
+ *
+ * @return a BufferedReader
containing the body of the request
+ *
+ * @exception UnsupportedEncodingException if the character set encoding
+ * used is not supported and the text cannot be decoded
+ *
+ * @exception IllegalStateException if {@link #getInputStream} method
+ * has been called on this request
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ * @see #getInputStream
+ */
+ public BufferedReader getReader() throws IOException;
+
+ /**
+ * Returns the Internet Protocol (IP) address of the client
+ * or last proxy that sent the request.
+ * For HTTP servlets, same as the value of the
+ * CGI variable REMOTE_ADDR
.
+ *
+ * @return a String
containing the
+ * IP address of the client that sent the request
+ */
+ public String getRemoteAddr();
+
+ /**
+ * Returns the fully qualified name of the client
+ * or the last proxy that sent the request.
+ * If the engine cannot or chooses not to resolve the hostname
+ * (to improve performance), this method returns the dotted-string form of
+ * the IP address. For HTTP servlets, same as the value of the CGI variable
+ * REMOTE_HOST
.
+ *
+ * @return a String
containing the fully
+ * qualified name of the client
+ */
+ public String getRemoteHost();
+
+ /**
+ * Stores an attribute in this request.
+ * Attributes are reset between requests. This method is most
+ * often used in conjunction with {@link RequestDispatcher}.
+ *
+ * java.*
,
+ * javax.*
, and com.sun.*
, are
+ * reserved for use by Sun Microsystems.
+ *
If the object passed in is null, the effect is the same as
+ * calling {@link #removeAttribute}.
+ *
It is warned that when the request is dispatched from the
+ * servlet resides in a different web application by
+ * RequestDispatcher
, the object set by this method
+ * may not be correctly retrieved in the caller servlet.
+ *
+ * @param name a String
specifying
+ * the name of the attribute
+ *
+ * @param o the Object
to be stored
+ *
+ */
+ public void setAttribute(String name, Object o);
+
+ /**
+ *
+ * Removes an attribute from this request. This method is not
+ * generally needed as attributes only persist as long as the request
+ * is being handled.
+ *
+ * java.*
,
+ * javax.*
, and com.sun.*
, are
+ * reserved for use by Sun Microsystems.
+ *
+ * @param name a String
specifying
+ * the name of the attribute to remove
+ */
+ public void removeAttribute(String name);
+
+ /**
+ * Returns the preferred Locale
that the client will
+ * accept content in, based on the Accept-Language header.
+ * If the client request doesn't provide an Accept-Language header,
+ * this method returns the default locale for the server.
+ *
+ * @return the preferred Locale
for the client
+ */
+ public Locale getLocale();
+
+ /**
+ * Returns an Enumeration
of Locale
objects
+ * indicating, in decreasing order starting with the preferred locale, the
+ * locales that are acceptable to the client based on the Accept-Language
+ * header.
+ * If the client request doesn't provide an Accept-Language header,
+ * this method returns an Enumeration
containing one
+ * Locale
, the default locale for the server.
+ *
+ * @return an Enumeration
of preferred
+ * Locale
objects for the client
+ */
+ public EnumerationRequestDispatcher
object can be used to forward
+ * a request to the resource or to include the resource in a response.
+ * The resource can be dynamic or static.
+ *
+ * null
if the servlet container
+ * cannot return a RequestDispatcher
.
+ *
+ * String
specifying the pathname
+ * to the resource. If it is relative, it must be
+ * relative against the current servlet.
+ *
+ * @return a RequestDispatcher
object that acts as a
+ * wrapper for the resource at the specified path,
+ * or null
if the servlet container cannot
+ * return a RequestDispatcher
+ *
+ * @see RequestDispatcher
+ * @see ServletContext#getRequestDispatcher
+ */
+ public RequestDispatcher getRequestDispatcher(String path);
+
+ /**
+ * @deprecated As of Version 2.1 of the Java Servlet API,
+ * use {@link ServletContext#getRealPath} instead.
+ */
+ public String getRealPath(String path);
+
+ /**
+ * Returns the Internet Protocol (IP) source port of the client
+ * or last proxy that sent the request.
+ *
+ * @return an integer specifying the port number
+ *
+ * @since Servlet 2.4
+ */
+ public int getRemotePort();
+
+ /**
+ * Returns the host name of the Internet Protocol (IP) interface on
+ * which the request was received.
+ *
+ * @return a String
containing the host
+ * name of the IP on which the request was received.
+ *
+ * @since Servlet 2.4
+ */
+ public String getLocalName();
+
+ /**
+ * Returns the Internet Protocol (IP) address of the interface on
+ * which the request was received.
+ *
+ * @return a String
containing the
+ * IP address on which the request was received.
+ *
+ * @since Servlet 2.4
+ */
+ public String getLocalAddr();
+
+ /**
+ * Returns the Internet Protocol (IP) port number of the interface
+ * on which the request was received.
+ *
+ * @return an integer specifying the port number
+ *
+ * @since Servlet 2.4
+ */
+ public int getLocalPort();
+
+ /**
+ * Gets the servlet context to which this ServletRequest was last
+ * dispatched.
+ *
+ * @return the servlet context to which this ServletRequest was last
+ * dispatched
+ *
+ * @since Servlet 3.0
+ */
+ public ServletContext getServletContext();
+
+ /**
+ * Puts this request into asynchronous mode, and initializes its
+ * {@link AsyncContext} with the original (unwrapped) ServletRequest
+ * and ServletResponse objects.
+ *
+ * true
. Any filters
+ * invoked in the outbound direction after this request was put
+ * into asynchronous mode may use this as an indication that any request
+ * and/or response wrappers that they added during their inbound
+ * invocation need not stay around for the duration of the asynchronous
+ * operation, and therefore any of their associated resources may be
+ * released.
+ *
+ * false
,
+ * unless the passed in ServletRequest and ServletResponse arguments
+ * are the original ones or do not carry any application-provided wrappers.
+ * Any filters invoked in the outbound direction after this
+ * request was put into asynchronous mode may use this as an indication
+ * that some of the request and/or response wrappers that they added
+ * during their inbound invocation may need to stay in place for
+ * the duration of the asynchronous operation, and their associated
+ * resources may not be released.
+ * A ServletRequestWrapper applied during the inbound
+ * invocation of a filter may be released by the outbound
+ * invocation of the filter only if the given servletRequest
,
+ * which is used to initialize the AsyncContext and will be returned by
+ * a call to {@link AsyncContext#getRequest()}, does not contain said
+ * ServletRequestWrapper. The same holds true for ServletResponseWrapper
+ * instances.
+ *
+ * DispatcherType.REQUEST
. The dispatcher type of a request
+ * dispatched via {@link RequestDispatcher#forward(ServletRequest,
+ * ServletResponse)} or {@link RequestDispatcher#include(ServletRequest,
+ * ServletResponse)} is given as DispatcherType.FORWARD
or
+ * DispatcherType.INCLUDE
, respectively, while the
+ * dispatcher type of an asynchronous request dispatched via
+ * one of the {@link AsyncContext#dispatch} methods is given as
+ * DispatcherType.ASYNC
. Finally, the dispatcher type of a
+ * request dispatched to an error page by the container's error handling
+ * mechanism is given as DispatcherType.ERROR
.
+ *
+ * @return the dispatcher type of this request
+ *
+ * @see DispatcherType
+ *
+ * @since Servlet 3.0
+ */
+ public DispatcherType getDispatcherType();
+
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletRequestAttributeEvent.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletRequestAttributeEvent.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletRequestAttributeEvent.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,112 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+
+ /**
+ * This is the event class for notifications of changes to the
+ * attributes of the servlet request in an application.
+ * @see ServletRequestAttributeListener
+ * @since Servlet 2.4
+ */
+
+public class ServletRequestAttributeEvent extends ServletRequestEvent {
+
+ private static final long serialVersionUID = -1466635426192317793L;
+
+ private String name;
+ private Object value;
+
+ /** Construct a ServletRequestAttributeEvent giving the servlet context
+ * of this web application, the ServletRequest whose attributes are
+ * changing and the name and value of the attribute.
+ *
+ * @param sc the ServletContext that is sending the event.
+ * @param request the ServletRequest that is sending the event.
+ * @param name the name of the request attribute.
+ * @param value the value of the request attribute.
+ */
+ public ServletRequestAttributeEvent(ServletContext sc, ServletRequest request, String name, Object value) {
+ super(sc, request);
+ this.name = name;
+ this.value = value;
+ }
+
+ /**
+ * Return the name of the attribute that changed on the ServletRequest.
+ *
+ * @return the name of the changed request attribute
+ */
+ public String getName() {
+ return this.name;
+ }
+
+ /**
+ * Returns the value of the attribute that has been added, removed or
+ * replaced. If the attribute was added, this is the value of the
+ * attribute. If the attribute was removed, this is the value of the
+ * removed attribute. If the attribute was replaced, this is the old
+ * value of the attribute.
+ *
+ * @return the value of the changed request attribute
+ */
+ public Object getValue() {
+ return this.value;
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletRequestAttributeListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletRequestAttributeListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletRequestAttributeListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,118 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.util.EventListener;
+
+/**
+ * Interface for receiving notification events about ServletRequest
+ * attribute changes.
+ *
+ * ServletResponse
object and
+ * passes it as an argument to the servlet's service
method.
+ *
+ * PrintWriter
object
+ * returned by {@link #getWriter}. To mix binary and text data,
+ * for example, to create a multipart response, use a
+ * ServletOutputStream
and manage the character sections
+ * manually.
+ *
+ * setCharacterEncoding
,
+ * setContentType
, or setLocale
method must
+ * be called before getWriter
and before committing
+ * the response for the character encoding to be used.
+ *
+ * getWriter
has been
+ * called or after the response has been committed have no
+ * effect on the character encoding. If no character encoding
+ * has been specified, ISO-8859-1
is returned.
+ * String
specifying the name of
+ * the character encoding, for example, UTF-8
+ */
+ public String getCharacterEncoding();
+
+ /**
+ * Returns the content type used for the MIME body
+ * sent in this response. The content type proper must
+ * have been specified using {@link #setContentType}
+ * before the response is committed. If no content type
+ * has been specified, this method returns null.
+ * If a content type has been specified, and a
+ * character encoding has been explicitly or implicitly
+ * specified as described in {@link #getCharacterEncoding}
+ * or {@link #getWriter} has been called,
+ * the charset parameter is included in the string returned.
+ * If no character encoding has been specified, the
+ * charset parameter is omitted.
+ *
+ * @return a String
specifying the content type,
+ * for example, text/html; charset=UTF-8
, or null
+ *
+ * @since Servlet 2.4
+ */
+ public String getContentType();
+
+
+
+ /**
+ * Returns a {@link ServletOutputStream} suitable for writing binary
+ * data in the response. The servlet container does not encode the
+ * binary data.
+ *
+ * getWriter
method
+ * has been called on this response
+ *
+ * @exception IOException if an input or output exception occurred
+ *
+ * @see #getWriter
+ * @see #reset
+ */
+ public ServletOutputStream getOutputStream() throws IOException;
+
+ /**
+ * Returns a PrintWriter
object that
+ * can send character text to the client.
+ * The PrintWriter
uses the character
+ * encoding returned by {@link #getCharacterEncoding}.
+ * If the response's character encoding has not been
+ * specified as described in getCharacterEncoding
+ * (i.e., the method just returns the default value
+ * ISO-8859-1
), getWriter
+ * updates it to ISO-8859-1
.
+ * PrintWriter
+ * commits the response.
+ * PrintWriter
object that
+ * can return character data to the client
+ *
+ * @exception java.io.UnsupportedEncodingException
+ * if the character encoding returned
+ * by getCharacterEncoding
cannot be used
+ *
+ * @exception IllegalStateException
+ * if the getOutputStream
+ * method has already been called for this response object
+ *
+ * @exception IOException
+ * if an input or output exception occurred
+ *
+ * @see #getOutputStream
+ * @see #setCharacterEncoding
+ * @see #reset
+ */
+ public PrintWriter getWriter() throws IOException;
+
+ /**
+ * Sets the character encoding (MIME charset) of the response
+ * being sent to the client, for example, to UTF-8.
+ * If the character encoding has already been set by
+ * {@link #setContentType} or {@link #setLocale},
+ * this method overrides it.
+ * Calling {@link #setContentType} with the String
+ * of text/html
and calling
+ * this method with the String
of UTF-8
+ * is equivalent with calling
+ * setContentType
with the String
of
+ * text/html; charset=UTF-8
.
+ * getWriter
has been
+ * called or after the response has been committed.
+ * Content-Type
+ * header for text media types. Note that the character encoding
+ * cannot be communicated via HTTP headers if the servlet does not
+ * specify a content type; however, it is still used to encode text
+ * written via the servlet response's writer.
+ *
+ * @param charset a String specifying only the character set
+ * defined by IANA Character Sets
+ * (http://www.iana.org/assignments/character-sets)
+ *
+ * @see #setContentType
+ * @see #setLocale
+ *
+ * @since Servlet 2.4
+ */
+ public void setCharacterEncoding(String charset);
+
+ /**
+ * Sets the length of the content body in the response
+ * In HTTP servlets, this method sets the HTTP Content-Length header.
+ *
+ * @param len an integer specifying the length of the
+ * content being returned to the client; sets the Content-Length header
+ */
+ public void setContentLength(int len);
+
+ /**
+ * Sets the length of the content body in the response
+ * In HTTP servlets, this method sets the HTTP Content-Length header.
+ *
+ * @param len a long specifying the length of the
+ * content being returned to the client; sets the Content-Length header
+ *
+ * @since Servlet 3.1
+ */
+ public void setContentLengthLong(long len);
+
+ /**
+ * Sets the content type of the response being sent to
+ * the client, if the response has not been committed yet.
+ * The given content type may include a character encoding
+ * specification, for example, text/html;charset=UTF-8
.
+ * The response's character encoding is only set from the given
+ * content type if this method is called before getWriter
+ * is called.
+ * getWriter
+ * has been called or after the response has been committed.
+ * Content-Type
header is used.
+ *
+ * @param type a String
specifying the MIME
+ * type of the content
+ *
+ * @see #setLocale
+ * @see #setCharacterEncoding
+ * @see #getOutputStream
+ * @see #getWriter
+ *
+ */
+
+ public void setContentType(String type);
+
+
+ /**
+ * Sets the preferred buffer size for the body of the response.
+ * The servlet container will use a buffer at least as large as
+ * the size requested. The actual buffer size used can be found
+ * using getBufferSize
.
+ *
+ * IllegalStateException
.
+ *
+ * @param size the preferred buffer size
+ *
+ * @exception IllegalStateException if this method is called after
+ * content has been written
+ *
+ * @see #getBufferSize
+ * @see #flushBuffer
+ * @see #isCommitted
+ * @see #reset
+ */
+ public void setBufferSize(int size);
+
+ /**
+ * Returns the actual buffer size used for the response. If no buffering
+ * is used, this method returns 0.
+ *
+ * @return the actual buffer size used
+ *
+ * @see #setBufferSize
+ * @see #flushBuffer
+ * @see #isCommitted
+ * @see #reset
+ */
+ public int getBufferSize();
+
+ /**
+ * Forces any content in the buffer to be written to the client. A call
+ * to this method automatically commits the response, meaning the status
+ * code and headers will be written.
+ *
+ * @see #setBufferSize
+ * @see #getBufferSize
+ * @see #isCommitted
+ * @see #reset
+ *
+ */
+ public void flushBuffer() throws IOException;
+
+ /**
+ * Clears the content of the underlying buffer in the response without
+ * clearing headers or status code. If the
+ * response has been committed, this method throws an
+ * IllegalStateException
.
+ *
+ * @see #setBufferSize
+ * @see #getBufferSize
+ * @see #isCommitted
+ * @see #reset
+ *
+ * @since Servlet 2.3
+ */
+
+ public void resetBuffer();
+
+ /**
+ * Returns a boolean indicating if the response has been
+ * committed. A committed response has already had its status
+ * code and headers written.
+ *
+ * @return a boolean indicating if the response has been
+ * committed
+ *
+ * @see #setBufferSize
+ * @see #getBufferSize
+ * @see #flushBuffer
+ * @see #reset
+ *
+ */
+ public boolean isCommitted();
+
+ /**
+ * Clears any data that exists in the buffer as well as the status code,
+ * headers. The state of calling {@link #getWriter} or
+ * {@link #getOutputStream} is also cleared. It is legal, for instance,
+ * to call {@link #getWriter}, {@link #reset} and then
+ * {@link #getOutputStream}. If {@link #getWriter} or
+ * {@link #getOutputStream} have been called before this method,
+ * then the corrresponding returned Writer or OutputStream will be
+ * staled and the behavior of using the stale object is undefined.
+ * If the response has been committed, this method throws an
+ * IllegalStateException
.
+ *
+ * @exception IllegalStateException if the response has already been
+ * committed
+ *
+ * @see #setBufferSize
+ * @see #getBufferSize
+ * @see #flushBuffer
+ * @see #isCommitted
+ */
+ public void reset();
+
+ /**
+ * Sets the locale of the response, if the response has not been
+ * committed yet. It also sets the response's character encoding
+ * appropriately for the locale, if the character encoding has not
+ * been explicitly set using {@link #setContentType} or
+ * {@link #setCharacterEncoding}, getWriter
hasn't
+ * been called yet, and the response hasn't been committed yet.
+ * If the deployment descriptor contains a
+ * locale-encoding-mapping-list
element, and that
+ * element provides a mapping for the given locale, that mapping
+ * is used. Otherwise, the mapping from locale to character
+ * encoding is container dependent.
+ * getWriter
has been called, or after the response
+ * has been committed.
+ * Content-Language
header,
+ * the character encoding as part of the Content-Type
+ * header for text media types. Note that the character encoding
+ * cannot be communicated via HTTP headers if the servlet does not
+ * specify a content type; however, it is still used to encode text
+ * written via the servlet response's writer.
+ *
+ * @param loc the locale of the response
+ *
+ * @see #getLocale
+ * @see #setContentType
+ * @see #setCharacterEncoding
+ */
+ public void setLocale(Locale loc);
+
+ /**
+ * Returns the locale specified for this response
+ * using the {@link #setLocale} method. Calls made to
+ * setLocale
after the response is committed
+ * have no effect. If no locale has been specified,
+ * the container's default locale is returned.
+ *
+ * @see #setLocale
+ */
+ public Locale getLocale();
+
+}
+
+
+
+
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletResponseWrapper.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletResponseWrapper.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletResponseWrapper.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,319 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2012 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet;
+
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Locale;
+
+/**
+ *
+ * Provides a convenient implementation of the ServletResponse interface that
+ * can be subclassed by developers wishing to adapt the response from a Servlet.
+ * This class implements the Wrapper or Decorator pattern. Methods default to
+ * calling through to the wrapped response object.
+ *
+ * @author Various
+ * @since Servlet 2.3
+ *
+ * @see javax.servlet.ServletResponse
+ */
+
+
+public class ServletResponseWrapper implements ServletResponse {
+ private ServletResponse response;
+ /**
+ * Creates a ServletResponse adaptor wrapping the given response object.
+ * @throws java.lang.IllegalArgumentException if the response is null.
+ */
+
+
+ public ServletResponseWrapper(ServletResponse response) {
+ if (response == null) {
+ throw new IllegalArgumentException("Response cannot be null");
+ }
+ this.response = response;
+ }
+
+ /**
+ * Return the wrapped ServletResponse object.
+ */
+
+ public ServletResponse getResponse() {
+ return this.response;
+ }
+
+
+ /**
+ * Sets the response being wrapped.
+ * @throws java.lang.IllegalArgumentException if the response is null.
+ */
+
+ public void setResponse(ServletResponse response) {
+ if (response == null) {
+ throw new IllegalArgumentException("Response cannot be null");
+ }
+ this.response = response;
+ }
+
+ /**
+ * The default behavior of this method is to call setCharacterEncoding(String charset)
+ * on the wrapped response object.
+ *
+ * @since Servlet 2.4
+ */
+
+ public void setCharacterEncoding(String charset) {
+ this.response.setCharacterEncoding(charset);
+ }
+
+ /**
+ * The default behavior of this method is to return getCharacterEncoding()
+ * on the wrapped response object.
+ */
+
+ public String getCharacterEncoding() {
+ return this.response.getCharacterEncoding();
+ }
+
+
+ /**
+ * The default behavior of this method is to return getOutputStream()
+ * on the wrapped response object.
+ */
+
+ public ServletOutputStream getOutputStream() throws IOException {
+ return this.response.getOutputStream();
+ }
+
+ /**
+ * The default behavior of this method is to return getWriter()
+ * on the wrapped response object.
+ */
+
+
+ public PrintWriter getWriter() throws IOException {
+ return this.response.getWriter();
+ }
+
+ /**
+ * The default behavior of this method is to call setContentLength(int len)
+ * on the wrapped response object.
+ */
+
+ public void setContentLength(int len) {
+ this.response.setContentLength(len);
+ }
+
+ /**
+ * The default behavior of this method is to call setContentLengthLong(long len)
+ * on the wrapped response object.
+ */
+
+ public void setContentLengthLong(long len) {
+ this.response.setContentLengthLong(len);
+ }
+
+ /**
+ * The default behavior of this method is to call setContentType(String type)
+ * on the wrapped response object.
+ */
+
+ public void setContentType(String type) {
+ this.response.setContentType(type);
+ }
+
+ /**
+ * The default behavior of this method is to return getContentType()
+ * on the wrapped response object.
+ *
+ * @since Servlet 2.4
+ */
+
+ public String getContentType() {
+ return this.response.getContentType();
+ }
+
+ /**
+ * The default behavior of this method is to call setBufferSize(int size)
+ * on the wrapped response object.
+ */
+ public void setBufferSize(int size) {
+ this.response.setBufferSize(size);
+ }
+
+ /**
+ * The default behavior of this method is to return getBufferSize()
+ * on the wrapped response object.
+ */
+ public int getBufferSize() {
+ return this.response.getBufferSize();
+ }
+
+ /**
+ * The default behavior of this method is to call flushBuffer()
+ * on the wrapped response object.
+ */
+
+ public void flushBuffer() throws IOException {
+ this.response.flushBuffer();
+ }
+
+ /**
+ * The default behavior of this method is to return isCommitted()
+ * on the wrapped response object.
+ */
+ public boolean isCommitted() {
+ return this.response.isCommitted();
+ }
+
+ /**
+ * The default behavior of this method is to call reset()
+ * on the wrapped response object.
+ */
+
+ public void reset() {
+ this.response.reset();
+ }
+
+ /**
+ * The default behavior of this method is to call resetBuffer()
+ * on the wrapped response object.
+ */
+
+ public void resetBuffer() {
+ this.response.resetBuffer();
+ }
+
+ /**
+ * The default behavior of this method is to call setLocale(Locale loc)
+ * on the wrapped response object.
+ */
+
+ public void setLocale(Locale loc) {
+ this.response.setLocale(loc);
+ }
+
+ /**
+ * The default behavior of this method is to return getLocale()
+ * on the wrapped response object.
+ */
+ public Locale getLocale() {
+ return this.response.getLocale();
+ }
+
+
+ /**
+ * Checks (recursively) if this ServletResponseWrapper wraps the given
+ * {@link ServletResponse} instance.
+ *
+ * @param wrapped the ServletResponse instance to search for
+ *
+ * @return true if this ServletResponseWrapper wraps the
+ * given ServletResponse instance, false otherwise
+ *
+ * @since Servlet 3.0
+ */
+ public boolean isWrapperFor(ServletResponse wrapped) {
+ if (response == wrapped) {
+ return true;
+ } else if (response instanceof ServletResponseWrapper) {
+ return ((ServletResponseWrapper) response).isWrapperFor(wrapped);
+ } else {
+ return false;
+ }
+ }
+
+
+ /**
+ * Checks (recursively) if this ServletResponseWrapper wraps a
+ * {@link ServletResponse} of the given class type.
+ *
+ * @param wrappedType the ServletResponse class type to
+ * search for
+ *
+ * @return true if this ServletResponseWrapper wraps a
+ * ServletResponse of the given class type, false otherwise
+ *
+ * @throws IllegalArgumentException if the given class does not
+ * implement {@link ServletResponse}
+ *
+ * @since Servlet 3.0
+ */
+ public boolean isWrapperFor(Class> wrappedType) {
+ if (!ServletResponse.class.isAssignableFrom(wrappedType)) {
+ throw new IllegalArgumentException("Given class " +
+ wrappedType.getName() + " not a subinterface of " +
+ ServletResponse.class.getName());
+ }
+ if (wrappedType.isAssignableFrom(response.getClass())) {
+ return true;
+ } else if (response instanceof ServletResponseWrapper) {
+ return ((ServletResponseWrapper) response).isWrapperFor(wrappedType);
+ } else {
+ return false;
+ }
+ }
+
+}
+
+
+
+
+
Index: 3rdParty_sources/servlet-api/javax/servlet/ServletSecurityElement.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/ServletSecurityElement.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/ServletSecurityElement.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,202 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet;
+
+import java.util.*;
+import javax.servlet.annotation.HttpMethodConstraint;
+import javax.servlet.annotation.ServletSecurity;
+
+/**
+ * Java Class represntation of a {@link ServletSecurity} annotation value.
+ *
+ * @since Servlet 3.0
+ */
+public class ServletSecurityElement extends HttpConstraintElement {
+
+ private CollectionHttpConstraintElement
value as the default Constraint
+ * element and with no HTTP Method specific constraint elements.
+ */
+ public ServletSecurityElement() {
+ methodConstraints = new HashSetHttpConstraintElement
value as the default Constraint
+ * element and with a collection of HTTP Method specific constraint
+ * elements.
+ *
+ * @param methodConstraints the collection of HTTP method specific
+ * constraint elements
+ *
+ * @throws IllegalArgumentException if duplicate method names are
+ * detected
+ */
+ public ServletSecurityElement(
+ CollectionCollection
must not
+ * affect this ServletSecurityElement
.
+ *
+ *
+ * @return the (possibly empty) collection of HttpMethodConstraintElement
+ * objects
+ */
+ public CollectionCollection
must not
+ * affect this ServletSecurityElement
.
+ *
+
+ *
+ * @return the collection String method names
+ */
+ public CollectionVersion
attribute equal to
+ * 1
.
+ *
+ * @param comment the cookie comment to use
+ *
+ * @throws IllegalStateException if the ServletContext
+ * from which this SessionCookieConfig was acquired has
+ * already been initialized
+ *
+ * @see javax.servlet.http.Cookie#setComment(String)
+ * @see javax.servlet.http.Cookie#getVersion
+ */
+ public void setComment(String comment);
+
+
+ /**
+ * Gets the comment that will be assigned to any session tracking
+ * cookies created on behalf of the application represented by the
+ * ServletContext from which this SessionCookieConfig
+ * was acquired.
+ *
+ * @return the cookie comment set via {@link #setComment}, or
+ * null if {@link #setComment} was never called
+ *
+ * @see javax.servlet.http.Cookie#getComment()
+ */
+ public String getComment();
+
+
+ /**
+ * Marks or unmarks the session tracking cookies created on behalf
+ * of the application represented by the ServletContext from
+ * which this SessionCookieConfig was acquired as
+ * HttpOnly.
+ *
+ * service
method. The servlet container
+ * can make this guarantee by synchronizing access to a single
+ * instance of the servlet, or by maintaining a pool of servlet
+ * instances and dispatching each new request to a free servlet.
+ *
+ * Servlet
instance that is
+ * unavailable
+ *
+ * @param msg a String
specifying the
+ * descriptive message
+ *
+ */
+
+ public UnavailableException(Servlet servlet, String msg) {
+ super(msg);
+ this.servlet = servlet;
+ permanent = true;
+ }
+
+ /**
+ * @deprecated As of Java Servlet API 2.2, use {@link
+ * #UnavailableException(String, int)} instead.
+ *
+ * @param seconds an integer specifying the number of seconds
+ * the servlet expects to be unavailable; if
+ * zero or negative, indicates that the servlet
+ * can't make an estimate
+ *
+ * @param servlet the Servlet
that is unavailable
+ *
+ * @param msg a String
specifying the descriptive
+ * message, which can be written to a log file or
+ * displayed for the user.
+ *
+ */
+
+ public UnavailableException(int seconds, Servlet servlet, String msg) {
+ super(msg);
+ this.servlet = servlet;
+ if (seconds <= 0)
+ this.seconds = -1;
+ else
+ this.seconds = seconds;
+ permanent = false;
+ }
+
+ /**
+ *
+ * Constructs a new exception with a descriptive
+ * message indicating that the servlet is permanently
+ * unavailable.
+ *
+ * @param msg a String
specifying the
+ * descriptive message
+ *
+ */
+
+ public UnavailableException(String msg) {
+ super(msg);
+
+ permanent = true;
+ }
+
+ /**
+ * Constructs a new exception with a descriptive message
+ * indicating that the servlet is temporarily unavailable
+ * and giving an estimate of how long it will be unavailable.
+ *
+ * seconds
argument.
+ *
+ * @param msg a String
specifying the
+ * descriptive message, which can be written
+ * to a log file or displayed for the user.
+ *
+ * @param seconds an integer specifying the number of seconds
+ * the servlet expects to be unavailable; if
+ * zero or negative, indicates that the servlet
+ * can't make an estimate
+ *
+ */
+
+ public UnavailableException(String msg, int seconds) {
+ super(msg);
+
+ if (seconds <= 0)
+ this.seconds = -1;
+ else
+ this.seconds = seconds;
+
+ permanent = false;
+ }
+
+ /**
+ *
+ * Returns a boolean
indicating
+ * whether the servlet is permanently unavailable.
+ * If so, something is wrong with the servlet, and the
+ * system administrator must take some corrective action.
+ *
+ * @return true
if the servlet is
+ * permanently unavailable; false
+ * if the servlet is available or temporarily
+ * unavailable
+ *
+ */
+
+ public boolean isPermanent() {
+ return permanent;
+ }
+
+ /**
+ * @deprecated As of Java Servlet API 2.2, with no replacement.
+ *
+ * Returns the servlet that is reporting its unavailability.
+ *
+ * @return the Servlet
object that is
+ * throwing the UnavailableException
+ *
+ */
+
+ public Servlet getServlet() {
+ return servlet;
+ }
+
+ /**
+ * Returns the number of seconds the servlet expects to
+ * be temporarily unavailable.
+ *
+ * false
.
+ *
+ * @throws IOException if an I/O related error has occurred during processing
+ */
+ public void onWritePossible() throws IOException;
+
+ /**
+ * Invoked when an error occurs writing data using the non-blocking APIs.
+ */
+ public void onError(final Throwable t);
+
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/HandlesTypes.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/HandlesTypes.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/HandlesTypes.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,74 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * This annotation is used to declare the class types that a
+ * {@link javax.servlet.ServletContainerInitializer
+ * ServletContainerInitializer} can handle.
+ *
+ * @see javax.servlet.ServletContainerInitializer
+ *
+ * @since Servlet 3.0
+ */
+@Target({ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface HandlesTypes {
+
+ /**
+ * The classes in which a {@link javax.servlet.ServletContainerInitializer
+ * ServletContainerInitializer} has expressed interest.
+ *
+ * @HttpConstraint
that returns
+ * all default values occurs in combination with at least one
+ * {@link HttpMethodConstraint} that returns other than all default values, the
+ * @HttpConstraint
represents that no security constraint is to be
+ * applied to any of the HTTP protocol methods to which a security constraint
+ * would otherwise apply. This exception is made to ensure that such
+ * potentially non-specific uses of @HttpConstraint
do not yield
+ * constraints that will explicitly establish unprotected access for such
+ * methods; given that they would not otherwise be covered by a constraint.
+ *
+ * @since Servlet 3.0
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+public @interface HttpConstraint {
+
+ /**
+ * The default authorization semantic.
+ * This value is insignificant when rolesAllowed
returns a
+ * non-empty array, and should not be specified when a non-empty
+ * array is specified for rolesAllowed.
+ *
+ * @return the {@link EmptyRoleSemantic} to be applied when
+ * rolesAllowed
returns an empty (that is, zero-length) array.
+ */
+ EmptyRoleSemantic value() default EmptyRoleSemantic.PERMIT;
+
+ /**
+ * The data protection requirements (i.e., whether or not SSL/TLS is
+ * required) that must be satisfied by the connections on which requests
+ * arrive.
+ *
+ * @return the {@link TransportGuarantee}
+ * indicating the data protection that must be provided by the connection.
+ */
+ TransportGuarantee transportGuarantee() default TransportGuarantee.NONE;
+
+ /**
+ * The names of the authorized roles.
+ *
+ * Duplicate role names appearing in rolesAllowed are insignificant and
+ * may be discarded during runtime processing of the annotation. The String
+ * "*" has no special meaning as a role name (should it occur in
+ * rolesAllowed).
+ *
+ * @return an array of zero or more role names. When the array contains
+ * zero elements, its meaning depends on the EmptyRoleSemantic
+ * returned by the value
method. If value
returns
+ * DENY, and rolesAllowed
returns a zero length array,
+ * access is to be denied independent of authentication state and identity.
+ * Conversely, if value
returns PERMIT
, it
+ * indicates that access is to be allowed independent of authentication
+ * state and identity. When the array contains the names of one or more
+ * roles, it indicates that access is contingent on membership in at
+ * least one of the named roles (independent of the
+ * EmptyRoleSemantic
returned by the value
method).
+ */
+ String[] rolesAllowed() default {};
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/HttpMethodConstraint.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/HttpMethodConstraint.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/HttpMethodConstraint.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,110 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import javax.servlet.annotation.ServletSecurity.EmptyRoleSemantic;
+import javax.servlet.annotation.ServletSecurity.TransportGuarantee;
+
+/**
+ * This annotation is used within the {@link ServletSecurity} annotation to
+ * represent security constraints on specific HTTP protocol messages.
+ *
+ * @since Servlet 3.0
+ */
+@Documented
+@Retention(RetentionPolicy.RUNTIME)
+public @interface HttpMethodConstraint {
+
+ /**
+ * Http protocol method name
+ *
+ * @return the name of an HTTP protocol method. value
+ * may not be null, or the empty string, and must be a
+ * legitimate HTTP Method name as defined by RFC 2616.
+ */
+ String value();
+
+ /**
+ * The default authorization semantic.
+ * This value is insignificant when rolesAllowed
returns a
+ * non-empty array, and should not be specified when a non-empty
+ * array is specified for rolesAllowed.
+ *
+ * @return the {@link EmptyRoleSemantic} to be applied when
+ * rolesAllowed
returns an empty (that is, zero-length) array.
+ */
+ EmptyRoleSemantic emptyRoleSemantic() default EmptyRoleSemantic.PERMIT;
+
+ /**
+ * The data protection requirements (i.e., whether or not SSL/TLS is
+ * required) that must be satisfied by the connections on which requests
+ * arrive.
+ *
+ * @return the {@link TransportGuarantee}
+ * indicating the data protection that must be provided by the connection.
+ */
+ TransportGuarantee transportGuarantee() default TransportGuarantee.NONE;
+
+ /**
+ * The names of the authorized roles.
+ *
+ * Duplicate role names appearing in rolesAllowed are insignificant and
+ * may be discarded during runtime processing of the annotation. The String
+ * "*" has no special meaning as a role name (should it occur in
+ * rolesAllowed).
+ *
+ * @return an array of zero or more role names. When the array contains
+ * zero elements, its meaning depends on the value returned by
+ * emptyRoleSemantic
. If emptyRoleSemantic
returns
+ * DENY, and rolesAllowed
returns a zero length array,
+ * access is to be denied independent of authentication state and identity.
+ * Conversely, if emptyRoleSemantic
returns
+ * PERMIT
, it indicates that access is to be allowed
+ * independent of authentication state and identity. When the array
+ * contains the names of one or more roles, it indicates that access is
+ * contingent on membership in at least one of the named roles (independent
+ * of the value returned by emptyRoleSemantic
).
+ */
+ String[] rolesAllowed() default {};
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/MultipartConfig.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/MultipartConfig.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/MultipartConfig.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,88 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/**
+ * Annotation that may be specified on a {@link javax.servlet.Servlet}
+ * class, indicating that instances of the Servlet expect requests
+ * that conform to the multipart/form-data MIME type.
+ *
+ * HttpConstraint
object.
+ */
+ HttpConstraint value() default @HttpConstraint;
+
+ /**
+ * Get the HTTP method specific constraints. Each
+ * {@link HttpMethodConstraint} names an HTTP protocol method
+ * and defines the protection to be applied to it.
+ *
+ * @return an array of {@link HttpMethodConstraint} elements each
+ * defining the protection to be applied to one HTTP protocol method. For
+ * any HTTP method name, there must be at most one corresponding element in
+ * the returned array. If the returned array is of zero length, it indicates
+ * that no HTTP method specific constraints are defined.
+ */
+
+
+ HttpMethodConstraint[] httpMethodConstraints() default {};
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/annotation/WebFilter.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/annotation/WebFilter.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/annotation/WebFilter.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,125 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2008-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+import javax.servlet.DispatcherType;
+
+/**
+ * Annotation used to declare a servlet filter.
+ *
+ * <jsp-config>
+ * related configuration of a web application.
+ *
+ * web.xml
and
+ * web-fragment.xml
descriptor files of the web application.
+ *
+ * @since Servlet 3.0
+ */
+public interface JspConfigDescriptor {
+
+ /**
+ * Gets the <taglib>
child elements of the
+ * <jsp-config>
element represented by this
+ * JspConfigDescriptor
.
+ *
+ * Collection
must not
+ * affect this JspConfigDescriptor
.
+ *
+ * @return a (possibly empty) Collection
of the
+ * <taglib<>/code> child elements of the
+ *
<jsp-config>
element represented by this
+ * JspConfigDescriptor
+ */
+ public Collection<jsp-property-group>
child elements
+ * of the <jsp-config>
element represented by this
+ * JspConfigDescriptor
.
+ *
+ * Collection
must not
+ * affect this JspConfigDescriptor
.
+ *
+ * @return a (possibly empty) Collection
of the
+ * <jsp-property-group>
child elements of the
+ * <jsp-config>
element represented by this
+ * JspConfigDescriptor
+ */
+ public Collection<jsp-property-group>
+ * related configuration of a web application.
+ *
+ * web.xml
and
+ * web-fragment.xml
descriptor files of the web application.
+ *
+ * @since Servlet 3.0
+ */
+public interface JspPropertyGroupDescriptor {
+
+ /**
+ * Gets the URL patterns of the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * Collection
must not
+ * affect this JspPropertyGroupDescriptor
.
+ *
+ * @return a (possibly empty) Collection
of the URL
+ * patterns of the JSP property group represented by this
+ * JspPropertyGroupDescriptor
+ */
+ public Collectionel-ignored
configuration, which
+ * specifies whether Expression Language (EL) evaluation is enabled for
+ * any JSP pages mapped to the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * @return the value of the el-ignored
configuration, or
+ * null if unspecified
+ */
+ public String getElIgnored();
+
+ /**
+ * Gets the value of the page-encoding
configuration,
+ * which specifies the default page encoding for any JSP pages mapped
+ * to the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * @return the value of the page-encoding
configuration, or
+ * null if unspecified
+ */
+ public String getPageEncoding();
+
+ /**
+ * Gets the value of the scripting-invalid
configuration,
+ * which specifies whether scripting is enabled for any JSP pages mapped
+ * to the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * @return the value of the scripting-invalid
configuration,
+ * or null if unspecified
+ */
+ public String getScriptingInvalid();
+
+ /**
+ * Gets the value of the is-xml
configuration, which
+ * specifies whether any JSP pages mapped to the JSP property group
+ * represented by this JspPropertyGroupDescriptor
will
+ * be treated as JSP documents (XML syntax).
+ *
+ * @return the value of the is-xml
configuration, or
+ * null if unspecified
+ */
+ public String getIsXml();
+
+ /**
+ * Gets the include-prelude
configuration
+ * of the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * Collection
must not
+ * affect this JspPropertyGroupDescriptor
.
+ *
+ * @return a (possibly empty) Collection
of the
+ * include-prelude
configuration of
+ * the JSP property group represented by this
+ * JspPropertyGroupDescriptor
+ */
+ public Collectioninclude-coda
configuration
+ * of the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * Collection
must not
+ * affect this JspPropertyGroupDescriptor
.
+ *
+ * @return a (possibly empty) Collection
of the
+ * include-coda
configuration of
+ * the JSP property group represented by this
+ * JspPropertyGroupDescriptor
+ */
+ public Collectiondeferred-syntax-allowed-as-literal
configuration, which
+ * specifies whether the character sequence "#{"
,
+ * which is normally reserved for Expression Language (EL) expressions,
+ * will cause a translation error if it appears as a String literal
+ * in any JSP pages mapped to the JSP property group represented by
+ * this JspPropertyGroupDescriptor
.
+ *
+ * @return the value of the
+ * deferred-syntax-allowed-as-literal
configuration, or
+ * null if unspecified
+ */
+ public String getDeferredSyntaxAllowedAsLiteral();
+
+ /**
+ * Gets the value of the trim-directive-whitespaces
+ * configuration, which specifies whether template text containing only
+ * whitespaces must be removed from the response output of any JSP
+ * pages mapped to the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * @return the value of the trim-directive-whitespaces
+ * configuration, or null if unspecified
+ */
+ public String getTrimDirectiveWhitespaces();
+
+ /**
+ * Gets the value of the default-content-type
configuration,
+ * which specifies the default response content type for any JSP pages
+ * mapped to the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * @return the value of the default-content-type
+ * configuration, or null if unspecified
+ */
+ public String getDefaultContentType();
+
+ /**
+ * Gets the value of the buffer
configuration, which
+ * specifies the default size of the response buffer for any JSP pages
+ * mapped to the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * @return the value of the buffer
configuration, or
+ * null if unspecified
+ */
+ public String getBuffer();
+
+ /**
+ * Gets the value of the error-on-undeclared-namespace
+ * configuration, which specifies whether an error will be raised at
+ * translation time if tag with an undeclared namespace is used in
+ * any JSP pages mapped to the JSP property group represented by this
+ * JspPropertyGroupDescriptor
.
+ *
+ * @return the value of the error-on-undeclared-namespace
+ * configuration, or null if unspecified
+ */
+ public String getErrorOnUndeclaredNamespace();
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/descriptor/TaglibDescriptor.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/descriptor/TaglibDescriptor.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/descriptor/TaglibDescriptor.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,71 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 2009-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.descriptor;
+
+/**
+ * This interface provides access to the <taglib>
+ * related configuration of a web application.
+ *
+ * web.xml
and
+ * web-fragment.xml
descriptor files of the web application.
+ *
+ * @since Servlet 3.0
+ */
+public interface TaglibDescriptor {
+
+ /**
+ * Gets the unique identifier of the tag library represented by this
+ * TaglibDescriptor.
+ *
+ * @return the unique identifier of the tag library represented by this
+ * TaglibDescriptor
+ */
+ public String getTaglibURI();
+
+ /**
+ * Gets the location of the tag library represented by this
+ * TaglibDescriptor.
+ *
+ * @return the location of the tag library represented by this
+ * TaglibDescriptor
+ */
+ public String getTaglibLocation();
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/descriptor/package.html
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/descriptor/package.html (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/descriptor/package.html (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,53 @@
+
+
+web.xml
and web-fragment.xml
descriptors.
+
+@since Servlet 3.0
+
+
Index: 3rdParty_sources/servlet-api/javax/servlet/http/Cookie.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/Cookie.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/Cookie.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,506 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2011 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.io.Serializable;
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+/**
+ *
+ * Creates a cookie, a small amount of information sent by a servlet to
+ * a Web browser, saved by the browser, and later sent back to the server.
+ * A cookie's value can uniquely
+ * identify a client, so cookies are commonly used for session management.
+ *
+ * setValue
method.
+ *
+ * setVersion
method.
+ *
+ * @param name the name of the cookie
+ *
+ * @param value the value of the cookie
+ *
+ * @throws IllegalArgumentException if the cookie name is null or
+ * empty or contains any illegal characters (for example, a comma,
+ * space, or semicolon) or matches a token reserved for use by the
+ * cookie protocol
+ *
+ * @see #setValue
+ * @see #setVersion
+ */
+ public Cookie(String name, String value) {
+ if (name == null || name.length() == 0) {
+ throw new IllegalArgumentException(
+ lStrings.getString("err.cookie_name_blank"));
+ }
+ if (!isToken(name) ||
+ name.equalsIgnoreCase("Comment") || // rfc2019
+ name.equalsIgnoreCase("Discard") || // 2019++
+ name.equalsIgnoreCase("Domain") ||
+ name.equalsIgnoreCase("Expires") || // (old cookies)
+ name.equalsIgnoreCase("Max-Age") || // rfc2019
+ name.equalsIgnoreCase("Path") ||
+ name.equalsIgnoreCase("Secure") ||
+ name.equalsIgnoreCase("Version") ||
+ name.startsWith("$")) {
+ String errMsg = lStrings.getString("err.cookie_name_is_token");
+ Object[] errArgs = new Object[1];
+ errArgs[0] = name;
+ errMsg = MessageFormat.format(errMsg, errArgs);
+ throw new IllegalArgumentException(errMsg);
+ }
+
+ this.name = name;
+ this.value = value;
+ }
+
+ /**
+ * Specifies a comment that describes a cookie's purpose.
+ * The comment is useful if the browser presents the cookie
+ * to the user. Comments
+ * are not supported by Netscape Version 0 cookies.
+ *
+ * @param purpose a String
specifying the comment
+ * to display to the user
+ *
+ * @see #getComment
+ */
+ public void setComment(String purpose) {
+ comment = purpose;
+ }
+
+ /**
+ * Returns the comment describing the purpose of this cookie, or
+ * null
if the cookie has no comment.
+ *
+ * @return the comment of the cookie, or null
if unspecified
+ *
+ * @see #setComment
+ */
+ public String getComment() {
+ return comment;
+ }
+
+ /**
+ *
+ * Specifies the domain within which this cookie should be presented.
+ *
+ * .foo.com
) and means that
+ * the cookie is visible to servers in a specified Domain Name System
+ * (DNS) zone (for example, www.foo.com
, but not
+ * a.b.foo.com
). By default, cookies are only returned
+ * to the server that sent them.
+ *
+ * @param domain the domain name within which this cookie is visible;
+ * form is according to RFC 2109
+ *
+ * @see #getDomain
+ */
+ public void setDomain(String domain) {
+ this.domain = domain.toLowerCase(Locale.ENGLISH); // IE allegedly needs this
+ }
+
+ /**
+ * Gets the domain name of this Cookie.
+ *
+ * -1
is returned, which indicates that
+ * the cookie will persist until browser shutdown.
+ *
+ * @return an integer specifying the maximum age of the
+ * cookie in seconds; if negative, means
+ * the cookie persists until browser shutdown
+ *
+ * @see #setMaxAge
+ */
+ public int getMaxAge() {
+ return maxAge;
+ }
+
+ /**
+ * Specifies a path for the cookie
+ * to which the client should return the cookie.
+ *
+ * String
specifying a path
+ *
+ * @see #getPath
+ */
+ public void setPath(String uri) {
+ path = uri;
+ }
+
+ /**
+ * Returns the path on the server
+ * to which the browser returns this cookie. The
+ * cookie is visible to all subpaths on the server.
+ *
+ * @return a String
specifying a path that contains
+ * a servlet name, for example, /catalog
+ *
+ * @see #setPath
+ */
+ public String getPath() {
+ return path;
+ }
+
+ /**
+ * Indicates to the browser whether the cookie should only be sent
+ * using a secure protocol, such as HTTPS or SSL.
+ *
+ * false
.
+ *
+ * @param flag if true
, sends the cookie from the browser
+ * to the server only when using a secure protocol; if false
,
+ * sent on any protocol
+ *
+ * @see #getSecure
+ */
+ public void setSecure(boolean flag) {
+ secure = flag;
+ }
+
+ /**
+ * Returns true
if the browser is sending cookies
+ * only over a secure protocol, or false
if the
+ * browser can send cookies using any protocol.
+ *
+ * @return true
if the browser uses a secure protocol,
+ * false
otherwise
+ *
+ * @see #setSecure
+ */
+ public boolean getSecure() {
+ return secure;
+ }
+
+ /**
+ * Returns the name of the cookie. The name cannot be changed after
+ * creation.
+ *
+ * @return the name of the cookie
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Assigns a new value to this Cookie.
+ *
+ * String
to be tested
+ *
+ * @return true
if the String
is a reserved
+ * token; false
otherwise
+ */
+ private boolean isToken(String value) {
+ int len = value.length();
+ for (int i = 0; i < len; i++) {
+ char c = value.charAt(i);
+ if (c < 0x20 || c >= 0x7f || TSPECIALS.indexOf(c) != -1) {
+ return false;
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Overrides the standard java.lang.Object.clone
+ * method to return a copy of this Cookie.
+ */
+ public Object clone() {
+ try {
+ return super.clone();
+ } catch (CloneNotSupportedException e) {
+ throw new RuntimeException(e.getMessage());
+ }
+ }
+
+ /**
+ * Marks or unmarks this Cookie as HttpOnly.
+ *
+ * HttpServlet
must override at least
+ * one method, usually one of these:
+ *
+ *
+ *
+ *
+ * doGet
, if the servlet supports HTTP GET requests
+ * doPost
, for HTTP POST requests
+ * doPut
, for HTTP PUT requests
+ * doDelete
, for HTTP DELETE requests
+ * init
and destroy
,
+ * to manage resources that are held for the life of the servlet
+ * getServletInfo
, which the servlet uses to
+ * provide information about itself
+ * service
+ * method. service
handles standard HTTP
+ * requests by dispatching them to the handler methods
+ * for each HTTP request type (the do
XXX
+ * methods listed above).
+ *
+ * doOptions
and doTrace
methods.
+ *
+ * service
method) to
+ * allow a servlet to handle a GET request.
+ *
+ * PrintWriter
object to return the response,
+ * set the content type before accessing the
+ * PrintWriter
object.
+ *
+ * doGet
+ * returns an HTTP "Bad Request" message.
+ *
+ * @param req an {@link HttpServletRequest} object that
+ * contains the request the client has made
+ * of the servlet
+ *
+ * @param resp an {@link HttpServletResponse} object that
+ * contains the response the servlet sends
+ * to the client
+ *
+ * @exception IOException if an input or output error is
+ * detected when the servlet handles
+ * the GET request
+ *
+ * @exception ServletException if the request for the GET
+ * could not be handled
+ *
+ * @see javax.servlet.ServletResponse#setContentType
+ */
+
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String protocol = req.getProtocol();
+ String msg = lStrings.getString("http.method_get_not_supported");
+ if (protocol.endsWith("1.1")) {
+ resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
+ } else {
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
+ }
+ }
+
+
+ /**
+ *
+ * Returns the time the HttpServletRequest
+ * object was last modified,
+ * in milliseconds since midnight January 1, 1970 GMT.
+ * If the time is unknown, this method returns a negative
+ * number (the default).
+ *
+ * HttpServletRequest
+ * object that is sent to the servlet
+ *
+ * @return a long
integer specifying
+ * the time the HttpServletRequest
+ * object was last modified, in milliseconds
+ * since midnight, January 1, 1970 GMT, or
+ * -1 if the time is not known
+ */
+
+ protected long getLastModified(HttpServletRequest req) {
+ return -1;
+ }
+
+
+ /**
+ *
+ *
+ * service
method and handles the
+ * request.
+ * The client sends a HEAD request when it wants
+ * to see only the headers of a response, such as
+ * Content-Type or Content-Length. The HTTP HEAD
+ * method counts the output bytes in the response
+ * to set the Content-Length header accurately.
+ *
+ * doHead
method you write is both safe
+ * and idempotent (that is, protects itself from being
+ * called multiple times for one HTTP HEAD request).
+ *
+ * doHead
returns an HTTP "Bad Request"
+ * message.
+ *
+ * @param req the request object that is passed to the servlet
+ *
+ * @param resp the response object that the servlet
+ * uses to return the headers to the clien
+ *
+ * @exception IOException if an input or output error occurs
+ *
+ * @exception ServletException if the request for the HEAD
+ * could not be handled
+ */
+ protected void doHead(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ NoBodyResponse response = new NoBodyResponse(resp);
+
+ doGet(req, response);
+ response.setContentLength();
+ }
+
+
+ /**
+ *
+ * Called by the server (via the service
method)
+ * to allow a servlet to handle a POST request.
+ *
+ * The HTTP POST method allows the client to send
+ * data of unlimited length to the Web server a single time
+ * and is useful when posting information such as
+ * credit card numbers.
+ *
+ * PrintWriter
object to return the response, set the
+ * content type before accessing the PrintWriter
object.
+ *
+ * doPost
returns an HTTP "Bad Request" message.
+ *
+ *
+ * @param req an {@link HttpServletRequest} object that
+ * contains the request the client has made
+ * of the servlet
+ *
+ * @param resp an {@link HttpServletResponse} object that
+ * contains the response the servlet sends
+ * to the client
+ *
+ * @exception IOException if an input or output error is
+ * detected when the servlet handles
+ * the request
+ *
+ * @exception ServletException if the request for the POST
+ * could not be handled
+ *
+ * @see javax.servlet.ServletOutputStream
+ * @see javax.servlet.ServletResponse#setContentType
+ */
+ protected void doPost(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String protocol = req.getProtocol();
+ String msg = lStrings.getString("http.method_post_not_supported");
+ if (protocol.endsWith("1.1")) {
+ resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
+ } else {
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
+ }
+ }
+
+
+ /**
+ * Called by the server (via the service
method)
+ * to allow a servlet to handle a PUT request.
+ *
+ * The PUT operation allows a client to
+ * place a file on the server and is similar to
+ * sending a file by FTP.
+ *
+ * doPut
performs can have side
+ * effects for which the user can be held accountable. When using
+ * this method, it may be useful to save a copy of the
+ * affected URL in temporary storage.
+ *
+ * doPut
returns an HTTP "Bad Request" message.
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * PUT request
+ *
+ * @exception ServletException if the request for the PUT
+ * cannot be handled
+ */
+ protected void doPut(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String protocol = req.getProtocol();
+ String msg = lStrings.getString("http.method_put_not_supported");
+ if (protocol.endsWith("1.1")) {
+ resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
+ } else {
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
+ }
+ }
+
+
+ /**
+ * Called by the server (via the service
method)
+ * to allow a servlet to handle a DELETE request.
+ *
+ * The DELETE operation allows a client to remove a document
+ * or Web page from the server.
+ *
+ * doDelete
returns an HTTP "Bad Request"
+ * message.
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * DELETE request
+ *
+ * @exception ServletException if the request for the
+ * DELETE cannot be handled
+ */
+ protected void doDelete(HttpServletRequest req,
+ HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String protocol = req.getProtocol();
+ String msg = lStrings.getString("http.method_delete_not_supported");
+ if (protocol.endsWith("1.1")) {
+ resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, msg);
+ } else {
+ resp.sendError(HttpServletResponse.SC_BAD_REQUEST, msg);
+ }
+ }
+
+
+ private Method[] getAllDeclaredMethods(Class extends HttpServlet> c) {
+
+ Class> clazz = c;
+ Method[] allMethods = null;
+
+ while (!clazz.equals(HttpServlet.class)) {
+ Method[] thisMethods = clazz.getDeclaredMethods();
+ if (allMethods != null && allMethods.length > 0) {
+ Method[] subClassMethods = allMethods;
+ allMethods =
+ new Method[thisMethods.length + subClassMethods.length];
+ System.arraycopy(thisMethods, 0, allMethods, 0,
+ thisMethods.length);
+ System.arraycopy(subClassMethods, 0, allMethods, thisMethods.length,
+ subClassMethods.length);
+ } else {
+ allMethods = thisMethods;
+ }
+
+ clazz = clazz.getSuperclass();
+ }
+
+ return ((allMethods != null) ? allMethods : new Method[0]);
+ }
+
+
+ /**
+ * Called by the server (via the service
method)
+ * to allow a servlet to handle a OPTIONS request.
+ *
+ * The OPTIONS request determines which HTTP methods
+ * the server supports and
+ * returns an appropriate header. For example, if a servlet
+ * overrides doGet
, this method returns the
+ * following header:
+ *
+ * Allow: GET, HEAD, TRACE, OPTIONS
+ *
+ * service
method)
+ * to allow a servlet to handle a TRACE request.
+ *
+ * A TRACE returns the headers sent with the TRACE
+ * request to the client, so that they can be used in
+ * debugging. There's no need to override this method.
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * TRACE request
+ *
+ * @exception ServletException if the request for the
+ * TRACE cannot be handled
+ */
+ protected void doTrace(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+
+ int responseLength;
+
+ String CRLF = "\r\n";
+ StringBuilder buffer = new StringBuilder("TRACE ").append(req.getRequestURI())
+ .append(" ").append(req.getProtocol());
+
+ Enumerationservice
method and dispatches
+ * them to the do
XXX methods defined in
+ * this class. This method is an HTTP-specific version of the
+ * {@link javax.servlet.Servlet#service} method. There's no
+ * need to override this method.
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ * @param resp the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * HTTP request
+ *
+ * @exception ServletException if the HTTP request
+ * cannot be handled
+ *
+ * @see javax.servlet.Servlet#service
+ */
+ protected void service(HttpServletRequest req, HttpServletResponse resp)
+ throws ServletException, IOException
+ {
+ String method = req.getMethod();
+
+ if (method.equals(METHOD_GET)) {
+ long lastModified = getLastModified(req);
+ if (lastModified == -1) {
+ // servlet doesn't support if-modified-since, no reason
+ // to go through further expensive logic
+ doGet(req, resp);
+ } else {
+ long ifModifiedSince = req.getDateHeader(HEADER_IFMODSINCE);
+ if (ifModifiedSince < lastModified) {
+ // If the servlet mod time is later, call doGet()
+ // Round down to the nearest second for a proper compare
+ // A ifModifiedSince of -1 will always be less
+ maybeSetLastModified(resp, lastModified);
+ doGet(req, resp);
+ } else {
+ resp.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
+ }
+ }
+
+ } else if (method.equals(METHOD_HEAD)) {
+ long lastModified = getLastModified(req);
+ maybeSetLastModified(resp, lastModified);
+ doHead(req, resp);
+
+ } else if (method.equals(METHOD_POST)) {
+ doPost(req, resp);
+
+ } else if (method.equals(METHOD_PUT)) {
+ doPut(req, resp);
+
+ } else if (method.equals(METHOD_DELETE)) {
+ doDelete(req, resp);
+
+ } else if (method.equals(METHOD_OPTIONS)) {
+ doOptions(req,resp);
+
+ } else if (method.equals(METHOD_TRACE)) {
+ doTrace(req,resp);
+
+ } else {
+ //
+ // Note that this means NO servlet supports whatever
+ // method was requested, anywhere on this server.
+ //
+
+ String errMsg = lStrings.getString("http.method_not_implemented");
+ Object[] errArgs = new Object[1];
+ errArgs[0] = method;
+ errMsg = MessageFormat.format(errMsg, errArgs);
+
+ resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED, errMsg);
+ }
+ }
+
+
+ /*
+ * Sets the Last-Modified entity header field, if it has not
+ * already been set and if the value is meaningful. Called before
+ * doGet, to ensure that headers are set before response data is
+ * written. A subclass might have set this header already, so we
+ * check.
+ */
+ private void maybeSetLastModified(HttpServletResponse resp,
+ long lastModified) {
+ if (resp.containsHeader(HEADER_LASTMOD))
+ return;
+ if (lastModified >= 0)
+ resp.setDateHeader(HEADER_LASTMOD, lastModified);
+ }
+
+
+ /**
+ * Dispatches client requests to the protected
+ * service
method. There's no need to
+ * override this method.
+ *
+ * @param req the {@link HttpServletRequest} object that
+ * contains the request the client made of
+ * the servlet
+ *
+ * @param res the {@link HttpServletResponse} object that
+ * contains the response the servlet returns
+ * to the client
+ *
+ * @exception IOException if an input or output error occurs
+ * while the servlet is handling the
+ * HTTP request
+ *
+ * @exception ServletException if the HTTP request cannot
+ * be handled
+ *
+ * @see javax.servlet.Servlet#service
+ */
+ @Override
+ public void service(ServletRequest req, ServletResponse res)
+ throws ServletException, IOException
+ {
+ HttpServletRequest request;
+ HttpServletResponse response;
+
+ if (!(req instanceof HttpServletRequest &&
+ res instanceof HttpServletResponse)) {
+ throw new ServletException("non-HTTP request or response");
+ }
+
+ request = (HttpServletRequest) req;
+ response = (HttpServletResponse) res;
+
+ service(request, response);
+ }
+}
+
+
+/*
+ * A response that includes no body, for use in (dumb) "HEAD" support.
+ * This just swallows that body, counting the bytes in order to set
+ * the content length appropriately. All other methods delegate directly
+ * to the wrapped HTTP Servlet Response object.
+ */
+// file private
+class NoBodyResponse extends HttpServletResponseWrapper {
+
+ private static final ResourceBundle lStrings
+ = ResourceBundle.getBundle("javax.servlet.http.LocalStrings");
+
+ private NoBodyOutputStream noBody;
+ private PrintWriter writer;
+ private boolean didSetContentLength;
+ private boolean usingOutputStream;
+
+ // file private
+ NoBodyResponse(HttpServletResponse r) {
+ super(r);
+ noBody = new NoBodyOutputStream();
+ }
+
+ // file private
+ void setContentLength() {
+ if (!didSetContentLength) {
+ if (writer != null) {
+ writer.flush();
+ }
+ setContentLength(noBody.getContentLength());
+ }
+ }
+
+ @Override
+ public void setContentLength(int len) {
+ super.setContentLength(len);
+ didSetContentLength = true;
+ }
+
+ @Override
+ public void setContentLengthLong(long len) {
+ super.setContentLengthLong(len);
+ didSetContentLength = true;
+ }
+
+ @Override
+ public void setHeader(String name, String value) {
+ super.setHeader(name, value);
+ checkHeader(name);
+ }
+
+ @Override
+ public void addHeader(String name, String value) {
+ super.addHeader(name, value);
+ checkHeader(name);
+ }
+
+ @Override
+ public void setIntHeader(String name, int value) {
+ super.setIntHeader(name, value);
+ checkHeader(name);
+ }
+
+ @Override
+ public void addIntHeader(String name, int value) {
+ super.addIntHeader(name, value);
+ checkHeader(name);
+ }
+
+ private void checkHeader(String name) {
+ if ("content-length".equalsIgnoreCase(name)) {
+ didSetContentLength = true;
+ }
+ }
+
+ @Override
+ public ServletOutputStream getOutputStream() throws IOException {
+
+ if (writer != null) {
+ throw new IllegalStateException(
+ lStrings.getString("err.ise.getOutputStream"));
+ }
+ usingOutputStream = true;
+
+ return noBody;
+ }
+
+ @Override
+ public PrintWriter getWriter() throws UnsupportedEncodingException {
+
+ if (usingOutputStream) {
+ throw new IllegalStateException(
+ lStrings.getString("err.ise.getWriter"));
+ }
+
+ if (writer == null) {
+ OutputStreamWriter w = new OutputStreamWriter(
+ noBody, getCharacterEncoding());
+ writer = new PrintWriter(w);
+ }
+
+ return writer;
+ }
+}
+
+
+/*
+ * Servlet output stream that gobbles up all its data.
+ */
+// file private
+class NoBodyOutputStream extends ServletOutputStream {
+
+ private static final String LSTRING_FILE =
+ "javax.servlet.http.LocalStrings";
+ private static ResourceBundle lStrings =
+ ResourceBundle.getBundle(LSTRING_FILE);
+
+ private int contentLength = 0;
+
+ // file private
+ NoBodyOutputStream() {}
+
+ // file private
+ int getContentLength() {
+ return contentLength;
+ }
+
+ @Override
+ public void write(int b) {
+ contentLength++;
+ }
+
+ @Override
+ public void write(byte buf[], int offset, int len)
+ throws IOException
+ {
+ if (buf == null) {
+ throw new NullPointerException(
+ lStrings.getString("err.io.nullArray"));
+ }
+
+ if (offset < 0 || len < 0 || offset+len > buf.length) {
+ String msg = lStrings.getString("err.io.indexOutOfBounds");
+ Object[] msgArgs = new Object[3];
+ msgArgs[0] = Integer.valueOf(offset);
+ msgArgs[1] = Integer.valueOf(len);
+ msgArgs[2] = Integer.valueOf(buf.length);
+ msg = MessageFormat.format(msg, msgArgs);
+ throw new IndexOutOfBoundsException(msg);
+ }
+
+ contentLength += len;
+ }
+
+
+ public boolean isReady() {
+ return false;
+ }
+
+ public void setWriteListener(WriteListener writeListener) {
+
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpServletRequest.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpServletRequest.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpServletRequest.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,748 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.io.IOException;
+import java.util.*;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+
+/**
+ *
+ * Extends the {@link javax.servlet.ServletRequest} interface
+ * to provide request information for HTTP servlets.
+ *
+ * HttpServletRequest
+ * object and passes it as an argument to the servlet's service
+ * methods (doGet
, doPost
, etc).
+ *
+ *
+ * @author Various
+ */
+
+public interface HttpServletRequest extends ServletRequest {
+
+ /**
+ * String identifier for Basic authentication. Value "BASIC"
+ */
+ public static final String BASIC_AUTH = "BASIC";
+
+ /**
+ * String identifier for Form authentication. Value "FORM"
+ */
+ public static final String FORM_AUTH = "FORM";
+
+ /**
+ * String identifier for Client Certificate authentication. Value "CLIENT_CERT"
+ */
+ public static final String CLIENT_CERT_AUTH = "CLIENT_CERT";
+
+ /**
+ * String identifier for Digest authentication. Value "DIGEST"
+ */
+ public static final String DIGEST_AUTH = "DIGEST";
+
+ /**
+ * Returns the name of the authentication scheme used to protect
+ * the servlet. All servlet containers support basic, form and client
+ * certificate authentication, and may additionally support digest
+ * authentication.
+ * If the servlet is not authenticated null
is returned.
+ *
+ * null
if the request was
+ * not authenticated.
+ */
+ public String getAuthType();
+
+ /**
+ * Returns an array containing all of the Cookie
+ * objects the client sent with this request.
+ * This method returns null
if no cookies were sent.
+ *
+ * @return an array of all the Cookies
+ * included with this request, or null
+ * if the request has no cookies
+ */
+ public Cookie[] getCookies();
+
+ /**
+ * Returns the value of the specified request header
+ * as a long
value that represents a
+ * Date
object. Use this method with
+ * headers that contain dates, such as
+ * If-Modified-Since
.
+ *
+ * IllegalArgumentException
.
+ *
+ * @param name a String
specifying the
+ * name of the header
+ *
+ * @return a long
value
+ * representing the date specified
+ * in the header expressed as
+ * the number of milliseconds
+ * since January 1, 1970 GMT,
+ * or -1 if the named header
+ * was not included with the
+ * request
+ *
+ * @exception IllegalArgumentException If the header value
+ * can't be converted
+ * to a date
+ */
+ public long getDateHeader(String name);
+
+ /**
+ * Returns the value of the specified request header
+ * as a String
. If the request did not include a header
+ * of the specified name, this method returns null
.
+ * If there are multiple headers with the same name, this method
+ * returns the first head in the request.
+ * The header name is case insensitive. You can use
+ * this method with any request header.
+ *
+ * @param name a String
specifying the
+ * header name
+ *
+ * @return a String
containing the
+ * value of the requested
+ * header, or null
+ * if the request does not
+ * have a header of that name
+ */
+ public String getHeader(String name);
+
+ /**
+ * Returns all the values of the specified request header
+ * as an Enumeration
of String
objects.
+ *
+ * Accept-Language
can be sent
+ * by clients as several headers each with a different value rather than
+ * sending the header as a comma separated list.
+ *
+ * Enumeration
.
+ * The header name is case insensitive. You can use
+ * this method with any request header.
+ *
+ * @param name a String
specifying the
+ * header name
+ *
+ * @return an Enumeration
containing
+ * the values of the requested header. If
+ * the request does not have any headers of
+ * that name return an empty
+ * enumeration. If
+ * the container does not allow access to
+ * header information, return null
+ */
+ public Enumerationnull
+ *
+ * @return an enumeration of all the
+ * header names sent with this
+ * request; if the request has
+ * no headers, an empty enumeration;
+ * if the servlet container does not
+ * allow servlets to use this method,
+ * null
+ */
+ public Enumerationint
. If the request does not have a header
+ * of the specified name, this method returns -1. If the
+ * header cannot be converted to an integer, this method
+ * throws a NumberFormatException
.
+ *
+ * String
specifying the name
+ * of a request header
+ *
+ * @return an integer expressing the value
+ * of the request header or -1
+ * if the request doesn't have a
+ * header of this name
+ *
+ * @exception NumberFormatException If the header value
+ * can't be converted
+ * to an int
+ */
+ public int getIntHeader(String name);
+
+ /**
+ * Returns the name of the HTTP method with which this
+ * request was made, for example, GET, POST, or PUT.
+ * Same as the value of the CGI variable REQUEST_METHOD.
+ *
+ * @return a String
+ * specifying the name
+ * of the method with which
+ * this request was made
+ */
+ public String getMethod();
+
+ /**
+ * Returns any extra path information associated with
+ * the URL the client sent when it made this request.
+ * The extra path information follows the servlet path
+ * but precedes the query string and will start with
+ * a "/" character.
+ *
+ * null
if there
+ * was no extra path information.
+ *
+ * String
, decoded by the
+ * web container, specifying
+ * extra path information that comes
+ * after the servlet path but before
+ * the query string in the request URL;
+ * or null
if the URL does not have
+ * any extra path information
+ */
+ public String getPathInfo();
+
+ /**
+ * Returns any extra path information after the servlet name
+ * but before the query string, and translates it to a real
+ * path. Same as the value of the CGI variable PATH_TRANSLATED.
+ *
+ * null
or the servlet container
+ * cannot translate the virtual path to a real path for any reason
+ * (such as when the web application is executed from an archive).
+ *
+ * The web container does not decode this string.
+ *
+ * @return a String
specifying the
+ * real path, or null
if
+ * the URL does not have any extra path
+ * information
+ */
+ public String getPathTranslated();
+
+ /**
+ * Returns the portion of the request URI that indicates the context
+ * of the request. The context path always comes first in a request
+ * URI. The path starts with a "/" character but does not end with a "/"
+ * character. For servlets in the default (root) context, this method
+ * returns "". The container does not decode this string.
+ *
+ * String
specifying the
+ * portion of the request URI that indicates the context
+ * of the request
+ *
+ * @see javax.servlet.ServletContext#getContextPath()
+ */
+ public String getContextPath();
+
+ /**
+ * Returns the query string that is contained in the request
+ * URL after the path. This method returns null
+ * if the URL does not have a query string. Same as the value
+ * of the CGI variable QUERY_STRING.
+ *
+ * @return a String
containing the query
+ * string or null
if the URL
+ * contains no query string. The value is not
+ * decoded by the container.
+ */
+ public String getQueryString();
+
+ /**
+ * Returns the login of the user making this request, if the
+ * user has been authenticated, or null
if the user
+ * has not been authenticated.
+ * Whether the user name is sent with each subsequent request
+ * depends on the browser and type of authentication. Same as the
+ * value of the CGI variable REMOTE_USER.
+ *
+ * @return a String
specifying the login
+ * of the user making this request, or null
+ * if the user login is not known
+ */
+ public String getRemoteUser();
+
+ /**
+ * Returns a boolean indicating whether the authenticated user is included
+ * in the specified logical "role". Roles and role membership can be
+ * defined using deployment descriptors. If the user has not been
+ * authenticated, the method returns false
.
+ *
+ * isUserInRole
. Any call to isUserInRole
with
+ * “*” must return false.
+ * If the role-name of the security-role to be tested is “**”, and
+ * the application has NOT declared an application security-role with
+ * role-name “**”, isUserInRole
must only return true if
+ * the user has been authenticated; that is, only when
+ * {@link #getRemoteUser} and {@link #getUserPrincipal} would both return
+ * a non-null value. Otherwise, the container must check
+ * the user for membership in the application role.
+ *
+ * @param role a String
specifying the name
+ * of the role
+ *
+ * @return a boolean
indicating whether
+ * the user making this request belongs to a given role;
+ * false
if the user has not been
+ * authenticated
+ */
+ public boolean isUserInRole(String role);
+
+ /**
+ * Returns a java.security.Principal
object containing
+ * the name of the current authenticated user. If the user has not been
+ * authenticated, the method returns null
.
+ *
+ * @return a java.security.Principal
containing
+ * the name of the user making this request;
+ * null
if the user has not been
+ * authenticated
+ */
+ public java.security.Principal getUserPrincipal();
+
+ /**
+ * Returns the session ID specified by the client. This may
+ * not be the same as the ID of the current valid session
+ * for this request.
+ * If the client did not specify a session ID, this method returns
+ * null
.
+ *
+ * @return a String
specifying the session
+ * ID, or null
if the request did
+ * not specify a session ID
+ *
+ * @see #isRequestedSessionIdValid
+ */
+ public String getRequestedSessionId();
+
+ /**
+ * Returns the part of this request's URL from the protocol
+ * name up to the query string in the first line of the HTTP request.
+ * The web container does not decode this String.
+ * For example:
+ *
+ *
+ *
+ *
+ * First line of HTTP request
+ * Returned Value
+ * POST /some/path.html HTTP/1.1 /some/path.html
+ * GET http://foo.bar/a.html HTTP/1.0
+ * /a.html
+ * HEAD /xyz?a=b HTTP/1.1 /xyz
+ * String
containing
+ * the part of the URL from the
+ * protocol name up to the query string
+ *
+ * @see HttpUtils#getRequestURL
+ */
+ public String getRequestURI();
+
+ /**
+ * Reconstructs the URL the client used to make the request.
+ * The returned URL contains a protocol, server name, port
+ * number, and server path, but it does not include query
+ * string parameters.
+ *
+ * StringBuffer
,
+ * not a string, you can modify the URL easily, for example,
+ * to append query parameters.
+ *
+ * StringBuffer
object containing
+ * the reconstructed URL
+ */
+ public StringBuffer getRequestURL();
+
+ /**
+ * Returns the part of this request's URL that calls
+ * the servlet. This path starts with a "/" character
+ * and includes either the servlet name or a path to
+ * the servlet, but does not include any extra path
+ * information or a query string. Same as the value of
+ * the CGI variable SCRIPT_NAME.
+ *
+ * String
containing
+ * the name or path of the servlet being
+ * called, as specified in the request URL,
+ * decoded, or an empty string if the servlet
+ * used to process the request is matched
+ * using the "/*" pattern.
+ */
+ public String getServletPath();
+
+ /**
+ * Returns the current HttpSession
+ * associated with this request or, if there is no
+ * current session and create
is true, returns
+ * a new session.
+ *
+ * create
is false
+ * and the request has no valid HttpSession
,
+ * this method returns null
.
+ *
+ * true
to create
+ * a new session for this request if necessary;
+ * false
to return null
+ * if there's no current session
+ *
+ * @return the HttpSession
associated
+ * with this request or null
if
+ * create
is false
+ * and the request has no valid session
+ *
+ * @see #getSession()
+ */
+ public HttpSession getSession(boolean create);
+
+ /**
+ * Returns the current session associated with this request,
+ * or if the request does not have a session, creates one.
+ *
+ * @return the HttpSession
associated
+ * with this request
+ *
+ * @see #getSession(boolean)
+ */
+ public HttpSession getSession();
+
+ /**
+ * Change the session id of the current session associated with this
+ * request and return the new session id.
+ *
+ * @return the new session id
+ *
+ * @throws IllegalStateException if there is no session associated
+ * with the request
+ *
+ * @since Servlet 3.1
+ */
+ public String changeSessionId();
+
+ /**
+ * Checks whether the requested session ID is still valid.
+ *
+ * false
.
+ *
+ * @return true
if this
+ * request has an id for a valid session
+ * in the current session context;
+ * false
otherwise
+ *
+ * @see #getRequestedSessionId
+ * @see #getSession
+ * @see HttpSessionContext
+ */
+ public boolean isRequestedSessionIdValid();
+
+ /**
+ * Checks whether the requested session ID came in as a cookie.
+ *
+ * @return true
if the session ID
+ * came in as a
+ * cookie; otherwise, false
+ *
+ * @see #getSession
+ */
+ public boolean isRequestedSessionIdFromCookie();
+
+ /**
+ * Checks whether the requested session ID came in as part of the
+ * request URL.
+ *
+ * @return true
if the session ID
+ * came in as part of a URL; otherwise,
+ * false
+ *
+ * @see #getSession
+ */
+ public boolean isRequestedSessionIdFromURL();
+
+ /**
+ * @deprecated As of Version 2.1 of the Java Servlet
+ * API, use {@link #isRequestedSessionIdFromURL}
+ * instead.
+ */
+ public boolean isRequestedSessionIdFromUrl();
+
+ /**
+ * Use the container login mechanism configured for the
+ * ServletContext
to authenticate the user making
+ * this request.
+ *
+ * HttpServletResponse
.
+ *
+ * @param response The HttpServletResponse
+ * associated with this HttpServletRequest
+ *
+ * @return true
when non-null values were or have been
+ * established as the values returned by getUserPrincipal
,
+ * getRemoteUser
, and getAuthType
. Return
+ * false
if authentication is incomplete and the underlying
+ * login mechanism has committed, in the response, the message (e.g.,
+ * challenge) and HTTP status code to be returned to the user.
+ *
+ * @throws IOException if an input or output error occurred while
+ * reading from this request or writing to the given response
+ *
+ * @throws IllegalStateException if the login mechanism attempted to
+ * modify the response and it was already committed
+ *
+ * @throws ServletException if the authentication failed and
+ * the caller is responsible for handling the error (i.e., the
+ * underlying login mechanism did NOT establish the message and
+ * HTTP status code to be returned to the user)
+ *
+ * @since Servlet 3.0
+ */
+ public boolean authenticate(HttpServletResponse response)
+ throws IOException,ServletException;
+
+ /**
+ * Validate the provided username and password in the password validation
+ * realm used by the web container login mechanism configured for the
+ * ServletContext
.
+ *
+ * ServletException
+ * when the login mechanism configured for the ServletContext
+ * supports username password validation, and when, at the time of the
+ * call to login, the identity of the caller of the request had
+ * not been established (i.e, all of getUserPrincipal
,
+ * getRemoteUser
, and getAuthType
return null),
+ * and when validation of the provided credentials is successful.
+ * Otherwise, this method throws a ServletException
as
+ * described below.
+ *
+ * getUserPrincipal
, getRemoteUser
, and
+ * getAuthType
.
+ *
+ * @param username The String
value corresponding to
+ * the login identifier of the user.
+ *
+ * @param password The password String
corresponding
+ * to the identified user.
+ *
+ * @exception ServletException if the configured login mechanism
+ * does not support username
+ * password authentication, or if a
+ * non-null caller identity had
+ * already been established (prior
+ * to the call to login), or if
+ * validation of the provided
+ * username and password fails.
+ *
+ * @since Servlet 3.0
+ */
+ public void login(String username, String password)
+ throws ServletException;
+
+ /**
+ * Establish null
as the value returned when
+ * getUserPrincipal
, getRemoteUser
,
+ * and getAuthType
is called on the request.
+ *
+ * @exception ServletException if logout fails
+ *
+ * @since Servlet 3.0
+ */
+ public void logout() throws ServletException;
+
+ /**
+ * Gets all the {@link Part} components of this request, provided
+ * that it is of type multipart/form-data
.
+ *
+ * multipart/form-data
, but
+ * does not contain any Part
components, the returned
+ * Collection
will be empty.
+ *
+ * Collection
must not
+ * affect this HttpServletRequest
.
+ *
+ * @return a (possibly empty) Collection
of the
+ * Part
components of this request
+ *
+ * @throws IOException if an I/O error occurred during the retrieval
+ * of the {@link Part} components of this request
+ *
+ * @throws ServletException if this request is not of type
+ * multipart/form-data
+ *
+ * @throws IllegalStateException if the request body is larger than
+ * maxRequestSize
, or any Part
in the
+ * request is larger than maxFileSize
, or there is no
+ * @MultipartConfig
or multipart-config
in
+ * deployment descriptors
+ *
+ * @see javax.servlet.annotation.MultipartConfig#maxFileSize
+ * @see javax.servlet.annotation.MultipartConfig#maxRequestSize
+ *
+ * @since Servlet 3.0
+ */
+ public CollectionPart
+ *
+ * @return The Part
with the given name, or
+ * null
if this request is of type
+ * multipart/form-data
, but does not
+ * contain the requested Part
+ *
+ * @throws IOException if an I/O error occurred during the retrieval
+ * of the requested Part
+ * @throws ServletException if this request is not of type
+ * multipart/form-data
+ * @throws IllegalStateException if the request body is larger than
+ * maxRequestSize
, or any Part
in the
+ * request is larger than maxFileSize
, or there is no
+ * @MultipartConfig
or multipart-config
in
+ * deployment descriptors
+ *
+ * @see javax.servlet.annotation.MultipartConfig#maxFileSize
+ * @see javax.servlet.annotation.MultipartConfig#maxRequestSize
+ *
+ * @since Servlet 3.0
+ */
+ public Part getPart(String name) throws IOException, ServletException;
+
+ /**
+ * Create an instance of HttpUpgradeHandler
for an given
+ * class and uses it for the http protocol upgrade processing.
+ *
+ * @param handlerClass The HttpUpgradeHandler
class used for the upgrade.
+ *
+ * @return an instance of the HttpUpgradeHandler
+ *
+ * @exception IOException if an I/O error occurred during the upgrade
+ * @exception ServletException if the given handlerClass
fails to
+ * be instantiated
+ *
+ * @see javax.servlet.http.HttpUpgradeHandler
+ * @see javax.servlet.http.WebConnection
+ *
+ * @since Servlet 3.1
+ */
+ public Collection
must not
+ * affect this HttpServletRequestWrapper
.
+ *
+ * @since Servlet 3.0
+ */
+ @Override
+ public CollectionHttpUpgradeHandler
for an given
+ * class and uses it for the http protocol upgrade processing.
+ *
+ * @since Servlet 3.1
+ */
+ @Override
+ public HttpServletResponse
object
+ * and passes it as an argument to the servlet's service methods
+ * (doGet
, doPost
, etc).
+ *
+ *
+ * @author Various
+ *
+ * @see javax.servlet.ServletResponse
+ *
+ */
+public interface HttpServletResponse extends ServletResponse {
+
+ /**
+ * Adds the specified cookie to the response. This method can be called
+ * multiple times to set more than one cookie.
+ *
+ * @param cookie the Cookie to return to the client
+ *
+ */
+ public void addCookie(Cookie cookie);
+
+ /**
+ * Returns a boolean indicating whether the named response header
+ * has already been set.
+ *
+ * @param name the header name
+ * @return true
if the named response header
+ * has already been set;
+ * false
otherwise
+ */
+ public boolean containsHeader(String name);
+
+ /**
+ * Encodes the specified URL by including the session ID,
+ * or, if encoding is not needed, returns the URL unchanged.
+ * The implementation of this method includes the logic to
+ * determine whether the session ID needs to be encoded in the URL.
+ * For example, if the browser supports cookies, or session
+ * tracking is turned off, URL encoding is unnecessary.
+ *
+ * sendRedirect
method or, if encoding is not needed,
+ * returns the URL unchanged. The implementation of this method
+ * includes the logic to determine whether the session ID
+ * needs to be encoded in the URL. For example, if the browser supports
+ * cookies, or session tracking is turned off, URL encoding is
+ * unnecessary. Because the rules for making this determination can
+ * differ from those used to decide whether to
+ * encode a normal link, this method is separated from the
+ * encodeURL
method.
+ *
+ * HttpServletResponse.sendRedirect
+ * method should be run through this method. Otherwise, URL
+ * rewriting cannot be used with browsers which do not support
+ * cookies.
+ *
+ * containsHeader
method can be used to test for the
+ * presence of a header before setting its value.
+ *
+ * @param name the name of the header to set
+ * @param date the assigned date value
+ *
+ * @see #containsHeader
+ * @see #addDateHeader
+ */
+ public void setDateHeader(String name, long date);
+
+ /**
+ *
+ * Adds a response header with the given name and
+ * date-value. The date is specified in terms of
+ * milliseconds since the epoch. This method allows response headers
+ * to have multiple values.
+ *
+ * @param name the name of the header to set
+ * @param date the additional date value
+ *
+ * @see #setDateHeader
+ */
+ public void addDateHeader(String name, long date);
+
+ /**
+ *
+ * Sets a response header with the given name and value.
+ * If the header had already been set, the new value overwrites the
+ * previous one. The containsHeader
method can be
+ * used to test for the presence of a header before setting its
+ * value.
+ *
+ * @param name the name of the header
+ * @param value the header value If it contains octet string,
+ * it should be encoded according to RFC 2047
+ * (http://www.ietf.org/rfc/rfc2047.txt)
+ *
+ * @see #containsHeader
+ * @see #addHeader
+ */
+ public void setHeader(String name, String value);
+
+ /**
+ * Adds a response header with the given name and value.
+ * This method allows response headers to have multiple values.
+ *
+ * @param name the name of the header
+ * @param value the additional header value If it contains
+ * octet string, it should be encoded
+ * according to RFC 2047
+ * (http://www.ietf.org/rfc/rfc2047.txt)
+ *
+ * @see #setHeader
+ */
+ public void addHeader(String name, String value);
+
+ /**
+ * Sets a response header with the given name and
+ * integer value. If the header had already been set, the new value
+ * overwrites the previous one. The containsHeader
+ * method can be used to test for the presence of a header before
+ * setting its value.
+ *
+ * @param name the name of the header
+ * @param value the assigned integer value
+ *
+ * @see #containsHeader
+ * @see #addIntHeader
+ */
+ public void setIntHeader(String name, int value);
+
+ /**
+ * Adds a response header with the given name and
+ * integer value. This method allows response headers to have multiple
+ * values.
+ *
+ * @param name the name of the header
+ * @param value the assigned integer value
+ *
+ * @see #setIntHeader
+ */
+ public void addIntHeader(String name, int value);
+
+ /**
+ * Sets the status code for this response.
+ *
+ * setStatus(int)
, to send an error with a description
+ * use sendError(int, String)
.
+ *
+ * Sets the status code and message for this response.
+ *
+ * @param sc the status code
+ * @param sm the status message
+ */
+ public void setStatus(int sc, String sm);
+
+ /**
+ * Gets the current status code of this response.
+ *
+ * @return the current status code of this response
+ *
+ * @since Servlet 3.0
+ */
+ public int getStatus();
+
+ /**
+ * Gets the value of the response header with the given name.
+ *
+ * Collection
must not
+ * affect this HttpServletResponse
.
+ *
+ * @param name the name of the response header whose values to return
+ *
+ * @return a (possibly empty) Collection
of the values
+ * of the response header with the given name
+ *
+ * @since Servlet 3.0
+ */
+ public CollectionCollection
must not
+ * affect this HttpServletResponse
.
+ *
+ * @return a (possibly empty) Collection
of the names
+ * of the headers of this response
+ *
+ * @since Servlet 3.0
+ */
+ public CollectionLocation
field.
+ */
+ public static final int SC_USE_PROXY = 305;
+
+ /**
+ * Status code (307) indicating that the requested resource
+ * resides temporarily under a different URI. The temporary URI
+ * SHOULD be given by the Location
+ * field in the response.
+ */
+ public static final int SC_TEMPORARY_REDIRECT = 307;
+
+ /**
+ * Status code (400) indicating the request sent by the client was
+ * syntactically incorrect.
+ */
+ public static final int SC_BAD_REQUEST = 400;
+
+ /**
+ * Status code (401) indicating that the request requires HTTP
+ * authentication.
+ */
+ public static final int SC_UNAUTHORIZED = 401;
+
+ /**
+ * Status code (402) reserved for future use.
+ */
+ public static final int SC_PAYMENT_REQUIRED = 402;
+
+ /**
+ * Status code (403) indicating the server understood the request
+ * but refused to fulfill it.
+ */
+ public static final int SC_FORBIDDEN = 403;
+
+ /**
+ * Status code (404) indicating that the requested resource is not
+ * available.
+ */
+ public static final int SC_NOT_FOUND = 404;
+
+ /**
+ * Status code (405) indicating that the method specified in the
+ * Request-Line
is not allowed for the resource
+ * identified by the Request-URI
.
+ */
+ public static final int SC_METHOD_NOT_ALLOWED = 405;
+
+ /**
+ * Status code (406) indicating that the resource identified by the
+ * request is only capable of generating response entities which have
+ * content characteristics not acceptable according to the accept
+ * headers sent in the request.
+ */
+ public static final int SC_NOT_ACCEPTABLE = 406;
+
+ /**
+ * Status code (407) indicating that the client MUST first
+ * authenticate itself with the proxy.
+ */
+ public static final int SC_PROXY_AUTHENTICATION_REQUIRED = 407;
+
+ /**
+ * Status code (408) indicating that the client did not produce a
+ * request within the time that the server was prepared to wait.
+ */
+ public static final int SC_REQUEST_TIMEOUT = 408;
+
+ /**
+ * Status code (409) indicating that the request could not be
+ * completed due to a conflict with the current state of the
+ * resource.
+ */
+ public static final int SC_CONFLICT = 409;
+
+ /**
+ * Status code (410) indicating that the resource is no longer
+ * available at the server and no forwarding address is known.
+ * This condition SHOULD be considered permanent.
+ */
+ public static final int SC_GONE = 410;
+
+ /**
+ * Status code (411) indicating that the request cannot be handled
+ * without a defined Content-Length
.
+ */
+ public static final int SC_LENGTH_REQUIRED = 411;
+
+ /**
+ * Status code (412) indicating that the precondition given in one
+ * or more of the request-header fields evaluated to false when it
+ * was tested on the server.
+ */
+ public static final int SC_PRECONDITION_FAILED = 412;
+
+ /**
+ * Status code (413) indicating that the server is refusing to process
+ * the request because the request entity is larger than the server is
+ * willing or able to process.
+ */
+ public static final int SC_REQUEST_ENTITY_TOO_LARGE = 413;
+
+ /**
+ * Status code (414) indicating that the server is refusing to service
+ * the request because the Request-URI
is longer
+ * than the server is willing to interpret.
+ */
+ public static final int SC_REQUEST_URI_TOO_LONG = 414;
+
+ /**
+ * Status code (415) indicating that the server is refusing to service
+ * the request because the entity of the request is in a format not
+ * supported by the requested resource for the requested method.
+ */
+ public static final int SC_UNSUPPORTED_MEDIA_TYPE = 415;
+
+ /**
+ * Status code (416) indicating that the server cannot serve the
+ * requested byte range.
+ */
+ public static final int SC_REQUESTED_RANGE_NOT_SATISFIABLE = 416;
+
+ /**
+ * Status code (417) indicating that the server could not meet the
+ * expectation given in the Expect request header.
+ */
+ public static final int SC_EXPECTATION_FAILED = 417;
+
+ /**
+ * Status code (500) indicating an error inside the HTTP server
+ * which prevented it from fulfilling the request.
+ */
+ public static final int SC_INTERNAL_SERVER_ERROR = 500;
+
+ /**
+ * Status code (501) indicating the HTTP server does not support
+ * the functionality needed to fulfill the request.
+ */
+ public static final int SC_NOT_IMPLEMENTED = 501;
+
+ /**
+ * Status code (502) indicating that the HTTP server received an
+ * invalid response from a server it consulted when acting as a
+ * proxy or gateway.
+ */
+ public static final int SC_BAD_GATEWAY = 502;
+
+ /**
+ * Status code (503) indicating that the HTTP server is
+ * temporarily overloaded, and unable to handle the request.
+ */
+ public static final int SC_SERVICE_UNAVAILABLE = 503;
+
+ /**
+ * Status code (504) indicating that the server did not receive
+ * a timely response from the upstream server while acting as
+ * a gateway or proxy.
+ */
+ public static final int SC_GATEWAY_TIMEOUT = 504;
+
+ /**
+ * Status code (505) indicating that the server does not support
+ * or refuses to support the HTTP protocol version that was used
+ * in the request message.
+ */
+ public static final int SC_HTTP_VERSION_NOT_SUPPORTED = 505;
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpServletResponseWrapper.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpServletResponseWrapper.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpServletResponseWrapper.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,323 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.io.IOException;
+import java.util.Collection;
+import javax.servlet.ServletResponseWrapper;
+
+/**
+ *
+ * Provides a convenient implementation of the HttpServletResponse interface that
+ * can be subclassed by developers wishing to adapt the response from a Servlet.
+ * This class implements the Wrapper or Decorator pattern. Methods default to
+ * calling through to the wrapped response object.
+ *
+ * @author Various
+ * @since Servlet 2.3
+ *
+ * @see javax.servlet.http.HttpServletResponse
+ */
+
+public class HttpServletResponseWrapper extends ServletResponseWrapper implements HttpServletResponse {
+
+ /**
+ * Constructs a response adaptor wrapping the given response.
+ * @throws java.lang.IllegalArgumentException if the response is null
+ */
+ public HttpServletResponseWrapper(HttpServletResponse response) {
+ super(response);
+ }
+
+ private HttpServletResponse _getHttpServletResponse() {
+ return (HttpServletResponse) super.getResponse();
+ }
+
+ /**
+ * The default behavior of this method is to call addCookie(Cookie cookie)
+ * on the wrapped response object.
+ */
+ @Override
+ public void addCookie(Cookie cookie) {
+ this._getHttpServletResponse().addCookie(cookie);
+ }
+
+ /**
+ * The default behavior of this method is to call containsHeader(String name)
+ * on the wrapped response object.
+ */
+ @Override
+ public boolean containsHeader(String name) {
+ return this._getHttpServletResponse().containsHeader(name);
+ }
+
+ /**
+ * The default behavior of this method is to call encodeURL(String url)
+ * on the wrapped response object.
+ */
+ @Override
+ public String encodeURL(String url) {
+ return this._getHttpServletResponse().encodeURL(url);
+ }
+
+ /**
+ * The default behavior of this method is to return encodeRedirectURL(String url)
+ * on the wrapped response object.
+ */
+ @Override
+ public String encodeRedirectURL(String url) {
+ return this._getHttpServletResponse().encodeRedirectURL(url);
+ }
+
+ /**
+ * The default behavior of this method is to call encodeUrl(String url)
+ * on the wrapped response object.
+ *
+ * @deprecated As of version 2.1, use {@link #encodeURL(String url)}
+ * instead
+ */
+ @Override
+ public String encodeUrl(String url) {
+ return this._getHttpServletResponse().encodeUrl(url);
+ }
+
+ /**
+ * The default behavior of this method is to return
+ * encodeRedirectUrl(String url) on the wrapped response object.
+ *
+ * @deprecated As of version 2.1, use
+ * {@link #encodeRedirectURL(String url)} instead
+ */
+ @Override
+ public String encodeRedirectUrl(String url) {
+ return this._getHttpServletResponse().encodeRedirectUrl(url);
+ }
+
+ /**
+ * The default behavior of this method is to call sendError(int sc, String msg)
+ * on the wrapped response object.
+ */
+ @Override
+ public void sendError(int sc, String msg) throws IOException {
+ this._getHttpServletResponse().sendError(sc, msg);
+ }
+
+ /**
+ * The default behavior of this method is to call sendError(int sc)
+ * on the wrapped response object.
+ */
+ @Override
+ public void sendError(int sc) throws IOException {
+ this._getHttpServletResponse().sendError(sc);
+ }
+
+ /**
+ * The default behavior of this method is to return sendRedirect(String location)
+ * on the wrapped response object.
+ */
+ @Override
+ public void sendRedirect(String location) throws IOException {
+ this._getHttpServletResponse().sendRedirect(location);
+ }
+
+ /**
+ * The default behavior of this method is to call setDateHeader(String name, long date)
+ * on the wrapped response object.
+ */
+ @Override
+ public void setDateHeader(String name, long date) {
+ this._getHttpServletResponse().setDateHeader(name, date);
+ }
+
+ /**
+ * The default behavior of this method is to call addDateHeader(String name, long date)
+ * on the wrapped response object.
+ */
+ @Override
+ public void addDateHeader(String name, long date) {
+ this._getHttpServletResponse().addDateHeader(name, date);
+ }
+
+ /**
+ * The default behavior of this method is to return setHeader(String name, String value)
+ * on the wrapped response object.
+ */
+ @Override
+ public void setHeader(String name, String value) {
+ this._getHttpServletResponse().setHeader(name, value);
+ }
+
+ /**
+ * The default behavior of this method is to return addHeader(String name, String value)
+ * on the wrapped response object.
+ */
+ @Override
+ public void addHeader(String name, String value) {
+ this._getHttpServletResponse().addHeader(name, value);
+ }
+
+ /**
+ * The default behavior of this method is to call setIntHeader(String name, int value)
+ * on the wrapped response object.
+ */
+ @Override
+ public void setIntHeader(String name, int value) {
+ this._getHttpServletResponse().setIntHeader(name, value);
+ }
+
+ /**
+ * The default behavior of this method is to call addIntHeader(String name, int value)
+ * on the wrapped response object.
+ */
+ @Override
+ public void addIntHeader(String name, int value) {
+ this._getHttpServletResponse().addIntHeader(name, value);
+ }
+
+ /**
+ * The default behavior of this method is to call setStatus(int sc)
+ * on the wrapped response object.
+ */
+ @Override
+ public void setStatus(int sc) {
+ this._getHttpServletResponse().setStatus(sc);
+ }
+
+ /**
+ * The default behavior of this method is to call
+ * setStatus(int sc, String sm) on the wrapped response object.
+ *
+ * @deprecated As of version 2.1, due to ambiguous meaning of the
+ * message parameter. To set a status code
+ * use {@link #setStatus(int)}, to send an error with a description
+ * use {@link #sendError(int, String)}
+ */
+ @Override
+ public void setStatus(int sc, String sm) {
+ this._getHttpServletResponse().setStatus(sc, sm);
+ }
+
+ /**
+ * The default behaviour of this method is to call
+ * {@link HttpServletResponse#getStatus} on the wrapped response
+ * object.
+ *
+ * @return the current status code of the wrapped response
+ */
+ @Override
+ public int getStatus() {
+ return _getHttpServletResponse().getStatus();
+ }
+
+ /**
+ * The default behaviour of this method is to call
+ * {@link HttpServletResponse#getHeader} on the wrapped response
+ * object.
+ *
+ * @param name the name of the response header whose value to return
+ *
+ * @return the value of the response header with the given name,
+ * or null if no header with the given name has been set
+ * on the wrapped response
+ *
+ * @since Servlet 3.0
+ */
+ @Override
+ public String getHeader(String name) {
+ return _getHttpServletResponse().getHeader(name);
+ }
+
+ /**
+ * The default behaviour of this method is to call
+ * {@link HttpServletResponse#getHeaders} on the wrapped response
+ * object.
+ *
+ * Collection
must not
+ * affect this HttpServletResponseWrapper
.
+ *
+ * @param name the name of the response header whose values to return
+ *
+ * @return a (possibly empty) Collection
of the values
+ * of the response header with the given name
+ *
+ * @since Servlet 3.0
+ */
+ @Override
+ public CollectionCollection
must not
+ * affect this HttpServletResponseWrapper
.
+ *
+ * @return a (possibly empty) Collection
of the names
+ * of the response headers
+ *
+ * @since Servlet 3.0
+ */
+ @Override
+ public Collection
+ *
+ *
+ * isNew
returns true
. If the client chooses
+ * not to join
+ * the session, getSession
will return a different session
+ * on each request, and isNew
will always return
+ * true
.
+ *
+ * ServletContext
), so information stored in one context
+ * will not be directly visible in another.
+ *
+ * @author Various
+ *
+ * @see HttpSessionBindingListener
+ * @see HttpSessionContext
+ */
+
+public interface HttpSession {
+
+ /**
+ *
+ * Returns the time when this session was created, measured
+ * in milliseconds since midnight January 1, 1970 GMT.
+ *
+ * @return a long
specifying
+ * when this session was created,
+ * expressed in
+ * milliseconds since 1/1/1970 GMT
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public long getCreationTime();
+
+
+ /**
+ * Returns a string containing the unique identifier assigned
+ * to this session. The identifier is assigned
+ * by the servlet container and is implementation dependent.
+ *
+ * @return a string specifying the identifier
+ * assigned to this session
+ */
+ public String getId();
+
+
+ /**
+ *
+ * Returns the last time the client sent a request associated with
+ * this session, as the number of milliseconds since midnight
+ * January 1, 1970 GMT, and marked by the time the container received the
+ * request.
+ *
+ * long
+ * representing the last time
+ * the client sent a request associated
+ * with this session, expressed in
+ * milliseconds since 1/1/1970 GMT
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public long getLastAccessedTime();
+
+
+ /**
+ * Returns the ServletContext to which this session belongs.
+ *
+ * @return The ServletContext object for the web application
+ * @since Servlet 2.3
+ */
+ public ServletContext getServletContext();
+
+
+ /**
+ * Specifies the time, in seconds, between client requests before the
+ * servlet container will invalidate this session.
+ *
+ * setMaxInactiveInterval
method.
+ *
+ * null
if no object is bound under the name.
+ *
+ * @param name a string specifying the name of the object
+ *
+ * @return the object with the specified name
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public Object getAttribute(String name);
+
+
+ /**
+ * @deprecated As of Version 2.2, this method is
+ * replaced by {@link #getAttribute}.
+ *
+ * @param name a string specifying the name of the object
+ *
+ * @return the object with the specified name
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public Object getValue(String name);
+
+
+ /**
+ * Returns an Enumeration
of String
objects
+ * containing the names of all the objects bound to this session.
+ *
+ * @return an Enumeration
of
+ * String
objects specifying the
+ * names of all the objects bound to
+ * this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public EnumerationString
+ * objects specifying the
+ * names of all the objects bound to
+ * this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public String[] getValueNames();
+
+
+ /**
+ * Binds an object to this session, using the name specified.
+ * If an object of the same name is already bound to the session,
+ * the object is replaced.
+ *
+ * HttpSessionBindingListener
,
+ * the container calls
+ * HttpSessionBindingListener.valueBound
. The container then
+ * notifies any HttpSessionAttributeListener
s in the web
+ * application.
+
+ * HttpSessionBindingListener
, its
+ * HttpSessionBindingListener.valueUnbound
method is called.
+ *
+ * removeAttribute()
.
+ *
+ *
+ * @param name the name to which the object is bound;
+ * cannot be null
+ *
+ * @param value the object to be bound
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public void setAttribute(String name, Object value);
+
+
+ /**
+ * @deprecated As of Version 2.2, this method is
+ * replaced by {@link #setAttribute}
+ *
+ * @param name the name to which the object is bound;
+ * cannot be null
+ *
+ * @param value the object to be bound; cannot be null
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public void putValue(String name, Object value);
+
+
+ /**
+ * Removes the object bound with the specified name from
+ * this session. If the session does not have an object
+ * bound with the specified name, this method does nothing.
+ *
+ *
HttpSessionBindingListener
,
+ * the container calls
+ * HttpSessionBindingListener.valueUnbound
. The container
+ * then notifies any HttpSessionAttributeListener
s in the web
+ * application.
+ *
+ * @param name the name of the object to
+ * remove from this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public void removeAttribute(String name);
+
+
+ /**
+ * @deprecated As of Version 2.2, this method is
+ * replaced by {@link #removeAttribute}
+ *
+ * @param name the name of the object to
+ * remove from this session
+ *
+ * @exception IllegalStateException if this method is called on an
+ * invalidated session
+ */
+ public void removeValue(String name);
+
+
+ /**
+ * Invalidates this session then unbinds any objects bound
+ * to it.
+ *
+ * @exception IllegalStateException if this method is called on an
+ * already invalidated session
+ */
+ public void invalidate();
+
+
+ /**
+ * Returns true
if the client does not yet know about the
+ * session or if the client chooses not to join the session. For
+ * example, if the server used only cookie-based sessions, and
+ * the client had disabled the use of cookies, then a session would
+ * be new on each request.
+ *
+ * @return true
if the
+ * server has created a session,
+ * but the client has not yet joined
+ *
+ * @exception IllegalStateException if this method is called on an
+ * already invalidated session
+ */
+ public boolean isNew();
+
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionActivationListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionActivationListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionActivationListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,79 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.util.EventListener;
+
+ /** Objects that are bound to a session may listen to container
+ ** events notifying them that sessions will be passivated and that
+ ** session will be activated. A container that migrates session between VMs
+ ** or persists sessions is required to notify all attributes bound to sessions
+ ** implementing HttpSessionActivationListener.
+ **
+ * @since Servlet 2.3
+ */
+
+public interface HttpSessionActivationListener extends EventListener {
+
+ /** Notification that the session is about to be passivated.*/
+ public void sessionWillPassivate(HttpSessionEvent se);
+ /** Notification that the session has just been activated.*/
+ public void sessionDidActivate(HttpSessionEvent se);
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionAttributeListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionAttributeListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionAttributeListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,109 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.util.EventListener;
+
+/**
+ * Interface for receiving notification events about HttpSession
+ * attribute changes.
+ *
+ * HttpSession.setAttribute
and unbinds the object
+ * by a call to HttpSession.removeAttribute
.
+ *
+ * @author Various
+ *
+ * @see HttpSession
+ * @see HttpSessionBindingListener
+ * @see HttpSessionAttributeListener
+ */
+
+public class HttpSessionBindingEvent extends HttpSessionEvent {
+
+ private static final long serialVersionUID = 7308000419984825907L;
+
+ /* The name to which the object is being bound or unbound */
+ private String name;
+
+ /* The object is being bound or unbound */
+ private Object value;
+
+ /**
+ *
+ * Constructs an event that notifies an object that it
+ * has been bound to or unbound from a session.
+ * To receive the event, the object must implement
+ * {@link HttpSessionBindingListener}.
+ *
+ * @param session the session to which the object is bound or unbound
+ * @param name the name with which the object is bound or unbound
+ *
+ * @see #getName
+ * @see #getSession
+ */
+ public HttpSessionBindingEvent(HttpSession session, String name) {
+ super(session);
+ this.name = name;
+ }
+
+ /**
+ *
+ * Constructs an event that notifies an object that it
+ * has been bound to or unbound from a session.
+ * To receive the event, the object must implement
+ * {@link HttpSessionBindingListener}.
+ *
+ * @param session the session to which the object is bound or unbound
+ * @param name the name with which the object is bound or unbound
+ *
+ * @see #getName
+ * @see #getSession
+ */
+ public HttpSessionBindingEvent(HttpSession session, String name, Object value) {
+ super(session);
+ this.name = name;
+ this.value = value;
+ }
+
+ /** Return the session that changed. */
+ @Override
+ public HttpSession getSession () {
+ return super.getSession();
+ }
+
+ /**
+ * Returns the name with which the attribute is bound to or
+ * unbound from the session.
+ *
+ * @return a string specifying the name with which
+ * the object is bound to or unbound from the session
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Returns the value of the attribute that has been added, removed or
+ * replaced. If the attribute was added (or bound), this is the value of the
+ * attribute. If the attribute was removed (or unbound), this is the value
+ * of the removed attribute. If the attribute was replaced, this is the old
+ * value of the attribute.
+ *
+ * @since Servlet 2.3
+ */
+ public Object getValue() {
+ return this.value;
+ }
+}
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionBindingListener.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionBindingListener.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionBindingListener.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,118 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.util.EventListener;
+
+
+
+
+
+/**
+ * Causes an object to be notified when it is bound to
+ * or unbound from a session. The object is notified
+ * by an {@link HttpSessionBindingEvent} object. This may be as a result
+ * of a servlet programmer explicitly unbinding an attribute from a session,
+ * due to a session being invalidated, or due to a session timing out.
+ *
+ *
+ * @author Various
+ *
+ * @see HttpSession
+ * @see HttpSessionBindingEvent
+ *
+ */
+
+public interface HttpSessionBindingListener extends EventListener {
+
+
+
+ /**
+ *
+ * Notifies the object that it is being bound to
+ * a session and identifies the session.
+ *
+ * @param event the event that identifies the
+ * session
+ *
+ * @see #valueUnbound
+ *
+ */
+
+ public void valueBound(HttpSessionBindingEvent event);
+
+
+
+ /**
+ *
+ * Notifies the object that it is being unbound
+ * from a session and identifies the session.
+ *
+ * @param event the event that identifies
+ * the session
+ *
+ * @see #valueBound
+ *
+ */
+
+ public void valueUnbound(HttpSessionBindingEvent event);
+
+
+}
+
Index: 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionContext.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionContext.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/HttpSessionContext.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,110 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ *
+ *
+ * This file incorporates work covered by the following copyright and
+ * permission notice:
+ *
+ * Copyright 2004 The Apache Software Foundation
+ *
+ * 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 javax.servlet.http;
+
+import java.util.Enumeration;
+
+/**
+ *
+ * @author Various
+ *
+ * @deprecated As of Java(tm) Servlet API 2.1
+ * for security reasons, with no replacement.
+ * This interface will be removed in a future
+ * version of this API.
+ *
+ * @see HttpSession
+ * @see HttpSessionBindingEvent
+ * @see HttpSessionBindingListener
+ *
+ */
+
+
+public interface HttpSessionContext {
+
+ /**
+ *
+ * @deprecated As of Java Servlet API 2.1 with
+ * no replacement. This method must
+ * return null and will be removed in
+ * a future version of this API.
+ *
+ */
+
+ public HttpSession getSession(String sessionId);
+
+
+
+
+ /**
+ *
+ * @deprecated As of Java Servlet API 2.1 with
+ * no replacement. This method must return
+ * an empty Enumeration
and will be removed
+ * in a future version of this API.
+ *
+ */
+
+ public EnumerationHttpUtils
object.
+ */
+ public HttpUtils() {}
+
+
+ /**
+ * Parses a query string passed from the client to the
+ * server and builds a HashTable
object
+ * with key-value pairs.
+ * The query string should be in the form of a string
+ * packaged by the GET or POST method, that is, it
+ * should have key-value pairs in the form key=value,
+ * with each pair separated from the next by a & character.
+ *
+ * HashTable
object built
+ * from the parsed key-value pairs
+ *
+ * @exception IllegalArgumentException if the query string is invalid
+ */
+ public static HashtableServletInputStream
+ * object that is also passed to this
+ * method
+ *
+ * @param in the ServletInputStream
+ * object that contains the data sent
+ * from the client
+ *
+ * @return a HashTable
object built
+ * from the parsed key-value pairs
+ *
+ * @exception IllegalArgumentException if the data
+ * sent by the POST method is invalid
+ */
+ public static HashtableHttpServletRequest
object.
+ * The returned URL contains a protocol, server name, port
+ * number, and server path, but it does not include query
+ * string parameters.
+ *
+ * StringBuffer
,
+ * not a string, you can modify the URL easily, for example,
+ * to append query parameters.
+ *
+ * HttpServletRequest
object
+ * containing the client's request
+ *
+ * @return a StringBuffer
object containing
+ * the reconstructed URL
+ */
+ public static StringBuffer getRequestURL (HttpServletRequest req) {
+ StringBuffer url = new StringBuffer();
+ String scheme = req.getScheme ();
+ int port = req.getServerPort ();
+ String urlPath = req.getRequestURI();
+
+ //String servletPath = req.getServletPath ();
+ //String pathInfo = req.getPathInfo ();
+
+ url.append (scheme); // http, https
+ url.append ("://");
+ url.append (req.getServerName ());
+ if ((scheme.equals ("http") && port != 80)
+ || (scheme.equals ("https") && port != 443)) {
+ url.append (':');
+ url.append (req.getServerPort ());
+ }
+ //if (servletPath != null)
+ // url.append (servletPath);
+ //if (pathInfo != null)
+ // url.append (pathInfo);
+ url.append(urlPath);
+
+ return url;
+ }
+}
+
+
+
Index: 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings.properties
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings.properties (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings.properties (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,75 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common Development
+# and Distribution License("CDDL") (collectively, the "License"). You
+# may not use this file except in compliance with the License. You can
+# obtain a copy of the License at
+# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+# or packager/legal/LICENSE.txt. See the License for the specific
+# language governing permissions and limitations under the License.
+#
+# When distributing the software, include this License Header Notice in each
+# file and include the License file at packager/legal/LICENSE.txt.
+#
+# GPL Classpath Exception:
+# Oracle designates this particular file as subject to the "Classpath"
+# exception as provided by Oracle in the GPL Version 2 section of the License
+# file that accompanied this code.
+#
+# Modifications:
+# If applicable, add the following below the License Header, with the fields
+# enclosed by brackets [] replaced by your own identifying information:
+# "Portions Copyright [year] [name of copyright owner]"
+#
+# Contributor(s):
+# If you wish your version of this file to be governed by only the CDDL or
+# only the GPL Version 2, indicate your decision by adding "[Contributor]
+# elects to include this software in this distribution under the [CDDL or GPL
+# Version 2] license." If you don't indicate a single choice of license, a
+# recipient has the option to distribute your version of this file under
+# either the CDDL, the GPL Version 2 or to extend the choice of license to
+# its licensees as provided above. However, if you add GPL Version 2 code
+# and therefore, elected the GPL Version 2 license, then the option applies
+# only if the new code is made subject to such option by the copyright
+# holder.
+#
+#
+# This file incorporates work covered by the following copyright and
+# permission notice:
+#
+# Copyright 2004 The Apache Software Foundation
+#
+# 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.
+#
+
+# Default localized string information
+# Localized for Locale en_US
+
+err.cookie_name_is_token=Cookie name \"{0}\" is a reserved token
+err.cookie_name_blank=Cookie name must not be null or empty
+err.io.nullArray=Null passed for byte array in write method
+err.io.indexOutOfBounds=Invalid offset [{0}] and / or length [{1}] specified for array of size [{2}]
+err.io.short_read=Short Read
+err.ise.getWriter=Illegal to call getWriter() after getOutputStream() has been called
+err.ise.getOutputStream=Illegal to call getOutputStream() after getWriter() has been called
+
+http.method_not_implemented=Method {0} is not defined in RFC 2068 and is not supported by the Servlet API
+
+http.method_get_not_supported=HTTP method GET is not supported by this URL
+http.method_post_not_supported=HTTP method POST is not supported by this URL
+http.method_put_not_supported=HTTP method PUT is not supported by this URL
+http.method_delete_not_supported=Http method DELETE is not supported by this URL
Index: 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_es.properties
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_es.properties (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_es.properties (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,73 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common Development
+# and Distribution License("CDDL") (collectively, the "License"). You
+# may not use this file except in compliance with the License. You can
+# obtain a copy of the License at
+# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+# or packager/legal/LICENSE.txt. See the License for the specific
+# language governing permissions and limitations under the License.
+#
+# When distributing the software, include this License Header Notice in each
+# file and include the License file at packager/legal/LICENSE.txt.
+#
+# GPL Classpath Exception:
+# Oracle designates this particular file as subject to the "Classpath"
+# exception as provided by Oracle in the GPL Version 2 section of the License
+# file that accompanied this code.
+#
+# Modifications:
+# If applicable, add the following below the License Header, with the fields
+# enclosed by brackets [] replaced by your own identifying information:
+# "Portions Copyright [year] [name of copyright owner]"
+#
+# Contributor(s):
+# If you wish your version of this file to be governed by only the CDDL or
+# only the GPL Version 2, indicate your decision by adding "[Contributor]
+# elects to include this software in this distribution under the [CDDL or GPL
+# Version 2] license." If you don't indicate a single choice of license, a
+# recipient has the option to distribute your version of this file under
+# either the CDDL, the GPL Version 2 or to extend the choice of license to
+# its licensees as provided above. However, if you add GPL Version 2 code
+# and therefore, elected the GPL Version 2 license, then the option applies
+# only if the new code is made subject to such option by the copyright
+# holder.
+#
+#
+# This file incorporates work covered by the following copyright and
+# permission notice:
+#
+# Copyright 2004 The Apache Software Foundation
+#
+# 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.
+#
+
+# $Id$
+#
+# Default localized string information
+# Localized para Locale es_ES
+
+err.cookie_name_is_token=El Nombre de Cookie {0} es una palabra reservada
+err.io.negativelength=Longitud Negativa en el metodo write
+err.io.short_read=Lectura Corta
+
+http.method_not_implemented=El Metodo {0} no esta definido en la especificacion RFC 2068 y no es soportado por la API Servlet
+
+http.method_get_not_supported=El Metodo HTTP GET no es soportado por esta URL
+http.method_post_not_supported=El Metodo HTTP POST no es soportado por esta URL
+http.method_put_not_supported=El Metodo HTTP PUT no es soportado por esta URL
+http.method_delete_not_supported=El Metodo HTTP DELETE no es soportado por esta URL
Index: 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_fr.properties
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_fr.properties (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_fr.properties (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,71 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common Development
+# and Distribution License("CDDL") (collectively, the "License"). You
+# may not use this file except in compliance with the License. You can
+# obtain a copy of the License at
+# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+# or packager/legal/LICENSE.txt. See the License for the specific
+# language governing permissions and limitations under the License.
+#
+# When distributing the software, include this License Header Notice in each
+# file and include the License file at packager/legal/LICENSE.txt.
+#
+# GPL Classpath Exception:
+# Oracle designates this particular file as subject to the "Classpath"
+# exception as provided by Oracle in the GPL Version 2 section of the License
+# file that accompanied this code.
+#
+# Modifications:
+# If applicable, add the following below the License Header, with the fields
+# enclosed by brackets [] replaced by your own identifying information:
+# "Portions Copyright [year] [name of copyright owner]"
+#
+# Contributor(s):
+# If you wish your version of this file to be governed by only the CDDL or
+# only the GPL Version 2, indicate your decision by adding "[Contributor]
+# elects to include this software in this distribution under the [CDDL or GPL
+# Version 2] license." If you don't indicate a single choice of license, a
+# recipient has the option to distribute your version of this file under
+# either the CDDL, the GPL Version 2 or to extend the choice of license to
+# its licensees as provided above. However, if you add GPL Version 2 code
+# and therefore, elected the GPL Version 2 license, then the option applies
+# only if the new code is made subject to such option by the copyright
+# holder.
+#
+#
+# This file incorporates work covered by the following copyright and
+# permission notice:
+#
+# Copyright 2004 The Apache Software Foundation
+#
+# 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.
+#
+
+# Default localized string information
+# Localized for Locale fr_FR
+
+err.cookie_name_is_token=Le nom de cookie \"{0}\" est un \"token\" r�serv�
+err.io.negativelength=Taille n�gative donn�e dans la m�thode \"write\"
+err.io.short_read=Lecture partielle
+
+http.method_not_implemented=Le m�thode {0} n''est pas d�finie dans la RFC 2068 et n''est pas support�e par l''API Servlet
+
+http.method_get_not_supported=La m�thode HTTP GET n''est pas support�e par cette URL
+http.method_post_not_supported=La m�thode HTTP POST n''est pas support�e par cette URL
+http.method_put_not_supported=La m�thode HTTP PUT n''est pas support�e par cette URL
+http.method_delete_not_supported=La m�thode HTTP DELETE n''est pas support�e par cette URL
Index: 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_ja.properties
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_ja.properties (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/LocalStrings_ja.properties (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,71 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved.
+#
+# The contents of this file are subject to the terms of either the GNU
+# General Public License Version 2 only ("GPL") or the Common Development
+# and Distribution License("CDDL") (collectively, the "License"). You
+# may not use this file except in compliance with the License. You can
+# obtain a copy of the License at
+# https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+# or packager/legal/LICENSE.txt. See the License for the specific
+# language governing permissions and limitations under the License.
+#
+# When distributing the software, include this License Header Notice in each
+# file and include the License file at packager/legal/LICENSE.txt.
+#
+# GPL Classpath Exception:
+# Oracle designates this particular file as subject to the "Classpath"
+# exception as provided by Oracle in the GPL Version 2 section of the License
+# file that accompanied this code.
+#
+# Modifications:
+# If applicable, add the following below the License Header, with the fields
+# enclosed by brackets [] replaced by your own identifying information:
+# "Portions Copyright [year] [name of copyright owner]"
+#
+# Contributor(s):
+# If you wish your version of this file to be governed by only the CDDL or
+# only the GPL Version 2, indicate your decision by adding "[Contributor]
+# elects to include this software in this distribution under the [CDDL or GPL
+# Version 2] license." If you don't indicate a single choice of license, a
+# recipient has the option to distribute your version of this file under
+# either the CDDL, the GPL Version 2 or to extend the choice of license to
+# its licensees as provided above. However, if you add GPL Version 2 code
+# and therefore, elected the GPL Version 2 license, then the option applies
+# only if the new code is made subject to such option by the copyright
+# holder.
+#
+#
+# This file incorporates work covered by the following copyright and
+# permission notice:
+#
+# Copyright 2004 The Apache Software Foundation
+#
+# 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.
+#
+
+# Default localized string information
+# Localized for Locale ja_JP
+
+err.cookie_name_is_token=\u30af\u30c3\u30ad\u30fc\u540d \"{0}\" \u306f\u4e88\u7d04\u6e08\u306e\u30c8\u30fc\u30af\u30f3\u3067\u3059\u3002
+err.io.negativelength=write\u30e1\u30bd\u30c3\u30c9\u306b\u8ca0\u306e\u9577\u3055\u304c\u6307\u5b9a\u3055\u308c\u307e\u3057\u305f\u3002
+err.io.short_read=\u8aad\u307f\u8fbc\u307f\u304c\u3059\u3050\u306b\u7d42\u308f\u308a\u307e\u3057\u305f\u3002
+
+http.method_not_implemented=\u30e1\u30bd\u30c3\u30c9 {0} \u306fRFC 2068\u306b\u306f\u5b9a\u7fa9\u3055\u308c\u3066\u304a\u3089\u305a\u3001\u30b5\u30fc\u30d6\u30ec\u30c3\u30c8API\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u307e\u305b\u3093\u3002
+
+http.method_get_not_supported=HTTP\u306eGET\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+http.method_post_not_supported=HTTP\u306ePOST\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+http.method_put_not_supported=HTTP\u306ePUT\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
+http.method_delete_not_supported=HTTP\u306eDELETE\u30e1\u30bd\u30c3\u30c9\u306f\u3001\u3053\u306eURL\u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002
Index: 3rdParty_sources/servlet-api/javax/servlet/http/Part.java
===================================================================
diff -u
--- 3rdParty_sources/servlet-api/javax/servlet/http/Part.java (revision 0)
+++ 3rdParty_sources/servlet-api/javax/servlet/http/Part.java (revision 2ecc0f53ca8cf6bcb51c51ef297c46b7b0791131)
@@ -0,0 +1,168 @@
+/*
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+ *
+ * Copyright (c) 1997-2013 Oracle and/or its affiliates. All rights reserved.
+ *
+ * The contents of this file are subject to the terms of either the GNU
+ * General Public License Version 2 only ("GPL") or the Common Development
+ * and Distribution License("CDDL") (collectively, the "License"). You
+ * may not use this file except in compliance with the License. You can
+ * obtain a copy of the License at
+ * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+ * or packager/legal/LICENSE.txt. See the License for the specific
+ * language governing permissions and limitations under the License.
+ *
+ * When distributing the software, include this License Header Notice in each
+ * file and include the License file at packager/legal/LICENSE.txt.
+ *
+ * GPL Classpath Exception:
+ * Oracle designates this particular file as subject to the "Classpath"
+ * exception as provided by Oracle in the GPL Version 2 section of the License
+ * file that accompanied this code.
+ *
+ * Modifications:
+ * If applicable, add the following below the License Header, with the fields
+ * enclosed by brackets [] replaced by your own identifying information:
+ * "Portions Copyright [year] [name of copyright owner]"
+ *
+ * Contributor(s):
+ * If you wish your version of this file to be governed by only the CDDL or
+ * only the GPL Version 2, indicate your decision by adding "[Contributor]
+ * elects to include this software in this distribution under the [CDDL or GPL
+ * Version 2] license." If you don't indicate a single choice of license, a
+ * recipient has the option to distribute your version of this file under
+ * either the CDDL, the GPL Version 2 or to extend the choice of license to
+ * its licensees as provided above. However, if you add GPL Version 2 code
+ * and therefore, elected the GPL Version 2 license, then the option applies
+ * only if the new code is made subject to such option by the copyright
+ * holder.
+ */
+
+package javax.servlet.http;
+
+import java.io.*;
+import java.util.*;
+
+/**
+ * multipart/form-data
POST request.
+ *
+ * @since Servlet 3.0
+ */
+public interface Part {
+
+ /**
+ * Gets the content of this part as an InputStream
+ *
+ * @return The content of this part as an InputStream
+ * @throws IOException If an error occurs in retrieving the contet
+ * as an InputStream
+ */
+ public InputStream getInputStream() throws IOException;
+
+ /**
+ * Gets the content type of this part.
+ *
+ * @return The content type of this part.
+ */
+ public String getContentType();
+
+ /**
+ * Gets the name of this part
+ *
+ * @return The name of this part as a String
+ */
+ public String getName();
+
+ /**
+ * Gets the file name specified by the client
+ *
+ * @return the submitted file name
+ *
+ * @since Servlet 3.1
+ */
+ public String getSubmittedFileName();
+
+ /**
+ * Returns the size of this fille.
+ *
+ * @return a long
specifying the size of this part, in bytes.
+ */
+ public long getSize();
+
+ /**
+ * A convenience method to write this uploaded item to disk.
+ *
+ * String
. If the Part did not include a header
+ * of the specified name, this method returns null
.
+ * If there are multiple headers with the same name, this method
+ * returns the first header in the part.
+ * The header name is case insensitive. You can use
+ * this method with any request header.
+ *
+ * @param name a String
specifying the
+ * header name
+ *
+ * @return a String
containing the
+ * value of the requested
+ * header, or null
+ * if the part does not
+ * have a header of that name
+ */
+ public String getHeader(String name);
+
+ /**
+ * Gets the values of the Part header with the given name.
+ *
+ * Collection
must not
+ * affect this Part
.
+ *
+ * Collection
of the values of
+ * the header with the given name
+ */
+ public Collectionnull
+ *
+ * Collection
must not
+ * affect this Part
.
+ *
+ * @return a (possibly empty) Collection
of the header
+ * names of this Part
+ */
+ public Collection