@Override public T get() { return ThreadLocalInvoker.this.get(); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // if no instance yet exists for the current thread then look one up // and stash it if (this.get() == null) { Context ctx = new InitialContext(); T t = (T) ctx.lookup(name); this.set(t); } return super.invoke(proxy,method,args); } }
private WebApplicationContext handleMatchResourceRequest(URI u) { final WebApplicationContext oldContext = (WebApplicationContext)context.get(); final WebApplicationContext newContext = oldContext.createMatchResourceContext(u); context.set(newContext); try { _handleRequest(newContext, newContext.getContainerRequest()); return newContext; } finally { context.set(oldContext); } }
LOGGER.info("Initiating Jersey application, version '" + BuildId.getBuildId() + "'"); ? new ResourceFactory(this.resourceConfig, this.injectableFactory) : new IoCResourceFactory(this.resourceConfig, this.injectableFactory, providerFactories); IoCComponentProcessorFactory cpf; if (f instanceof IoCComponentProcessorFactoryInitializer) { cpf = new ComponentProcessorFactoryImpl(); IoCComponentProcessorFactoryInitializer i = (IoCComponentProcessorFactoryInitializer)f; i.init(cpf); injectableFactory.add(new ContextInjectableProvider<ProviderServices>( ProviderServices.class, providerServices)); injectableFactory.add(new ContextInjectableProvider<ResourceMethodCustomInvokerDispatchFactory>( ResourceMethodCustomInvokerDispatchFactory.class, new ResourceMethodCustomInvokerDispatchFactory(providerServices))); injectableFactory.add( new InjectableProvider<ParentRef, Type>() { @Override injectableFactory.add( new InjectableProvider<Inject, Type>() { @Override injectableFactory.add( new InjectableProvider<Inject, Type>() { @Override
public static Variant selectVariant(ContainerRequest r, List<Variant> variants) { LinkedList<VariantHolder> vhs = getVariantHolderList(variants); Set<String> vary = new HashSet<String>(); vhs = selectVariants(vhs, HttpHelper.getAccept(r), MEDIA_TYPE_DC, vary); vhs = selectVariants(vhs, HttpHelper.getAcceptLanguage(r), LANGUAGE_TAG_DC, vary); vhs = selectVariants(vhs, HttpHelper.getAcceptCharset(r), CHARSET_DC, vary); vhs = selectVariants(vhs, HttpHelper.getAcceptEncoding(r), ENCODING_DC, vary); if (vhs.isEmpty()) { return null; } else { StringBuilder varyHeader = new StringBuilder(); for (String v : vary) { if (varyHeader.length() > 0) { varyHeader.append(','); } varyHeader.append(v); } r.getProperties().put(ContainerRequest.VARY_HEADER, varyHeader.toString()); return vhs.iterator().next().v; } } }
public WebApplicationImpl() { this.context = new ThreadLocalHttpContext(); this.injectableFactory = new ServerInjectableProviderFactory(); injectableFactory.add(new ContextInjectableProvider<InjectableProviderContext>( InjectableProviderContext.class, injectableFactory)); injectableFactory.add(new ContextInjectableProvider<ServerInjectableProviderContext>( ServerInjectableProviderContext.class, injectableFactory)); m.put(HttpHeaders.class, createProxy(HttpHeaders.class, requestHandler)); m.put(UriInfo.class, createProxy(UriInfo.class, uriInfoHandler)); m.put(ExtendedUriInfo.class, createProxy(ExtendedUriInfo.class, uriInfoHandler)); m.put(Request.class, createProxy(Request.class, requestHandler)); m.put(SecurityContext.class, createProxy(SecurityContext.class, requestHandler)); injectableFactory.add(new InjectableProvider<Context, Type>() { @Override public ComponentScope getScope() { injectableFactory.add(new InjectableProvider<Context, Type>() { @Override public ComponentScope getScope() { injectableFactory.add(new InjectableProvider<Inject, Type>() { @Override public ComponentScope getScope() { injectableFactory.add(new InjectableProvider<InjectParam, Type>() { @Override public ComponentScope getScope() {
@Override public void handleRequest(ContainerRequest request, ContainerResponse response) throws IOException { final WebApplicationContext localContext = new WebApplicationContext(this, request, response); context.set(localContext); try { _handleRequest(localContext, request, response); } finally { PerRequestFactory.destroy(localContext); closeableFactory.close(localContext); context.set(null); } }
final U d = dc.getDimension(v); vary.add(dc.getVaryHeaderValue()); final int qs = dc.getQualitySource(v, d); if (qs >= cqs && dc.isCompatible(a, d)) { if (qs > cqs) { cqs = qs; if (dc.getDimension(v) == null) selected.add(v);
private static String _initiateBuildId() { String id = "Jersey"; final InputStream in = getIntputStream(); if (in != null) { try { Properties p = new Properties(); p.load(in); String _id = p.getProperty("Build-Id"); if (_id != null) id = id + ": " + _id; } catch (Exception e){ // Ignore } finally { close(in); } } return id; }
@Override public void postConstruct(Object o) { rci.inject(context.get(), o); } }
@Override public Variant selectVariant(List<Variant> variants) { if (variants == null || variants.isEmpty()) throw new IllegalArgumentException("The list of variants is null or empty"); // TODO mark the Vary header to be added to the response return VariantSelector.selectVariant(this, variants); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { return method.invoke(context.getRequest(), args); } catch (IllegalAccessException ex) { throw new IllegalStateException(ex); } catch (InvocationTargetException ex) { throw ex.getTargetException(); } } };
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { return method.invoke(context.getUriInfo(), args); } catch (IllegalAccessException ex) { throw new IllegalStateException(ex); } catch (InvocationTargetException ex) { throw ex.getTargetException(); } } };
private static LinkedList<VariantHolder> getVariantHolderList(final List<Variant> variants) { final LinkedList<VariantHolder> l = new LinkedList<VariantHolder>(); for (Variant v : variants) { final MediaType mt = v.getMediaType(); if (mt != null) { if (mt instanceof QualitySourceMediaType || mt.getParameters(). containsKey(QualitySourceMediaType.QUALITY_SOURCE_FACTOR)) { int qs = QualitySourceMediaType.getQualitySource(mt); l.add(new VariantHolder(v, qs)); } else { l.add(new VariantHolder(v)); } } else { l.add(new VariantHolder(v)); } } return l; }
private void addVersion(Application wadlApplication) { // Include Jersey version as doc element with generatedBy attribute Doc d = new Doc(); d.getOtherAttributes().put(new QName("http://jersey.java.net/", "generatedBy", "jersey"), BuildId.getBuildId()); wadlApplication.getDoc().add(0, d); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // if no instance yet exists for the current thread then look one up // and stash it if (this.get() == null) { Context ctx = new InitialContext(); T t = (T) ctx.lookup(name); this.set(t); } return super.invoke(proxy,method,args); } }
@Override public T get() { return ThreadLocalInvoker.this.get(); }
@Override public void trace(String message) { context.get().trace(message); }
@Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { // if no instance yet exists for the current thread then look one up // and stash it if (this.get() == null) { Context ctx = new InitialContext(); T t = (T) ctx.lookup(name); this.set(t); } return super.invoke(proxy,method,args); } }
@Override public T get() { return ThreadLocalInvoker.this.get(); }