incubator-wink-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ngalla...@apache.org
Subject 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/...
Date Tue, 23 Jun 2009 05:41:55 GMT
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"));
+        }
+    }
+
+}



Mime
View raw message