You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wink.apache.org by ng...@apache.org on 2009/06/23 07:41:55 UTC
svn commit: r787557 [1/12] - in /incubator/wink/contrib/ibm-jaxrs: ./ lib/
src/ src/com/ src/com/ibm/ src/com/ibm/ws/ src/com/ibm/ws/jaxrs/
src/com/ibm/ws/jaxrs/annotations/ src/com/ibm/ws/jaxrs/context/
src/com/ibm/ws/jaxrs/core/ src/com/ibm/ws/jaxrs/...
Author: ngallardo
Date: Tue Jun 23 05:41:49 2009
New Revision: 787557
URL: http://svn.apache.org/viewvc?rev=787557&view=rev
Log:
Dropping IBM runtime contribution.
Added:
incubator/wink/contrib/ibm-jaxrs/build.properties
incubator/wink/contrib/ibm-jaxrs/build.xml
incubator/wink/contrib/ibm-jaxrs/lib/
incubator/wink/contrib/ibm-jaxrs/lib/abdera-0.4.0-incubating.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/abdera-core-0.4.0-incubating.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/asm-all-3.1.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/axiom-api-1.2.5.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/axiom-impl-1.2.5.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/commons-codec-1.3.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/commons-httpclient-3.1.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/commons-logging-1.1.1.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/geronimo-activation_1.1_spec-1.0.1.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/geronimo-servlet_3.0_spec-1.0-EA-20080711.180136-1.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/jaxen-1.1.1.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/jetty-6.1.9.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/jetty-util-6.1.9.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/jsr311-api-0.11.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/junit-4.4.jar (with props)
incubator/wink/contrib/ibm-jaxrs/lib/xmlbeans-2.3.0.jar (with props)
incubator/wink/contrib/ibm-jaxrs/src/
incubator/wink/contrib/ibm-jaxrs/src/com/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Alias.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Aliases.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/ContextConstants.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContext.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContextFactory.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/CaseInsensitiveComparator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/HttpHeadersImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/RequestImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/SecurityContextImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/UriInfoImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/engine/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/engine/RESTConfig.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/engine/RESTConstants.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/engine/RESTEngine.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/engine/RESTEngineUtils.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/engine/ResourceInvoker.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/exception/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/exception/ExceptionUtils.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/exception/TargetValidationException.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/ext/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/ext/ProvidersImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/ext/RuntimeDelegateImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/HandlerFactory.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/RESTHandler.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/RESTSystemHandler.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/internal/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/internal/ContextValidator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/internal/HTTPMethodOverrideHandler.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/internal/MetadataLocator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/internal/ResourceSelector.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/handler/internal/ResponseHandler.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/i18n/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/i18n/MessageBundle.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/i18n/Messages.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/i18n/MessagesConstants.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/i18n/ProjectResourceBundle.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/i18n/resource.properties
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/injection/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/injection/ThreadLocalContextResolver.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/injection/ThreadLocalHttpServletResponse.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/injection/ThreadLocalProviders.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/injection/ThreadLocalServletConfig.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/injection/ThreadLocalServletContext.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/ApplicationProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/DefaultApplication.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/DefaultJAXRSProviderCacheProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/DefaultResponseWriter.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/IntegrationRegistry.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/JAXRSProviderCacheProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/MetaDataProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/OptionsResponseProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/integration/ResponseWriter.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/io/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/io/ContentMonitor.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/io/DelegatingOutputStream.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/io/LogInputStream.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/io/LogOutputStream.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/lifecycle/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/lifecycle/BaseLifecycleManager.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/lifecycle/LifecycleException.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/lifecycle/LifecycleManager.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/lifecycle/LifecycleManagerFactory.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/lifecycle/ProviderLifecycleManager.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/lifecycle/ResourceLifecycleManager.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/metadata/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/metadata/MetadataRegistry.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/metadata/RESTMetaData.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/ApplicationProcessor.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/JAXRSInfo.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/JAXRSInfoBuilder.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/JAXRSInfoBuilderFactory.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/JAXRSInfoBuilderFactoryImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/JAXRSInfoInput.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/JAXRSInfoOutput.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/ReflectiveJAXRSInfoBuilder.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/XMLJAXRSInfoBuilder.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/XMLReflectionInfoBuilder.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/AliasesType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/ConsumesType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/MethodType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/MethodsType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/ObjectFactory.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/ParameterType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/ProducesType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/ProviderType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/ResourceType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/ResourcesType.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/jaxrs_dd_schema.xsd
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/dd/jaxb/package-info.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/reflective/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/reflective/AbstractResourceInfoImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/reflective/ClassResourceInfoImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/reflective/OperationResourceInfoImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/model/reflective/ProviderInfoImpl.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/provider/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/provider/DataSourceProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/provider/JAXBOptionsResponseProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/provider/RESTDataSource.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/resolver/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/resolver/JAXBContextResolver.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/tools/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/tools/WebBuilder.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/utils/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/utils/ClassUtils.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/validation/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/validation/ClassResourceValidator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/validation/JAXRSClassResourceValidator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/validation/JAXRSOperationResourceValidator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/validation/OperationResourceValidator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/validation/RESTValidator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/validation/ResourceValidationException.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/validation/ValidationMessage.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/RESTServlet.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/ServletApplicationProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/ServletMetadataProvider.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/ServletResponseWriter.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/ServletStatusOutputStream.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/asm/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/asm/JAXRSAnnotationData.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/asm/JAXRSAnnotationScanner.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/asm/JAXRSAnnotationVisitor.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/web/asm/JAXRSClassAdapter.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/http/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/http/DateHandler.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/Consumes.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/ObjectFactory.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/Produces.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/Representation.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/Resource.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/ResourceLocator.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/ResourceMethod.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/Resources.java
incubator/wink/contrib/ibm-jaxrs/src/com/ibm/wsspi/jaxrs/options/SubResource.java
incubator/wink/contrib/ibm-jaxrs/src/org/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/common/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/common/util/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/common/util/PackageUtils.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/common/util/PrimitiveUtils.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/common/util/StringUtils.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/helpers/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/helpers/IOUtils.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/helpers/LoadingByteArrayOutputStream.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/CacheControlHeaderProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/CookieHeaderProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/EntityTagHeaderProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/MediaTypeHeaderProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/MetadataMap.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/NewCookieHeaderProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/PathSegmentImpl.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/ResponseImpl.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/UriBuilderImpl.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/VariantListBuilderImpl.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/WebApplicationExceptionMapper.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/tl/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/tl/AbstractThreadLocalProxy.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/tl/ThreadLocalHttpHeaders.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/tl/ThreadLocalHttpServletRequest.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/tl/ThreadLocalProxy.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/tl/ThreadLocalRequest.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/tl/ThreadLocalSecurityContext.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/impl/tl/ThreadLocalUriInfo.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/model/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/model/AbstractResourceInfo.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/model/ClassResourceInfo.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/model/MethodDispatcher.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/model/OperationResourceInfo.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/model/OperationResourceInfoComparator.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/model/ProviderInfo.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/model/URITemplate.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/AbstractJAXBProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/AtomEntryProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/AtomFeedProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/BinaryDataProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/FormEncodingProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/JAXBElementProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/PrimitiveTextProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/ProviderFactory.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/SourceProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/StringProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/XMLBeanStreamSerializer.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/provider/XMLBeansElementProvider.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/utils/
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/utils/AnnotationUtils.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/utils/HttpUtils.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/utils/InjectionUtils.java
incubator/wink/contrib/ibm-jaxrs/src/org/apache/cxf/jaxrs/utils/JAXRSUtils.java
Added: incubator/wink/contrib/ibm-jaxrs/build.properties
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/build.properties?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/build.properties (added)
+++ incubator/wink/contrib/ibm-jaxrs/build.properties Tue Jun 23 05:41:49 2009
@@ -0,0 +1,26 @@
+# general properties
+src.dir=src
+resource.dir=resources
+lib.dir=lib
+build.dir=build/classes
+build.jar=ibmjaxrs-SNAPSHOT.jar
+
+# test properties
+test.src.dir=tests/unittests
+test.build.dir=build/test-classes
+test.reports.dir=build/test-reports
+
+# samples properties
+samples.dir=samples
+
+# eclipse site properties
+eclipsesite.build.dir=build/eclipsesite
+
+# distribution properties
+# the dist.version must be of the form W.X.Y.Z
+# where each letter is a number if the eclipsesite project builds
+dist.dir=dist
+dist.version=SNAPSHOT
+
+# prereq properties
+jaxrs.api.jar=jsr311-api-0.11.jar
\ No newline at end of file
Added: incubator/wink/contrib/ibm-jaxrs/build.xml
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/build.xml?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/build.xml (added)
+++ incubator/wink/contrib/ibm-jaxrs/build.xml Tue Jun 23 05:41:49 2009
@@ -0,0 +1,218 @@
+<project name="ibmjaxrs" default="dev">
+
+ <!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you 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.
+ -->
+
+ <!-- initialize some global Ant properties -->
+ <dirname file="${ant.file.ibmjaxrs}" property="ibmjaxrs.base.dir" />
+ <property file="${ibmjaxrs.base.dir}/build.properties" />
+ <property name="build.output" value="${build.dir}/../${build.jar}" />
+ <property name="ibmjaxrs.framework.environments.dir" location="${ibmjaxrs.base.dir}/framework/environments" />
+
+ <!-- classpath for building base source -->
+ <path id="build.classpath">
+ <pathelement path="${classpath}" />
+ <pathelement path="${ibmjaxrs.base.dir}/resources" />
+ <fileset dir="${ibmjaxrs.base.dir}/${lib.dir}">
+ <!-- Necessary to compile and work -->
+ <include name="jsr311-api-0.11.jar" />
+ <include name="commons-logging-1.1.1.jar" />
+
+ <!-- Included for ASM code compile; will potentially need serp when running -->
+ <include name="asm-all-3.1.jar" />
+
+ <!-- Included for Abdera Provider -->
+ <include name="abdera-0.4.0-incubating.jar" />
+
+ <!-- Included for JSON4J Provider -->
+ <include name="JSON4J.jar" />
+
+ <!-- Included for XML Beans Provider -->
+ <include name="xmlbeans-2.3.0.jar" />
+
+ <include name="geronimo-servlet_3.0_spec-1.0-EA-20080711.180136-1.jar" />
+ <include name="geronimo-activation_1.1_spec-1.0.1.jar" />
+ </fileset>
+ </path>
+
+ <!-- test properties -->
+ <property name="jaxb.artifacts" value="${ibmjaxrs.base.dir}/resources/jaxbgen" />
+
+ <!-- classpath for building and running tests
+ (extends base source classpath) -->
+ <path id="test.classpath">
+ <path refid="build.classpath" />
+ <pathelement location="${ibmjaxrs.base.dir}/${build.dir}" />
+ <fileset dir="${ibmjaxrs.base.dir}/${lib.dir}">
+ <include name="jetty-6.1.9.jar" />
+ <include name="jetty-util-6.1.9.jar" />
+ <include name="junit-4.4.jar" />
+ </fileset>
+ </path>
+
+ <target name="setStandalone">
+ <property name="ibmjaxrs.framework.environment" value="standalone" />
+ </target>
+
+ <!-- initialize some global Ant parameters -->
+ <target name="init">
+ <condition property="ibmjaxrs.framework.environment" value="standalone">
+ <not>
+ <isset property="ibmjaxrs.framework.environment" />
+ </not>
+ </condition>
+
+ <property file="${ibmjaxrs.base.dir}/framework/environments/${ibmjaxrs.framework.environment}/build.properties">
+ </property>
+ </target>
+
+ <!-- clean up the source build directory -->
+ <target name="clean" depends="init">
+ <delete dir="${ibmjaxrs.base.dir}/${build.dir}" includeemptydirs="true" failonerror="false" />
+
+ <mkdir dir="${ibmjaxrs.base.dir}/${build.dir}" />
+ <mkdir dir="${ibmjaxrs.base.dir}/${dist.dir}" />
+
+ <subant target="cleanEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- builds the runtime source code -->
+ <target name="compile" depends="init, clean">
+ <echo>-------------------------------------------</echo>
+ <echo>Compiling Runtime Source</echo>
+ <echo>-------------------------------------------</echo>
+
+ <javac srcdir="${ibmjaxrs.base.dir}/${src.dir}" destdir="${ibmjaxrs.base.dir}/${build.dir}" debug="on" source="1.5" target="1.5">
+ <classpath refid="build.classpath" />
+ </javac>
+
+ <copy todir="${ibmjaxrs.base.dir}/${build.dir}">
+ <fileset dir="${ibmjaxrs.base.dir}/${src.dir}" includes="**/*.properties" />
+ </copy>
+
+ <jar destfile="${ibmjaxrs.base.dir}/${build.output}">
+ <fileset dir="${ibmjaxrs.base.dir}/${build.dir}" includes="**/*.class" />
+ <fileset dir="${ibmjaxrs.base.dir}/${build.dir}" includes="**/*.properties" />
+ <fileset dir="${ibmjaxrs.base.dir}/${resource.dir}" includes="META-INF/**" />
+ <fileset dir="${ibmjaxrs.base.dir}/${resource.dir}" includes="**/*.properties" />
+ </jar>
+
+ <subant target="compileEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- clean up the test build directory -->
+ <target name="cleanTest" depends="init">
+ <delete dir="${ibmjaxrs.base.dir}/${test.build.dir}" includeemptydirs="true" failonerror="false" />
+ <delete dir="${ibmjaxrs.base.dir}/${test.reports.dir}" includeemptydirs="true" failonerror="false" />
+ <mkdir dir="${ibmjaxrs.base.dir}/${test.build.dir}" />
+ <mkdir dir="${ibmjaxrs.base.dir}/${test.reports.dir}" />
+
+ <subant target="cleanTestEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- builds the junit test code -->
+ <target name="compileTest" depends="init, cleanTest">
+ <echo>-------------------------------------------</echo>
+ <echo>Compiling Test Source</echo>
+ <echo>-------------------------------------------</echo>
+
+ <javac srcdir="${ibmjaxrs.base.dir}/${test.src.dir}" destdir="${ibmjaxrs.base.dir}/${test.build.dir}" debug="on" source="1.5" target="1.5">
+ <classpath refid="test.classpath" />
+ </javac>
+
+ <subant target="compileTestEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- executes the junit tests -->
+ <target name="runTest" depends="init">
+ <echo>-------------------------------------------</echo>
+ <echo>Running Tests</echo>
+ <echo>-------------------------------------------</echo>
+
+ <property name="org.apache.commons.logging.simplelog.defaultlog" value="debug" />
+ <!-- <junit printsummary="on" haltonfailure="true"> -->
+ <junit printsummary="on" haltonfailure="true" fork="yes">
+ <classpath>
+ <path refid="test.classpath" />
+ <pathelement location="${ibmjaxrs.base.dir}/${test.build.dir}" />
+ </classpath>
+
+ <formatter type="xml" />
+
+ <!-- <batchtest fork="no" todir="${ibmjaxrs.base.dir}/${test.reports.dir}"> -->
+ <batchtest fork="yes" todir="${ibmjaxrs.base.dir}/${test.reports.dir}">
+ <fileset dir="${ibmjaxrs.base.dir}/${test.build.dir}">
+ <include name="**/*Test.class" />
+ <include name="**/*Tests.class" />
+ </fileset>
+ </batchtest>
+ </junit>
+
+ <subant target="runTestEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- Generate any documentation -->
+ <target name="docs" depends="init">
+ <subant target="docsEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- Run the build for each of the samples -->
+ <target name="samples" depends="init">
+ <ant antfile="samples/build.xml" inheritall="false" inheritrefs="false" target="buildSamples">
+ </ant>
+
+ <subant target="samplesEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- Pull all of the relevant content out and drop it in the "dist"
+ dir so users know where to pick things up from -->
+ <target name="dist" depends="init">
+ <subant target="distEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- Publish an environment's release. This target should not be called by any other target. -->
+ <target name="publish">
+ <subant target="publishEnv" buildpath="${ibmjaxrs.framework.environments.dir}/${ibmjaxrs.framework.environment}/build.xml" inheritall="true" inheritrefs="true">
+ </subant>
+ </target>
+
+ <!-- Run the function tests -->
+ <target name="fvt" depends="init, compileTest">
+ <ant antfile="${ibmjaxrs.base.dir}/tests/fvt/build.xml" inheritall="no" target="complete" />
+ </target>
+
+ <target name="dev" depends="init, clean, compile, cleanTest, compileTest, runTest" />
+
+ <target name="complete" depends="init, clean, compile, cleanTest, compileTest, runTest, docs, samples, dist" />
+
+ <target name="all">
+ <subant target="complete" inheritall="false" inheritrefs="false" failonerror="true">
+ <property name="basedir" value="${ibmjaxrs.base.dir}" />
+ <fileset dir="framework/environments" includes="*/build.xml" />
+ </subant>
+ </target>
+</project>
Added: incubator/wink/contrib/ibm-jaxrs/lib/abdera-0.4.0-incubating.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/abdera-0.4.0-incubating.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/abdera-0.4.0-incubating.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/abdera-core-0.4.0-incubating.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/abdera-core-0.4.0-incubating.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/abdera-core-0.4.0-incubating.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/asm-all-3.1.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/asm-all-3.1.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/asm-all-3.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/axiom-api-1.2.5.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/axiom-api-1.2.5.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/axiom-api-1.2.5.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/axiom-impl-1.2.5.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/axiom-impl-1.2.5.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/axiom-impl-1.2.5.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/commons-codec-1.3.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/commons-codec-1.3.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/commons-codec-1.3.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/commons-httpclient-3.1.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/commons-httpclient-3.1.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/commons-httpclient-3.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/commons-logging-1.1.1.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/commons-logging-1.1.1.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/commons-logging-1.1.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/geronimo-activation_1.1_spec-1.0.1.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/geronimo-activation_1.1_spec-1.0.1.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/geronimo-activation_1.1_spec-1.0.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/geronimo-servlet_3.0_spec-1.0-EA-20080711.180136-1.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/geronimo-servlet_3.0_spec-1.0-EA-20080711.180136-1.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/geronimo-servlet_3.0_spec-1.0-EA-20080711.180136-1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/jaxen-1.1.1.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/jaxen-1.1.1.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/jaxen-1.1.1.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/jetty-6.1.9.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/jetty-6.1.9.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/jetty-6.1.9.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/jetty-util-6.1.9.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/jetty-util-6.1.9.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/jetty-util-6.1.9.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/jsr311-api-0.11.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/jsr311-api-0.11.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/jsr311-api-0.11.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/junit-4.4.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/junit-4.4.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/junit-4.4.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/lib/xmlbeans-2.3.0.jar
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/lib/xmlbeans-2.3.0.jar?rev=787557&view=auto
==============================================================================
Binary file - no diff available.
Propchange: incubator/wink/contrib/ibm-jaxrs/lib/xmlbeans-2.3.0.jar
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Alias.java
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Alias.java?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Alias.java (added)
+++ incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Alias.java Tue Jun 23 05:41:49 2009
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 com.ibm.ws.jaxrs.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Inherited
+@Target(value = { ElementType.TYPE })
+@Retention(value = RetentionPolicy.RUNTIME)
+public @interface Alias {
+
+ public String value();
+
+}
Added: incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Aliases.java
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Aliases.java?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Aliases.java (added)
+++ incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/annotations/Aliases.java Tue Jun 23 05:41:49 2009
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 com.ibm.ws.jaxrs.annotations;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Inherited
+@Target(value = { ElementType.TYPE })
+@Retention(value = RetentionPolicy.RUNTIME)
+public @interface Aliases {
+
+ public Alias[] value();
+
+}
Added: incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/ContextConstants.java
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/ContextConstants.java?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/ContextConstants.java (added)
+++ incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/ContextConstants.java Tue Jun 23 05:41:49 2009
@@ -0,0 +1,202 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 com.ibm.ws.jaxrs.context;
+
+/**
+ * This class will provide constants related to the RESTContext class.
+ *
+ */
+public class ContextConstants {
+
+ // (HttpServletRequest): Key for storing the HttpServletRequest on the RESTContext
+ public static final String SERVLET_REQUEST = "com.ibm.ws.jaxrs.SERVLET_REQUEST";
+
+ // (HttpServletResponse): Key for storing the HttpServletResponse on the RESTContext
+ public static final String SERVLET_RESPONSE = "com.ibm.ws.jaxrs.SERVLET_RESPONSE";
+
+ // (ClassResourceInfo): Key for storing ClassResourceInfo that represents the
+ // root resource on the RESTContext
+ public static final String ROOT_RESOURCE = "com.ibm.ws.jaxrs.ROOT_RESOURCE";
+
+ // (ClassResourceInfo): Key for storing ClassResourceInfo that represents a
+ // subresource on the RESTContext
+ public static final String SUB_RESOURCE_INFO = "com.ibm.ws.jaxrs.SUB_RESOURCE_INFO";
+
+ // (Object): Key for storing instance of subresource on the RESTContext
+ public static final String SUB_RESOURCE_INSTANCE = "com.ibm.ws.jaxrs.SUB_RESOURCE_INSTANCE";
+
+ // (MultivalueMap<String, String>): Key for storing template value map on RESTContext
+ public static final String TEMPLATE_VALUES = "com.ibm.ws.jaxrs.TEMPLATE_VALUES";
+
+ // (MultivalueMap<String, String>): Key for storing HTTP Headers on RESTContext
+ public static final String HTTP_HEADER_VALUES = "com.ibm.ws.jaxrs.HTTP_HEADER_VALUES";
+
+ // (MultivalueMap<String, String>): Key for storing Form data on RESTContext
+ public static final String FORM_VALUES = "com.ibm.ws.jaxrs.FORM_VALUES";
+
+ // (MultivalueMap<String, String>): Key for storing decoded query string on RESTContext
+ public static final String QUERY_STRING_DECODED_VALUES = "com.ibm.ws.jaxrs.QUERY_STRING_DECODED_VALUES";
+
+ // (MultivalueMap<String, String>): Key for storing encoded query string on RESTContext
+ public static final String QUERY_STRING_ENCODED_VALUES = "com.ibm.ws.jaxrs.QUERY_STRING_ENCODED_VALUES";
+
+ // (MultivalueMap<String, String>): Key for storing matrix parameters on RESTContext
+ // in decoded form
+ public static final String MATRIX_PARAMETER_VALUES_DECODED = "com.ibm.ws.jaxrs.MATRIX_PARAMETER_VALUES_DECODED";
+
+ // (MultivalueMap<String, String>): Key for storing matrix parameters on RESTContext
+ // in encoded form
+ public static final String MATRIX_PARAMETER_VALUES_ENCODED = "com.ibm.ws.jaxrs.MATRIX_PARAMETER_VALUES_ENCODED";
+
+ // (Map<String, javax.servlet.http.Cookie>) Key for storing cookies on the RESTContext
+ public static final String HTTP_COOKIES = "com.ibm.ws.jaxrs.HTTP_COOKIES";
+
+ // (String): Key for storing the value of the 'Vary' header for a response
+ public static final String VARY_HEADER = "com.ibm.ws.jaxrs.VARY_HEADER";
+
+ // (ServletConfig): Key for storing the ServletConfig for a request on the RESTContext
+ public static final String SERVLET_CONFIG = "com.ibm.ws.jaxrs.SERVLET_CONFIG";
+
+ // (ServletContext): Key for storing the ServletContext for a request on the RESTContext
+ public static final String SERVLET_CONTEXT = "com.ibm.ws.jaxrs.SERVLET_CONTEXT";
+
+ // (Object): Key for storing the result of resource method invocation on the RESTContext
+ public static final String INVOCATION_RESULT = "com.ibm.ws.jaxrs.INVOCATION_RESULT";
+
+ // (OperationResourceInfo): Key for storing an OperationResourceInfo on the RESTContext.
+ // The OperationResourceInfo represents the method that was invoked for the request
+ public static final String OPERATION_RESOURCE = "com.ibm.ws.jaxrs.OPERATION_RESOURCE";
+
+ // (List<MediaType>): Key for storing a list of MediaType objects on the RESTContext. The
+ // MediaType objects represent the types accepted by the client in the response
+ public static final String ACCEPT_CONTENT_TYPES = "com.ibm.ws.jaxrs.ACCEPT_CONTENT_TYPES";
+
+ // (String): Key for storing the request content type on the RESTContext
+ public static final String CONTENT_TYPE = "com.ibm.ws.jaxrs.CONTENT_TYPE";
+
+ // (String): Key for storing the request language on the RESTContext
+ public static final String CONTENT_LANGUAGE = "com.ibm.ws.jaxrs.CONTENT_LANGUAGE";
+
+ // (javax.ws.rs.core.Response): Key for storing the Response on the RESTContext
+ public static final String RESPONSE = "com.ibm.ws.jaxrs.RESPONSE";
+
+ // (List<String>): Key for storing a list of matched URIs (in the order they were
+ // encountered for a request) on the RESTContext
+ public static final String MATCHED_URIS = "com.ibm.ws.jaxrs.MATCHED_URIS";
+
+ // (List<Object>): Key for storing a list of matched resources (in the order they were
+ // encountered for a request) on the RESTContext.
+ public static final String MATCHED_RESOURCES = "com.ibm.ws.jaxrs.MATCHED_RESOURCES";
+
+ public static final String RESPONSE_DATA = "com.ibm.ws.jaxrs.RESPONSE_DATA";
+
+ public static final String HTTP_ACCEPT_HEADER = "com.ibm.ws.jaxrs.HTTP_ACCEPT_HEADER";
+
+ public static final String HTTP_METHOD = "com.ibm.ws.jaxrs.HTTP_METHOD";
+
+ // (String): Key for storing the decoded path information for a given request
+ public static final String HTTP_PATH_INFO = "com.ibm.ws.jaxrs.HTTP_PATH_INFO";
+
+ // (String): Key for storing the encoded path information for a given request
+ public static final String HTTP_PATH_RESOURCE = "com.ibm.ws.jaxrs.HTTP_PATH_RESOURCE";
+
+ // (String): Key for storing the character encoding for a request
+ public static final String HTTP_REQUEST_ENCODING = "com.ibm.ws.jaxrs.HTTP_REQUEST_ENCODING";
+
+ // (String): Key for storing the full request URL
+ public static final String HTTP_REQUEST_URL = "com.ibm.ws.jaxrs.HTTP_REQUEST_URL";
+
+ // (String): Key for storing the request URI
+ public static final String HTTP_REQUEST_URI = "com.ibm.ws.jaxrs.HTTP_REQUEST_URI";
+
+ // (String): Key for storing the request context path
+ public static final String HTTP_REQUEST_CONTEXT_PATH = "com.ibm.ws.jaxrs.HTTP_REQUEST_CONTEXT_PATH";
+
+ // (String): Key for storing the query string
+ public static final String HTTP_QUERY_STRING = "com.ibm.ws.jaxrs.HTTP_QUERY_STRING";
+
+ // (String): Key for storing request authentication scheme
+ public static final String AUTHENTICATION_SCHEME = "com.ibm.ws.jaxrs.AUTHENTICATION_SCHEME";
+
+ // (Principal): Key for storing request user principal
+ public static final String USER_PRINCIPAL = "com.ibm.ws.jaxrs.USER_PRINCIPAL";
+
+ // (Boolean): Key for storing boolean representing whether request is secure or not
+ public static final String REQUEST_SECURE = "com.ibm.ws.jaxrs.REQUEST_SECURE";
+
+ // (Locale): Key for storing Locale of request
+ public static final String HTTP_REQUEST_LOCALE = "com.ibm.ws.jaxrs.HTTP_REQUEST_LOCALE";
+
+ // (List<Locale>): Key for storing list of Locales for request, the Locales are stored in decreasing
+ // order of preference
+ public static final String HTTP_REQUEST_LOCALES = "com.ibm.ws.jaxrs.HTTP_REQUEST_LOCALES";
+
+ // (InputStream): Key for storing InputStream of an incoming request
+ public static final String REQUEST_INPUT_STREAM = "com.ibm.ws.jaxrs.HTTP_REQUEST_INPUT_STREAM";
+
+ // (OutputStream): Key for storing OutputStream used to write response
+ public static final String RESPONSE_OUTPUT_STREAM = "com.ibm.ws.jaxrs.HTTP_RESPONSE_OUTPUT_STREAM";
+
+ // (Boolean): Key for determining if the status or headers are already written or not
+ public static final String IS_HTTP_RESPONSE_STATUS_AND_HEADERS_WRITTEN = "com.ibm.ws.jaxrs.IS_HTTP_RESPONSE_HEADERS_AND_STATUS_WRITTEN";
+
+ // (String): Key for storing direction of message represented by a RESTContext
+ public static final String MESSAGE_FLOW = "com.ibm.ws.jaxrs.MESSAGE_FLOW";
+
+ // (String): Key for storing key that is used to identify metadata related to the request
+ public static final String METADATA_KEY = "com.ibm.ws.jaxrs.METADATA_KEY";
+
+ // (RESTMetaData): Key for storing metadata used for a request
+ public static final String REST_METADATA = "com.ibm.ws.jaxrs.REST_METADATA";
+
+ // (ContentMonitor): Key for storing instance of ContentMonitor
+ public static final String CONTENT_MONITOR = "com.ibm.ws.jaxrs.CONTENT_MONITOR";
+
+ // (Integer): Key for storing length of written response
+ public static final String RESPONSE_CONTENT_LENGTH = "com.ibm.ws.jaxrs.RESPONSE_CONTENT_LENGTH";
+
+ // (String): Key for storing the matched alias path in the @Alias annotation
+ public static final String MATCHED_ALIAS_PATH = "com.ibm.ws.jaxrs.MATCHED_ALIAS_PATH";
+
+ // (URL): Key for storing URL to ibm-jaxrs.xml configuration file
+ public static final String CONFIG_FILE_URL = "com.ibm.ws.jaxrs.CONFIG_FILE_URL";
+
+ // (ClassLoader): Key for storing the context classloader on the RESTContext
+ public static final String CONTEXT_CLASSLOADER = "com.ibm.ws.jaxrs.CONTEXT_CLASSLOADER";
+
+ // (Boolean): Key for storing boolean indicating whether an exception has been previously mapped
+ public static final String MAPPED_EXCEPTION = "com.ibm.ws.jaxrs.MAPPED_EXCEPTION";
+
+ // (RESTContext): Key for storing a RESTContext created for a response to an OPTIONS request
+ public static final String OPTIONS_RESPONSE_CONTEXT = "com.ibm.ws.jaxrs.OPTIONS_RESPONSE_CONTEXT";
+
+ // (LogOutputStream): Key for storing logging output stream
+ public static final String OUTPUT_LOGGER = "com.ibm.ws.jaxrs.OUTPUT_LOGGER";
+
+ // (LogInputStream): Key for storing logging input stream
+ public static final String INPUT_LOGGER = "com.ibm.ws.jaxrs.INPUT_LOGGER";
+
+ // (MediaType): Key for the Response Media Type that is the closest match
+ public static final String RESPONSE_CONTENT_TYPE = "com.ibm.ws.jaxrs.RESPONSE_CONTENT_TYPE";
+
+ // (Object): Key for storing the integration registry key
+ public static final String INTEGRATION_REGISTRATION_KEY = "com.ibm.ws.jaxrs.INTEGRATION_REGISTRATION_KEY";
+
+}
Added: incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContext.java
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContext.java?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContext.java (added)
+++ incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContext.java Tue Jun 23 05:41:49 2009
@@ -0,0 +1,74 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 com.ibm.ws.jaxrs.context;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * This class will be used to store contextual information about a REST
+ * invocation within the runtime. It will hold a generic bag of properties that
+ * can store information about the invocation.
+ *
+ */
+public class RESTContext {
+
+ private Map<String, Object> properties;
+
+ private boolean isResponse = false;
+
+ public RESTContext() {
+ properties = new HashMap<String, Object>();
+ }
+
+ public RESTContext(Map<String, Object> properties) {
+ this.properties = properties;
+ }
+
+ public RESTContext(RESTContext context, boolean isResponse) {
+ properties = new HashMap<String, Object>();
+ if (context != null && context.getProperties() != null
+ && !context.getProperties().isEmpty()) {
+ this.addProperties(context.getProperties());
+ }
+ this.isResponse = isResponse;
+ }
+
+ public Map<String, Object> getProperties() {
+ return properties;
+ }
+
+ public Object getProperty(String key) {
+ return properties.get(key);
+ }
+
+ public void setProperty(String key, Object value) {
+ properties.put(key, value);
+ }
+
+ public void addProperties(Map<String, Object> propsToAdd) {
+ properties.putAll(propsToAdd);
+ }
+
+ public boolean isResponse() {
+ return isResponse;
+ }
+
+}
Added: incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContextFactory.java
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContextFactory.java?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContextFactory.java (added)
+++ incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/context/RESTContextFactory.java Tue Jun 23 05:41:49 2009
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 com.ibm.ws.jaxrs.context;
+
+import javax.ws.rs.WebApplicationException;
+import javax.ws.rs.core.Response;
+
+public class RESTContextFactory {
+
+ /**
+ * Creates an empty RESTContext for a request message.
+ *
+ * @return
+ */
+ public static RESTContext createRequestContext() {
+ RESTContext ctx = new RESTContext();
+ return ctx;
+ }
+
+ /**
+ * Creates a RESTContext object for a fault response thrown on the server side.
+ *
+ * @param wae
+ * @param request
+ * @return
+ */
+ public static RESTContext createFaultResponseContext(WebApplicationException wae, RESTContext request) {
+ return createResponseContext(request, wae.getResponse());
+ }
+
+ /**
+ * Creates a RESTContext object for a server-side response
+ *
+ * @param request
+ * @param response
+ * @return
+ */
+ public static RESTContext createResponseContext(RESTContext request, Response response) {
+ RESTContext responseCtx = new RESTContext(request, true);
+ if (response != null) {
+ responseCtx.setProperty(ContextConstants.RESPONSE, response);
+ return responseCtx;
+ }
+ return responseCtx;
+ }
+
+}
Added: incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/CaseInsensitiveComparator.java
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/CaseInsensitiveComparator.java?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/CaseInsensitiveComparator.java (added)
+++ incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/CaseInsensitiveComparator.java Tue Jun 23 05:41:49 2009
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 com.ibm.ws.jaxrs.core;
+
+import java.util.Comparator;
+
+/**
+ * This is a comparator used to compare String objects in a
+ * case-insensitive manner. This is helpful when providing
+ * user access to the HTTP request headers via the HttpHeaders
+ * interface.
+ *
+ */
+public class CaseInsensitiveComparator implements Comparator<String> {
+
+ public int compare(String object1, String object2) {
+ if (object1 != null && object2 != null) {
+ return object1.compareToIgnoreCase(object2);
+ } else if (object1 != null) {
+ return 1;
+ } else {
+ return -1;
+ }
+ }
+
+}
Added: incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/HttpHeadersImpl.java
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/HttpHeadersImpl.java?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/HttpHeadersImpl.java (added)
+++ incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/HttpHeadersImpl.java Tue Jun 23 05:41:49 2009
@@ -0,0 +1,173 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 com.ibm.ws.jaxrs.core;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.ws.rs.core.Cookie;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+
+import org.apache.cxf.jaxrs.impl.MetadataMap;
+import org.apache.cxf.jaxrs.utils.JAXRSUtils;
+
+import com.ibm.ws.jaxrs.context.ContextConstants;
+import com.ibm.ws.jaxrs.context.RESTContext;
+import com.ibm.ws.jaxrs.i18n.Messages;
+
+/**
+ * This will be the implementation of the injectable HttpHeaders interface. The
+ * class will provide applications with access to HTTP header information for a
+ * given request.
+ *
+ */
+public class HttpHeadersImpl implements HttpHeaders {
+
+ private MultivaluedMap<String, String> headers;
+
+ private RESTContext context;
+
+ public HttpHeadersImpl(RESTContext context) {
+ this.context = context;
+ if (context != null) {
+ this.headers = (MultivaluedMap<String, String>) context
+ .getProperty(ContextConstants.HTTP_HEADER_VALUES);
+ if (headers == null) {
+ headers = new MetadataMap<String, String>();
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.HttpHeaders#getAcceptableLanguages()
+ */
+ public List<Locale> getAcceptableLanguages() {
+ checkValidity();
+ List<Locale> locales = (List<Locale>) context
+ .getProperty(ContextConstants.HTTP_REQUEST_LOCALES);
+ if (locales == null) {
+ locales = new ArrayList<Locale>();
+ Locale locale = (Locale) context
+ .getProperty(ContextConstants.HTTP_REQUEST_LOCALE);
+ if (locale != null) {
+ locales.add(locale);
+ }
+ }
+ return locales;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.HttpHeaders#getAcceptableMediaTypes()
+ */
+ public List<MediaType> getAcceptableMediaTypes() {
+ checkValidity();
+ return JAXRSUtils.sortMediaTypesQValue((String) context
+ .getProperty(ContextConstants.HTTP_ACCEPT_HEADER));
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.HttpHeaders#getCookies()
+ */
+ public Map<String, Cookie> getCookies() {
+ checkValidity();
+ return (Map<String, Cookie>) context
+ .getProperty(ContextConstants.HTTP_COOKIES);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.HttpHeaders#getLanguage()
+ */
+ public Locale getLanguage() {
+ checkValidity();
+ String lang = (String) context
+ .getProperty(ContextConstants.CONTENT_LANGUAGE);
+ if (lang != null) {
+ return new Locale(lang);
+ }
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.HttpHeaders#getMediaType()
+ */
+ public MediaType getMediaType() {
+ checkValidity();
+ try {
+ return MediaType.valueOf((String) context
+ .getProperty(ContextConstants.CONTENT_TYPE));
+ } catch (IllegalArgumentException e) {
+ return null;
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.HttpHeaders#getRequestHeader(java.lang.String)
+ */
+ public List<String> getRequestHeader(String headerName) {
+ checkValidity();
+ if (headerName == null) {
+ throw new IllegalArgumentException("Header name is null");
+ }
+ return headers.get(headerName.toLowerCase());
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.HttpHeaders#getRequestHeaders()
+ */
+ public MultivaluedMap<String, String> getRequestHeaders() {
+ checkValidity();
+ MultivaluedMap<String, String> map = new MetadataMap<String, String>(
+ headers, new CaseInsensitiveComparator());
+ return map;
+ }
+
+ /**
+ * This method will be called by each of the public methods in the class. It will
+ * ensure that the HttpHeaders is being called in the right context.
+ *
+ */
+ void checkValidity() {
+
+ // if called out of context throw an illegal state
+ if (context == null) {
+ throw new IllegalStateException(Messages
+ .getMessage("contextInjectionFail"));
+ }
+ }
+
+}
Added: incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/RequestImpl.java
URL: http://svn.apache.org/viewvc/incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/RequestImpl.java?rev=787557&view=auto
==============================================================================
--- incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/RequestImpl.java (added)
+++ incubator/wink/contrib/ibm-jaxrs/src/com/ibm/ws/jaxrs/core/RequestImpl.java Tue Jun 23 05:41:49 2009
@@ -0,0 +1,503 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 com.ibm.ws.jaxrs.core;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.Locale;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.core.EntityTag;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Request;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Variant;
+import javax.ws.rs.core.Response.ResponseBuilder;
+
+import org.apache.cxf.jaxrs.utils.JAXRSUtils;
+
+import com.ibm.ws.jaxrs.context.ContextConstants;
+import com.ibm.ws.jaxrs.context.RESTContext;
+import com.ibm.ws.jaxrs.i18n.Messages;
+import com.ibm.wsspi.jaxrs.http.DateHandler;
+
+/**
+ * This class will be the injectable implementation of the Request interface.
+ * Instances of this class can be requested by applications to query information
+ * about the current request.
+ *
+ */
+public class RequestImpl implements Request {
+
+ /*
+ * the tail end of this pattern with the whitespace, tab, etc. doesn't
+ * really do anything. there may also be the possibility that an entity tag
+ * has \" in it which may lead to an escaped quote and the pattern does not gracefully deal with that.
+ */
+ final private static Pattern entityTagPattern = Pattern
+ .compile("((?:W/)?\"(.*?)\")[ \t,]*");
+
+ private RESTContext context;
+
+ private MultivaluedMap<String, String> httpHeaders;
+
+ @SuppressWarnings("unchecked")
+ public RequestImpl(RESTContext context) {
+ this.context = context;
+ if (context != null) {
+ httpHeaders = (MultivaluedMap<String, String>) context
+ .getProperty(ContextConstants.HTTP_HEADER_VALUES);
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.Request#getMethod()
+ */
+ public String getMethod() {
+ checkValidity();
+ return (String) context.getProperty(ContextConstants.HTTP_METHOD);
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.Request#evaluatePreconditions(java.util.Date, javax.ws.rs.core.EntityTag)
+ */
+ public ResponseBuilder evaluatePreconditions(Date date, EntityTag eTag) {
+ checkValidity();
+ if (eTag == null) {
+ throw new IllegalArgumentException();
+ }
+ if (date == null) {
+ throw new IllegalArgumentException();
+ }
+
+ // call two methods separately, if either of them return a non-null ResponseBuilder
+ // we'll return that back to the caller
+ ResponseBuilder rb = null;
+ rb = evaluatePreconditions(date);
+ if (rb == null) {
+ rb = evaluatePreconditions(eTag);
+ }
+ // TODO in HTTP spec, there's a special condition where if etag fails but if-modified-since succeeds, do something slightly different
+ return rb;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.Request#evaluatePreconditions(java.util.Date)
+ */
+ public ResponseBuilder evaluatePreconditions(Date lastModified) {
+ checkValidity();
+ if (lastModified == null) {
+ throw new IllegalArgumentException();
+ }
+
+ String ifModifiedSince = getHeaderValue(HttpHeaders.IF_MODIFIED_SINCE);
+ if (ifModifiedSince != null) {
+ Date dateSince = DateHandler.extractDateFromString(ifModifiedSince);
+ if (dateSince != null && !dateSince.before(lastModified)) {
+ return Response.status(Response.Status.NOT_MODIFIED);
+ }
+ }
+
+ String ifUnmodifiedSince = getHeaderValue(HttpHeaders.IF_UNMODIFIED_SINCE);
+ if (ifUnmodifiedSince != null) {
+ Date dateSince = DateHandler
+ .extractDateFromString(ifUnmodifiedSince);
+ if (dateSince != null && dateSince.before(lastModified)) {
+ return Response.status(Response.Status.PRECONDITION_FAILED);
+ }
+ }
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.Request#evaluatePreconditions(javax.ws.rs.core.EntityTag)
+ */
+ public ResponseBuilder evaluatePreconditions(EntityTag eTag) {
+ checkValidity();
+
+ if (eTag == null) {
+ throw new IllegalArgumentException();
+ }
+
+ String ifMatch = getHeaderValue(HttpHeaders.IF_MATCH);
+ if (ifMatch != null && !ifMatch.equals("*")) {
+ try {
+ List<String> ifMatchValues = httpHeaders.get(HttpHeaders.IF_MATCH
+ .toLowerCase());
+ boolean isRequestGood = false;
+ for (String e : ifMatchValues) {
+ List<EntityTag> tags = extractEntityTags(e);
+ for (EntityTag requestTag : tags) {
+ if (requestTag.equals(eTag)) {
+ isRequestGood = true;
+ break;
+ }
+ }
+ }
+ if (!isRequestGood) {
+ return Response.status(Response.Status.PRECONDITION_FAILED)
+ .tag(eTag);
+ }
+ } catch (IllegalArgumentException ex) {
+ ex.printStackTrace();
+ // ignore
+ }
+ }
+
+ String ifNoneMatch = getHeaderValue(HttpHeaders.IF_NONE_MATCH);
+
+ if (ifNoneMatch != null) {
+ if (ifNoneMatch.equals("*")) {
+ String method = getMethod();
+ if ("GET".equals(method) || "HEAD".equals(method)) {
+ return Response.status(Response.Status.NOT_MODIFIED).tag(
+ eTag);
+ }
+ return Response.status(Response.Status.PRECONDITION_FAILED)
+ .tag(eTag);
+ }
+ List<String> ifNoneMatchValues = httpHeaders.get(HttpHeaders.IF_NONE_MATCH
+ .toLowerCase());
+ for (String e : ifNoneMatchValues) {
+ List<EntityTag> tags = extractEntityTags(e);
+ for (EntityTag requestTag : tags) {
+ if (requestTag.equals(eTag)) {
+ String method = getMethod();
+ if ("GET".equals(method) || "HEAD".equals(method)) {
+ return Response
+ .status(Response.Status.NOT_MODIFIED).tag(
+ eTag);
+ }
+ return Response.status(
+ Response.Status.PRECONDITION_FAILED).tag(eTag);
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ List<EntityTag> extractEntityTags(String entityTagHeaderValue) {
+ List<EntityTag> tags = new ArrayList<EntityTag>();
+ Matcher m = entityTagPattern.matcher(entityTagHeaderValue);
+ while (m.find()) {
+ tags.add(EntityTag.valueOf(m.group(1)));
+ }
+ return tags;
+ }
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see javax.ws.rs.core.Request#selectVariant(java.util.List<javax.ws.rs.core.Variant>)
+ */
+ public Variant selectVariant(List<Variant> variants)
+ throws IllegalArgumentException {
+ checkValidity();
+
+ /*
+ * assuming that the variants being sent in are the possible variations for the response object,
+ * this reads in various request headers and tries to best determine which Variant type of response
+ * should be returned given the passed variants.
+ *
+ * treating the variants in an ordered fashion so if two variants match, the first variant in the list
+ * should be returned.
+ */
+ if (variants == null || variants.isEmpty()) {
+ throw new IllegalArgumentException();
+ }
+
+ List<String> varyHeader = new ArrayList<String>();
+
+ // first let's find the best matches by media type, we will keep
+ // a list of exact matches separate from matches based on the '*'
+ // wildcard, at the end, if we have exact matches, we will use that
+ // list, otherwise we will use the wildcard matches
+ List<MediaType> acceptedMediaTypes = (List<MediaType>) context
+ .getProperty(ContextConstants.ACCEPT_CONTENT_TYPES);
+ if (acceptedMediaTypes == null
+ || httpHeaders.get(HttpHeaders.ACCEPT.toLowerCase()) == null) {
+ acceptedMediaTypes = new ArrayList<MediaType>();
+ } else {
+ /*
+ * copy for sorting
+ */
+ acceptedMediaTypes = new ArrayList<MediaType>(acceptedMediaTypes);
+ }
+ List<Variant> possibleVariants = new ArrayList<Variant>();
+ List<Variant> possibleVariantsThatDontSpecify = new ArrayList<Variant>();
+ List<Variant> givenVariants = new ArrayList<Variant>(variants);
+ Variant targetVariant = null;
+
+ if (!acceptedMediaTypes.isEmpty()) {
+ acceptedMediaTypes = JAXRSUtils
+ .sortMediaTypesQValue(acceptedMediaTypes);
+ for (MediaType mt : acceptedMediaTypes) {
+ for (Variant variant : givenVariants) {
+ MediaType mediaType = variant.getMediaType();
+ if (mediaType != null) {
+ if (mediaType.isCompatible(mt)) {
+ /*
+ * TODO there is a possibility that the
+ * wildcard/wildcard is one of the MediaTypes for
+ * the passed in "variants" method parameter. since
+ * it is compatible with anything, it may be chosen
+ * almost immediately. this could be a problem if
+ * the app developer decides to pass it in. one way
+ * to solve this is to delay using it until the end.
+ */
+ possibleVariants.add(variant);
+ }
+ } else {
+ possibleVariantsThatDontSpecify.add(variant);
+ }
+ }
+ /*
+ * remove variants that already look promising and were added in
+ * the priority list
+ */
+ givenVariants.removeAll(possibleVariants);
+ givenVariants.removeAll(possibleVariantsThatDontSpecify);
+ }
+
+ possibleVariants.addAll(possibleVariantsThatDontSpecify);
+
+ if (possibleVariants.isEmpty()) {
+ possibleVariants.addAll(variants);
+ } else {
+ varyHeader.add(HttpHeaders.ACCEPT);
+ targetVariant = possibleVariants.get(0);
+ }
+ } else {
+ possibleVariants.addAll(givenVariants);
+ }
+
+ /*
+ * try the language next
+ */
+ givenVariants = new ArrayList<Variant>(possibleVariants);
+ possibleVariants.clear();
+ possibleVariantsThatDontSpecify.clear();
+
+ List<String> acceptableLanguages = httpHeaders.get(HttpHeaders.ACCEPT_LANGUAGE
+ .toLowerCase());
+ if (acceptableLanguages == null) {
+ acceptableLanguages = new ArrayList<String>();
+ } else {
+ acceptableLanguages = new ArrayList<String>(acceptableLanguages);
+ }
+ if (!acceptableLanguages.isEmpty()) {
+ acceptableLanguages = parseAcceptedTypes(acceptableLanguages);
+ sortAcceptedTypesByQValue(acceptableLanguages);
+ for (String lang : acceptableLanguages) {
+ String noQValue = lang;
+ if (lang.indexOf(";") > 1) {
+ noQValue = lang.substring(0, lang.indexOf(";"));
+ }
+ Locale locale = new Locale(noQValue.toLowerCase().trim());
+ for (Variant v : givenVariants) {
+ if (v.getLanguage() != null) {
+ /*
+ * need to eventually support the many language-tags (en
+ * vs. en-US)
+ */
+ if (locale.equals(v.getLanguage())
+ || "*".equals(noQValue)
+ || "*".equals(v.getLanguage())) {
+ possibleVariants.add(v);
+ }
+ } else {
+ possibleVariantsThatDontSpecify.add(v);
+ }
+ }
+ givenVariants.removeAll(possibleVariants);
+ }
+ possibleVariants.addAll(possibleVariantsThatDontSpecify);
+
+ if (!possibleVariants.isEmpty()) {
+ varyHeader.add(HttpHeaders.ACCEPT_LANGUAGE);
+ targetVariant = possibleVariants.get(0);
+ }
+ } else {
+ possibleVariants.addAll(givenVariants);
+ }
+
+ /*
+ * try the encoding next
+ */
+ givenVariants = new ArrayList<Variant>(possibleVariants);
+ possibleVariants.clear();
+ possibleVariantsThatDontSpecify.clear();
+
+ List<String> acceptableEncodings = httpHeaders.get(HttpHeaders.ACCEPT_ENCODING
+ .toLowerCase());
+ if (acceptableEncodings == null) {
+ acceptableEncodings = new ArrayList<String>();
+ } else {
+ acceptableEncodings = new ArrayList<String>(acceptableEncodings);
+ }
+ if (!acceptableEncodings.isEmpty()) {
+ acceptableEncodings = parseAcceptedTypes(acceptableEncodings);
+ sortAcceptedTypesByQValue(acceptableEncodings);
+ for (String enc : acceptableEncodings) {
+ String noQValue = enc;
+ if (enc.indexOf(";") > 1) {
+ noQValue = enc.substring(0, enc.indexOf(";"));
+ }
+ String encoding = noQValue.toLowerCase().trim();
+ for (Variant v : givenVariants) {
+ if (v.getEncoding() != null) {
+ String lowercaseVariantEncoding = v.getEncoding()
+ .toLowerCase();
+ if (encoding.equals(lowercaseVariantEncoding)
+ || "*".equals(noQValue)
+ || "*".equals(lowercaseVariantEncoding)) {
+ possibleVariants.add(v);
+ }
+ } else {
+ possibleVariantsThatDontSpecify.add(v);
+ }
+ }
+ givenVariants.removeAll(possibleVariants);
+ }
+ possibleVariants.addAll(possibleVariantsThatDontSpecify);
+
+ if (!possibleVariants.isEmpty()) {
+ varyHeader.add(HttpHeaders.ACCEPT_ENCODING);
+ targetVariant = possibleVariants.get(0);
+ }
+ } else {
+ possibleVariants.addAll(givenVariants);
+ }
+
+ // set the Vary header for the response if we found a Variant
+ StringBuffer varyHeaderValue = new StringBuffer();
+ if (varyHeader.size() > 0) {
+ varyHeaderValue.append(varyHeader.get(0));
+ for (int c = 1; c < varyHeader.size(); ++c) {
+ varyHeaderValue.append(", ");
+ varyHeaderValue.append(varyHeader.get(c));
+ }
+ }
+ context.setProperty(ContextConstants.VARY_HEADER, (varyHeaderValue
+ .length() > 0 ? varyHeaderValue.toString().trim() : null));
+
+ if (targetVariant == null) {
+ targetVariant = variants.get(0);
+ }
+ return targetVariant;
+ }
+
+ List<String> parseAcceptedTypes(List<String> typesList) {
+ List<String> acceptValues = new ArrayList<String>();
+ for (String types : typesList) {
+ types = types.trim();
+ if (types != null) {
+ while (types.length() > 0) {
+ String tp = types;
+ int index = types.indexOf(',');
+ if (index != -1) {
+ tp = types.substring(0, index);
+ types = types.substring(index + 1).trim();
+ } else {
+ types = "";
+ }
+ acceptValues.add(tp);
+ }
+ }
+ }
+ return acceptValues;
+ }
+
+ void sortAcceptedTypesByQValue(List<String> sortTypes) {
+ Collections.sort(sortTypes, new Comparator<String>() {
+ final Pattern qPattern = Pattern
+ .compile("(.*?);q=((?:\\d)?.(?:\\d)*)");
+
+ public int compare(String object1, String object2) {
+ Matcher m1 = qPattern.matcher(object1);
+ Matcher m2 = qPattern.matcher(object2);
+ double q1 = 1.0;
+ double q2 = 1.0;
+
+ if (m1.matches()) {
+ q1 = Float.valueOf(m1.group(2)).floatValue();
+ }
+
+ if (m2.matches()) {
+ q2 = Float.valueOf(m2.group(2)).floatValue();
+ }
+
+ /*
+ * sorts from 1.0 to 0.0
+ */
+ if (q1 < q2) {
+ return 1;
+ } else if (q1 > q2) {
+ return -1;
+ }
+ return 0;
+ }
+
+ });
+ }
+
+ String getHeaderValue(final String key) {
+ String lcKey = key.toLowerCase();
+ return httpHeaders.getFirst(lcKey) != null ? httpHeaders
+ .getFirst(lcKey) : null;
+ }
+
+ Long getDateHeaderValue(String key) {
+ HttpServletRequest request = (HttpServletRequest) context
+ .getProperty(ContextConstants.SERVLET_REQUEST);
+ if (request != null) {
+ return Long.valueOf(request.getDateHeader(key));
+ }
+ return null;
+ }
+
+ /**
+ * Validate that the Request implementation is not called out of the context
+ * of a request.
+ */
+ void checkValidity() {
+ if (context == null || httpHeaders == null) {
+ throw new IllegalStateException(Messages
+ .getMessage("contextInjectionFail"));
+ }
+ }
+
+}