/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.component.rest; import com.sun.jersey.core.spi.component.ComponentContext; import com.sun.jersey.core.spi.component.ComponentScope; import com.sun.jersey.core.spi.component.ioc.IoCComponentProvider; import com.sun.jersey.core.spi.component.ioc.IoCComponentProviderFactory; import com.sun.jersey.core.spi.component.ioc.IoCManagedComponentProvider; /** * Jersey specific class to integrate per-request resources into Jersey JaxRs. */ public final class JerseyRestResourceFactory extends RestResourceFactory implements IoCComponentProviderFactory, IoCManagedComponentProvider { /** * Creates an instance of the factory. * * @param type the type to create, not null * @param arguments the arguments */ public JerseyRestResourceFactory(Class<?> type, Object... arguments) { super(type, arguments); } //------------------------------------------------------------------------- @Override public IoCComponentProvider getComponentProvider(Class<?> clazz) { return getComponentProvider(null, clazz); } @Override public IoCComponentProvider getComponentProvider(ComponentContext cc, final Class<?> clazz) { if (clazz.equals(getType())) { return this; } return null; } //------------------------------------------------------------------------- @Override public Object getInstance() { return createInstance(); } @Override public ComponentScope getScope() { return ComponentScope.PerRequest; } @Override public Object getInjectableInstance(Object o) { return o; } }