From 2591b59876014bbe378bea04c0d7b388d44a80c6 Mon Sep 17 00:00:00 2001 From: Malo Date: Tue, 5 Jan 2021 11:20:57 +0100 Subject: [PATCH 1/3] first commit for hql update --- .../proxy/action/ProxyPreferenceProvider.java | 28 ++++++++- .../net/ihe/gazelle/proxy/dao/ProxyDAOTM.java | 26 +++++++-- .../proxy/dao/ProxyEntityManagerProvider.java | 1 + .../gazelle/proxy/gui/MessagesStepBean.java | 7 ++- .../net/ihe/gazelle/proxy/ws/ProxyForTM.java | 20 ++++--- ...azelle.hql.providers.EntityManagerProvider | 1 - ...stractApplicationConfigurationManager.java | 13 +++-- .../gui/ApplicationConfigurationManager.java | 10 ++++ .../proxy/admin/gui/ApplicationManager.java | 13 +++-- .../gazelle/proxy/admin/gui/HomeManager.java | 9 ++- .../admin/model/ApplicationConfiguration.java | 26 +++++---- .../ihe/gazelle/proxy/admin/model/Home.java | 18 ++++-- .../net/ihe/gazelle/proxy/dao/ProxyDAO.java | 16 +++-- .../proxy/factory/DicomProxyFactory.java | 31 ++++++++-- .../proxy/gui/HibernateMessageDataModel.java | 5 +- .../ihe/gazelle/proxy/gui/MessageBean.java | 58 +++++++++++-------- .../ihe/gazelle/proxy/gui/MessagesBean.java | 12 ++-- .../proxy/listeners/DicomEventListener.java | 3 +- .../proxy/listeners/HL7EventListener.java | 3 +- .../proxy/listeners/HttpEventListener.java | 3 +- .../proxy/listeners/RawEventListener.java | 3 +- .../proxy/listeners/SyslogEventListener.java | 5 +- .../proxy/model/message/HL7Message.java | 29 +++++++++- pom.xml | 2 +- 24 files changed, 245 insertions(+), 97 deletions(-) delete mode 100644 gazelle-proxy-ejb/src/main/resources/META-INF/services/net.ihe.gazelle.hql.providers.EntityManagerProvider diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/ProxyPreferenceProvider.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/ProxyPreferenceProvider.java index b643602..d37506e 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/ProxyPreferenceProvider.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/action/ProxyPreferenceProvider.java @@ -1,15 +1,25 @@ package net.ihe.gazelle.proxy.action; +import net.ihe.gazelle.hql.providers.detached.DatabaseSingleActionPerformer; +import net.ihe.gazelle.hql.providers.detached.HibernateFailure; +import net.ihe.gazelle.hql.providers.detached.PerformHibernateAction; import net.ihe.gazelle.preferences.PreferenceProvider; import net.ihe.gazelle.proxy.admin.model.ApplicationConfiguration; +import net.ihe.gazelle.proxy.gui.MessagesBean; +import org.jboss.seam.annotations.In; import org.jboss.seam.contexts.Contexts; import org.kohsuke.MetaInfServices; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import javax.persistence.EntityManager; import java.util.Date; @MetaInfServices(PreferenceProvider.class) public class ProxyPreferenceProvider implements PreferenceProvider { + private static Logger log = LoggerFactory.getLogger(ProxyPreferenceProvider.class); + @Override public int compareTo(PreferenceProvider o) { return getWeight().compareTo(o.getWeight()); @@ -51,7 +61,23 @@ public class ProxyPreferenceProvider implements PreferenceProvider { @Override public String getString(String key) { - return ApplicationConfiguration.getValueOfVariable(key); + + /*final String finalKey = key; + try { + return (String) DatabaseSingleActionPerformer.performHibernateAction(new PerformHibernateAction() { + + @Override + public Object performAction(EntityManager entityManager, Object... context) throws Exception { + return ApplicationConfiguration.getValueOfVariable(finalKey, entityManager); + } + }, key); + } catch (HibernateFailure hibernateFailure) { + log.error("getString : " + hibernateFailure.getMessage()); + } catch (Error e) { + log.error("getString : " + e.getMessage()); + }return null;*/ + EntityManager entityManager = (EntityManager) org.jboss.seam.Component.getInstance("entityManager", true); + return ApplicationConfiguration.getValueOfVariable(key, entityManager); } @Override diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/dao/ProxyDAOTM.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/dao/ProxyDAOTM.java index 2fc58e4..523b1a7 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/dao/ProxyDAOTM.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/dao/ProxyDAOTM.java @@ -1,6 +1,6 @@ package net.ihe.gazelle.proxy.dao; -import net.ihe.gazelle.hql.providers.detached.HibernateActionPerformer; +import net.ihe.gazelle.hql.providers.detached.DatabaseSingleActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateFailure; import net.ihe.gazelle.hql.providers.detached.PerformHibernateAction; import net.ihe.gazelle.proxy.model.tm.Step; @@ -9,6 +9,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.persistence.EntityManager; +import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -18,7 +19,7 @@ public class ProxyDAOTM { public static void updateStepDate(Integer testStepId) { try { - HibernateActionPerformer.performHibernateAction(new PerformHibernateAction() { + DatabaseSingleActionPerformer.performHibernateAction(new PerformHibernateAction() { @Override public Object performAction(EntityManager entityManager, Object... context) throws Exception { List steps = getStepsByTMId((Integer) context[0]); @@ -27,7 +28,7 @@ public class ProxyDAOTM { entityManager.merge(step); } return null; - } + } }, testStepId); } catch (HibernateFailure hibernateFailure) { log.error("updateStepDate : " + hibernateFailure.getMessage()); @@ -37,9 +38,22 @@ public class ProxyDAOTM { } public static List getStepsByTMId(int testStepId) { - StepQuery stepQuery = new StepQuery(); - stepQuery.tmId().eq(testStepId); - return stepQuery.getList(); + final int testStepFinalId = testStepId; + try { + return (List) DatabaseSingleActionPerformer.performHibernateAction(new PerformHibernateAction() { + @Override + public Object performAction(EntityManager entityManager, Object... context) throws Exception { + StepQuery stepQuery = new StepQuery(entityManager); + stepQuery.tmId().eq(testStepFinalId); + return stepQuery.getList(); + } + }, testStepId); + } catch (HibernateFailure hibernateFailure) { + log.error("getStepsByTMId : " + hibernateFailure.getMessage()); + } catch (Error e) { + log.error("getStepsByTMId : " + e.getMessage()); + } + return new ArrayList<>(); } } diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/dao/ProxyEntityManagerProvider.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/dao/ProxyEntityManagerProvider.java index 3e165b2..99e8a25 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/dao/ProxyEntityManagerProvider.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/dao/ProxyEntityManagerProvider.java @@ -3,6 +3,7 @@ package net.ihe.gazelle.proxy.dao; import net.ihe.gazelle.hql.providers.detached.AbstractEntityManagerProvider; import org.jboss.seam.contexts.Contexts; +@Deprecated public class ProxyEntityManagerProvider extends AbstractEntityManagerProvider { @Override diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java index 67a6401..5ef22ca 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java @@ -38,6 +38,9 @@ public class MessagesStepBean implements Serializable { @In private EntityManager entityManager; + @In(create = true) + private ProxyDAO proxyDAO; + private Step step = null; private String currentSelectDate; @@ -121,13 +124,13 @@ public class MessagesStepBean implements Serializable { } private void rebuildDataModel() { - messageDataModel = new HibernateMessageDataModel(messageFilterStep); + messageDataModel = new HibernateMessageDataModel(messageFilterStep, entityManager); } public void redirectToMessageFromURL() { FacesContext fc = FacesContext.getCurrentInstance(); String id = (String) fc.getExternalContext().getRequestParameterMap().get("id"); - AbstractMessage message = ProxyDAO.getMessageByID(Integer.valueOf(id)); + AbstractMessage message = proxyDAO.getMessageByID(Integer.valueOf(id)); Redirect redirect = Redirect.instance(); redirect.setParameter("id", id); diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/ws/ProxyForTM.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/ws/ProxyForTM.java index bb9d39b..44bc16d 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/ws/ProxyForTM.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/ws/ProxyForTM.java @@ -1,6 +1,5 @@ package net.ihe.gazelle.proxy.ws; -import net.ihe.gazelle.hql.providers.EntityManagerService; import net.ihe.gazelle.hql.providers.detached.HibernateFailure; import net.ihe.gazelle.proxy.action.ProxyLocal; import net.ihe.gazelle.proxy.admin.model.ApplicationConfiguration; @@ -14,8 +13,13 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ejb.Stateless; -import javax.jws.*; +import javax.jws.HandlerChain; +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebResult; +import javax.jws.WebService; import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import javax.xml.soap.SOAPException; import java.util.ArrayList; import java.util.Calendar; @@ -28,6 +32,9 @@ public class ProxyForTM implements IProxyForTM { private static Logger log = LoggerFactory.getLogger(ProxyForTM.class); + @PersistenceContext + private EntityManager entityManager; + public ProxyForTM() { super(); } @@ -42,7 +49,7 @@ public class ProxyForTM implements IProxyForTM { public void startAllChannels( @WebParam(name = "configurationsList") List configurations) throws SOAPException { - if (null == configurations){ + if (null == configurations) { throw new SOAPException("You must provide a configuration"); } for (Configuration configuration : configurations) { @@ -62,7 +69,7 @@ public class ProxyForTM implements IProxyForTM { public void startTestInstance( @WebParam(name = "testInstance") TestInstance testInstance) throws HibernateFailure { - if (null == testInstance){ + if (null == testInstance) { throw new HibernateFailure("You must provide a configuration"); } Calendar endTI = Calendar.getInstance(); @@ -105,7 +112,6 @@ public class ProxyForTM implements IProxyForTM { } } - EntityManager entityManager = EntityManagerService.provideEntityManager(); entityManager.persist(testInstance); } @@ -161,12 +167,12 @@ public class ProxyForTM implements IProxyForTM { @WebMethod public String getMinProxyPort() { - return ApplicationConfiguration.getValueOfVariable("min_proxy_port"); + return ApplicationConfiguration.getValueOfVariable("min_proxy_port", entityManager); } @WebMethod public String getMaxProxyPort() { - return ApplicationConfiguration.getValueOfVariable("max_proxy_port"); + return ApplicationConfiguration.getValueOfVariable("max_proxy_port", entityManager); } @WebMethod diff --git a/gazelle-proxy-ejb/src/main/resources/META-INF/services/net.ihe.gazelle.hql.providers.EntityManagerProvider b/gazelle-proxy-ejb/src/main/resources/META-INF/services/net.ihe.gazelle.hql.providers.EntityManagerProvider deleted file mode 100644 index e02b9fa..0000000 --- a/gazelle-proxy-ejb/src/main/resources/META-INF/services/net.ihe.gazelle.hql.providers.EntityManagerProvider +++ /dev/null @@ -1 +0,0 @@ -net.ihe.gazelle.proxy.dao.ProxyEntityManagerProvider diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/AbstractApplicationConfigurationManager.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/AbstractApplicationConfigurationManager.java index 41180e4..b7a3a23 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/AbstractApplicationConfigurationManager.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/AbstractApplicationConfigurationManager.java @@ -8,6 +8,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ejb.Remove; +import javax.persistence.EntityManager; /** * This class contains the methods to access common applications preferences. @@ -32,8 +33,8 @@ public abstract class AbstractApplicationConfigurationManager { private Boolean jmsCommunicationEnabled; private Boolean adminOnlyMode; - protected static String getApplicationProperty(String inPropertyKey) { - String value = ApplicationConfiguration.getValueOfVariable(inPropertyKey); + protected String getApplicationProperty(String inPropertyKey) { + String value = ApplicationConfiguration.getValueOfVariable(inPropertyKey, getEntityManager()); if (value == null) { AbstractApplicationConfigurationManager.log.error( "Variable '" + inPropertyKey + "' is missing in 'app_configuration' table."); @@ -137,7 +138,7 @@ public abstract class AbstractApplicationConfigurationManager { public Boolean getIpLogin() { if (ipLogin == null) { - String booleanAsString = ApplicationConfiguration.getValueOfVariable("ip_login"); + String booleanAsString = ApplicationConfiguration.getValueOfVariable("ip_login", getEntityManager()); if (booleanAsString == null) { this.ipLogin = false; } else { @@ -149,7 +150,7 @@ public abstract class AbstractApplicationConfigurationManager { public String getIpLoginAdmin() { if (this.ipLoginAdmin == null) { - this.ipLoginAdmin = ApplicationConfiguration.getValueOfVariable("ip_login_admin"); + this.ipLoginAdmin = ApplicationConfiguration.getValueOfVariable("ip_login_admin", getEntityManager()); } return ipLoginAdmin; } @@ -167,7 +168,7 @@ public abstract class AbstractApplicationConfigurationManager { public boolean isJmsCommunicationEnabled() { if (jmsCommunicationEnabled == null) { - String booleanAsString = ApplicationConfiguration.getValueOfVariable("jms_communication_is_enabled"); + String booleanAsString = ApplicationConfiguration.getValueOfVariable("jms_communication_is_enabled", getEntityManager()); if (booleanAsString == null) { this.jmsCommunicationEnabled = false; } else { @@ -188,4 +189,6 @@ public abstract class AbstractApplicationConfigurationManager { } return adminOnlyMode; } + + protected abstract EntityManager getEntityManager(); } diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/ApplicationConfigurationManager.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/ApplicationConfigurationManager.java index 5fc6d17..071a8a4 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/ApplicationConfigurationManager.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/ApplicationConfigurationManager.java @@ -20,12 +20,14 @@ import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.AutoCreate; import org.jboss.seam.annotations.Destroy; +import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.ejb.Remove; +import javax.persistence.EntityManager; import java.io.Serializable; /** @@ -49,6 +51,9 @@ public class ApplicationConfigurationManager extends AbstractApplicationConfigur private static final long serialVersionUID = -7817765881624341837L; private static Logger log = LoggerFactory.getLogger(ApplicationConfigurationManager.class); + @In + private EntityManager entityManager; + private String proxyIpAddresses; private Integer minProxyPort; private Integer maxProxyPort; @@ -74,6 +79,11 @@ public class ApplicationConfigurationManager extends AbstractApplicationConfigur casUrl = null; } + @Override + protected EntityManager getEntityManager() { + return entityManager; + } + public String getProxyIpAddresses() { if (proxyIpAddresses == null) { proxyIpAddresses = getApplicationProperty("proxy_ip_addresses"); diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/ApplicationManager.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/ApplicationManager.java index fa032e4..91dcbe3 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/ApplicationManager.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/ApplicationManager.java @@ -1,16 +1,17 @@ package net.ihe.gazelle.proxy.admin.gui; import net.ihe.gazelle.hql.HQLQueryBuilder; -import net.ihe.gazelle.hql.providers.EntityManagerService; import net.ihe.gazelle.proxy.admin.model.ApplicationConfiguration; import net.ihe.gazelle.proxy.admin.model.ApplicationConfigurationQuery; import org.jboss.seam.ScopeType; +import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.faces.FacesMessages; import org.jboss.seam.international.StatusMessage; import javax.persistence.EntityManager; +import javax.persistence.PersistenceContext; import java.io.Serializable; import java.util.List; @@ -25,18 +26,20 @@ public class ApplicationManager implements Serializable { private ApplicationConfiguration preference = null; + @In + private EntityManager entityManager; + public List getAllPreferences() { HQLQueryBuilder builder = new HQLQueryBuilder( - EntityManagerService.provideEntityManager(), ApplicationConfiguration.class); + entityManager, ApplicationConfiguration.class); builder.addOrder("variable", true); return builder.getList(); } public void savePreference(ApplicationConfiguration inPreference) { - ApplicationConfigurationQuery q = new ApplicationConfigurationQuery(); + ApplicationConfigurationQuery q = new ApplicationConfigurationQuery(entityManager); q.variable().eq(inPreference.getVariable()); if (q.getCount() == 0) { - EntityManager entityManager = EntityManagerService.provideEntityManager(); entityManager.merge(inPreference); entityManager.flush(); preference = null; @@ -49,7 +52,6 @@ public class ApplicationManager implements Serializable { } public void updatePreference(ApplicationConfiguration inPreference) { - EntityManager entityManager = EntityManagerService.provideEntityManager(); entityManager.merge(inPreference); entityManager.flush(); preference = null; @@ -61,7 +63,6 @@ public class ApplicationManager implements Serializable { public void removeSelectedPreference() { String preferenceName; if (this.preference != null) { - EntityManager entityManager = EntityManagerService.provideEntityManager(); this.preference = entityManager.find(ApplicationConfiguration.class, this.preference.getId()); if (this.preference != null) { preferenceName = this.preference.getVariable(); diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/HomeManager.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/HomeManager.java index 197588e..77f23e7 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/HomeManager.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/gui/HomeManager.java @@ -2,9 +2,11 @@ package net.ihe.gazelle.proxy.admin.gui; import net.ihe.gazelle.proxy.admin.model.Home; import org.jboss.seam.ScopeType; +import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; +import javax.persistence.EntityManager; import java.io.Serializable; @Name("homeManagerBean") @@ -16,6 +18,9 @@ public class HomeManager implements Serializable { */ private static final long serialVersionUID = 1111092307583013570L; + @In + private EntityManager entityManager; + private Home selectedHome; private boolean mainContentEditMode; @@ -36,7 +41,7 @@ public class HomeManager implements Serializable { } public void initializeHome() { - selectedHome = Home.getHomeForSelectedLanguage(); + selectedHome = Home.getHomeForSelectedLanguage(entityManager); } public void editMainContent() { @@ -44,7 +49,7 @@ public class HomeManager implements Serializable { } public void save() { - selectedHome = selectedHome.save(); + selectedHome = selectedHome.save(entityManager); mainContentEditMode = false; } diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/model/ApplicationConfiguration.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/model/ApplicationConfiguration.java index 1babc12..d58803d 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/model/ApplicationConfiguration.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/model/ApplicationConfiguration.java @@ -1,12 +1,18 @@ package net.ihe.gazelle.proxy.admin.model; import net.ihe.gazelle.hql.HQLQueryBuilder; -import net.ihe.gazelle.hql.providers.EntityManagerService; import org.jboss.seam.annotations.Name; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import javax.persistence.*; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EntityManager; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; import javax.validation.constraints.NotNull; import java.io.Serializable; @@ -56,11 +62,6 @@ public class ApplicationConfiguration implements Serializable { // getters and setters // ////////////////////////////////////////////////////////////////////// - public static String getValueOfVariable(String variable) { - EntityManager entityManager = EntityManagerService.provideEntityManager(); - return getValueOfVariable(variable, entityManager); - } - public static String getValueOfVariable(String variable, EntityManager entityManager) { ApplicationConfigurationQuery query = new ApplicationConfigurationQuery( new HQLQueryBuilder(entityManager, ApplicationConfiguration.class)); @@ -73,18 +74,19 @@ public class ApplicationConfiguration implements Serializable { } } - public static ApplicationConfiguration getApplicationConfigurationByVariable(String variable) { - ApplicationConfigurationQuery query = new ApplicationConfigurationQuery(); + public static ApplicationConfiguration getApplicationConfigurationByVariable(String variable, EntityManager entityManager) { + ApplicationConfigurationQuery query = new ApplicationConfigurationQuery(entityManager); query.variable().eq(variable); return query.getUniqueResult(); } /** - * @param variable : string + * @param variable : string + * @param entityManager : entityManager * @return true only if the value of the variable fixed to "true" */ - public static Boolean getBooleanValue(String variable) { - String val = getValueOfVariable(variable); + public static Boolean getBooleanValue(String variable, EntityManager entityManager) { + String val = getValueOfVariable(variable, entityManager); if (val == null) { return false; } diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/model/Home.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/model/Home.java index 285e012..b98f5d3 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/model/Home.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/admin/model/Home.java @@ -1,12 +1,20 @@ package net.ihe.gazelle.proxy.admin.model; import net.ihe.gazelle.hql.HQLQueryBuilder; -import net.ihe.gazelle.hql.providers.EntityManagerService; import org.hibernate.annotations.Type; import org.jboss.seam.annotations.Name; import org.jboss.seam.web.Locale; -import javax.persistence.*; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.EntityManager; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Lob; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.persistence.UniqueConstraint; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.List; @@ -50,10 +58,9 @@ public class Home implements Serializable { /** * @return home */ - public static Home getHomeForSelectedLanguage() { + public static Home getHomeForSelectedLanguage(EntityManager entityManager) { String language = Locale.instance().getISO3Language(); if (language != null && !language.isEmpty()) { - EntityManager entityManager = EntityManagerService.provideEntityManager(); HQLQueryBuilder queryBuilder = new HQLQueryBuilder(entityManager, Home.class); queryBuilder.addEq("iso3Language", language); List homes = queryBuilder.getList(); @@ -102,8 +109,7 @@ public class Home implements Serializable { /** * @return home */ - public Home save() { - EntityManager entityManager = EntityManagerService.provideEntityManager(); + public Home save(EntityManager entityManager) { Home home = entityManager.merge(this); entityManager.flush(); return home; diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/dao/ProxyDAO.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/dao/ProxyDAO.java index 23acccd..435151b 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/dao/ProxyDAO.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/dao/ProxyDAO.java @@ -2,19 +2,27 @@ package net.ihe.gazelle.proxy.dao; import net.ihe.gazelle.proxy.model.message.AbstractMessage; import net.ihe.gazelle.proxy.model.message.AbstractMessageQuery; +import org.jboss.seam.annotations.In; +import org.jboss.seam.annotations.Name; +import javax.persistence.EntityManager; + +@Name("proxyDAO") public class ProxyDAO { - public static AbstractMessage getMessageByID(Integer id) { - AbstractMessageQuery abstractMessageQuery = new AbstractMessageQuery(); + @In + private EntityManager entityManager; + + public AbstractMessage getMessageByID(Integer id) { + AbstractMessageQuery abstractMessageQuery = new AbstractMessageQuery(entityManager); abstractMessageQuery.id().eq(id); return abstractMessageQuery.getUniqueResult(); } - public static AbstractMessage getMessageByIDWithPrivacyKey(Integer id, String privacyKey){ + public AbstractMessage getMessageByIDWithPrivacyKey(Integer id, String privacyKey){ if (privacyKey != null && !privacyKey.isEmpty()){ - AbstractMessageQuery abstractMessageQuery = new AbstractMessageQuery(); + AbstractMessageQuery abstractMessageQuery = new AbstractMessageQuery(entityManager); abstractMessageQuery.id().eq(id); abstractMessageQuery.connection().privacyKey().eq(privacyKey); return abstractMessageQuery.getUniqueResult(); diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/factory/DicomProxyFactory.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/factory/DicomProxyFactory.java index 2a3a71e..4d5aa5a 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/factory/DicomProxyFactory.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/factory/DicomProxyFactory.java @@ -1,6 +1,8 @@ package net.ihe.gazelle.proxy.factory; -import net.ihe.gazelle.hql.providers.EntityManagerService; +import net.ihe.gazelle.hql.providers.detached.DatabaseSingleActionPerformer; +import net.ihe.gazelle.hql.providers.detached.HibernateFailure; +import net.ihe.gazelle.hql.providers.detached.PerformHibernateAction; import net.ihe.gazelle.proxy.admin.model.ApplicationConfiguration; import net.ihe.gazelle.proxy.listeners.DicomEventListener; import net.ihe.gazelle.proxy.netty.ChannelType; @@ -9,18 +11,35 @@ import net.ihe.gazelle.proxy.netty.Proxy; import net.ihe.gazelle.proxy.netty.ProxyFactory; import net.ihe.gazelle.proxy.netty.protocols.dicom.DicomProxy; import org.kohsuke.MetaInfServices; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import javax.persistence.EntityManager; @MetaInfServices(net.ihe.gazelle.proxy.netty.ProxyFactory.class) public class DicomProxyFactory implements ProxyFactory { + private static Logger log = LoggerFactory.getLogger(DicomProxyFactory.class); + @Override - public Proxy newProxy(ConnectionConfig connectionConfig) { - DicomEventListener proxyEventListener = new DicomEventListener(); - EntityManager entityManager = EntityManagerService.provideEntityManager(); - String storageDicom = ApplicationConfiguration.getValueOfVariable("storage_dicom", entityManager); - return new DicomProxy(proxyEventListener, connectionConfig, storageDicom); + public Proxy newProxy(final ConnectionConfig connectionConfig) { + try { + final ConnectionConfig connectionConfigFinal = connectionConfig; + return (Proxy) DatabaseSingleActionPerformer.performHibernateAction(new PerformHibernateAction() { + @Override + public Object performAction(EntityManager entityManager, Object... context) throws Exception { + DicomEventListener proxyEventListener = new DicomEventListener(); + String storageDicom = ApplicationConfiguration.getValueOfVariable("storage_dicom", entityManager); + return new DicomProxy(proxyEventListener, connectionConfigFinal, storageDicom); + } + }, connectionConfig); + } catch (HibernateFailure hibernateFailure) { + log.error("newProxy : " + hibernateFailure.getMessage()); + } catch (Error e) { + log.error("newProxy : " + e.getMessage()); + } + return null; + } @Override diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java index 76626dd..67977d0 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java @@ -8,6 +8,7 @@ import net.ihe.gazelle.proxy.model.message.AbstractMessage; import net.ihe.gazelle.proxy.netty.ChannelType; import javax.faces.context.FacesContext; +import javax.persistence.EntityManager; public class HibernateMessageDataModel extends HibernateDataModel { @@ -17,8 +18,8 @@ public class HibernateMessageDataModel extends Hibern private static final long serialVersionUID = 1308547516757053507L; private MessageFilter messageFilter; - public HibernateMessageDataModel(MessageFilter messageFilter) { - super(AbstractMessage.class); + public HibernateMessageDataModel(MessageFilter messageFilter, EntityManager entityManager) { + super(AbstractMessage.class, entityManager); if (messageFilter.getClass().isAssignableFrom(MessageFilterStandard.class)) { MessageFilterStandard messageFilterStandard = (MessageFilterStandard) messageFilter; if (messageFilterStandard.getMessageType().equals(ChannelType.DICOM)) { diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessageBean.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessageBean.java index 6a84b61..56457b2 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessageBean.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessageBean.java @@ -2,11 +2,16 @@ package net.ihe.gazelle.proxy.gui; import net.ihe.gazelle.evsclient.connector.api.EVSClientResults; import net.ihe.gazelle.evsclient.connector.api.EVSClientServletConnector; -import net.ihe.gazelle.hql.providers.EntityManagerService; import net.ihe.gazelle.proxy.admin.gui.ApplicationConfigurationManager; import net.ihe.gazelle.proxy.admin.gui.ApplicationConfigurationManagerLocal; import net.ihe.gazelle.proxy.dao.ProxyDAO; -import net.ihe.gazelle.proxy.model.message.*; +import net.ihe.gazelle.proxy.model.message.AbstractMessage; +import net.ihe.gazelle.proxy.model.message.AbstractMessageQuery; +import net.ihe.gazelle.proxy.model.message.DicomMessage; +import net.ihe.gazelle.proxy.model.message.HL7Message; +import net.ihe.gazelle.proxy.model.message.HTTPMessage; +import net.ihe.gazelle.proxy.model.message.RawMessage; +import net.ihe.gazelle.proxy.model.message.SyslogMessage; import net.ihe.gazelle.proxy.netty.ChannelType; import org.apache.commons.codec.binary.Base64; import org.apache.commons.exec.CommandLine; @@ -17,7 +22,6 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; -import org.jboss.resteasy.spi.UnauthorizedException; import org.jboss.seam.Component; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.In; @@ -25,7 +29,6 @@ import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import org.jboss.seam.faces.FacesMessages; import org.jboss.seam.faces.Redirect; -import org.jboss.seam.international.StatusMessage; import org.jboss.seam.security.Identity; import javax.faces.context.ExternalContext; @@ -34,7 +37,14 @@ import javax.persistence.EntityManager; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import java.io.*; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.Serializable; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; @@ -61,6 +71,10 @@ public class MessageBean implements Serializable { FacesContext facesContext; @In private EntityManager entityManager; + + @In(create = true) + private ProxyDAO proxyDAO; + @In(value = "#{facesContext.externalContext}") private ExternalContext extCtx; private Integer messageIndex; @@ -115,19 +129,19 @@ public class MessageBean implements Serializable { try { int i = Integer.valueOf(messageId); ApplicationConfigurationManager applicationConfigurationManager = (ApplicationConfigurationManager) Component.getInstance("applicationConfigurationManager"); - if (applicationConfigurationManager != null && applicationConfigurationManager.isAdminOnlyMode()){ - if (!((Identity) Component.getInstance("org.jboss.seam.security.identity")).hasRole("admin_role")){ + if (applicationConfigurationManager != null && applicationConfigurationManager.isAdminOnlyMode()) { + if (!((Identity) Component.getInstance("org.jboss.seam.security.identity")).hasRole("admin_role")) { String privacyKey = params.get("privacyKey"); - if (privacyKey == null || privacyKey.isEmpty()){ + if (privacyKey == null || privacyKey.isEmpty()) { message = null; return; } - message = ProxyDAO.getMessageByIDWithPrivacyKey(i, privacyKey); + message = proxyDAO.getMessageByIDWithPrivacyKey(i, privacyKey); } else { - message = ProxyDAO.getMessageByID(i); + message = proxyDAO.getMessageByID(i); } } else { - message = ProxyDAO.getMessageByID(i); + message = proxyDAO.getMessageByID(i); } } catch (Exception e) { message = null; @@ -213,7 +227,8 @@ public class MessageBean implements Serializable { try { fos = new FileOutputStream(zipFile); zos = new ZipOutputStream(fos); - AbstractMessageQuery q = new AbstractMessageQuery(); + EntityManager entityManager = null; + AbstractMessageQuery q = new AbstractMessageQuery(entityManager); q.connection().id().eq(connectionId); List messagesList = q.getList(); for (AbstractMessage msg : messagesList) { @@ -347,7 +362,6 @@ public class MessageBean implements Serializable { public String getMessageIndex(AbstractMessage message) { - EntityManager em = EntityManagerService.provideEntityManager(); String index = message.getIndex(); if (index != null) { return index; @@ -358,8 +372,8 @@ public class MessageBean implements Serializable { for (AbstractMessage abstractMessage : messages) { if (abstractMessage.getId().equals(message.getId())) { message.setIndex(Integer.toString(i)); - em.merge(message); - em.flush(); + entityManager.merge(message); + entityManager.flush(); return Integer.toString(i); } i++; @@ -488,7 +502,6 @@ public class MessageBean implements Serializable { if (!(resultOidList.contains(oid))) { resultOidList.add(oid); message.setResultOid(resultOidList); - EntityManager entityManager = EntityManagerService.provideEntityManager(); message = entityManager.merge(message); entityManager.flush(); } else { @@ -507,7 +520,6 @@ public class MessageBean implements Serializable { if ((resultOidList.contains(oid))) { resultOidList.remove(oid); message.setResultOid(resultOidList); - EntityManager entityManager = EntityManagerService.provideEntityManager(); message = entityManager.merge(message); entityManager.flush(); } else { @@ -549,19 +561,19 @@ public class MessageBean implements Serializable { } } - public void redirectFromUrlAndParams(String url, Integer messageId, String connectionPrivacyKey){ + public void redirectFromUrlAndParams(String url, Integer messageId, String connectionPrivacyKey) { ExternalContext ec = FacesContext.getCurrentInstance().getExternalContext(); ApplicationConfigurationManager applicationConfigurationManager = (ApplicationConfigurationManager) Component.getInstance("applicationConfigurationManager"); String fullUrl = url + "?id=" + messageId; if (connectionPrivacyKey != null && !connectionPrivacyKey.isEmpty() - && applicationConfigurationManager != null && applicationConfigurationManager.isAdminOnlyMode()){ + && applicationConfigurationManager != null && applicationConfigurationManager.isAdminOnlyMode()) { fullUrl += "&privacyKey=" + connectionPrivacyKey; } try { ec.redirect(ec.getRequestContextPath() + fullUrl); - } catch (IOException e){ + } catch (IOException e) { LOG.error("" + e); } @@ -588,7 +600,7 @@ public class MessageBean implements Serializable { } try { int i = Integer.valueOf(messageId); - message = ProxyDAO.getMessageByID(i); + message = proxyDAO.getMessageByID(i); } catch (Exception e) { message = null; } @@ -630,7 +642,7 @@ public class MessageBean implements Serializable { return false; } - public void shareMessage(){ + public void shareMessage() { this.message.generatePrivacyKey(); saveConnectionChanges(); } @@ -640,7 +652,7 @@ public class MessageBean implements Serializable { saveConnectionChanges(); } - private void saveConnectionChanges(){ + private void saveConnectionChanges() { final EntityManager entityManager = (EntityManager) Component.getInstance("entityManager"); entityManager.merge(this.message.getConnection()); this.message = entityManager.merge(this.message); diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java index 4a5fbcf..eab6c5f 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java @@ -46,6 +46,10 @@ public class MessagesBean implements Serializable { @In private EntityManager entityManager; + + @In(create = true) + private ProxyDAO proxyDAO; + private String currentSelectDate; private static Map sortByComparator(Map unsortMap) { @@ -259,14 +263,14 @@ public class MessagesBean implements Serializable { } public SelectItem[] getHL7MessageTypes() { - HL7MessageQuery query = new HL7MessageQuery(); + HL7MessageQuery query = new HL7MessageQuery(entityManager); query.setCachable(true); final List list = query.hl7MessageType().getListDistinct(); return addItems(list); } public SelectItem[] getHTTPMessageTypes() { - HTTPMessageQuery query = new HTTPMessageQuery(); + HTTPMessageQuery query = new HTTPMessageQuery(entityManager); query.setCachable(true); final List list = query.messageType().getListDistinct(); return addItems(list); @@ -457,13 +461,13 @@ public class MessagesBean implements Serializable { } public void rebuildDataModel() { - messageDataModel = new HibernateMessageDataModel(messageFilterStandard); + messageDataModel = new HibernateMessageDataModel(messageFilterStandard, entityManager); } public void redirectToMessageFromURL() { FacesContext fc = FacesContext.getCurrentInstance(); String id = (String) fc.getExternalContext().getRequestParameterMap().get("id"); - AbstractMessage message = ProxyDAO.getMessageByID(Integer.valueOf(id)); + AbstractMessage message = proxyDAO.getMessageByID(Integer.valueOf(id)); Redirect redirect = Redirect.instance(); redirect.setParameter("id", id); diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/DicomEventListener.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/DicomEventListener.java index 35bf2ff..feb33b4 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/DicomEventListener.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/DicomEventListener.java @@ -1,6 +1,7 @@ package net.ihe.gazelle.proxy.listeners; import jp.digitalsensation.ihej.transactionmonitor.dicom.messageexchange.DimseMessage; +import net.ihe.gazelle.hql.providers.detached.DatabaseSingleActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateFailure; import net.ihe.gazelle.hql.providers.detached.PerformHibernateAction; @@ -27,7 +28,7 @@ public class DicomEventListener extends SameEventListener { synchronized (this) { try { - HibernateActionPerformer.performHibernateAction(new PerformHibernateAction() { + DatabaseSingleActionPerformer.performHibernateAction(new PerformHibernateAction() { @Override public Object performAction(EntityManager entityManager, Object... context) throws Exception { diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/HL7EventListener.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/HL7EventListener.java index b984a53..7939903 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/HL7EventListener.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/HL7EventListener.java @@ -1,5 +1,6 @@ package net.ihe.gazelle.proxy.listeners; +import net.ihe.gazelle.hql.providers.detached.DatabaseSingleActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateFailure; import net.ihe.gazelle.hql.providers.detached.PerformHibernateAction; @@ -22,7 +23,7 @@ public class HL7EventListener extends SameEventListener { synchronized (this) { try { - HibernateActionPerformer.performHibernateAction(new PerformHibernateAction() { + DatabaseSingleActionPerformer.performHibernateAction(new PerformHibernateAction() { @Override public Object performAction(EntityManager entityManager, Object... context) throws Exception { diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/HttpEventListener.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/HttpEventListener.java index 1f3082f..fc8e136 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/HttpEventListener.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/HttpEventListener.java @@ -1,5 +1,6 @@ package net.ihe.gazelle.proxy.listeners; +import net.ihe.gazelle.hql.providers.detached.DatabaseSingleActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateFailure; import net.ihe.gazelle.hql.providers.detached.PerformHibernateAction; @@ -31,7 +32,7 @@ public class HttpEventListener extends SameEventListener { synchronized (this) { try { - HibernateActionPerformer.performHibernateAction(new PerformHibernateAction() { + DatabaseSingleActionPerformer.performHibernateAction(new PerformHibernateAction() { @Override public Object performAction(EntityManager entityManager, Object... context) throws Exception { HTTPMessage soapMessage = new HTTPMessage(timeStamp, requesterIp, requesterPort, proxyPort, diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/RawEventListener.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/RawEventListener.java index dcfc948..d5b2699 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/RawEventListener.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/RawEventListener.java @@ -1,5 +1,6 @@ package net.ihe.gazelle.proxy.listeners; +import net.ihe.gazelle.hql.providers.detached.DatabaseSingleActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateFailure; import net.ihe.gazelle.hql.providers.detached.PerformHibernateAction; @@ -22,7 +23,7 @@ public class RawEventListener extends SameEventListener { synchronized (this) { try { - HibernateActionPerformer.performHibernateAction(new PerformHibernateAction() { + DatabaseSingleActionPerformer.performHibernateAction(new PerformHibernateAction() { @Override public Object performAction(EntityManager entityManager, Object... context) throws Exception { RawMessage rawmessage = new RawMessage(timeStamp, requesterIp, requesterPort, proxyPort, diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/SyslogEventListener.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/SyslogEventListener.java index a057d97..321c7c4 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/SyslogEventListener.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/listeners/SyslogEventListener.java @@ -1,5 +1,6 @@ package net.ihe.gazelle.proxy.listeners; +import net.ihe.gazelle.hql.providers.detached.DatabaseSingleActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateActionPerformer; import net.ihe.gazelle.hql.providers.detached.HibernateFailure; import net.ihe.gazelle.hql.providers.detached.PerformHibernateAction; @@ -20,7 +21,7 @@ public class SyslogEventListener extends GazelleProxyEventListener net.ihe.gazelle.maven gazelle-tools - 3.1.0 + 3.1.3-SNAPSHOT 4.0.0 -- GitLab From d2e3adbcc35beec6322d1b5714c2db7ec4c59342 Mon Sep 17 00:00:00 2001 From: Malo Date: Mon, 11 Jan 2021 11:25:40 +0100 Subject: [PATCH 2/3] Prevent queries from being called from anywhere --- .../java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java | 6 +++++- .../ihe/gazelle/proxy/gui/HibernateMessageDataModel.java | 5 +++-- .../main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java | 7 ++++++- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java index 5ef22ca..4b89032 100644 --- a/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java +++ b/gazelle-proxy-ejb/src/main/java/net/ihe/gazelle/proxy/gui/MessagesStepBean.java @@ -18,6 +18,7 @@ import javax.ejb.Remove; import javax.faces.context.FacesContext; import javax.faces.model.SelectItem; import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; import java.io.Serializable; import java.util.*; @@ -38,6 +39,9 @@ public class MessagesStepBean implements Serializable { @In private EntityManager entityManager; + @In + private EntityManagerFactory entityManagerFactory; + @In(create = true) private ProxyDAO proxyDAO; @@ -124,7 +128,7 @@ public class MessagesStepBean implements Serializable { } private void rebuildDataModel() { - messageDataModel = new HibernateMessageDataModel(messageFilterStep, entityManager); + messageDataModel = new HibernateMessageDataModel(messageFilterStep, entityManagerFactory); } public void redirectToMessageFromURL() { diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java index 67977d0..f84199e 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java @@ -9,6 +9,7 @@ import net.ihe.gazelle.proxy.netty.ChannelType; import javax.faces.context.FacesContext; import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; public class HibernateMessageDataModel extends HibernateDataModel { @@ -18,8 +19,8 @@ public class HibernateMessageDataModel extends Hibern private static final long serialVersionUID = 1308547516757053507L; private MessageFilter messageFilter; - public HibernateMessageDataModel(MessageFilter messageFilter, EntityManager entityManager) { - super(AbstractMessage.class, entityManager); + public HibernateMessageDataModel(MessageFilter messageFilter, EntityManagerFactory entityManagerFactory) { + super(AbstractMessage.class, entityManagerFactory); if (messageFilter.getClass().isAssignableFrom(MessageFilterStandard.class)) { MessageFilterStandard messageFilterStandard = (MessageFilterStandard) messageFilter; if (messageFilterStandard.getMessageType().equals(ChannelType.DICOM)) { diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java index eab6c5f..a720b54 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/MessagesBean.java @@ -23,6 +23,7 @@ import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import javax.faces.model.SelectItem; import javax.persistence.EntityManager; +import javax.persistence.EntityManagerFactory; import java.io.IOException; import java.io.Serializable; import java.io.UnsupportedEncodingException; @@ -47,6 +48,9 @@ public class MessagesBean implements Serializable { @In private EntityManager entityManager; + @In + private EntityManagerFactory entityManagerFactory; + @In(create = true) private ProxyDAO proxyDAO; @@ -461,7 +465,7 @@ public class MessagesBean implements Serializable { } public void rebuildDataModel() { - messageDataModel = new HibernateMessageDataModel(messageFilterStandard, entityManager); + messageDataModel = new HibernateMessageDataModel(messageFilterStandard, entityManagerFactory); } public void redirectToMessageFromURL() { @@ -607,6 +611,7 @@ public class MessagesBean implements Serializable { } + public void redirectToMessages(String messageType, Integer proxyProviderPort, String proxyConsumerHost, Integer proxyConsumerPort, String initiatorsIP, Integer initiatorsPort, Integer connectionId, Date dateFrom, Date dateTo, String dicomAffectedSopClassUID, String dicomCommandField, String hl7MessageType, -- GitLab From 6c1e01de9facbc7e18c28a1c72e1b694e75fc2c2 Mon Sep 17 00:00:00 2001 From: Malo Date: Wed, 13 Jan 2021 10:07:15 +0100 Subject: [PATCH 3/3] hql dependency update --- gazelle-proxy-jar/pom.xml | 6 +++--- .../ihe/gazelle/proxy/gui/HibernateMessageDataModel.java | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/gazelle-proxy-jar/pom.xml b/gazelle-proxy-jar/pom.xml index bda7566..827a7ee 100644 --- a/gazelle-proxy-jar/pom.xml +++ b/gazelle-proxy-jar/pom.xml @@ -52,8 +52,8 @@ 2.6 - net.ihe.gazelle.hql - gazelle-hql + net.ihe.gazelle.dbqm + gazelle-dbqm jar @@ -185,4 +185,4 @@ ${gazelle.cas.client.version} - \ No newline at end of file + diff --git a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java index f84199e..7fc155a 100644 --- a/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java +++ b/gazelle-proxy-jar/src/main/java/net/ihe/gazelle/proxy/gui/HibernateMessageDataModel.java @@ -8,7 +8,6 @@ import net.ihe.gazelle.proxy.model.message.AbstractMessage; import net.ihe.gazelle.proxy.netty.ChannelType; import javax.faces.context.FacesContext; -import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; public class HibernateMessageDataModel extends HibernateDataModel { -- GitLab