use of org.apache.cayenne.configuration.server.ServerModule in project cayenne by apache.
the class ROPServletTest method testInitWithExtraModules.
@Test
public void testInitWithExtraModules() throws Exception {
String name = "cayenne-org.apache.cayenne.configuration.rop.server.test-config";
MockServletConfig config = new MockServletConfig();
config.setServletName(name);
config.setInitParameter("extra-modules", MockModule1.class.getName() + "," + MockModule2.class.getName());
MockServletContext context = new MockServletContext();
config.setServletContext(context);
ROPServlet servlet = new ROPServlet();
servlet.init(config);
runtime = WebUtil.getCayenneRuntime(context);
assertNotNull(runtime);
Collection<Module> modules = runtime.getModules();
assertEquals(6, modules.size());
Object[] marray = modules.toArray();
if (marray[0] instanceof ServerModule) {
assertTrue(marray[1] instanceof WebModule);
} else {
assertTrue(marray[0] instanceof WebModule);
}
assertTrue(marray[2] instanceof ROPServerModule);
assertTrue(marray[3] instanceof MockModule1);
assertTrue(marray[4] instanceof MockModule2);
RequestHandler handler = runtime.getInjector().getInstance(RequestHandler.class);
assertTrue(handler instanceof MockRequestHandler);
}
use of org.apache.cayenne.configuration.server.ServerModule in project cayenne by apache.
the class CayenneFilterTest method testInitWithStandardModules.
@Test
public void testInitWithStandardModules() throws Exception {
MockFilterConfig config = new MockFilterConfig();
config.setFilterName("cayenne-abc");
MockServletContext context = new MockServletContext();
config.setupServletContext(context);
CayenneFilter filter = new CayenneFilter();
assertNull(WebUtil.getCayenneRuntime(context));
filter.init(config);
CayenneRuntime runtime = WebUtil.getCayenneRuntime(context);
assertNotNull(runtime);
List<String> locations = runtime.getInjector().getInstance(Key.getListOf(String.class, Constants.SERVER_PROJECT_LOCATIONS_LIST));
assertEquals(Arrays.asList("cayenne-abc.xml"), locations);
Collection<Module> modules = runtime.getModules();
assertEquals(3, modules.size());
Object[] marray = modules.toArray();
if (marray[0] instanceof ServerModule) {
assertTrue(marray[1] instanceof WebModule);
} else {
assertTrue(marray[0] instanceof WebModule);
}
RequestHandler handler = runtime.getInjector().getInstance(RequestHandler.class);
assertTrue(handler instanceof SessionContextRequestHandler);
}
use of org.apache.cayenne.configuration.server.ServerModule in project cayenne by apache.
the class CayenneFilterTest method testInitWithExtraModules.
@Test
public void testInitWithExtraModules() throws Exception {
MockFilterConfig config = new MockFilterConfig();
config.setFilterName("abc");
config.setInitParameter(WebConfiguration.EXTRA_MODULES_PARAMETER, MockModule1.class.getName() + "," + MockModule2.class.getName());
MockServletContext context = new MockServletContext();
config.setupServletContext(context);
CayenneFilter filter = new CayenneFilter();
filter.init(config);
CayenneRuntime runtime = WebUtil.getCayenneRuntime(context);
assertNotNull(runtime);
Collection<Module> modules = runtime.getModules();
assertEquals(5, modules.size());
Object[] marray = modules.toArray();
if (marray[0] instanceof ServerModule) {
assertTrue(marray[1] instanceof WebModule);
} else {
assertTrue(marray[0] instanceof WebModule);
}
assertTrue(marray[2] instanceof MockModule1);
assertTrue(marray[3] instanceof MockModule2);
RequestHandler handler = runtime.getInjector().getInstance(RequestHandler.class);
assertTrue(handler instanceof MockRequestHandler);
}
use of org.apache.cayenne.configuration.server.ServerModule in project cayenne by apache.
the class Main method appendModules.
protected Collection<Module> appendModules(Collection<Module> modules) {
// TODO: this is dirty... ServerModule is out of place inside the Modeler...
// If we need ServerRuntime for certain operations, those should start their own stack...
modules.add(new ServerModule());
modules.add(new ProjectModule());
modules.add(new DbSyncModule());
modules.add(new CayenneModelerModule());
return modules;
}
use of org.apache.cayenne.configuration.server.ServerModule in project cayenne by apache.
the class CAY_743Test method testLoad2MapsWithCrossMapInheritance.
@Test
public void testLoad2MapsWithCrossMapInheritance() throws Exception {
Injector injector = DIBootstrap.createInjector(new ServerModule() {
@Override
public void configure(Binder binder) {
super.configure(binder);
ServerModule.contributeProjectLocations(binder).add("cay743/cayenne-domain.xml");
}
});
try {
DataDomain domain = injector.getInstance(DataDomain.class);
assertEquals(2, domain.getDataMaps().size());
DataMap m1 = domain.getDataMap("map1");
DataMap m2 = domain.getDataMap("map2");
ObjEntity oe11 = m1.getObjEntity("Entity11");
ObjEntity oe12 = m1.getObjEntity("Entity12");
ObjEntity oe21 = m2.getObjEntity("Entity21");
ObjEntity oe22 = m2.getObjEntity("Entity22");
// this causes StackOverflow per CAY-743
ObjEntity oe21Super = oe21.getSuperEntity();
ObjEntity oe12Super = oe12.getSuperEntity();
assertSame(oe12Super, oe22);
assertSame(oe21Super, oe11);
} finally {
injector.shutdown();
}
}
Aggregations