Changeset 3577
- Timestamp:
- 04/02/08 14:17:18 (4 years ago)
- Files:
-
- trunk/build.properties (modified) (1 diff)
- trunk/src/main/java/org/sarugo/restlet/jpa/EntityFinder.java (modified) (9 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/EntityRouter.java (moved) (moved from trunk/src/main/java/org/sarugo/restlet/jpa/PersistenceRouter.java) (3 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/converter/ConverterHelper.java (modified) (2 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/converter/OutputConverter.java (modified) (3 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/converter/form/FormEntityUpdateConverter.java (modified) (2 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/converter/json/JSONConverter.java (modified) (5 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/converter/text/ReferenceListConverter.java (modified) (2 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/converter/text/StringEntityConverter.java (modified) (2 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/resource (added)
- trunk/src/main/java/org/sarugo/restlet/jpa/resource/EntityCollection.java (moved) (moved from trunk/src/main/java/org/sarugo/restlet/jpa/EntityCollection.java) (6 diffs)
- trunk/src/main/java/org/sarugo/restlet/jpa/resource/EntityInstance.java (added)
- trunk/src/main/java/org/sarugo/restlet/jpa/resource/EntityResource.java (moved) (moved from trunk/src/main/java/org/sarugo/restlet/jpa/EntityResource.java) (6 diffs)
- trunk/src/test/java/org/sarugo/restlet/jpa/PersistenceResourceTests.java (modified) (3 diffs)
- trunk/src/test/java/org/sarugo/restlet/jpa/PersistenceRouterTest.java (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/build.properties
r2863 r3577 1 1 project.name=restlet-jpa 2 project.rev=0. 12 project.rev=0.2 3 3 project.status=integration trunk/src/main/java/org/sarugo/restlet/jpa/EntityFinder.java
r3563 r3577 35 35 import org.restlet.data.Request; 36 36 import org.restlet.data.Response; 37 import org.restlet.resource.Resource;38 37 import org.sarugo.restlet.jpa.converter.ConverterHelper; 39 38 import org.sarugo.restlet.jpa.converter.InputConverter; 40 39 import org.sarugo.restlet.jpa.converter.OutputConverter; 40 import org.sarugo.restlet.jpa.resource.EntityCollection; 41 import org.sarugo.restlet.jpa.resource.EntityResource; 41 42 42 43 /** … … 52 53 */ 53 54 public class EntityFinder<E> extends Finder { 55 56 private final Class<? extends EntityResource> resource; 54 57 55 58 private final Class<E> entityClass; … … 57 60 private final Class<? extends Object> entityIdClass; 58 61 59 private final PersistenceRouter router;62 private final EntityRouter router; 60 63 61 64 private final List<InputConverter<E>> inputConverters; … … 73 76 * 74 77 * @param router 75 * The {@link PersistenceRouter} this finder will be be attached78 * The {@link EntityRouter} this finder will be be attached 76 79 * to. 77 80 * @param entityClass … … 82 85 * {@link EntityFinder}, {@link Request}, {@link Response}. 83 86 */ 84 public EntityFinder(PersistenceRouter router, Class<E> entityClass, 85 Class<? extends Resource> resource) { 86 super(router.getContext(), resource); 87 public EntityFinder(EntityRouter router, Class<E> entityClass, 88 Class<? extends EntityResource> resource) { 89 super(router.getContext()); 90 this.resource = resource; 87 91 this.router = router; 88 92 this.entityClass = entityClass; … … 93 97 } 94 98 95 /** Get the {@link PersistenceRouter} this finder is attached to. */96 public PersistenceRouter getRouter() {99 /** Get the {@link EntityRouter} this finder is attached to. */ 100 public EntityRouter getRouter() { 97 101 return router; 98 102 } … … 105 109 /** 106 110 * Attach this finder to a router. Should only be called by 107 * {@link PersistenceRouter}.108 * 109 * @see PersistenceRouter#attach(String, EntityFinder)110 * @see PersistenceRouter#attachCollection(String, EntityFinder)111 * {@link EntityRouter}. 112 * 113 * @see EntityRouter#attach(String, EntityFinder) 114 * @see EntityRouter#attachCollection(String, EntityFinder) 111 115 */ 112 116 void setRoute(Route route) { … … 156 160 protected Handler findTarget(Request request, Response response) { 157 161 try { 158 Constructor<? extends Handler> c = getTargetClass().getConstructor( 159 EntityFinder.class, Request.class, Response.class); 160 return c.newInstance(this, request, response); 162 Constructor<? extends EntityResource> c = resource.getConstructor( 163 EntityFinder.class); 164 EntityResource resource = c.newInstance(this); 165 resource.init(request, response); 166 return resource; 161 167 } catch (SecurityException e) { 162 168 getLogger().log(Level.WARNING, "Error constructing resource.", e); … … 242 248 * @param entity 243 249 * The entity. 244 * @return The URL relative to the attached {@link PersistenceRouter}.250 * @return The URL relative to the attached {@link EntityRouter}. 245 251 */ 246 252 public String getEntityURL(E entity) { trunk/src/main/java/org/sarugo/restlet/jpa/EntityRouter.java
r3563 r3577 33 33 import org.restlet.data.Response; 34 34 import org.restlet.data.Status; 35 import org.sarugo.restlet.jpa.resource.EntityCollection; 36 import org.sarugo.restlet.jpa.resource.EntityResource; 35 37 36 38 /** … … 50 52 * @author Michael Terrington 51 53 */ 52 public class PersistenceRouter extends Restlet {54 public class EntityRouter extends Restlet { 53 55 54 56 private final Router router; … … 72 74 * The entity manager factory. 73 75 */ 74 public PersistenceRouter(Context context,76 public EntityRouter(Context context, 75 77 EntityManagerFactory entityManagerFactory) { 76 78 super(context); trunk/src/main/java/org/sarugo/restlet/jpa/converter/ConverterHelper.java
r3563 r3577 21 21 import java.lang.reflect.Constructor; 22 22 23 import org.sarugo.restlet.jpa. PersistenceRouter;23 import org.sarugo.restlet.jpa.EntityRouter; 24 24 25 25 /** … … 34 34 35 35 public static <T extends Object> T convertToType(Class<T> type, 36 String value, PersistenceRouter router) {36 String value, EntityRouter router) { 37 37 // Short cut for String types 38 38 if (type.isAssignableFrom(String.class)) { trunk/src/main/java/org/sarugo/restlet/jpa/converter/OutputConverter.java
r3563 r3577 21 21 import org.restlet.resource.Representation; 22 22 import org.restlet.resource.Variant; 23 import org.sarugo.restlet.jpa.EntityCollection; 24 import org.sarugo.restlet.jpa.EntityResource; 23 import org.sarugo.restlet.jpa.resource.EntityResource; 25 24 26 25 public interface OutputConverter<E> { … … 31 30 32 31 /** 33 * Produce a representation for the provided entity.32 * Produce a representation for the provided resource. 34 33 * 35 34 * @param entityResource … … 38 37 */ 39 38 Representation represent(EntityResource<E> entityResource, Variant variant); 40 41 /**42 * Produce a representation for the provided entity collection.43 *44 * @param entityCollection45 * the entity collection to represent.46 * @return47 */48 Representation represent(EntityCollection<E> entityCollection,49 Variant variant);50 39 } trunk/src/main/java/org/sarugo/restlet/jpa/converter/form/FormEntityUpdateConverter.java
r3563 r3577 30 30 import org.restlet.data.MediaType; 31 31 import org.restlet.resource.Representation; 32 import org.sarugo.restlet.jpa. PersistenceRouter;32 import org.sarugo.restlet.jpa.EntityRouter; 33 33 import org.sarugo.restlet.jpa.converter.ConverterHelper; 34 34 import org.sarugo.restlet.jpa.converter.InputConverter; … … 36 36 public class FormEntityUpdateConverter<E> implements InputConverter<E> { 37 37 38 private final PersistenceRouter router;38 private final EntityRouter router; 39 39 40 40 private final Class<E> entityClass; 41 41 42 public FormEntityUpdateConverter( PersistenceRouter router,42 public FormEntityUpdateConverter(EntityRouter router, 43 43 Class<E> entityClass) { 44 44 this.router = router; trunk/src/main/java/org/sarugo/restlet/jpa/converter/json/JSONConverter.java
r3563 r3577 33 33 import org.restlet.resource.StringRepresentation; 34 34 import org.restlet.resource.Variant; 35 import org.sarugo.restlet.jpa.EntityCollection;36 import org.sarugo.restlet.jpa.EntityResource;37 35 import org.sarugo.restlet.jpa.converter.OutputConverter; 36 import org.sarugo.restlet.jpa.resource.EntityCollection; 37 import org.sarugo.restlet.jpa.resource.EntityInstance; 38 import org.sarugo.restlet.jpa.resource.EntityResource; 38 39 39 40 import com.sdicons.json.mapper.JSONMapper; … … 49 50 } 50 51 51 public Representation represent(Entity Resource<E> entityResource,52 public Representation represent(EntityInstance<E> entityInstance, 52 53 Variant variant) { 53 54 if (MediaType.APPLICATION_JSON.equals(variant.getMediaType())) { … … 58 59 Map<String, Object> entityValues = new HashMap<String, Object>(); 59 60 for (PropertyDescriptor p : Introspector.getBeanInfo( 60 entity Resource.getFinder().getEntityClass())61 entityInstance.getFinder().getEntityClass()) 61 62 .getPropertyDescriptors()) { 62 63 if (p.getWriteMethod() != null && p.getReadMethod() != null) { 63 64 Object value = p.getReadMethod().invoke( 64 entity Resource.getEntity());65 String url = entity Resource.getFinder().getRouter()65 entityInstance.getEntity()); 66 String url = entityInstance.getFinder().getRouter() 66 67 .getEntityURL(value); 67 68 if (url != null) { … … 74 75 .render(true), variant.getMediaType()); 75 76 } catch (MapperException e) { 76 entity Resource.getLogger().log(Level.WARNING,77 entityInstance.getLogger().log(Level.WARNING, 77 78 "Unable to map entity to JSON", e); 78 79 } catch (IntrospectionException e) { 79 entity Resource.getLogger().log(Level.WARNING,80 entityInstance.getLogger().log(Level.WARNING, 80 81 "Unable to map entity to JSON", e); 81 82 } catch (IllegalArgumentException e) { 82 entity Resource.getLogger().log(Level.WARNING,83 entityInstance.getLogger().log(Level.WARNING, 83 84 "Unable to map entity to JSON", e); 84 85 } catch (IllegalAccessException e) { 85 entity Resource.getLogger().log(Level.WARNING,86 entityInstance.getLogger().log(Level.WARNING, 86 87 "Unable to map entity to JSON", e); 87 88 } catch (InvocationTargetException e) { 88 entity Resource.getLogger().log(Level.WARNING,89 entityInstance.getLogger().log(Level.WARNING, 89 90 "Unable to map entity to JSON", e); 90 91 } … … 119 120 } 120 121 122 public Representation represent(EntityResource<E> entityResource, 123 Variant variant) { 124 if (entityResource instanceof EntityCollection) { 125 return represent((EntityCollection<E>) entityResource, variant); 126 } else if (entityResource instanceof EntityInstance) { 127 return represent((EntityInstance<E>) entityResource, variant); 128 } else { 129 return null; 130 } 131 } 132 121 133 } trunk/src/main/java/org/sarugo/restlet/jpa/converter/text/ReferenceListConverter.java
r3563 r3577 24 24 import org.restlet.resource.Representation; 25 25 import org.restlet.resource.Variant; 26 import org.sarugo.restlet.jpa.EntityCollection;27 import org.sarugo.restlet.jpa.EntityResource;28 26 import org.sarugo.restlet.jpa.converter.OutputConverter; 27 import org.sarugo.restlet.jpa.resource.EntityCollection; 28 import org.sarugo.restlet.jpa.resource.EntityResource; 29 29 30 30 public class ReferenceListConverter<E> implements OutputConverter<E> { … … 43 43 public Representation represent(EntityResource<E> entityResource, 44 44 Variant variant) { 45 return null; 46 } 47 48 public Representation represent(EntityCollection<E> entityCollection, 49 Variant variant) { 50 if (VARIANTS.contains(variant.getMediaType())) { 45 if (VARIANTS.contains(variant.getMediaType()) && entityResource instanceof EntityCollection) { 46 EntityCollection<E> entityCollection = (EntityCollection<E>) entityResource; 51 47 ReferenceList list = new ReferenceList(entityCollection 52 48 .getEntityList().size()); trunk/src/main/java/org/sarugo/restlet/jpa/converter/text/StringEntityConverter.java
r3563 r3577 24 24 import org.restlet.resource.StringRepresentation; 25 25 import org.restlet.resource.Variant; 26 import org.sarugo.restlet.jpa.EntityCollection;27 import org.sarugo.restlet.jpa.EntityResource;28 26 import org.sarugo.restlet.jpa.converter.OutputConverter; 27 import org.sarugo.restlet.jpa.resource.EntityInstance; 28 import org.sarugo.restlet.jpa.resource.EntityResource; 29 29 30 /** 31 * Simple converter for {@link EntityInstance}s. Calls 32 * {@link Object#toString()} on the entity instance to return 33 * {@link MediaType#TEXT_PLAIN} representation. 34 */ 30 35 public class StringEntityConverter<E> implements OutputConverter<E> { 31 36 … … 39 44 public Representation represent(EntityResource<E> entityResource, 40 45 Variant variant) { 41 if (variant.getMediaType().equals(MediaType.TEXT_PLAIN)) { 42 return new StringRepresentation(entityResource.getEntity() 43 .toString()); 46 if (variant.getMediaType().equals(MediaType.TEXT_PLAIN) 47 && entityResource instanceof EntityInstance) { 48 EntityInstance<E> instance = (EntityInstance<E>) entityResource; 49 return new StringRepresentation(instance.getEntity().toString()); 44 50 } 45 51 return null; 46 52 } 47 53 48 public Representation represent(EntityCollection<E> entityCollection,49 Variant variant) {50 return null;51 }52 53 54 } trunk/src/main/java/org/sarugo/restlet/jpa/resource/EntityCollection.java
r3563 r3577 15 15 */ 16 16 17 package org.sarugo.restlet.jpa ;17 package org.sarugo.restlet.jpa.resource; 18 18 19 19 import java.util.ArrayList; … … 22 22 import javax.persistence.Query; 23 23 24 import org.restlet.Context; 24 25 import org.restlet.data.Parameter; 25 26 import org.restlet.data.Request; … … 29 30 import org.restlet.resource.Resource; 30 31 import org.restlet.resource.ResourceException; 31 import org. restlet.resource.Variant;32 import org.sarugo.restlet.jpa.EntityFinder; 32 33 import org.sarugo.restlet.jpa.converter.InputConverter; 33 import org.sarugo.restlet.jpa.converter.OutputConverter;34 34 35 35 /** … … 39 39 * @author Michael Terrington 40 40 */ 41 public class EntityCollection<E> extends Resource{41 public class EntityCollection<E> extends EntityResource<E> { 42 42 43 private final EntityFinder<E> finder; 43 /** The first result to retrieve. Defaults to 1. */ 44 protected int start; 44 45 45 protected final List<E> entityList; 46 /** 47 * The number of results to retrieve. Defaults to 48 * {@link EntityFinder#getMaxResults()}. 49 */ 50 protected int maxResults; 46 51 47 protected final int start; 52 /** The list of entities for this resource. */ 53 protected List<E> entityList; 48 54 49 protected final int maxResults; 55 /** 56 * Whether the list of entities is complete or further entities may be 57 * retrieved at <code>start+maxResults</code>. 58 */ 59 protected boolean listComplete; 50 60 51 protected final boolean listComplete; 61 /** 62 * Initialise this entity collection, linking it to the given finder. 63 * 64 * @param finder 65 * The finder this collection will use to get its entity list. 66 */ 67 public EntityCollection(EntityFinder<E> finder) { 68 super(finder); 69 start = 1; 70 maxResults = finder.getMaxResults(); 71 } 52 72 53 public EntityCollection(EntityFinder<E> finder, Request request, 54 Response response) { 55 super(finder.getContext(), request, response); 56 this.finder = finder; 57 int start = 1; 58 int maxResults = finder.getMaxResults(); 59 for (Parameter param : getRequest().getResourceRef().getQueryAsForm()) { 60 if (param.getName().equals("max")) { 61 // Set max to minimum of the finder's limit or request value 62 // This prevents DoS consumption of resources 63 maxResults = Math.min(Integer.parseInt(param.getValue()), 64 maxResults); 65 } else if (param.getName().equals("start")) { 66 start = Integer.parseInt(param.getValue()); 67 } 68 } 69 this.start = start; 70 this.maxResults = maxResults; 71 Query q = finder.getEntityListQuery(request, response); 73 /** 74 * Initialises this resource. By default this: 75 * <ol> 76 * <li>Calls {@link Resource#init(Context, Request, Response)} to 77 * initialise the base class.</li> 78 * <li>Calls {@link #initMaxAndStart()}.</li> 79 * <li>Gets the JPA query from 80 * {@link EntityFinder#getEntityListQuery(Request, Response)}.</li> 81 * <li>Sets {@link Query#setFirstResult(int)} to <code>start - 1</code>).</li> 82 * <li>Sets {@link Query#setMaxResults(int)} to <code>maxResults + 1</code>.</li> 83 * <li>Gets the result list from {@link Query#getResultList()}.</li> 84 * <li>Sets {@link #listComplete} to <tt>true</tt> if the result list is 85 * <= {@link #maxResults}.<br> 86 * Otherwise, truncates the list to {@link #maxResults} (to remove the +1).</li> 87 * </ol> 88 * 89 * Override {@link EntityFinder#getEntityListQuery(Request, Response)} if 90 * you want to change the query. 91 * 92 * Override {@link #initMaxAndStart()} if you want to change how 93 * {@link #start} and {@link #maxResults} are initialised. 94 * 95 * Override this method if you want to retrieve the entity list from a 96 * non-query source (e.g. from a containing entity). Do not call this 97 * implementation (<tt>super.init</tt>) if you override it, instead 98 * ensure you call {@link Resource#init(Context, Request, Response)} first 99 * and {@link #initMaxAndStart()} if required. 100 */ 101 public void init(Request request, Response response) { 102 init(getFinder().getContext(), request, response); 103 initMaxAndStart(); 104 Query q = getFinder().getEntityListQuery(request, response); 72 105 q.setFirstResult(start - 1); 73 106 q.setMaxResults(maxResults + 1); … … 83 116 } 84 117 118 /** 119 * Initialises {@link #maxResults} and {@link #start} based on query 120 * parameters <tt>max</tt> and <tt>start</tt>. {@link #maxResults} will 121 * not be changed if the query parameter is greater than the value returned 122 * by {@link EntityFinder#getMaxResults()} to prevent DoS attacks. 123 */ 124 protected void initMaxAndStart() { 125 for (Parameter param : getRequest().getResourceRef().getQueryAsForm()) { 126 if (param.getName().equals("max")) { 127 // This prevents DoS consumption of resources 128 maxResults = Math.min(Integer.parseInt(param.getValue()), 129 maxResults); 130 } else if (param.getName().equals("start")) { 131 start = Integer.parseInt(param.getValue()); 132 } 133 } 134 } 135 136 /** Gets the entity list for this resource. */ 85 137 public List<E> getEntityList() { 86 138 return entityList; 87 139 } 88 140 141 /** 142 * If the list is not complete, more entities can be retrieved at 143 * <code>start + maxResults</code>. 144 */ 89 145 public boolean isListComplete() { 90 146 return listComplete; 91 147 } 92 148 149 /** Maximum results the entity list will contain. */ 93 150 public int getMaxResults() { 94 151 return maxResults; 95 152 } 96 153 154 /** The 1-based index of the first result. */ 97 155 public int getStart() { 98 156 return start; 99 157 } 100 158 101 public EntityFinder<E> getFinder() { 102 return finder; 103 } 104 105 @Override 106 public boolean allowPost() { 107 return !getFinder().getInputConverters().isEmpty(); 108 } 109 110 @Override 111 public boolean isReadable() { 112 return !getFinder().getOutputConverters().isEmpty(); 113 } 114 115 @Override 116 public Representation represent(Variant variant) throws ResourceException { 117 Representation representation = null; 118 for (OutputConverter<E> converter : getFinder().getOutputConverters()) { 119 representation = converter.represent(this, variant); 120 if (representation != null) { 121 break; 122 } 123 } 124 return representation; 125 } 126 159 /** 160 * Accept a new entity for insertion into this collection using the first 161 * accepting input converter from the finder. 162 */ 127 163 @Override 128 164 public void acceptRepresentation(Representation representation) … … 142 178 } 143 179 180 /** Put of a collection is not supported. */ 181 @Override 182 public boolean allowPut() { 183 return false; 184 } 185 186 /** Delete of a collection is not supported. */ 187 @Override 188 public boolean allowDelete() { 189 return false; 190 } 191 144 192 } trunk/src/main/java/org/sarugo/restlet/jpa/resource/EntityResource.java
r3563 r3577 15 15 */ 16 16 17 package org.sarugo.restlet.jpa ;17 package org.sarugo.restlet.jpa.resource; 18 18 19 19 import org.restlet.data.Request; 20 20 import org.restlet.data.Response; 21 import org.restlet.data.Status;22 21 import org.restlet.resource.Representation; 23 22 import org.restlet.resource.Resource; 24 23 import org.restlet.resource.ResourceException; 25 24 import org.restlet.resource.Variant; 26 import org.sarugo.restlet.jpa. converter.InputConverter;25 import org.sarugo.restlet.jpa.EntityFinder; 27 26 import org.sarugo.restlet.jpa.converter.OutputConverter; 28 27 … … 33 32 * @author Michael Terrington 34 33 */ 35 public class EntityResource<E> extends Resource {34 public abstract class EntityResource<E> extends Resource { 36 35 37 36 private final EntityFinder<E> finder; 38 37 39 private final E entity; 40 41 public EntityResource(EntityFinder<E> finder, Request request, 42 Response response) { 43 super(finder.getContext(), request, response); 38 /** 39 * Initialise this entity resource, linking it to the given finder. The set 40 * of variants this resource produces is initialised to the variants 41 * returned from the output converters in the finder. 42 * 43 * @param finder 44 * The finder associated with this resource. 45 */ 46 public EntityResource(EntityFinder<E> finder) { 44 47 this.finder = finder; 45 this.entity = finder.getEntity(request, response);46 48 for (OutputConverter<E> converter : finder.getOutputConverters()) { 47 49 getVariants().addAll(converter.getVariants()); … … 49 51 } 50 52 51 public E getEntity() { 52 return entity; 53 } 53 /** Lookup the entity/entity list for the given request. */ 54 public abstract void init(Request request, Response response); 54 55 55 public EntityFinder<E> getFinder() { 56 /** The finder this resource is initialised from. */ 57 public final EntityFinder<E> getFinder() { 56 58 return finder; 57 59 } 58 60 61 /** True if the finder provides input converters. */ 59 62 @Override 60 63 public boolean isModifiable() { … … 62 65 } 63 66 67 /** True if the finder provides output converters. */ 64 68 @Override 65 69 public boolean isReadable() { … … 67 71 } 68 72 69 @Override 70 public boolean isAvailable() { 71 return entity != null; 72 } 73 73 /** 74 * Represent this resource using the first matching output converter from 75 * the finder. 76 */ 74 77 @Override 75 78 public Representation represent(Variant variant) throws ResourceException { … … 84 87 } 85 88 86 @Override87 public boolean allowPost() {88 return false;89 }90 91 @Override92 public void storeRepresentation(Representation representation)93 throws ResourceException {94 boolean accepted = false;95 for (InputConverter<E> converter : getFinder().getInputConverters()) {96 if (converter.storeRepresentation(getEntity(), representation)) {97 accepted = true;98 break;99 }100 }101 if (!accepted) {102 getResponse().setStatus(Status.CLIENT_ERROR_UNSUPPORTED_MEDIA_TYPE);103 }104 }105 106 @Override107 public void removeRepresentations() throws ResourceException {108 if (!getFinder().removeEntity(entity)) {109 getResponse().setStatus(Status.CLIENT_ERROR_METHOD_NOT_ALLOWED);110 }111 }112 113 89 } trunk/src/test/java/org/sarugo/restlet/jpa/PersistenceResourceTests.java
r3563 r3577 31 31 import org.sarugo.restlet.jpa.converter.json.JSONConverter; 32 32 import org.sarugo.restlet.jpa.converter.text.StringEntityConverter; 33 import org.sarugo.restlet.jpa.resource.EntityResource; 33 34 34 35 public class PersistenceResourceTests extends TestCase { … … 88 89 private final E testEntity; 89 90 90 public TestFinder( PersistenceRouter router, Class<E> entityClass)91 public TestFinder(EntityRouter router, Class<E> entityClass) 91 92 throws InstantiationException, IllegalAccessException { 92 93 super(router, entityClass, EntityResource.class); … … 100 101 } 101 102 102 private PersistenceRouter router;103 private EntityRouter router; 103 104 104 105 @Override 105 106 protected void setUp() throws Exception { 106 107 super.setUp(); 107 router = new PersistenceRouter(null, Persistence108 router = new EntityRouter(null, Persistence 108 109 .createEntityManagerFactory("test")); 109 110 router.getLogger().setLevel(Level.OFF); trunk/src/test/java/org/sarugo/restlet/jpa/PersistenceRouterTest.java
r3563 r3577 14 14 component.getServers().add(Protocol.HTTP, 8080); 15 15 component.getClients().add(Protocol.CLAP); 16 PersistenceRouter router = new PersistenceRouter(16 EntityRouter router = new EntityRouter( 17 17 component.getContext(), Persistence 18 18 .createEntityManagerFactory("test"));
