@Override protected ConsumerSPI internalSaveChangesTo(Consumer consumer) throws RegistrationException { ConsumerSPI consumerSPI = super.internalSaveChangesTo(consumer); ChromatticSession session = persister.getSession(); try { ConsumerMapping cm = session.findById(ConsumerMapping.class, consumer.getPersistentKey()); cm.initFrom(consumer); persister.closeSession(true); } catch (Exception e) { persister.closeSession(false); throw new RegistrationException(e); } return consumerSPI; }
protected RegistrationSPI internalSaveChangesTo(Registration registration) throws RegistrationException { RegistrationSPI registrationSPI = super.internalSaveChangesTo(registration); ChromatticSession session = persister.getSession(); try { RegistrationMapping cm = session.findById(RegistrationMapping.class, registration.getPersistentKey()); cm.initFrom(registration); persister.closeSession(true); } catch (Exception e) { persister.closeSession(false); throw new RegistrationException(e); } return registrationSPI; }
@Override protected RegistrationSPI internalCreateRegistration( ConsumerSPI consumer, Map registrationProperties) throws RegistrationException { ChromatticSession session = persister.getSession(); RegistrationSPI registration = null; try { ConsumerMapping cm = session.findById(ConsumerMapping.class, consumer.getPersistentKey()); RegistrationMapping rm = cm.createAndAddRegistrationMappingFrom(null); registration = newRegistrationSPI(consumer, registrationProperties, rm.getPersistentKey()); rm.initFrom(registration); persister.closeSession(true); } catch (Exception e) { persister.closeSession(false); throw new RegistrationException(e); } return registration; }
public JCRRegistrationPersistenceManager(ExoContainer container) throws Exception { persister = new JCRPersister(container, JCRPersister.WSRP_WORKSPACE_NAME); List<Class> mappingClasses = new ArrayList<Class>(6); Collections.addAll( mappingClasses, ConsumersAndGroupsMapping.class, ConsumerMapping.class, ConsumerGroupMapping.class, RegistrationMapping.class, ConsumerCapabilitiesMapping.class, RegistrationPropertiesMapping.class); persister.initializeBuilderFor(mappingClasses); // persister = NewJCRPersister.getInstance(container); ChromatticSession session = persister.getSession(); mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME); if (mappings == null) { mappings = session.insert(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME); } persister.save(); // needed right now as the session must still be open to iterate over nodes for (ConsumerGroupMapping cgm : mappings.getConsumerGroups()) { internalAddConsumerGroup(cgm.toConsumerGroup(this)); } for (ConsumerMapping cm : mappings.getConsumers()) { ConsumerSPI consumer = cm.toConsumer(this); internalAddConsumer(consumer); // get the registrations and add them to local map. for (Registration registration : consumer.getRegistrations()) { internalAddRegistration((RegistrationSPI) registration); } } persister.closeSession(false); }
@Override protected ConsumerGroupSPI internalCreateConsumerGroup(String name) throws RegistrationException { ConsumerGroupSPI group = super.internalCreateConsumerGroup(name); ChromatticSession session = persister.getSession(); mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME); try { ConsumerGroupMapping cgm = mappings.createConsumerGroup(name); mappings.getConsumerGroups().add(cgm); group.setPersistentKey(cgm.getPersistentKey()); cgm.initFrom(group); persister.closeSession(true); } catch (Exception e) { persister.closeSession(false); throw new RegistrationException(e); } return group; }
@Override protected ConsumerSPI internalCreateConsumer(String consumerId, String consumerName) throws RegistrationException { ConsumerSPI consumer = super.internalCreateConsumer(consumerId, consumerName); ChromatticSession session = persister.getSession(); mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME); try { ConsumerMapping cm = mappings.createConsumer(consumerId); mappings.getConsumers().add(cm); cm.initFrom(consumer); consumer.setPersistentKey(cm.getPersistentKey()); persister.closeSession(true); } catch (Exception e) { persister.closeSession(false); throw new RegistrationException(e); } return consumer; }
private void remove(String id, Class clazz) { ChromatticSession session = persister.getSession(); session.remove(session.findById(clazz, id)); persister.closeSession(true); }