Search in sources :

Example 16 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project openolat by klemens.

the class MapperDAOTest method testDeleteMapperByMapper.

@Test
public void testDeleteMapperByMapper() throws Exception {
    // create mappers
    String mapperIdToDelete = null;
    for (int i = 0; i < 10; i++) {
        mapperIdToDelete = UUID.randomUUID().toString();
        String sessionId = UUID.randomUUID().toString().substring(0, 32);
        mapperDao.persistMapper(sessionId, mapperIdToDelete, null, -1);
    }
    dbInstance.commitAndCloseSession();
    Calendar cal = Calendar.getInstance();
    Thread.sleep(5000);
    // create a new mapper
    String mapperId = UUID.randomUUID().toString();
    String sessionId = UUID.randomUUID().toString().substring(0, 32);
    mapperDao.persistMapper(sessionId, mapperId, null, -1);
    dbInstance.commitAndCloseSession();
    // delete old mappers
    cal.add(Calendar.SECOND, 3);
    int numOfDeletedRow = mapperDao.deleteMapperByDate(cal.getTime());
    Assert.assertTrue(numOfDeletedRow >= 10);
    // load the last mapper
    PersistedMapper loadedMapper = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper);
    // try to load a deleted mapper
    PersistedMapper deletedMapper = mapperDao.loadByMapperId(mapperIdToDelete);
    Assert.assertNull(deletedMapper);
}
Also used : Calendar(java.util.Calendar) PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Example 17 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project openolat by klemens.

the class MapperDAOTest method testCreateMapper.

@Test
public void testCreateMapper() {
    String mapperId = UUID.randomUUID().toString();
    String sessionId = UUID.randomUUID().toString().substring(0, 32);
    PersistentMapper mapper = new PersistentMapper(mapperId);
    PersistedMapper pMapper = mapperDao.persistMapper(sessionId, mapperId, mapper, -1);
    Assert.assertNotNull(pMapper);
    Assert.assertNotNull(pMapper.getKey());
    Assert.assertNotNull(pMapper.getCreationDate());
    Assert.assertNotNull(pMapper.getXmlConfiguration());
    Assert.assertEquals(mapperId, pMapper.getMapperId());
    Assert.assertEquals(sessionId, pMapper.getOriginalSessionId());
    dbInstance.commit();
}
Also used : PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Example 18 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project openolat by klemens.

the class MapperDAOTest method testLoadMapperByMapperId.

@Test
public void testLoadMapperByMapperId() {
    // create a mapper
    String mapperId = UUID.randomUUID().toString();
    String sessionId = UUID.randomUUID().toString().substring(0, 32);
    PersistedMapper pMapper = mapperDao.persistMapper(sessionId, mapperId, null, -1);
    Assert.assertNotNull(pMapper);
    dbInstance.commitAndCloseSession();
    // load the mapper
    PersistedMapper loadedMapper = mapperDao.loadByMapperId(mapperId);
    Assert.assertNotNull(loadedMapper);
    Assert.assertEquals(pMapper, loadedMapper);
    Assert.assertEquals(mapperId, loadedMapper.getMapperId());
    Assert.assertEquals(sessionId, loadedMapper.getOriginalSessionId());
}
Also used : PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Test(org.junit.Test)

Example 19 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project openolat by klemens.

the class MapperServiceImpl method register.

@Override
public MapperKey register(UserSession session, String mapperId, Mapper mapper, int expirationTime) {
    String encryptedMapId = Encoder.md5hash(mapperId);
    MapperKey mapperKey = new MapperKey(session, encryptedMapId);
    boolean alreadyLoaded = mapperKeyToMapper.containsKey(mapperKey);
    if (mapper instanceof Serializable) {
        if (alreadyLoaded) {
            if (!mapperDao.updateConfiguration(encryptedMapId, (Serializable) mapper, expirationTime)) {
                mapperDao.persistMapper(null, encryptedMapId, (Serializable) mapper, expirationTime);
            }
        } else {
            PersistedMapper persistedMapper = mapperDao.loadByMapperId(encryptedMapId);
            if (persistedMapper == null) {
                mapperDao.persistMapper(null, encryptedMapId, (Serializable) mapper, expirationTime);
            } else {
                mapperDao.updateConfiguration(encryptedMapId, (Serializable) mapper, expirationTime);
            }
        }
    }
    mapperKeyToMapper.put(mapperKey, mapper);
    mapperKey.setUrl(WebappHelper.getServletContextPath() + DispatcherModule.PATH_MAPPED + encryptedMapId);
    return mapperKey;
}
Also used : Serializable(java.io.Serializable) PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper)

Example 20 with PersistedMapper

use of org.olat.core.dispatcher.mapper.model.PersistedMapper in project openolat by klemens.

the class MapperDAO method retrieveMapperById.

public Mapper retrieveMapperById(String mapperId) {
    List<PersistedMapper> mappers = dbInstance.getCurrentEntityManager().createNamedQuery("loadMapperByKey", PersistedMapper.class).setParameter("mapperId", mapperId).getResultList();
    PersistedMapper pm = mappers.isEmpty() ? null : mappers.get(0);
    if (pm != null && StringHelper.containsNonWhitespace(pm.getXmlConfiguration())) {
        String configuration = pm.getXmlConfiguration();
        Object obj = XStreamHelper.createXStreamInstance().fromXML(configuration);
        if (obj instanceof Mapper) {
            return (Mapper) obj;
        }
    }
    return null;
}
Also used : PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper) Mapper(org.olat.core.dispatcher.mapper.Mapper) PersistedMapper(org.olat.core.dispatcher.mapper.model.PersistedMapper)

Aggregations

PersistedMapper (org.olat.core.dispatcher.mapper.model.PersistedMapper)20 Test (org.junit.Test)14 Calendar (java.util.Calendar)6 Serializable (java.io.Serializable)2 Date (java.util.Date)2 Mapper (org.olat.core.dispatcher.mapper.Mapper)2