use of com.haulmont.cuba.core.EntityManager in project cuba by cuba-platform.
the class AttributeAccessServiceBean method computeSecurityState.
@Override
public SecurityState computeSecurityState(Entity entity) {
Preconditions.checkNotNullArgument(entity, "entity is null");
SecurityState state;
String storeName = metadataTools.getStoreName(metadata.getClassNN(entity.getClass()));
Transaction tx = persistence.createTransaction(storeName);
try {
EntityManager em = persistence.getEntityManager(storeName);
Entity managedEntity = em.merge(entity);
support.setupAttributeAccess(managedEntity);
state = BaseEntityInternalAccess.getSecurityState(managedEntity);
// do not commit the transaction
} finally {
tx.end();
}
return state;
}
use of com.haulmont.cuba.core.EntityManager in project cuba by cuba-platform.
the class Emailer method returnToQueue.
protected void returnToQueue(SendingMessage sendingMessage) {
try (Transaction tx = persistence.createTransaction()) {
EntityManager em = persistence.getEntityManager();
SendingMessage msg = em.merge(sendingMessage);
msg.setAttemptsMade(msg.getAttemptsMade() + 1);
msg.setStatus(SendingStatus.QUEUE);
tx.commit();
} catch (Exception e) {
log.error("Error returning message to '{}' to the queue", sendingMessage.getAddress(), e);
}
}
use of com.haulmont.cuba.core.EntityManager in project cuba by cuba-platform.
the class Emailer method markAsSent.
protected void markAsSent(SendingMessage sendingMessage) {
try (Transaction tx = persistence.createTransaction()) {
EntityManager em = persistence.getEntityManager();
SendingMessage msg = em.merge(sendingMessage);
msg.setStatus(SendingStatus.SENT);
msg.setAttemptsMade(msg.getAttemptsMade() + 1);
msg.setDateSent(timeSource.currentTimestamp());
tx.commit();
} catch (Exception e) {
log.error("Error marking message to '{}' as sent", sendingMessage.getAddress(), e);
}
}
use of com.haulmont.cuba.core.EntityManager in project cuba by cuba-platform.
the class Emailer method loadContentText.
@Override
public String loadContentText(SendingMessage sendingMessage) {
SendingMessage msg;
try (Transaction tx = persistence.createTransaction()) {
EntityManager em = persistence.getEntityManager();
msg = em.reload(sendingMessage, "sendingMessage.loadContentText");
tx.commit();
}
Objects.requireNonNull(msg, "Sending message not found: " + sendingMessage.getId());
if (msg.getContentTextFile() != null) {
byte[] bodyContent;
try {
bodyContent = fileStorage.loadFile(msg.getContentTextFile());
} catch (FileStorageException e) {
throw new RuntimeException(e);
}
// noinspection UnnecessaryLocalVariable
String res = bodyTextFromByteArray(bodyContent);
return res;
} else {
return msg.getContentText();
}
}
use of com.haulmont.cuba.core.EntityManager in project cuba by cuba-platform.
the class Emailer method persistMessages.
protected void persistMessages(List<SendingMessage> sendingMessageList, SendingStatus status) {
MessagePersistingContext context = new MessagePersistingContext();
try {
try (Transaction tx = persistence.createTransaction()) {
EntityManager em = persistence.getEntityManager();
for (SendingMessage message : sendingMessageList) {
message.setStatus(status);
try {
persistSendingMessage(em, message, context);
} catch (FileStorageException e) {
throw new RuntimeException("Failed to store message " + message.getCaption(), e);
}
}
tx.commit();
}
context.finished();
} finally {
removeOrphanFiles(context);
}
}
Aggregations